我目前正在Arduino項目書的項目14中。
我正在嘗試使用Arduino控製筆記本電腦上的處理草圖。這可以通過使用電位器控製圖像的背景來實現。
Arduino代碼:
void setup(){} Serial.begin(9600);} void循環(){Serial.write(analogRead(A0)/ 4);}
處理:
//導入串行庫導入processing.serial。*; //設置串行objectSerial myPort; //為imagePImage徽標創建一個對象; //變量以存儲背景colorint bgcolor = 0; void setup(){``colorMode(HSB,255);徽標= loadImage(“ http://arduino.cc/logo.png”);大小(logo.width,logo.height); println(“可用的串行端口”); println(Serial.list()); myPort = new Serial(this,Serial.list()[0],9600);} //等效於arduino的循環函數void draw(){if(myPort.available()> 0){bgcolor = myPort.read(); println(bgcolor); } background(bgcolor,255,255); image(logo,0,0);}
現在,雖然該代碼有效,但隨著我轉動電位計,背景顏色發生了變化,但很大轉動電位器和看到背景改變顏色之間的時間差,以及Arduino /電位器的值在處理的串行監視器上改變。
我嘗試過的事情:
- 更改串行通訊速度
我注意到,當我降低串行通訊速度時,例如大約100左右,從打開電位器到在筆記本電腦上看到電位器變化之間的延遲減少到大約1秒。但是,當我進一步降低串行通信速度時,例如值為1時,延遲再次增加。
在另一方面,在9600的標準速度下,延遲非常大,大約5秒++,然後電位計的變化才會出現在筆記本電腦/處理。
為什麼降低通訊速度(達到特定點)會減少時間延遲,而增加通訊時間會增加時間延遲?而且,無論如何,我可以使它接近瞬時嗎?