Your SlideShare is downloading. ×
0
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
20130804 OSC京都 Raspberry Piに何かつないで遊ぼう
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20130804 OSC京都 Raspberry Piに何かつないで遊ぼう

7,221

Published on

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,221
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
24
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Raspberry Piに 何かつないで遊ぼう オープンソースカンファレンス関西@京都 2013 Yasuhiro ISHII
  • 2. 自己紹介 •石井 康寛(Yasuhiro ISHII) •組み込み業界でソフト開発してます •出身 : 三重県度会郡度会町 •趣味 : 電子工作、ソフト開発、海外旅 行、などなど •Twitter : yishii •Facebook : •http://facebook.com/ishiiyasu •ブログ : 日曜エレクトロニクス(日エレ) •http://projectc3.seesaa.net/
  • 3. RPiと外部機器を繋ぐ •USBポートに接続する •ピンヘッダに接続する RPiと外部機器とを接続方法の内、お手軽 なものとして、以下の2つが考えられます。
  • 4. USBでの接続 ・USB-WiFi/3Gでネット接続 ・USB-BTアダプタでBT機器接続 ・USB WebCamでライブ配信 ・USB センサー機器でセンシング 等 既製or自作USB機器(Arduinoや PICマイコン等で作成出来る)との 接続は簡単です。
  • 5. ピンヘッダでの接続 ピンヘッダとは?
  • 6. RPiのピンヘッダ R2.0のみ
  • 7. ピンヘッダのピン機能アサイン I2C-1 I2C-0 SPI UART GPIO_GENxはGPIO。 赤枠ピンもGPIOとして 使用可。 PWM I2S 電源専用ピン (制御に使用できない)
  • 8. GPIO •GPIO = General Purpose Input/ Output(汎用入出力) •LEDの点灯をしたり、スイッチの入力 を読み取ったり出来る
  • 9. UART • Universal Asynchronous Receiver Transmitter • 通常1対1の機器間通信に使用 • いわゆるRS-232C。 • USBシリアル変換チップ経由でPCからコンソール操作 • Arduinoと接続して連携 • UART接続タイプのGPSモジュールを接続 • シリアルサーボを接続
  • 10. SPI • Serial Peripheral Interface • MISO、MOSI、SCLKに加え、接続対象デバイス数分のSSで接続 • 1対多で通信可能(通信相手数分、SS信号が必要) RPi 有機EL EEPROM NFCデバイス 接続例
  • 11. I2C • Inter-Integrated Circuit • 2本の信号線(SCL、SDA)で複数の機器と接続可能 • 1対多接続可能(I2Cバス上で、個々のデバイス毎がユニークな番号(ス レーブアドレス)を持つ。 モータードライバ モジュール 電流・電圧測定 モジュール LCD RTC EEPROM RPi LCD モーター ドライバ RTC スレーブ アドレス 0x10 スレーブ アドレス 0x11 スレーブ アドレス 0x12 I2C マスターI2C対応デバイスの例
  • 12. 実際にRPiを使用して 何か機器を作ってみよう! ▶ Raspberry Piでラジコンを作ってあそぼう
  • 13. ラジコンの構成 I2Cモータードライバ 2 I2Cバス USB 無線 ワイヤレスキーボード モーター 2
  • 14. 準備物 タミヤ 楽しい工作シリーズ No.168 ダブルギヤボックス (左右独立4速タイプ) 882円 @Amazon ストロベリー・リナックス I2Cモータードライバ・モジュール DRV8830 @567円 2個 http://strawberry-linux.com/catalog/items? code=12030
  • 15. 準備物 タミヤ 楽しい工作シリーズ No.101 トラックタイヤセット(36㎜径) TRUCK TIRE SET (36mm DIA.) Item No:70101 組立キット 378円(本体価格360円) タミヤ 楽しい工作シリーズ No.98 ユニバーサルプレートセット UNIVERSAL PLATE SET Item No:70098 組立キット 378円(本体価格360円)
  • 16. 準備物 線材少し USBモバイル バッテリー タミヤ 楽しい工作シリーズ No.144 ボールキャスター(2セット入) BALL CASTER (2pcs.) Item No:70144 組立キット 378円(本体価格360円)
  • 17. モータードライバ DRV8830(TI) I2C制御 電源 2.75∼6.8V 連続1A出力 秋月電子通商 170円 ストロベリーリナックス 567円 →今回はストロベリーリナックスのものを使用します
  • 18. 接続概略図 RPi モータ ドライバ モータ ドライバ I2C1-SCL I2C1-SDA
  • 19. ・ ・ USBコネクタ 経由でバッテリーへ USBケーブル 経由でバッテリーへ 接続 実体配線図 VCC SCL SDA GND VCC SCL SDA GND
  • 20. 車体の作成 ハードは完成です
  • 21. ソフトの構成 Linux input subsystem (/dev/input/event0等) ラジコン メインプログラム キーイベント I2Cデバドラ (/dev/i2c-1等) モータードライバ 制御コマンド
  • 22. I2Cを使用する準備 •/etc/modules •i2c-dev を記載 •/etc/modprobe.d/raspi-blacklist.conf •blacklist i2c-bcm2708 をコメントアウ ト
  • 23. I2Cデバイスドライバのオープン    int  fd;    //  RPi  Rev1.0使用時は  /dev/i2c-­‐0    fd  =  open("/dev/i2c-­‐1",O_RDWR);    if(fd  <  0){        printf("i2c  open  errorn");        return(-­‐1);    }
  • 24. メイン処理 (キーイベント取得+モーターへの指令) while(1){        //  標準入力からイベント取り込み        read(0,&event,sizeof(event));        if(event.type  ==  EV_KEY  &&  event.value  !=  0){            switch(event.code){            case  KEY_UP:              //  左右モーターの前転              motor_l.control(MOTOR_POWER,DRV8830::MOTOR_FORWARD);              motor_r.control(MOTOR_POWER,DRV8830::MOTOR_FORWARD);                break;            case  KEY_DOWN:              //  左右モーターの後転                  motor_l.control(MOTOR_POWER,DRV8830::MOTOR_REVERSE);                  motor_r.control(MOTOR_POWER,DRV8830::MOTOR_REVERSE);                  break;      《中略》          } }
  • 25. モータードライバ制御処理 int  DRV8830::control(int  power,int  type) {    unsigned  char  buff[2];    //  制御対象デバイスのスレーブアドレスをセット    ioctl(i2c_fd,I2C_SLAVE,i2c_slaveaddr);    //  コマンドを組み立ててデータ送出    buff[0]  =  0x00;    buff[1]  =  (unsigned  char)(power  <<  2)  |                        (unsigned  char)(type  &  0x03);        write(i2c_fd,buff,2);
  • 26. https://github.com/yishii/RaspberryPi_Radicon/ ソースコード(github) RPiでのビルド方法 $ g++ drv8840.cpp radicon.cpp -o radicon 実行方法 $ sudo ./radicon < /dev/input/event0 (event0がキーボードの場合) 実演
  • 27. 太陽電池の充電状態をネットにアップする装置 I2C USB3Gドングル その他製作例1
  • 28. その他製作例2 現在地の GoogleMapsや StreetViewを表示す る装置 UART 地 図 デ ー タ
  • 29. ハードウェア制御用の ライブラリの使用 1 •bcm2835ライブラリを使用する •http://www.airspayce.com/mikem/ bcm2835/ •Cや各種スクリプト言語(Ruby等)から 呼び出し、容易に制御構築可能。
  • 30. •Arduino APIスタイルに慣れている方 には、WiringPiもオススメ • https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/ pinMode (0, OUTPUT); for (;;) { digitalWrite (0, 1); delay (500); digitalWrite (0, 0); delay (500); } ハードウェア制御用の ライブラリの使用 2
  • 31. ありがとうございました ブログ : 日曜エレクトロニクス(日エレ) http://projectc3.seesaa.net/

×