我想实现的功能是当转动连在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有没有调节透明度的函数啊? |