以前用过processing显示姿态识别,代码过度高深了。。。大家可能一下子接受不了。这里开始从简单到复杂,慢慢介绍processing怎样与arduino互动。
这次我们使用一个电位器+arduino控制板,通过电位器的转动,让processing输出一个可以移动的圆形。
先看硬件连接图
这个是本次试验的arduino代码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代码ARDUINO 代码复制打印
- 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的。所以大家可以很容易上手。
我们点击工具栏第一个编译的图标,就会跳出来下图的样子的窗口。
看一下实验效果
其他的命令比较简单,这里介绍一下绘图命令
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) |
0
|
|
|
|