Re: [問題] Arduino和Processing結合

看板ASM (組合語言)作者 ( )時間11年前 (2014/01/16 13:12), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《p790807 (卡丘)》之銘言: : 請教對這兩個軟體熟悉的大大~ : 想請問連接arduino和processing的問題 : 我想要用兩個感測器去控制processing的圖案 : 其中一個是超音波感測器,另一個是光敏電阻 : 而processing也很簡單,只是希望當越接近超音波感測器時,方形會越靠左邊 : 而當光線值小於某值之後,processing會出現一個圓 : 但現在問題來了 : 上網找了連接的程式後 : 我只知道要怎麼接一個感測器 : 不知道若要用到兩個感測器時要怎麼寫 : 以去區分兩種不同的功能@@ : ------------------------------------------------- : Arduino端如下: : const int ping Pin =11; : int duration, cm; : int photocellPin=2; : int photocellVal=0; : void setup(){ : Serial.begin(9600); : } : void loop(){ : photocellVal=analogRead(photocellPin); //光敏電阻 : Serial.write(photocellVal); //這裡要傳一個光敏值 : pinMode(pingPin,OUTPUT); //超音波感測器 : digitalWrite(pingPin,LOW); : delayMicroseconds(2); : digitalWrite(pingPin,HIGH); : delayMicroseconds(5); : digitalWrite(pingPin,LOW); : pinMode(pingPin,INPUT); : duration=pulseIn(pingPin,HIGH); : cm=durartion/74; : Serial.write(cm); //這裡也要傳一個超音波值 : delay(100); : } : -------------------------------------------- : Processing端如下 : import processing.serial.*; : Serial.serial; : int cm; : void setup(){ : size(165,200); : background(0); : serial=new Serial(this,"COM6", 9600); : } : void draw(){ : if(serial.available()>0){ : cm=serial.read(); //這裡就出現問題了,好像只能塞得下一種感測器值? 我不確定你的問題跟我想的是不是一樣? 不過也提供我的解法給你參考 void setup() { Serial.begin(9600); pinMode(13,OUTPUT); } void loop() { if (Serial.available()>0) { delay(100); String s=""; int max = Serial.available(); for (int i=0;i<max;i++) { s += String((char)Serial.read()); } Serial.println(s); } } 之前我有發現,如果透過Serial輸入12然後送出 會馬上接收到1這個值,處理完再接著接收2 就會變成這樣: 1 2 但預期中因該是這樣: 12 後來就想到這個方法來解決,但有個問題存在 如果你需要高速傳送Serial 可能會有延遲的問題 : background(255); : fill(255,0,0); : rect(cm,80,50,50); : if(photocellVal<20){ : fill(0,0,255); : ellipse(80,6*cm,60,60); : } : } : } : 這樣出來我的Processing的方塊和圓會同時被超音波和光敏值影響@@ : 請問要怎麼寫才可以區分@@ : 不確定這裡可否問這一類的問題@@ : 但我現在真的有點一頭霧水@@ : 再請大大幫忙了!感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.146.145

01/28 22:44, , 1F
了解!! 應該是這個問題!謝謝大大
01/28 22:44, 1F
文章代碼(AID): #1Irsezcn (ASM)
討論串 (同標題文章)
文章代碼(AID): #1Irsezcn (ASM)