我的问题很笼统,所以我没有在这里包含任何代码。我正在开发一个项目,通过 PC 上的 Python/tkinter 接口使用 arduino 板控制硬件并读取传感器。这个想法是让 PC 能够向 arduino 发送串行命令来操作硬件,并同时将传感器数据从 arduino 传输回 python 脚本。
我有一个工作代码,允许硬件通信以及每秒从传感器向 PC 发回更新。它工作正常,直到......出站命令与入站传感器位重叠,在这种情况下它会崩溃并冻结。
关于如何规范双向通信以消除传入和传出串行通信冲突的一般思想流派是什么?
我对 python 很陌生,所以我喜欢最基本或简单(易于人类理解)的版本。
谢谢!
由于总体上来回的数据量非常低,我可能已经摆脱了这个“黑客”工作。为了避免扰乱 python 串行通信的复杂性,我将 Arduino IDE 编辑为仅在端口 == 0(空闲)时传输数据,并在发送数据包后放入 100 毫秒缓冲区以帮助稳定通信。
> int sensorValue = analogRead(A5);
> if (Serial.available() == 0) {
> Serial.println(sensorValue);
> delay(50);
> }