Your SlideShare is downloading. ×
  • Like
20130713 オープンハードセミナー raspberry_piに何かつないで遊ぼう
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

20130713 オープンハードセミナー raspberry_piに何かつないで遊ぼう

  • 1,319 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,319
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
8
Comments
0
Likes
6

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年7月13日オープンハードセミナー(仮称)2013 3Q Yasuhiro ISHII イチから始めるRaspberry Pi 13年7月13日土曜日
  • 2. 自己紹介 •石井 康寛 •組み込み業界でソフト開発してます •出身 : 三重県度会郡度会町 •趣味 : 電子工作、旅行、などなど •Twitter : yishii •Facebook : •http://facebook.com/ishiiyasu •ブログ : 日曜エレクトロニクス(日エレ) •http://projectc3.seesaa.net/ 13年7月13日土曜日
  • 3. Raspberry Pi(RPi)とは? ARM11 700MHz(Max1GHz) メモリ 512Mバイト HDMI、オーディオ、 ビデオ出力(コンポジット)、 LAN、USB(2ports)、 SDカードスロットを搭載したマイコンボード 2012年2月29日発売 US$35(日本のショップで4∼5000円?)と安価 英国生まれの安価な組み込みLinuxマイコンボード 13年7月13日土曜日
  • 4. Raspberry PiのOS ・OSが用意されています。主に、Linuxベースや BSD等。 ・Linuxは複数ディストリビューション用意されてい る。(Debianベース、ArchLinux、Fedoraベース等) ・オススメ(かつ一般的)は、Raspbian "wheezy" http://www.raspberrypi.org/downloads 13年7月13日土曜日
  • 5. Raspbian "wheezy" • 公式オススメ • Debianのカスタマイズ版 • デスクトップ環境はLXDE(マイコンボードというより、殆どパソコン 感覚) • 開発ツールも搭載(クロス環境はもちろん、RPi自身でも ビルド可能(=セルフビルド)) • (当然)パッケージマネージャapt-get等入っているので、簡単にモジ ュール追加出来る。ex) $ sudo apt-get install ruby • POSIX環境用のオープンソースのコードを利用したプロジェクトの作 13年7月13日土曜日
  • 6. RPi用ソフト開発環境の例 コード作成 ビルド ダウンロード 実行 HDMIでテレビと接続 USBでキーボードと接続 コード作成 ビルド 実行 クロス開発 セルフ開発 13年7月13日土曜日
  • 7. RPiことはじめ 13年7月13日土曜日
  • 8. 準備 •テレビやPCモニター •コンポジットビデオ入力または HDMI、DVI-D(I)を搭載したもの •USBキーボード・マウス •2GB以上のSDカード •USB電源 13年7月13日土曜日
  • 9. 起動用SDカードの作成 Raspbian "wheezy"を使って起動する 1. 公式サイトよりイメージファイルをダウンロード http://www.raspberrypi.org/downloads zipを展開すると、イメージファイルが出てくる 13年7月13日土曜日
  • 10. 2. イメージファイルをSDカード(>2GB)に書き込む Linux・MacOSX Windows $ sudo dd if=XXXX.img of=デバイス名 bs=1m 起動用SDカードの作成 Win32 Disk Imagerを使う 13年7月13日土曜日
  • 11. 簡単な方法-NOOBS 1.SDカードをFATでフォーマット 2.NOOBSのzipファイルを展開して4GB以上の SDカードにコピー 3.RPiに挿入し電源ON 13年7月13日土曜日
  • 12. 簡単な方法-NOOBS 使いたいOSをクリック 13年7月13日土曜日
  • 13. 簡単な方法-NOOBS 13年7月13日土曜日
  • 14. 簡単な方法-NOOBS 13年7月13日土曜日
  • 15. ボードの立ち上げ方 2. 起動後、初期設定する HDMIまたはCVBSで テレビと接続 Raspberry Piの電源が入っていないことを 確認し、SDカードを挿入する。 次にMicroUSB端子(電源給電用端子) に電源を接続する 13年7月13日土曜日
  • 16. ログイン Debian GNU/Linux 7.0 raspberrypi tty1 raspberrypi login : と出たら、 ユーザー名 : pi パスワード : raspberry でログイン出来ます 13年7月13日土曜日
  • 17. RPiと外部機器を繋ぐ •USBポートがついていて、手軽に接続 可能 •ピンヘッダに各種組み込み機器で使わ れる一般的なインターフェース搭載 お手軽な方法は、以下の2つがあります 13年7月13日土曜日
  • 18. USBでの機器接続 ・USB-WiFiアダプタでネット接続 ・USB-BTアダプタでBT機器接続 ・USB WebCamでライブ配信 ・USB 3Gドングルで3G通信 ・USB センサー機器でセンシング 等、既製or自作USB機器との接続 はサクッと出来ちゃいます。 13年7月13日土曜日
  • 19. ピンヘッダでの接続 ピンヘッダとは? 13年7月13日土曜日
  • 20. RPiのピンヘッダ R2.0のみ 13年7月13日土曜日
  • 21. ピンヘッダ詳細(R2.0) I2C-1 I2C-0 SPI UART GPIO_GENxはGPIO。 赤枠部もGPIOとして使 用可。 PWM I2S 13年7月13日土曜日
  • 22. GPIO •GPIO = General Purpose Input/ Output(汎用入出力) •LEDの点灯をしたり、スイッチの入力 を読み取ったり出来る 13年7月13日土曜日
  • 23. UART• Universal Asynchronous Receiver Transmitter • 通常1対1で使用 • RS-232C通信出来る。以下は使用例 • USBシリアル変換チップ経由でPCからコンソール操作 • Arduinoと接続して連携 • UART接続タイプのGPSモジュールを接続 • シリアルサーボを接続 13年7月13日土曜日
  • 24. SPI • Serial Peripheral Interface • MISO、MOSI、SCLK、SS(その他の名称の場合もあり)の4本で接続 • 1対多で通信可能(通信相手数分、SS信号が必要) RPi 有機EL EEPROM NFCデバイス 接続例 13年7月13日土曜日
  • 25. I2C • Inter-Integrated Circuit • 2本の信号線で複数の機器と接続可能 • 1対多接続可能(I2Cバス上で、個々のデバイス毎がユニークな番号(ス レーブアドレス)を持つ。 RPiモータードライバ モジュール 電流・電圧測定 モジュール LCD RTC EEPROM 13年7月13日土曜日
  • 26. RPiでラジコンを作ってみる I2Cモータードライバ 2 13年7月13日土曜日
  • 27. モータードライバ DRV8830(TI) I2C制御 電源 2.75∼6.8V 連続1A出力 秋月 170円ストロベリーリナックス 567円 13年7月13日土曜日
  • 28. 接続する RPi モータ ドライバ モータ ドライバ I2C1-SCL I2C1-SDA 13年7月13日土曜日
  • 29. ソフト Linux input subsystem (/dev/input/event0等) ラジコン メインプログラム キーイベント I2Cデバドラ (/dev/i2c-1等) モータードライバ 制御コマンド 13年7月13日土曜日
  • 30. I2Cデバドラオープン    int  fd;    printf("radicon  startn");    fd  =  open("/dev/i2c-­‐1",O_RDWR);  //  RPi  rev1.0は/dev/i2c-­‐0    if(fd  <  0){        printf("i2c  open  errorn");        return(-­‐1);    } 13年7月13日土曜日
  • 31. キーイベント取得 #include  <linux/input.h> while(1){        read(0,&event,sizeof(event));        if(event.type  ==  EV_KEY  &&  event.value  !=  0){            switch(event.code){            case  KEY_UP:              printf("UP  is  pressedn");              motor_l.control(MOTOR_POWER,DRV8830::MOTOR_FORWARD);              motor_r.control(MOTOR_POWER,DRV8830::MOTOR_FORWARD);                break;            case  KEY_DOWN:                  printf("DOWN  is  pressedn");                  motor_l.control(MOTOR_POWER,DRV8830::MOTOR_REVERSE);                  motor_r.control(MOTOR_POWER,DRV8830::MOTOR_REVERSE);                  break; 13年7月13日土曜日
  • 32. モータードライバ制御 int  DRV8830::control(int  power,int  type) {    unsigned  char  buff[2];    int  result;    if(type  !=  MOTOR_STANDBY  &&          type  !=  MOTOR_REVERSE  &&          type  !=  MOTOR_FORWARD  &&          type  !=  MOTOR_BRAKE)  {        printf("Errn");        return  0;    }    //  set  slave  address  to  i2c  driver    ioctl(i2c_fd,I2C_SLAVE,i2c_slaveaddr);    //  create  data  to  send  to  DRV8830    buff[0]  =  0x00;    buff[1]  =  (unsigned  char)(power  <<  2)  |                        (unsigned  char)(type  &  0x03); 13年7月13日土曜日
  • 33. 実演 https://github.com/yishii/RaspberryPi_Radicon/ ソースコード(github) RPiでのビルド方法 $ g++ drv8840.cpp radicon.cpp -o radicon 13年7月13日土曜日
  • 34. 太陽電池の充電状態をネットにアップする装置 I2C USB3Gドングル その他製作例1 13年7月13日土曜日
  • 35. その他製作例2 現在地の GoogleMapsや StreetViewを表示す る装置 UART 地 図 デ ー タ 13年7月13日土曜日
  • 36. ソフトウェア作成 便利なライブラリの使用 •bcm2835ライブラリを使用する •http://www.airspayce.com/mikem/ bcm2835/ •Cや各種スクリプト言語(Ruby等)から 呼び出しが容易 13年7月13日土曜日
  • 37. •Arduino APIスタイルで制御する場 合、WiringPiを使用する • https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/ pinMode (0, OUTPUT) ; // aka BCM_GPIO pin 17 for (;;) { digitalWrite (0, 1) ; // On delay (500) ; // mS digitalWrite (0, 0) ; // Off delay (500) ; } ソフトウェア作成 便利なライブラリの使用 13年7月13日土曜日
  • 38. •詳細は以下のページに説明あります。 • http://elinux.org/RPi_Low-level_peripherals ソフトウェア作成 便利なライブラリの使用 13年7月13日土曜日
  • 39. さらにI/Oを使いたい RPiのI/O数・種類は多いとは言えません。 足りない場合、ポートエキスパンダを使う方法が あります。ADしたければI2CのADCなど。 お手軽にやるなら、RPiにArdiunoを繋いで 外部機器接続はArduino側にやらせる手が 簡単です。 13年7月13日土曜日
  • 40. I/OにArduinoを使うFirmataはArduino IDEに標準で組み込まれているプログラム。 Arduinoに書き込み、RPiとUSBやシリアル接続するだけで、 Arduinoの端子がRPiの言いなりなって動いてくれる。 C/C++での操作 https://github.com/anthonygclark/libarduino/ Rubyでの操作 (日曜エレクトロニクス(日エレ)) http://projectc3.seesaa.net/article/357559302.html http://www.youtube.com/watch? feature=player_embedded&v=kCBxGZ9DPo4 Firmataを 書き込んでおく Arduino シールド 13年7月13日土曜日
  • 41. ありがとうございました 13年7月13日土曜日