मैं वर्तमान में Arduino प्रोजेक्ट पुस्तक के प्रोजेक्ट # 14 पर हूँ।
मैं अपने Arduino का उपयोग करके अपने लैपटॉप पर एक प्रोसेसिंग स्केच को नियंत्रित करने की कोशिश कर रहा हूं। यह एक छवि की पृष्ठभूमि को नियंत्रित करने के लिए एक पोटेंशियोमीटर का उपयोग करके पूरा किया जाता है।
Arduino कोड:
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.write(analogRead(A0)/4);
}
प्रोसेस हो रहा है:
//imports serial library
import processing.serial.*;
//setups the serial object
Serial myPort;
//creates an object for the image
PImage logo;
//variable to store background color
int bgcolor = 0;
void setup(){
colorMode(HSB,255);
logo = loadImage("http://arduino.cc/logo.png");
size(logo.width,logo.height);
println("Available serial ports");
println(Serial.list());
myPort = new Serial(this,Serial.list()[0],9600);
}
//equivalent of arduino's loop function
void draw(){
if(myPort.available() > 0)
{
bgcolor = myPort.read();
println(bgcolor);
}
background(bgcolor,255,255);
image(logo,0,0);
}
अब, जबकि कोड काम करता है, और जैसे ही मैं पोटेंशियोमीटर को बदलता है, पृष्ठभूमि का रंग बदल जाता है, पोटेंशियोमीटर को मोड़ने और पृष्ठभूमि के रंग को देखने के बीच एक बड़ा अंतराल होता है, और प्रसंस्करण के सीरियल मॉनीटर पर अरुडिनो / पोटेंशियोमीटर से मान बदलते हैं।
मैंने क्या कोशिश की है:
- सीरियल संचार की गति को बदलना
मैंने देखा है कि जब मैं सीरियल संचार की गति को कम कर देता हूं, जैसे कि 100 के आसपास, पोटेंशियोमीटर को मोड़ने और इसे अपने लैपटॉप पर बदलने के बीच की देरी लगभग 1 सेकंड तक कम हो जाती है। हालांकि, जब मैं सीरियल संचार की गति को और भी कम कर देता हूं, उदाहरण के लिए 1 का मान, देरी फिर से बढ़ जाती है।
फ्लिप की तरफ, 9600 की मानक गति पर, देरी बहुत बड़ी है, लगभग 5sec ++ लैपटॉप / प्रोसेसिंग पर पोटेंटियोमीटर शो में परिवर्तन से पहले।
संचार की गति (एक निश्चित बिंदु तक) घटने से समय अंतराल कम हो जाता है, और इसे बढ़ाने से समय अंतराल बढ़ जाता है? इसके अलावा, वहाँ वैसे भी मैं इसे तात्कालिक के पास कर सकता हूँ?
loop()
। यह बहुत संभव है कि आपका प्रोसेसिंग प्रोग्राम इतनी तेजी से नहीं चल रहा है कि वह उसके साथ बना रहे।loop()
इसे धीमा करने के लिए अपने Arduino कोड में देरी डालने की कोशिश करें ; उदाdelay(50)
।