johndi 发表于 2015-10-15 15:44:44

求助:arduino和processing的问题

求助,在arduino中,获取传感器的值(PS遥控杆)X值和Y值。
再用processing处理数据,接收数据后,出现跳动,无法准确接收。不知道代码是不是没有写对。int y, x;
int valy = 0;
int valx = 0;
void setup() {
y = 0;
x = 1;
Serial.begin(9600);
}

void loop() {

valy = analogRead (y);
valx = analogRead (x);

Serial.write(valy/4);
delay(20);
Serial.write(valx/4);
delay(20);
}


processing 代码如下

import processing.serial.*;

Serial serial;
int sensorValuey;
int sensorValuex;

void setup() {
size(305, 305);

serial = new Serial(this, "COM3", 9600);
}

void draw() {
if ( serial.available() >0) {
    // 读取从串口产过来的Sensor数值。
    sensorValuey = serial.read();
    sensorValuex = serial.read();
    println(sensorValuey);
    println(sensorValuex);

    // 在画布内画一个
    background(255); // 背景为白色
    fill(255,0,0);   // 圆形内填充为红色
    ellipse(sensorValuex,sensorValuey, 50, 50);

}

}

叶斌远行 发表于 2015-10-17 07:43:51

能看一下楼主的硬件接线吗?还有建议先使用arduino自带的串口调试,观察一下analog.read()得到的数据是否稳定?

johndi 发表于 2015-10-17 09:35:43

叶斌远行 发表于 2015-10-17 07:43 static/image/common/back.gif
能看一下楼主的硬件接线吗?还有建议先使用arduino自带的串口调试,观察一下analog.read()得到的数据是否稳 ...

首先感谢你的回复。用现在的Serial.write(valy/4);   查看arduino串口数据是一个一个的“ ~ ~ ”符号,输出给processing的值是稳定的,单独处理任何一个值,都是正确的,我不知道如何把串口获取到的两个值分别赋予给sensorValuey 和sensorValuex。 线路连接是 x和y给A0和A1,5v和GND。

叶斌远行 发表于 2015-10-18 20:46:38

你的问题解决了吗?可能你不应该把读取串口数据放在draw里面处理,因为串口那边时刻经常发送数据过来,可以建议你看看processing里面有一个函数叫做:void serialEvent (Serial serial){}

johndi 发表于 2015-10-18 21:46:18

叶斌远行 发表于 2015-10-18 20:46 static/image/common/back.gif
你的问题解决了吗?可能你不应该把读取串口数据放在draw里面处理,因为串口那边时刻经常发送数据过来,可以 ...

还没有解决,谢谢,我再深入的学习学习processing。有好的教程或学习方法推荐一下吧

叶斌远行 发表于 2015-10-18 22:03:35

johndi 发表于 2015-10-18 21:46 static/image/common/back.gif
还没有解决,谢谢,我再深入的学习学习processing。有好的教程或学习方法推荐一下吧

processing官网有很多文档,还有其他像sparkfun adfruit这两个网站也有很多例子可以参考
页: [1]
查看完整版本: 求助:arduino和processing的问题