【めも】Raspberry PiとArduinoでシリアル通信【Python】
あるプロジェクトに使う用にRaspberry PiとArduinoの通信をしなきゃいけなくて,動作確認程度ながら出来たのでメモ.
テストなので,Arduino側からはひたすら振動センサの値を送るプログラムを書き込んでおき,Raspberry Pi側ではそれを表示し続けるプログラムを実行する.
まずPythonのシリアルポートライブラリのインストール
sudo apt-get install python-serial
【Arduino側】
/* ピン配置がUNOとMegaで違うのに注意 UNO→A0から14 Mega→A0から54 */ #define __AVR_ATmega1280__ #define __AVR_ATmega2560__ enum{ VIB_PORT1, VIB_PORT2 }; int vib_1, vib_2;//振動センサの値 void setup(){ Serial.begin(9600); //デバッグランプ(引き込み) pinMode(A3, OUTPUT); pinMode(A4, OUTPUT); pinMode(A5, OUTPUT); } void loop(){ vib_1 = analogRead(VIB_PORT1); vib_2 = analogRead(VIB_PORT2); Serial.print(vib_1, DEC); Serial.print('\t'); Serial.print(vib_2, DEC); Serial.print('\n'); //デバッグランプ||< digitalWrite(A3, HIGH); digitalWrite(A4, LOW); digitalWrite(A5, HIGH); }
【Raspberry Pi側(Giga Hacks さまより引用)】
import serial ser=serial.Serial("/dev/ttyACM0",9600) while True: val=ser.readline() print(val)
【実行結果】
二軸の振動センサなので,2つの情報を並べている.