本文全文译自开发者Jonathan发表在lvl1.org上的介绍文章。
简述:
Arduino主控板(ArduinoDashboard)是用来实时查看Arduino模拟和数字输入输出接口数值的程序,可以在任何Arduino小程序(Arduino sketch)中引用,同时还提供已编译的版本,这样即使你没有安装Processing语言的集成开发环境也可以使用,下载包中还包括了源代码。
更多细节:
Arduino主控板程序包括了Processing语言的小程序和桌面应用程序,目前仍是初期测试版本,只提供了基本的功能。当前的版本可以让用户获得A0-A6模拟接口,以及1-13数字接口的数据。
使用指南:
即使你的计算机中没有Processing的集成开发环境,也可以使用Arduino主控板的编译版本,针对不同平台的每一个版本内都有一个单独的文件夹,包含了Arduino小程序文件,里面是需要引入到你自己小程序内的函数代码,下面是具体的步骤:
1)根据你的系统下载已编译的版本:Win32,Win64,Linux32,Linux64,MacOSX;
2)将压缩包中提供的ArduinoDashboard_Arduino_function.pde文件内的函数代码复制这粘贴到你现有的小程序中;
3)将小程序上传到Arduino板中(确认完全上传完毕);
4)在电脑中运行ArduinoDashboard.exe文件。
如果你已经安装了Processing的集成开发环境,则按下面的步骤操作:
1)下载解压缩Arduino主控板的Processing小程序(下载地址);
2)将下面的函数代码复制到你自己的arduino小程序尾部,并在主程序中调用此函数(同时确定在小程序头部的设置代码段有”Serial.begin(9600);”语句)
void dashboard() {
int sensorValue1, sensorValue2, sensorValue3, sensorValue4, sensorValue5,sensorValue6, sensorValue7, sensorValue8, sensorValue9, sensorValue10, sensorValue11, sensorValue12, sensorValue13,
sensorValue14, sensorValue15, sensorValue16, sensorValue17, sensorValue18, sensorValue19;
sensorValue1 = analogRead(A0); // read sensor in analog input 0
sensorValue2 = analogRead(A1); // read sensor in analog input 1
sensorValue3 = analogRead(A2); // read sensor in analog input 2
sensorValue4 = analogRead(A3); // read sensor in analog input 3
sensorValue5 = analogRead(A4); // read sensor in analog input 4
sensorValue6 = analogRead(A5); // read sensor in analog input 5
sensorValue7 = digitalRead(1); // read sensor in analog input 6
sensorValue8 = digitalRead(2); // read sensor in analog input 6
sensorValue9 = digitalRead(3); // read sensor in analog input 6
sensorValue10 = digitalRead(4); // read sensor in analog input 6
sensorValue11= digitalRead(5); // read sensor in analog input 6
sensorValue12= digitalRead(6); // read sensor in analog input 6
sensorValue13= digitalRead(7); // read sensor in analog input 6
sensorValue14= digitalRead(8); // read sensor in analog input 6
sensorValue15= digitalRead(9); // read sensor in analog input 6
sensorValue16 = digitalRead(10); // read sensor in analog input 6
sensorValue17 = digitalRead(11); // read sensor in analog input 6
sensorValue18 = digitalRead(12); // read sensor in analog input 6
sensorValue19 = digitalRead(13); // read sensor in analog input 6
Serial.print(sensorValue1, DEC); // print sensor 1
Serial.print(","); // print ','
Serial.print(sensorValue2, DEC); // print sensor 2
Serial.print(","); // print ','
Serial.print(sensorValue3, DEC); // print sensor 3
Serial.print(","); // print ','
Serial.print(sensorValue4, DEC); // print sensor 4
Serial.print(","); // print ','
Serial.print(sensorValue5, DEC); // print sensor 5
Serial.print(","); // print ','
Serial.print(sensorValue6, DEC); // print sensor 6
Serial.print(","); // print ','
Serial.print(sensorValue7); // print sensor 7
Serial.print(","); // print ','
Serial.print(sensorValue8); // print sensor 7
Serial.print(","); // print ','
Serial.print(sensorValue9); // print sensor 9
Serial.print(","); // print ','
Serial.print(sensorValue10); // print sensor 10
Serial.print(","); // print ','
Serial.print(sensorValue11); // print sensor 11
Serial.print(","); // print ','
Serial.print(sensorValue12); // print sensor 12
Serial.print(","); // print ','
Serial.print(sensorValue13); // print sensor 13
Serial.print(","); // print ','
Serial.print(sensorValue14); // print sensor 14
Serial.print(","); // print ','
Serial.print(sensorValue15); // print sensor 15
Serial.print(","); // print ','
Serial.print(sensorValue16); // print sensor 16
Serial.print(","); // print ','
Serial.print(sensorValue17); // print sensor 17
Serial.print(","); // print ','
Serial.print(sensorValue18); // print sensor 18
Serial.print(","); // print ','
Serial.print(sensorValue19); // print sensor 19 and newline (println)
Serial.print("!");
delay(200); // wait 200ms for next reading
3)将小程序上传至Arduino板中运行;
4)在电脑使用Processing集成开发环境运行ArduinoDashboard.pde小程序。
未来升级计划:
可自由选择要监视的接口;
将接口按输入/输出进行分类;
可以选择不同型号的Arduino板,以使用相应的接口数量和配置信息;
为每一个接口的高低电平值设置不同的显示颜色;
基于变量或单独接口的可自定义的警示信息;
接口或变量值的展示可以选择用图表、按钮、仪表盘等不同形式;
更多功能敬请期待
[我的观点]
对于要用到多个输入输出口的Arduino项目开发来说,实时监控每个接口的数据是调试中的难点,Arduino主控板程序确实可以提供很好的帮助,大家应该多多支持,试用该程序,并向开发者报告bug和提供建议。但是这种靠在sketch层面增加额外函数代码的方式有很大的局限性,首先是附加代码的融合增加了程序出错的几率,其次是牺牲执行效率拖慢了程序,最后是加剧了Arduino本来就捉襟见肘的内存不足问题。我觉得这样的接口监控/记录功能最好还是通过硬件层实现,在IDE中增加调试功能将数据展现给开发者。当然这样会增加Arduino板的复杂性和成本,可以考虑用shield子开发板方式,或者在公版Arduino中增加此功能做成开发板的形式完成,过两天我就去arduino.cc论坛嚷嚷一下。

1 条评论
GodoPydrods says:
2011/09/12 在 04:20 (UTC 8)
学到了很多东西