備忘録

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Rasppbbery Pi でI2C通信(シェルで実動作)

実際の動作確認が遅くなっておりましたが、
パーツが届いたので、I2C通信を試してみます。

1.Raspberry PiでI2Cを使えるようにする
 I2C通信は初期設定で使えないので、使えるようにします
 $ sudo nano /etc/modules

ファイルが開きましたら、次の1行を追記します

 i2c-dev

 次に、
 $ sudo nano /etc/modprobe.d/raspi-blacklist.conf

 blacklist i2c-bcm2708
 と記載されている行をコメントアウトします
 #blacklist i2c-bcm2708

 ここで再起動一度
$ sudo reboot

2.動作確認用のツールをインストール
 $ sudo apt-get install i2c-tools

3.回路を組む
 以下のジャイロセンサ(L3GD20)を利用しました。
 http://strawberry-linux.com/catalog/items?code=12120
 test_i2c.png

 ジャイロセンサの内部レジスタ0x0F(WHO_AM_I)を読み取り、
 レジスタ0x20(CTRL_REG1)に0x0Fを書き込むと、
 レジスタ0x28~0x2Dから、それぞれセンサのx軸、y軸、z軸の値が読み取れます

4.シェルから動作確認
 4-1.Raspberry PiのI2C-BUSを確認
  下の二つのコマンドを打ってみます
  $ sudo i2cdetect 0
  $ sudo i2cdetect 1

  自分の場合だと、"i2cdetect 1"の時に、下のような表示が出ます
   0 1  2  3 4  5 6  7  8 9 a  b  c d  e  f
00:        -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- 6b -- -- -- --
70: -- -- -- -- -- -- -- --
  ここから、0x6BがI2Cのバスであることが確認できます。
  また、コマンドic2detectの後ろの値"0""1"の、
  値の載っている、表示があるほうを今後使っていきます。
  wiringPiのページを読む限り、Raspberry PiのRev.1だと"0"が、Rev.2だと"1"が使われるらしいです

 4-2.I2Cをシェルから
  センサの内部レジスタ0x0Fを読み出します
  i2cget [I2Cバス] [センサの内部アドレス]という感じでコマンドします
  $ sudo i2cget -y 1 0x6b 0x0f
  > 0x4d

  正しく通信ができている時は、0x4Dが戻されるとのことです(データシートから)

  センサの内部レジスタ0x20に0x0Fを書き込みます
  i2cset [I2Cバス] [センサの内部アドレス] [書き込む値]という感じでコマンドします
  $ sudo i2cset -y 1 0x6b 0x20 0x0f

  これで、センサが動き出します。

 4-3.センサ値の取得
  今回の3軸ジャイロセンサでは、
  それぞれ内部レジスタ 0x28~0x2Dに x軸、y軸、z軸の値を取得することができます
  $ sudo i2get -y 0x6b 0x** (**は28~2D)
  でセンサからの値を取得できます。
スポンサーサイト

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2013/05/11(土) 23:23:25|
  2. Raspberry Pi
  3. | トラックバック:0
  4. | コメント:0
<<Rasppbbery Pi でI2C通信(C言語で実動作 by wiringPi) | ホーム | RaspberryPiから、Arudinoを制御 Doragon Remote Control版>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://nanicananica.blog.fc2.com/tb.php/21-ad5e18f8
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。