【Arduino官方教程第一辑】示例程序 4-3 数据图表
2016-05-12 12:54
811 查看
数据图表
本例向你展示如何从Arduino或Genuino板发送一个字节(byte)的数据并且用图表的方式显示结果。板子和电脑使用串口连接(不管你是用USB连接电脑还是USB转串口芯片,最终都是通过串口通信)。你可以通过Arduino IDE来看到数据的图表,或者也可以用Processing(下面附上了代码),Flash, PD或Max/MSP等软件查看。
完成本例所需的硬件
Arduino板Genuino板模拟信号传感器(电位器,光电管, 压力传感器等均可)
连接线
完成本例所需的软件
Processing或Max/MSP 5.x电路连接
将电位器或者其他模拟信号传感器连接到A0口。
原理图
例程代码
/* 数据图表 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代码将会根据板子发送的数据进行绘图,随着传感器状态的改变,你应该可以看到下列图像:// 数据图表 // 本例从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将会如以下图片一样显示。----------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-----------
相关资料
serial()analogRead()
ASCIl表:展示Arduino先进的串口输出函数。
调光器:轻点鼠标来改变LED的亮度。
数据图表:发送数据到电脑,并且使用Processing来绘图。
MIDI音乐: 以串口发送MIDI音符。
MIDI音乐[Mega]:使用Arduino Mega上的两个串口。
控制LED:从Processing或Max/MSP来开关LED.
读取ASCII字符串:解析一串用逗号分隔的整数(以字符串类型传递)来让LED渐隐。
串口双向调用:用双向调用/握手连接(handshaking)的方法发送多个变量值。
串口双向调用(使用ASCII码):用双向调用/握手连接(handshaking)的方法发送多个变量值,并且在转发之前将这些变量的值通过ASCII解码。
串口事件:展示SerialEvent()函数的使用。
虚拟调色盘:用Arduino发送多个变量的值到电脑,然后用Processing或Max/MSP读取它们。
更新进程
日期 | 日志 | 译者 |
---|---|---|
2016年5月12日 | 创建并翻译文档 | 唐家勋 |
邮箱:mrsteventang@gmail.com
QQ:649196486
转载请注明出处,一切只因为热爱。
希望您能指出宝贵意见,谢谢。
相关文章推荐
- quick 用系统浏览器打开url
- UIColor
- iOS开发之基础视图——UIProgressView和UIProgressView
- id to load is required for loading
- iOS动画篇:UIView动画
- DAO层原来可以这么简单 FastQuery使用手册.
- 60. Permutation Sequence
- c# XML解析成EasyUI TreeGrid格式
- String、StringBuffer、StringBuilder的不同使用场景
- UIAlertController UIAlertAction (UIAlertView, UIActionSheet)
- Selenium - Differences between WebDriver.close(), WebDriver.dispose() and WebDriver.quit()
- 侧滑UI
- Android UI列表的上拉下拉刷新之Android-PullToRefresh
- iOS添加GPUImage到项目
- iOS使用GPUImage实现实时反色相机
- LeetCode 347. Top K Frequent Elements
- iOS 集成环信UI3.0
- 设置UILabel可变高度(根据文本内容自动适应高度)
- iOS UITleView 属性及方法详解
- iOS ViewController添加Segue