我在 Arduino 上运行一些代码,我有一个带有滑块的网站,它使用 cgi 脚本将值传递给 Python。然后 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% 的速度运行,然后在网站上更改一个值,它运行这个执行serial.Serial('dev/ttyACM0', 9600)
命令的脚本。这会打开重置 arduino 的端口,在传递新命令之前停止电机。
有什么方法可以 ser.write("%s\n" % (form["value"]))
在不新打开端口的情况下传递到 arduino?比如在python会话之间保持端口打开?
如果没有,有没有其他方法可以解决这个问题?