記事一覧

Raspberry PiとArduinoをI2C経由でつなぐ

Raspberry PiとArduinoをI2C経由でつなぐ



こんにちはRoboTakaoです。ようこそ「極力ローコスト ロボット製作 ブログ」にお越しくださいました。

前回まででpythonを使ってGPIOをコントロールしてみたわけですが、本当はRaspberry PiとArduinoをI2Cでつなぎたいがpythonでつないでるケースが多いので勉強しようと思ったのが狙いでした。

ようやくなんとなくpythonもわかってきたのでそろそろRaspberry PiとArduinoをI2Cでつないでみたいと思います。

RasArI2c00.jpg

ArduinoとArduino間をI2Cでつなぐことは以前やっていました。
以前の記事はこちらを参照してください。

設定
まずは事前の設定です。
Raspberry Piの設定のインターフェースでI2Cを有効にします。

RasArI2c03.png

次のファイルをnanoで開いてみます。
sudo nano /etc/modprobe.d/raspi-blacklist.conf

もし、blacklist i2c-bmc2708という行があったら#を入れてコメントアウトします。
私の環境ではこの行がなかったのでそのままです。

RasArI2c01.png

次にこのファイルをnanoで開いてみます。

sudo nano /etc/modles

i2c-dev という行を最後の行に書き加えます。

これも私の環境ではすでに入っていたので変更不要でした。

RasArI2c02.png

次にi2c-toolsをインストールします。

sudo apt-get install i2c-tools libi2c0dev

RasArI2c05.png

インストールが完了したらリブートします。

RasArI2c04.png

ついでにpythonで使うためにpython-smbusをインストールします。

sudo apt-get install i2c-tools python–sambas

RasArI2c09.png

私の環境だとすでに入っているとメッセージが出ました。

Arduino側
ここでArduino側にとりあえず動作確認のためにAruino IDEに入っているサンプルコードのslaveを入れておきます。

slave_reciever.png

結線図
Raspberry PiのSDAとArduinoのSDAを接続
Raspberry PiのSCLとArduinoのSCLを接続

RasArI2c06.png

動作確認
この状態でRaspberry Pi側でターミナルから以下のコマンドを打ち込みます

sudo i2cdetect –y 1

するとマトリクスのようなものが現れて、もしi2cデバイスが接続されていれば、そのNoが表示されます。

RasArI2c07.png

今回の場合、Arduino側のアドレスは8番だったので上の図のようになります。
接続がうまくできていることが確認できました。

ためにしRaspberry PiからArduinoにデータを要求してみましょう。

sudo i2cget –y 1 0x08

0x68 という情報が帰ってきました。

RasArI2c08.png

実はArduino側はhelloと送っていたのですが、最初のhのユニコードの68だけ受信できたようです。

まあとりあえず接続はできていることがわかります。

今回はここまでにしておきます。次回は実際にRaspberry Pi側からArduinoをI2C経由でコントロールしてみましょう。

それでは今回はこの辺で失礼します!ありがとうございました。

コメント

コメントの投稿

非公開コメント

プロフィール

RoboTakao

Author:RoboTakao
みなさんご訪問ありがとうございます。ロボット作りたいけどお小遣いそんなにないし、簡単でローコストでロボットを作るための私のプロジェクトを紹介します。

ウェブサイトもありますのでそちらもよろしくお願いします。
http://robotakao.jp/