前言
Arduino可以搭载各式各样的传感器,使用Arduino IDE自带的串口监视器可以查看传感器的数据,但是不够形象。更进一步,可以通过第三方软件进行串口数据可视化处理,Processing是使用得比较多的一个,以下是第一篇Processing学习笔记。通过两个简单的案列说明了Arduino如何与Processing传输数据,第一个是通过Procesing发送指令控制Arduino,第二个是通过Arduino发送指令控制Processsing。
Processing 在 2001 年诞生于麻省理工学院(MIT)的媒体实验室,主创者为 Ben Fry 和 Casey Reas,项目发起的初衷,本是为了满足他们自身的教学和学习需要。后来,当Casey在意大利的伊夫雷亚交互设计学院(Interaction Design Institute Ivrea)进行教学的时候,基于Processing,衍生出了Wiring和Arduino项目。随着时间的推移,又诞生了多个语言的版本,比如基于JavaScript的Processing.js,还有基于Python、Ruby、ActionScript以及Scala等版本。而当前的Processing,成立了相应的基金会,由基金会负责软件的开发和维护工作。
Processing项目是Java开发的,支持Linux、Windows以及Mac OSX三大平台,并且支持将图像导出成各种格式。对于动态应用程序,甚至可以将 Processing 应用程序作为 Java™ applet 导出以用在 Web 环境内。为了降低设计师的学习门槛,用Processing进行图形设计的编程语言并不是Java,而是重新开发了一门类C的编程语言,易于上手。Processing支持OpenGL和WebGL,不但可以渲染2D图形,还可以渲染3D图形。Processing可不只是能够渲染漂亮的图形,还支持与其他软件的通信,结合之前提到的Arduino项目,甚至可以和外部硬件进行交互。
案列一:鼠标点击控制
通过Processing画三个不同颜色的矩形,点击不同的矩形时,Arduino控制的该颜色LED灯亮。
案列一接线
案列一代码
- Arduino代码
int redPin = 3;
int greenPin = 4;
int bluePin = 5;
int c = 0;
void setup()
{
Serial.begin(9600); //比特率设置为一致方可通信
pinMode(redPin,OUTPUT);
pinMode(greenPin,OUTPUT);
pinMode(bluePin,OUTPUT);
}
void loop()
{
if(Serial.available());
c = Serial.read();
if (c == 97) //a的ASCII码值为97
{
digitalWrite(redPin,HIGH);
delay(500);
digitalWrite(redPin,LOW);
}
if (c == 98) //b的ASCII码值为98
{
digitalWrite(greenPin,HIGH);
delay(500);
digitalWrite(greenPin,LOW);
}
if (c == 99)
{
digitalWrite(bluePin,HIGH);
delay