Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Raspberry Piに
何かつないで遊ぼう
2013年7月13日オープンハードセミナー(仮称)2013 3Q
Yasuhiro ISHII
イチから始めるRaspberry Pi
13年7月13日土曜日
自己紹介
•石井 康寛
•組み込み業界でソフト開発してます
•出身 : 三重県度会郡度会町
•趣味 : 電子工作、旅行、などなど
•Twitter : yishii
•Facebook :
•http://facebook.com/ishiiy...
Raspberry Pi(RPi)とは?
ARM11 700MHz(Max1GHz)
メモリ 512Mバイト
HDMI、オーディオ、
ビデオ出力(コンポジット)、
LAN、USB(2ports)、
SDカードスロットを搭載したマイコンボード
2...
Raspberry PiのOS
・OSが用意されています。主に、Linuxベースや
BSD等。
・Linuxは複数ディストリビューション用意されてい
る。(Debianベース、ArchLinux、Fedoraベース等)
・オススメ(かつ一般的)...
Raspbian "wheezy"
• 公式オススメ
• Debianのカスタマイズ版
• デスクトップ環境はLXDE(マイコンボードというより、殆どパソコン
感覚)
• 開発ツールも搭載(クロス環境はもちろん、RPi自身でも
ビルド可能(=セ...
RPi用ソフト開発環境の例
コード作成
ビルド
ダウンロード
実行
HDMIでテレビと接続
USBでキーボードと接続
コード作成
ビルド
実行
クロス開発 セルフ開発
13年7月13日土曜日
RPiことはじめ
13年7月13日土曜日
準備
•テレビやPCモニター
•コンポジットビデオ入力または
HDMI、DVI-D(I)を搭載したもの
•USBキーボード・マウス
•2GB以上のSDカード
•USB電源
13年7月13日土曜日
起動用SDカードの作成
Raspbian "wheezy"を使って起動する
1. 公式サイトよりイメージファイルをダウンロード
http://www.raspberrypi.org/downloads
zipを展開すると、イメージファイルが出て...
2. イメージファイルをSDカード(>2GB)に書き込む
Linux・MacOSX
Windows
$ sudo dd if=XXXX.img of=デバイス名 bs=1m
起動用SDカードの作成
Win32 Disk Imagerを使う
13...
簡単な方法-NOOBS
1.SDカードをFATでフォーマット
2.NOOBSのzipファイルを展開して4GB以上の
SDカードにコピー
3.RPiに挿入し電源ON
13年7月13日土曜日
簡単な方法-NOOBS
使いたいOSをクリック
13年7月13日土曜日
簡単な方法-NOOBS
13年7月13日土曜日
簡単な方法-NOOBS
13年7月13日土曜日
ボードの立ち上げ方
2. 起動後、初期設定する
HDMIまたはCVBSで
テレビと接続
Raspberry Piの電源が入っていないことを
確認し、SDカードを挿入する。
次にMicroUSB端子(電源給電用端子)
に電源を接続する
13年7月...
ログイン
Debian GNU/Linux 7.0 raspberrypi tty1
raspberrypi login :
と出たら、
ユーザー名 : pi
パスワード : raspberry
でログイン出来ます
13年7月13日土曜日
RPiと外部機器を繋ぐ
•USBポートがついていて、手軽に接続
可能
•ピンヘッダに各種組み込み機器で使わ
れる一般的なインターフェース搭載
お手軽な方法は、以下の2つがあります
13年7月13日土曜日
USBでの機器接続
・USB-WiFiアダプタでネット接続
・USB-BTアダプタでBT機器接続
・USB WebCamでライブ配信
・USB 3Gドングルで3G通信
・USB センサー機器でセンシング
等、既製or自作USB機器との接続
はサ...
ピンヘッダでの接続
ピンヘッダとは?
13年7月13日土曜日
RPiのピンヘッダ
R2.0のみ
13年7月13日土曜日
ピンヘッダ詳細(R2.0)
I2C-1
I2C-0
SPI
UART
GPIO_GENxはGPIO。
赤枠部もGPIOとして使
用可。
PWM
I2S
13年7月13日土曜日
GPIO
•GPIO = General Purpose Input/
Output(汎用入出力)
•LEDの点灯をしたり、スイッチの入力
を読み取ったり出来る
13年7月13日土曜日
UART• Universal Asynchronous Receiver Transmitter
• 通常1対1で使用
• RS-232C通信出来る。以下は使用例
• USBシリアル変換チップ経由でPCからコンソール操作
• Arduinoと...
SPI
• Serial Peripheral Interface
• MISO、MOSI、SCLK、SS(その他の名称の場合もあり)の4本で接続
• 1対多で通信可能(通信相手数分、SS信号が必要)
RPi
有機EL
EEPROM
NFCデバ...
I2C
• Inter-Integrated Circuit
• 2本の信号線で複数の機器と接続可能
• 1対多接続可能(I2Cバス上で、個々のデバイス毎がユニークな番号(ス
レーブアドレス)を持つ。
RPiモータードライバ
モジュール
電流・...
RPiでラジコンを作ってみる
I2Cモータードライバ 2
13年7月13日土曜日
モータードライバ
DRV8830(TI)
I2C制御
電源 2.75∼6.8V
連続1A出力
秋月 170円ストロベリーリナックス
567円
13年7月13日土曜日
接続する
RPi
モータ
ドライバ
モータ
ドライバ
I2C1-SCL
I2C1-SDA
13年7月13日土曜日
ソフト
Linux input
subsystem
(/dev/input/event0等)
ラジコン
メインプログラム
キーイベント
I2Cデバドラ
(/dev/i2c-1等)
モータードライバ
制御コマンド
13年7月13日土曜日
I2Cデバドラオープン
	
  	
  int	
  fd;
	
  	
  printf("radicon	
  startn");
	
  	
  fd	
  =	
  open("/dev/i2c-­‐1",O_RDWR);	
  //	...
キーイベント取得
#include	
  <linux/input.h>
while(1){
	
  	
  	
  	
  read(0,&event,sizeof(event));
	
  	
  	
  	
  if(event.type...
モータードライバ制御
int	
  DRV8830::control(int	
  power,int	
  type)
{
	
  	
  unsigned	
  char	
  buff[2];
	
  	
  int	
  result;...
実演
https://github.com/yishii/RaspberryPi_Radicon/
ソースコード(github)
RPiでのビルド方法
$ g++ drv8840.cpp radicon.cpp -o radicon
13年7月...
太陽電池の充電状態をネットにアップする装置
I2C
USB3Gドングル
その他製作例1
13年7月13日土曜日
その他製作例2
現在地の
GoogleMapsや
StreetViewを表示す
る装置
UART
地
図
デ
ー
タ
13年7月13日土曜日
ソフトウェア作成
便利なライブラリの使用
•bcm2835ライブラリを使用する
•http://www.airspayce.com/mikem/
bcm2835/
•Cや各種スクリプト言語(Ruby等)から
呼び出しが容易
13年7月13日土曜日
•Arduino APIスタイルで制御する場
合、WiringPiを使用する
• https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/
pinMode (...
•詳細は以下のページに説明あります。
• http://elinux.org/RPi_Low-level_peripherals
ソフトウェア作成
便利なライブラリの使用
13年7月13日土曜日
さらにI/Oを使いたい
RPiのI/O数・種類は多いとは言えません。
足りない場合、ポートエキスパンダを使う方法が
あります。ADしたければI2CのADCなど。
お手軽にやるなら、RPiにArdiunoを繋いで
外部機器接続はArduino側に...
I/OにArduinoを使うFirmataはArduino IDEに標準で組み込まれているプログラム。
Arduinoに書き込み、RPiとUSBやシリアル接続するだけで、
Arduinoの端子がRPiの言いなりなって動いてくれる。
C/C++で...
ありがとうございました
13年7月13日土曜日
Upcoming SlideShare
Loading in …5
×

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

2,156 views

Published on

Published in: Technology
  • If you are looking for customer-oriented academic and research paper writing service try ⇒⇒⇒ WRITE-MY-PAPER.net ⇐⇐⇐ liked them A LOTTT Really nice solutions for the last-day papers
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

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

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

×