#環境
- arduino UNO
- raspberrypi 3B
- SSH、または直接コマンドラインが触れるところまでセットアップ済みの前提です。
- python3
#準備
sudo raspi-config
を実行します。
Inter facing options > Serial
に行き、シリアル通信を有効にします。
<Finish>
で終了して
sudo reboot
で再起動してください。
その後、
sudo apt install python-pip
pip3 install serial
を実行してください。
#プログラム(ラズパイ側)
基本
import serial
import time
def main():
ser = serial.Serial('/dev/ttyACM0', 9600)
time.sleep(2)
t0 = time.time()
while True:
ser.write("114514")
str = ser.readline()
val = (str.decode())
print(val)
if __name__ == '__main__':
main()
これでArduinoからシリアルモニターに出力される内容が受け取れます。また、arduino側に114514と送信しています。
#arduino側
##serialのオプション
Serial.read()
送られてきたデーターを1文字分読み込みます。
Serial.readline()
送られてきたデーターを1行分受け取ります。
Serial.write()
ASCII文字としてではなくデーターを送ります。
Serial.print()
データを1文字送ります。
Serial.println()
データーを1行分送信します。(改行コード\nまで)
###例
(略)
if(Serial.available() > 0){
rea = Serial.read();
else if(rea == 'a'){
//処理
}
else if(rea == 'b')
{
//処理
}
}
(略)
この場合はaが送られてきたか、bが送られてきたか確認しています。
#あとがき
調べた限りや知ってる限りで書きましたが、多分まだまだ色々あると思います。
#お疲れ様でした!