通信部分-数据图表

本例向你展示如何从Arduino或Genuino板发送一个字节(byte)的数据并且用图表的方式显示结果。板子和电脑使用串口连接(不管你是用USB连接电脑还是USB转串口芯片,最终都是通过串口通信)。
你可以通过Arduino IDE来看到数据的图表,或者也可以用Processing(下面附上了代码),Flash, PD或Max/MSP等软件查看。

硬件需求
Arduino板
模拟信号传感器(电位器,光电管, 压力传感器等均可)
连接线

软件需求
Processing或Max/MSP 5.x

电路
clip_image002
将电位器或者其他模拟信号传感器连接到A0口。

原理图
clip_image004

代码

/*
数据图表
Arduino板和电脑的简单通信。
A0口的数据将被发送到串口。我们之所以说“串口”是因为通信用到的是串口协议(不管你是用USB、USB串口板等方式连接电脑,归根到底用的都是串口)。数据将以字节为单位一个一个从板子发送到电脑。你可以用Arduino串口监视器来绘制串口图表。使用Processing, PD, Max/MSP或其他软件也可以。Processing代码将会将串口数据绘图,因此你可以真切的看到串口输入的改变。

电路搭建:
连接到A0的模拟信号传感器。

代码是公开的。

*/

void setup() {
// 初始化串口:
Serial.begin(9600);
}

void loop() {
// 将值发送到A0:
Serial.println(analogRead(A0));
//等待一会确保数模转换完成:
delay(2);
}

Processing代码

Processing代码将会根据板子发送的数据进行绘图,随着传感器状态的改变,你应该可以看到下列图像:

image

 // 数据图表
// 本例从9600波特率的串口读取数据,然后根据数据进行绘图。发过来的数据应为0-1023,然后换行。(或者回车)
// 代码是公开的。

import processing.serial.*;

Serial myPort;        // 串口
int xPos = 1;         // 水平方向位置
float inByte = 0;

void setup () {
// 设置窗口大小:
size(400, 300);

// 列举所有可用串口。
//(若用了2.1或之前版本,请用Serial.printArray()
println(Serial.list());

//由于我知道我的MAC上面第一个串口永远是Arduino,因此我直接使用了0号串口。Serial.list()[0].
// 下面代码参数应该根据你用的串口进行改变.
myPort = new Serial(this, Serial.list()[0], 9600);

// 直到获取到换行符时,触发serialEvent():
myPort.bufferUntil('\n');

// 设置背景色:
background(0);
}
void draw () {
// 画线:
stroke(127, 34, 255);
line(xPos, height, xPos, height - inByte);

// 若到了屏幕边缘,则从开始处继续:
if (xPos >= width) {
xPos = 0;
background(0);
} else {
// 增加当前所在的水平位置:
xPos++;
}
}

void serialEvent (Serial myPort) {
// 获取ASCII的字符串:
String inString = myPort.readStringUntil('\n');

if (inString != null) {
// 删掉空格:
inString = trim(inString);
// 转换成int类型,并且根据屏幕大小映射到合适位置:
inByte = float(inString);
println(inByte);
inByte = map(inByte, 0, 1023, 0, height);
}
} 

Max/MSP v5 补丁

请复制下面这些代码,并且粘贴到新建patch的串口。Max/MSP将会如以下图片一样显示。

clip_image002[6]

———-begin_max5_patcher———-
1591.3oc0YszbaaCD9r7uBL5RalQUAO3CvdyS5zVenWZxs5NcfHgjPCIfJIT
RTxj+6AOHkoTDooroUs0AQPR73a+1cwtK3WtZxzEpOwqlB9YveAlL4KWMYh6
Q1GLo99ISKXeJMmU451zTUQAWpmNy+NM+SZ2y+sR1l02JuU9t0hJvFlNcMPy
dOuBv.U5Rgb0LPpRpYBooM3529latArTUVvzZdFPtsXAuDrrTU.f.sBffXxL
vGE50lIHkUVJXq3fRtdaoDvjYfbgjujaFJSCzq4.tLaN.bi1tJefWpqbO0uz
1IjIABoluxrJ1guxh2JfPO2B5zRNyBCLDFcqbwNvuv9fHCb8bvevyyEU2JKT
YhkBSWPAfq2TZ6YhqmuMUo0feUn+rYpY4YtY+cFw3lUJdCMYAapZqzwUHX8S
crjAd+SIOU6UBAwIygy.Q1+HAA1KH6EveWOFQlitUK92ehfal9kFhUxJ3tWc
sgpxadigWExbt1o7Ps5dk3yttivyg20W0VcSmg1G90qtx92rAZbH4ez.ruy1
nhmaDPidE07J+5n2sg6E6oKXxUSmc20o6E3SPRDbrkXnPGUYE.i5nCNB9TxQ
jG.G0kCTZtH88f07Rt0ZMMWUw8VvbKVAaTk6GyoraPdZff7rQTejBN54lgyv
HE0Ft7AvIvvgvIwO23jBdUkYOuSvIFSiNcjFhiSsUBwsUCh1AgfNSBAeNDBZ
DIDqY.f8.YjfjV1HAn9XDTxyNFYatVTkKx3kcK9GraZpI5jv7GOx+Z37Xh82
LSKHIDmDXaESoXRngIZQDKVkpxUkMCyXCQhcCK1z.G457gi3TzMz4RFD515F
G3bIQQwcP3SOF0zlkGhiCBQ1kOHHFFlXaEBQIQnCwv9QF1LxPZ.A4jR5cyQs
vbvHMJsLll01We+rE2LazX6zYmCraRrsPFwKg1ANBZFY.IAihr8Ox.aH0oAL
hB8nQVw0FSJiZeunOykbT6t3r.NP8.iL+bnwNiXuVMNJH9H9YCm89CFXPBER
bz422p8.O4dg6kRxdyjDqRwMIHTbT3QFLskxJ8tbmQK4tm0XGeZWF7wKKtYY
aTAF.XPNFaaQBinQMJ4QLF0aNHF0JtYuHSxoUZfZY6.UU2ejJTb8lQw8Fo5k
Rv6e2PI+fOM71o2ecY1VgTYdCSxxUqLokuYq9jYJi6lxPgD2NIPePLB0mwbG
YA9Rgxdiu1k5xiLlSU6JVnx6wzg3sYHwTesB8Z5D7RiGZpXyvDNJY.DQX3.H
hvmcUN4bP1yCkhpTle2P37jtBsKrLWcMScEmltOPv22ZfAqQAdKr9HzATQwZ
q18PrUGt6Tst2XMCRUfGuhXs6ccn23YloomMqcTiC5iMGPsHsHRWhWFlaenV
XcqwgCQiGGJzptyS2ZMODBz6fGza0bzmXBj7+DA94bvpR01MffAlueO7HwcI
pWCwmzJdvi9ILgflLAFmyXB6O7ML0YbD26lenmcGxjVsZUN+A6pUK7AtTrPg
M+eRYG0qD9j4I7eEbco8Xh6WcO.or9XDC6UCiewbXHkh6xm5LiPEkzpJDRTu
mEB44Fgz4NCtJvX.SM1vo2SlTCZGAe7GZu6ahdRyzFOhYZ+mbVVSYptBw.K1
tboIkatIA7c1cTKD1u.honLYV04VkluHsXe0szv9pQCE9Ro3jaVB1o15pz2X
zYoBvO5KXCAe0LCYJybE8ZODf4fV8t9qW0zYxq.YJfTosj1bv0xc.SaC0+AV
9V9L.KKyV3SyTcRtmzi6rO.O16USvts4B5xe9EymDvebK0eMfW6+NIsNlE2m
eqRyJ0utRq13+RjmqYKN1e.4d61jjdsauXe3.2p6jgi9hsNIv97CoyJ01xzl
c3ZhUCtSHx3UZgjoEJYqNY+hYs5zZQVFW19L3JDYaTlMLqAAt1G2yXlnFg9a
53L1FJVcv.cOX0dh7mCVGCLce7GFcQwDdH5Ta3nyAS0pQbHxegr+tGIZORgM
RnMj5vGl1Fs16drnk7Tf1XOLgv1n0d2iEsCxR.eQsNOZ4FGF7whofgfI3kES
1kCeOX5L2rifbdu0A9ae2X.V33B1Z+.Bj1FrP5iFrCYCG5EUWSG.hhunHJd.
HJ5hhnng3h9HPj4lud02.1bxGw.
———–end_max5_patcher———–

0
分享到:

评论0

请先

原Arduino365.com域名更改为品牌域名ultirobot.com,承载内容要将更丰富,网站也进行了改版,改善阅读体验。
没有账号? 忘记密码?