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

More Related Content

PDF
I2CでRaspberry Piから 複数の周辺機器を制御する
Hirokazu Nishio
 
PPTX
Raspberry pi 2用のi2cアダプターの
Takehiko Tomiyama
 
PDF
ハードウェアを用いてPythonを学ぶ
Yuta Kitagami
 
PDF
20130713 オープンハードセミナー raspberry_piに何かつないで遊ぼう
Yasuhiro Ishii
 
PDF
OSC Tokyo 2013 Spring JRPUG
Hideki Aoshima
 
PPTX
イチからはじめるUSB Host API
ksk sue
 
PDF
seccamp2012 チューター発表
Hirotaka Kawata
 
PPTX
Verilator勉強会 2021/05/29
ryuz88
 
I2CでRaspberry Piから 複数の周辺機器を制御する
Hirokazu Nishio
 
Raspberry pi 2用のi2cアダプターの
Takehiko Tomiyama
 
ハードウェアを用いてPythonを学ぶ
Yuta Kitagami
 
20130713 オープンハードセミナー raspberry_piに何かつないで遊ぼう
Yasuhiro Ishii
 
OSC Tokyo 2013 Spring JRPUG
Hideki Aoshima
 
イチからはじめるUSB Host API
ksk sue
 
seccamp2012 チューター発表
Hirotaka Kawata
 
Verilator勉強会 2021/05/29
ryuz88
 

What's hot (20)

PDF
Esp32でiot
Yusuke Kon
 
PDF
Bluetooth Low Energy入門講座 -part2
edy555
 
PDF
プログラマの為のESP-WROOM-02開発ボード組み立て
Naoto Miyachi
 
PPTX
ゼロから始める自作 CPU 入門
Hirotaka Kawata
 
PDF
Arduinoを使ったgameboyカードリッジのdump
__106__
 
PDF
Rust で RTOS を考える
ryuz88
 
PPTX
ESP8266を便利にするモジュールを つくってみた!
wamisnet
 
PDF
スタート低レイヤー #0
Kiwamu Okabe
 
PDF
自宅サーバラックの勧め 簡易版
h-otter
 
PDF
ESP8266EXで位置推定
nishio
 
PPTX
ESP8266モジュールを遊び倒す!
MasatoOshikiri
 
PPTX
禁断のESP32対決!NefryBT vs obniz
Yuka Tokuyama
 
PDF
Pdp11 on-fpga
magoroku Yamamoto
 
PDF
Pdp11onfpga
xylnao
 
PDF
Movidius Neral Compute Stickを使ってみた
NISHIMOTO Keisuke
 
PDF
IoTLT 大阪 Vol.6
三七男 山本
 
PDF
Lets enjoy-terminal-life - たのしいたーみなる
totzyuta
 
PDF
PF部2011年12月勉強会.androidsola
android sola
 
PDF
Listen&notifyとbwpの間違った使い方
Toshi Harada
 
PDF
PerlのOOPにおいて、コンストラクタ 内でメンバ関数を呼ぶ方法は?(Perl Beginners #15)
CL0CL
 
Esp32でiot
Yusuke Kon
 
Bluetooth Low Energy入門講座 -part2
edy555
 
プログラマの為のESP-WROOM-02開発ボード組み立て
Naoto Miyachi
 
ゼロから始める自作 CPU 入門
Hirotaka Kawata
 
Arduinoを使ったgameboyカードリッジのdump
__106__
 
Rust で RTOS を考える
ryuz88
 
ESP8266を便利にするモジュールを つくってみた!
wamisnet
 
スタート低レイヤー #0
Kiwamu Okabe
 
自宅サーバラックの勧め 簡易版
h-otter
 
ESP8266EXで位置推定
nishio
 
ESP8266モジュールを遊び倒す!
MasatoOshikiri
 
禁断のESP32対決!NefryBT vs obniz
Yuka Tokuyama
 
Pdp11 on-fpga
magoroku Yamamoto
 
Pdp11onfpga
xylnao
 
Movidius Neral Compute Stickを使ってみた
NISHIMOTO Keisuke
 
IoTLT 大阪 Vol.6
三七男 山本
 
Lets enjoy-terminal-life - たのしいたーみなる
totzyuta
 
PF部2011年12月勉強会.androidsola
android sola
 
Listen&notifyとbwpの間違った使い方
Toshi Harada
 
PerlのOOPにおいて、コンストラクタ 内でメンバ関数を呼ぶ方法は?(Perl Beginners #15)
CL0CL
 
Ad

Similar to 20130804 OSC京都 Raspberry Piに何かつないで遊ぼう (20)

KEY
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
Yasuhiro Ishii
 
PDF
Androidでロボットを動かそう・すまべん関西201003
cat sin
 
PPTX
自作LSIコミュニティの可能性
Junichi Akita
 
PDF
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Junichi Kakisako
 
PDF
WWCT ラズパイ Bluemix 講習資料
Masaya Fujita
 
PDF
ハードウェア脳とソフトウェア脳
Shinichiro Niiyama
 
PDF
Zend Frameworkで始める携帯サイト
清水樹
 
PDF
機械学習 (AI/ML) 勉強会 #2 IoT編
Fujio Kojima
 
PPTX
平成26年度熊本高専Arduino講座 第2週 XBeeを用いた遠隔放射線量計測
Katsuhiro Morishita
 
PDF
Swift - Result&lt;t>型で結果を返すのは邪道か,王道か
Yuichi Yoshida
 
PPTX
Makerの「道具」としてのLSI ~「LED点滅用のLSIをつくって   Lチカをやってみた」のココロ~(MakerFaireTokyo2014)
Junichi Akita
 
PDF
ネットワークコンフィグ分析ツール Batfish との付き合い方
akira6592
 
PPTX
Androidとfpgaを高速fifo通信させちゃう
ksk sue
 
PDF
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
充博 大崎
 
PDF
クラウドでビックデータのスモールスタート
Yukihito Kataoka
 
KEY
プロペラブForth発表osc愛媛
titoi2
 
PDF
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
三七男 山本
 
PPTX
Code4NaraHandson2_151118
康司 石塚
 
KEY
Androidロボットサミットin名古屋
Kenichi Yoshida
 
PDF
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
yut148atgmaildotcom
 
DE0でラジコンカー作ってみた 関西de0 fpga勉強会20120519
Yasuhiro Ishii
 
Androidでロボットを動かそう・すまべん関西201003
cat sin
 
自作LSIコミュニティの可能性
Junichi Akita
 
Python, RaspberryPi, Arduinoで作る消費電力モニタリングシステム
Junichi Kakisako
 
WWCT ラズパイ Bluemix 講習資料
Masaya Fujita
 
ハードウェア脳とソフトウェア脳
Shinichiro Niiyama
 
Zend Frameworkで始める携帯サイト
清水樹
 
機械学習 (AI/ML) 勉強会 #2 IoT編
Fujio Kojima
 
平成26年度熊本高専Arduino講座 第2週 XBeeを用いた遠隔放射線量計測
Katsuhiro Morishita
 
Swift - Result&lt;t>型で結果を返すのは邪道か,王道か
Yuichi Yoshida
 
Makerの「道具」としてのLSI ~「LED点滅用のLSIをつくって   Lチカをやってみた」のココロ~(MakerFaireTokyo2014)
Junichi Akita
 
ネットワークコンフィグ分析ツール Batfish との付き合い方
akira6592
 
Androidとfpgaを高速fifo通信させちゃう
ksk sue
 
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
充博 大崎
 
クラウドでビックデータのスモールスタート
Yukihito Kataoka
 
プロペラブForth発表osc愛媛
titoi2
 
Make: Ogaki Meeting 2012 Androidロボットサミットin大垣
三七男 山本
 
Code4NaraHandson2_151118
康司 石塚
 
Androidロボットサミットin名古屋
Kenichi Yoshida
 
配布用Dotcloudによるすぐ始めるtwitterwebアプリ開発#twtr hack
yut148atgmaildotcom
 
Ad

More from Yasuhiro Ishii (7)

PPTX
CoderDojo師岡20221212発表資料.pptx
Yasuhiro Ishii
 
PDF
ものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼう
Yasuhiro Ishii
 
KEY
Arduino MemoryMapLib w/Android Accessory
Yasuhiro Ishii
 
KEY
Arduino MemoryMapLib
Yasuhiro Ishii
 
PDF
Android端末と組み込み機器が連携する Android Make Days
Yasuhiro Ishii
 
PDF
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Yasuhiro Ishii
 
PDF
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Yasuhiro Ishii
 
CoderDojo師岡20221212発表資料.pptx
Yasuhiro Ishii
 
ものアプリハッカソン勝手に支援イベント Raspberry Piのピンヘッダで遊ぼう
Yasuhiro Ishii
 
Arduino MemoryMapLib w/Android Accessory
Yasuhiro Ishii
 
Arduino MemoryMapLib
Yasuhiro Ishii
 
Android端末と組み込み機器が連携する Android Make Days
Yasuhiro Ishii
 
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Yasuhiro Ishii
 
Android-controlled robot,Original PCB to work as a bridge between Android-pho...
Yasuhiro Ishii
 

Recently uploaded (11)

PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 

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