Processing与Arduino

Processing,极力推荐这套基本的Processing入门教程,http://www.zcool.com.cn/article/ZMTYyMzk2.html,虽然不多但的确够用。

而对于Arduino和Processing之间,Arduino经传感器采集到的信息可以通过Processiing以一种更加直观的视觉效果呈现出来,这是两者连接的第一种方式。具体方法如下:

比如Arduino主控板接有超声波传感器,最直接的是烧录进主控板之后以自身的串口监视器显示出来,或者是控制电机或者显示在LCD等显示屏上。而有了Processing之后,Processing的数据可视化能力完全可以把Arduino收集到的信息数据进行直观呈现。

比如Arduino代码:

void setup() {

Serial.begin(9600);

}

void loop() {

int sensorValue = analogRead(A0);

Serial.println(sensorValue);

delay(1);       

}

加上Processing代码:

import processing.serial.*;

Serial myPort=new Serial(this, Serial.list()[0], 9600);

float r=250;

float a=0;

float x, y;

void setup() {

size(600, 600);

background(0);

smooth();

stroke(255);

frameRate(100);

println(Serial.list());

}

void draw() {

displayX();

displayY();

fill(0,3);

noStroke();

rect(0, 0, width, height);

x=r*cos(a);

y=r*sin(a);

if (myPort.available()>0) {

int data;

data=myPort.read();

fill(255);

text("DISTANCE:", 30, 50);

text(data, 100, 50);

stroke(0, 200, 0);

strokeWeight(3);

line(width/2, height/2, width/2+x, height/2+y);

a=a+0.0124;//弧度增加

if (data<=50) {

stroke(255, 0, 0);

strokeWeight(10);

float locx, locy;

locx=5*(data-1)*cos(a);

locy=5*(data-1)*sin(a);

point(width/2+locx, height/2+locy);

}

}

}

void displayX() {

for (int i=-250;i<300;i+=50) {

fill(255);

if (i<=0)

text(i, i+300, 300);

else

text(i, i+285, 300);

}

}

void displayY() {

for (int i=250;i>=-250;i-=50) {

if (i!=0) {

fill(255);

text(i, 300, 300-i);

}

}

}


但是,我们Processing并不满足于只是作为Arduino的前端显示,虽然已经非常强大漂亮。再有就是通过Arduino编写的程序只能上传烧录到主控板里才能监视到效果,虽然很快,但是总有编译分钟,报错再错的等待。所以在线控制调试就被Processing给做了。

Arduino只需要安装一个固件:Run Arduino, open the Examples > Firmata >StandardFirmatasketch, and upload it to the Arduino board.

Processing安装一个Arduino库。processing-arduino.zip

以下就是Processing代码了:


Processing与Arduino_第1张图片

你可能感兴趣的:(Processing与Arduino)