Arduino UNOでPythonを使ってシリアル通信をすると再起動してしまう件
ArduinoUNOとPyserialを利用してシリアル通信を試みていた。
が、どうしてもシリアルを送ると再起動してしまう。
Leonardoだと問題なくできるのでプログラムの問題でもないし、本体が壊れているわけでもなかった。
調べるとpyserialはCOMポートを開く際にDTRがLowになり、
LowになるとArduino UNOが再起動してしまうことがわかった。
なので、シリアルオープンのコマンドを
com = serial.Serial("port",9600)
で一行にせず
com = serial.Serial()
com.port = port
com.baudrate = baud
com.timeout = 1
com.setDTR(False)
com.open()
とすることでDTR信号が送られず、UNOが再起動されずに正常に通信できるようになった。