编辑 | sunlei
前文回顾:Arduino 机器学习实战入门(上)
设置Arduino IDE
按照以下步骤设置Arduino IDE应用程序,该应用程序用于将推理模型上载到您的电路板,并在下一节中从电路板下载培训数据。因为我们需要在Arduino IDE中下载和安装特定的板和库,所以比使用Arduino Create web editor要多几个步骤。
如果需要帮助,Arduino网站上有更详细的入门和故障排除指南。
从Arduino板上传输传感器数据
首先,我们需要获取一些训练数据。你可以通过USB数据线从Arduino板上获取传感器数据日志,你可以用笔记本电脑或个人电脑给板编程。
Arduino板运行小应用程序(也称为示意图),这些程序是由.ino格式的Arduino源代码编译而成,并使用Arduino IDE或Arduino Create在板上编程。
我们将使用一个预先制作好的草图IMU_Capture.ino,它执行以下操作:
我们选择从板上读取的传感器、采样率、触发阈值,以及我们是否将数据输出为CSV、JSON、二进制或其他格式,这些都可以在Arduino上运行的示意图中定制。在将数据输出到日志之前,还可以在设备上执行信号预处理和过滤——这一点我们可以在另一个博客中讨论。现在,您只需要上传草图并开始采样。
要在Arduino IDE中使用此草图对电路板进行编程:
从Arduino板上可视化实时传感器数据日志
完成这些之后,我们现在就可以看到黑板上的数据了。我们还没有捕获数据-这只是让你感觉一下传感器数据捕获是如何触发的,以及一个样本窗口有多长。这将有助于收集训练样本。
在Arduino IDE中,打开串口绘图仪工具>串口绘图仪
如果出现主板不可用的错误,请重新选择端口:
工具>端口>端口名(Arduino Nano 33 BLE)
拿起板子,练习你的击打和弯曲动作
您将只看到一秒钟窗口的示例,然后等待下一个动作
您应该会看到传感器数据捕获的实时图(参见下面的GIF)。
Arduino IDE串行绘图仪将显示从板输出的CSV数据的实时图形
当你完成时,一定要关闭串行绘图仪窗口——这很重要,否则下一步将无法工作。
获取手势训练数据
要将数据捕获为CSV日志以上载到TensorFlow,可以使用Arduino IDE>Tools>Serial Monitor查看数据并将其导出到计算机桌面:
注意,两个csv文件的第一行应该包含字段aX、aY、aZ、gX、gY、gZ
Linux提示:如果愿意,可以将传感器日志输出从Arduino直接重定向到命令行上的.csv文件。串行绘图仪/串行监视器窗口关闭后使用:
$ cat /dev/cu.usbmodem[nnnnn] > sensorlog.csv
训练TensorFlow
我们将使用谷歌Colab来训练我们的机器学习模型,该模型使用的是我们在前一节中从Arduino板上收集的数据。Colab提供了一个Jupyter notebook,允许我们在web浏览器中运行我们的TensorFlow训练。
Colab将指导您完成以下步骤:
colab的最后一步是生成要下载的model.h文件,并将其包含在下一节的Arduino IDE手势分类器项目中:
让我们打开Colab中的笔记本,运行单元中的步骤:
arduino_tinyml_workshop.ipynb
IMU数据分类
接下来我们将在Arduino IDE项目中使用之前章节中我们刚刚训练并从Colab下载的model.h文件:
1.在Arduino IDE中打开imu_classifier.ino。
2.在IDE中创建一个新选项卡命名为model.h。
3.打开model.h选项卡并粘贴您从Colab下载的版本
4.上传草图:草图>上传
5.打开串口监视器:工具>串口监视器
6.做一些手势
7.将每个手势的置信度打印到串行监视器(0 =低置信度,1 =高置信度)
祝贺您,您刚刚为Arduino培训了第一个ML应用程序!
为了增加乐趣,emoji_button.ino示例演示了如何在Linux和MacOS中创建打印emoji字符的USB键盘。尝试将emoji_button.ino示例与imu_classifier.ino草图结合起来,创建一个手势控制的emoji键盘。
结论
这是一个激动人心的时刻,有很多东西可以在Tiny ML中学习和探索。我们希望这篇文章能让你了解它的潜力,并成为开始在你自己的项目中应用它的起点。
原文链接:
https://medium.com/tensorflow/how-to-get-started-with-machine-learning-on-arduino-7daf95b4157
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有