Arduino 和 Processing 之间进行串口通讯。
-
测试的背景:
1,Arduino 每隔800ms ,就将红外传感器检测的结果,以串口的形式发送出去。
Serial.println("hasBody");
2, Processing 端接收数据,并不是一直都在接收。Processing 在接收到有效数据之后,就开始播放视频,在开始播放视频的瞬间,就将接收串口数据的功能模块进行关闭。
测试发现的问题: 在Processing 开始新一轮的数据接收程序之后,我们会发现一次接收了 很多次的 hasbody , hasbody 的数量正好和视频的长度是对应的。
-
解决的方法
1,Processing 端在视频播放完毕后,在开启新的串口指令之前,需要将myport的串口进行清空。 这样 会保证串口缓存区接收到的永远是最新的数据。缺点就是:可能会耽误一个检测的时间周期,例如本例中,就是800ms;
2,Processing 端 调用指令myPort.clear(); // 此行代码作用是:清空串口缓存区。