arduino教程系列31-processing显示arduino传感器动作实验 传感器

以前用过processing显示姿态识别,代码过度高深了。。。大家可能一下子接受不了。这里开始从简单到复杂,慢慢介绍processing怎样与arduino互动。



这次我们使用一个电位器+arduino控制板,通过电位器的转动,让processing输出一个可以移动的圆形。



先看硬件连接图


2011-12-10 20-53-52.png

2011-12-10 21:02 上传
(107.66 KB)





这个是本次试验的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.print(sensorValue/4, BYTE); 
 
  delay(100);
}

这个是本次试验的processing代码

import processing.serial.*;
 
Serial serial;  
int sensorValue;
 
void setup() {
  // 设置画布大小为 305 x 200 
  size(305, 200);  //设置305的原因是arduino ADC口输入过来的数值是0-255,加上圆形半径50,刚好305.
 
  // 打开串口,设置波特率为9600
  // 本次实验arduino控制板所连接为COM6口,此处请根据实际情况调整。
  serial = new Serial(this, "COM6", 9600);
}
 
void draw() {
  if ( serial.available() > 0) {
    // 读取从串口产过来的Sensor数值。
    sensorValue = serial.read()+25;  //+25的原因是后面设置圆形半径为50,为了让圆形起点与重点贴边,就需要+25半径。
    println(sensorValue);
 
    // 在画布内画一个
    background(255); // 背景为白色
    fill(255,0,0);   // 圆形内填充为红色
    ellipse(sensorValue, 100, 50, 50);
  }  
}

我们熟悉一下processing的基本界面,arduino的界面和processing一样滴。。。因为arduino的图形界面,就是直接使用的processing的。所以大家可以很容易上手。


2011-12-10 20-50-25.png

2011-12-10 21:02 上传
(68.36 KB)





我们点击工具栏第一个编译的图标,就会跳出来下图的样子的窗口。


2011-12-10 20-49-45.png

2011-12-10 21:02 上传
(39.73 KB)





看一下实验效果

其他的命令比较简单,这里介绍一下绘图命令
ellipse:(圆形)

ellipse(x,y,width,height)
x,y是圆形坐标点,指的是圆心。
width是圆的水平直径
height是圆的垂直直径
比如120,60这样画出来的就是一个椭圆了。

rect:(矩形)
rect(x,y,width,height)
x,y指的是矩形坐标点,是左上角那个点。
width是矩形宽度
height是矩形高度
默认模式是CORNER。
画矩形有三种模式:
1、CORNER:rect(左上x,左上y,宽,高)
2、CENTER:rect(中心x,中心y,宽,高)
3、CORNERS:rect(左上x,左上y,右下x,右下y)

例子:
rectMode(CENTER);
rect(150,150,200,200)


via - 极客工坊

标签: Arduino教程