wireってライブラリ使うだけ。
DRV8830を使ってモーター操作するライブラリはこちらで公開されています。
http://junkroom2cyberrobotics.blogspot.jp/2013/04/i2cdrv8830.html
https://cyberrobotics.codeplex.com/releases/view/105736
2013年8月17日土曜日
Pythonからシリアル
急きょRaspberry PiからArduinoをつかう必要があったのでメモ。
pyserialが必要なのでpipでインストール
cuでやる場合はインストールする必要あり
$ sudo apt-get install cu
USBにArduinoさすだけで、/dev/ttvACM0に認識されるので、
cu -l /dev/ttyACM0 -s 9600
でConnectされ、あとは入力したのがそのままArduinoにわたる
目的はPythonから操作したいので、Pythonのserialをインストール
$ sudo pip install pyserial
あとはここを参考にした
http://tomono.eleho.net/2012/09/15/3140/
pyserialが必要なのでpipでインストール
cuでやる場合はインストールする必要あり
$ sudo apt-get install cu
USBにArduinoさすだけで、/dev/ttvACM0に認識されるので、
cu -l /dev/ttyACM0 -s 9600
でConnectされ、あとは入力したのがそのままArduinoにわたる
目的はPythonから操作したいので、Pythonのserialをインストール
$ sudo pip install pyserial
あとはここを参考にした
http://tomono.eleho.net/2012/09/15/3140/
2013年8月4日日曜日
Raspberry piからI2C
1./etc/modulesに追記
$ sudo vi /etc/modules
:
i2c-dev # 追記
2.ブラックリストから削除
$ sudo vi /etc/modprobe.d/raspi-blacklist.conf
blacklist i2c-bcm2708
|
V
#blacklist i2c-bcm2708
3.上記を有効にするためReboot
$ sudo reboot
4.モジュールの組み込みを確認
$ dmesg |grep i2c
[ 4.830278] bcm2708_i2c bcm2708_i2c.0: BSC0 Controller at 0x20205000 (irq 79) (baudrate 100k)
[ 5.053221] bcm2708_i2c bcm2708_i2c.1: BSC1 Controller at 0x20804000 (irq 79) (baudrate 100k)
[ 11.096122] i2c /dev entries driver
$ sudo apt-get install i2c-tools
6. pythonからi2cバスをたたくためのsmbusをインストール
$ sudo apt-get install python-smbus
7. I2Cデバイスを結線
SCLはSCLに、SDAはSDAに結線
8.接続チャンネルを確認
$ sudo i2cdetect -l
i2c-0 i2c bcm2708_i2c.0 I2C adapter
i2c-1 i2c bcm2708_i2c.1 I2C adapter
これでつながっている数がわかる
$ sudo i2cdetect -l
$ sudo i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- 64 -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
DRV8830を半田ジャンパOpenのままで使うと、アドレス0x64になるのが確認できた
9.動かしてみる
import time
i2c = smbus.SMBus(1) # sudo i2cdetect 1で見つかったので
adr = 0x64
i2c.write_byte_data(adr,0,0x35) # 内部アドレス0で上位6bit 0x0D=1.04V, 下位2bit 0x01正転
print 'set on'
time.sleep(2)
i2c.write_byte_data(adr,0,0x34) # 内部アドレス0で上位6bit 0x0D=1.04V, 下位2bit 0x00スタンバイ
print 'set standby'
USBカメラもつないでる為か、無線LANの接続が不安定
登録:
投稿 (Atom)