私はArduinoでいくつかのコードを実行しています.cgiスクリプトを使用して値をPythonに渡すスライダーのあるWebサイトがあります。次に、python スクリプトは pySerial を使用して、モーターを制御する Arduino に値を送信します。
ウェブサイトのスライダーを使ってモーターの速度を制御できるようにする計画でした。
ただし、ウェブサイトで値を変更するたびにArduinoがリセットされ、モーターが停止するという問題に直面しているようです。これを回避する方法はありますか?私のpythonコードは以下です。
#!/usr/bin/env python
import cgi
form=cgi.FieldStorage()
import json
ser = serial.Serial('dev/ttyACM0', 9600)
#I think there should be a sleep here for 1.5 seconds
ser.write("%s\n" % (form["value"]))
ser.close()
print "Content-type: application/json"
print
print(json.JSONEncoder().encode({"status":"ok"}))
たとえば、モーターが 50% の速度で動作していて、Web サイトで値を変更すると、serial.Serial('dev/ttyACM0', 9600)
コマンドを実行するこのスクリプトが実行されます。これにより、arduino をリセットするポートが開き、新しいコマンドを渡す前にモーターが停止します。
ser.write("%s\n" % (form["value"]))
ポートを新たに開かずにarduinoに渡す方法はありますか? Pythonセッション間でポートを開いたままにするなど?
そうでない場合、この問題を回避する他の方法はありますか?