高手救命,关于ARDUINO和processing连接的问题,以及关于PROCESSING模糊。
我想实现的功能是当转动连在ARDUINO上的电位器时,PROCESSING里显示的图片会跟随电位器上传来的值改变其模糊程度。ARDUINO的代码如下:
int potPin = 0;
// 电位器第二针脚接在模拟口0上
void setup() {
// 启动串口,波特率为9600
Serial.begin(9600);}
void loop() {
// 读取电位器电压
int sensorValue = analogRead(potPin);
// 读取的数值以BYTE格式从串口输出
// 因为processing的serial.read()只支持0-255之间的数值,
//所以需要把0-1023数值除以4,缩放到0-255之间
Serial.write(sensorValue/4);
delay(100);}
这里的Serial.write(sensorValue/4);,一开始用的是Serial.println(sensorValue/4);,后来看论坛里有人说要干成WRITE。
运行了一下
Processing 代码如下:
import processing.serial.*;
Serial serial;
int sensorValue;
int last;
PImage photo;
void setup() {
size(400, 400);
println(Serial.list());
serial = new Serial(this, "COM4", 9600);
photo = loadImage("flower.jpg");
}
void draw() {
if ( serial.available() > 0) {
// 读取从串口产过来的Sensor数值。
sensorValue = serial.read();
println(sensorValue);
image(photo, 0, 0);
filter(BLUR, sensorValue/4);
}}
这个代码是根据http://www.geek-workshop.com/thread-301-1-1.html 的这个教程改的,
这个教程里的那个圆的功能我尝试配合ARDUINO的代码运行过,是可以实现的。
PROCSSING读出的数值非常的奇怪,求高手解答!!!
PS,同时想问一下PROCESSING有没有调节透明度的函数啊? 高手们赐教一个吧 T^T 自顶一个 求解答! Serial.write输出的是byte数值,Serial.print或者Serial.println输出的是字符串,但是如果浮点数,那么只会截取到小数点后两位。在Processing端读取数值的时候,最好强制一下转换类型,确保数值准确。 Simon 发表于 2013-11-20 14:42 static/image/common/back.gif
Serial.write输出的是byte数值,Serial.print或者Serial.println输出的是字符串,但是如果浮点数,那么只会 ...
请问怎么弄这个强制转换呢。。能说具体一些吗~ Simon 发表于 2013-11-20 14:42 static/image/common/back.gif
Serial.write输出的是byte数值,Serial.print或者Serial.println输出的是字符串,但是如果浮点数,那么只会 ...
Serial.print(sensorValue/4, BYTE);
我当时输上面那个代码的时候它说BYTE用不了呀。。该怎么办啊。。 呼啦啦啦圈 发表于 2013-11-20 15:27 static/image/common/back.gif
Serial.print(sensorValue/4, BYTE);
我当时输上面那个代码的时候它说BYTE用不了呀。。该怎么办啊。。 ...
http://www.geek-workshop.com/thread-7881-1-1.html
页:
[1]