仪表盘

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年6月6日 (五) 04:09的版本 (Created page with "{| style="width: 800px;" |- | ==目的== 本教程将教大家如何用processing实现一个仪表盘显示Microduino感应的磁场变化。 ==设备== *'''Microduino-Co...")
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

目的

本教程将教大家如何用processing实现一个仪表盘显示Microduino感应的磁场变化。

设备

[[Microduino-10DOF]

  • 其他硬件设备
    • USB数据连接线 一根


原理图

直接使用Microduino-10DOF上的HMC5883L磁场强度传感器

程序

见 MicroduinoDashboard

ProcessingDashboard

调试

步骤一:按着原理图搭建硬件环境,像这样:

ProcessingDashboardConnectionDiagram.jpg

下载这个HMC5883L的库函数:https://github.com/manifestinteractive/arduino/tree/master/Libraries/HMC5883L

步骤二:解释一下代码:

本例需要两端的代码,Processing端和Microduino端

Microduino:

在setup()中主要是初始化HMC5883L

在loop()中计算出周围磁感应的角度

//Output()用来输出计算出的角度到串口

 // Output the data down the serial port.
 void Output(int RoundDegreeInt)
 {
   //Serial.println();
   Serial.println(RoundDegreeInt);
   delay(150);
 }


Processing:

//得到第一个串口的数据.

 myPort = new Serial(this, Serial.list()[0], 9600);

//drawCube()中的以下代码用来的到串口的数据

 while (myPort.available() > 0) {
   myString = myPort.readStringUntil(lf);
   if (myString != null) {
 //print(myString);  // Prints String
   angle=float(myString);  // Converts and prints float
   println(angle);
   }
 }

函数说明:

//绘制仪表盘的中心点 buildpoint()

//绘制仪表盘和指针刻度 builddashboard()

//接收串口数据并绘制中心点 drawCube()

//绘制整体的仪表盘 drawCube1()


步骤三:下载代码并编译通过。

步骤四:运行后,用一块磁铁改变一下磁场,看看指针是否变化。

结果

屏幕上会显示一个指南针,指针会随着磁场走,像这样:

ProcessingDashboardResult.jpg


视频