7183| 5
|
用单片机来玩机器学习 |
本帖最后由 gada888 于 2022-9-4 10:58 编辑 今天给大家讲开源硬件Wio Terminal的开箱和Wio与tinyML网站edge impulse的结合来完成机器学习的挑战。这个帖子就作为开篇吧。或者作为一个避坑指南。 edge impulse平台让你在几乎不了解python和C++的情况下,快速做出TinyML项目。而鉴于TinyML项目都是面向C端的。目标用户群极其庞大。市场前景看好。似乎眼下影响它发展的最大障碍是ML单片机的价格。 先来介绍Wio-terminal Wio-terminal被选中的原因是edge impulse系统指定它为配合edge系统的硬件之一。有点小贵,但性能比Arduino好很多。跑机器学习呢,没个大心脏(芯片)根本无法负荷,arduino的AVR小心脏只能望ML兴叹。而Wio Terminal 是一款专门用于 IoT 与 TinyML 的多功能开发板 – 包含了 ATSAMD51P19 晶片并以 ARM Cortex-M4F 为核心 (20MHz),已支援多种针对微控制器的 ML推论框架. Wio开发板已包含: 光感测器(类比) 麦克风 可自订按钮 x 3 4 英吋彩色LCD 加速度感测器 Grove 接头 x 2 当然,这里不是要推销这个板子,以后会介绍能跑ML的其它类型的板子。只是刚好手里有这个板子。就拿它说事儿了。 Wio在开箱后,先要来一个测试,测试过程如下: 实测效果如下:edge平台给大家最大的惊喜之一是它导出的文件可以用在arduino ide这个最大的开源硬件ide。这让广大创客可以无缝接轨机器学习项目。 下面隆重介绍下TinyML TinyML 的 tiny 代表 ML 模型已针对低功耗的微型装置进行最佳化,例如 Arduino 为首的各种 MCU,各种应用纷纷出笼,但依然受限于 MCU 的算力。 常见应用:声音辨识、语音控制、影像辨识等 它内置和外延很多的传感。 光线传感 小夜灯 手势辨识 声音传感 拍手开门 加速度传感 倾斜警告装置 气体传感 瓦斯警报器 温湿度传感 物联网空调 但想通过ML实现以上功能,需要一个ML平台配合。当当当当。该edge impulse登场了。 我们接下来要注册 Edge Impulse 地址是:https://studio.edgeimpulse.com/ 记下你的登录名和密码,后面要用到 其它需要安装的工具 需要安装Arduino IDE 2.0、 arduino download https://www.arduino.cc/en/software#experimental-software edge官方要求arduino ide得是1.8以上。但个人实测ide 1.8也能跑通,装不装2.0其实无所谓,但最好装一个。 在arduino的prference导入 wio terminal 开发板定义 https://files.seeedstudio.com/ar ... o_boards_index.json 安装Node.js 最新版,例如nodejs v16 https://nodejs.org/zh-cn/download/ 安装 edge impulse CLI tool 用来上传资料 通过CMD来安装,位置如下。有的人找不到AppData目录,需要打开win10隐藏文件。 C:\Users\Administrator\AppData\Roaming\npm\node_modules 安装命令是 npm install -g edge-impulse-cli 安装好的CLI的路径如上。如没装好,需要检查环境变量的设置 把wio的这个按钮连续拨两下 这时候你的PC会出现一个arduino盘符 打开这个盘符,把wio-terminal -ei-1.4文件拖入盘中,这是硬件厂商官方发布的文件,它内置了一些wio上内置的传感的调用文件。 edge impuls ML设置 要连接wio terminal,需要打开PC的CMD窗口。输入如下命令和你的登陆名与密码 edge-impulse-daemon --clean 并通过给出的网址,进入edge系统来做ML项目 设备支持的传感如下 edge主界面布局如下 然后开始取样,样本数据多一点好,不然会因为欠拟合导致精度不够。我这里做测试使用了光感传感来判断石头和布。 代码能力强的,可以看看你的ML项目的代码 我这里样本只有两笔,导致了欠拟合。精度不够,会在之后的测试中加大样本量看看。后续会持续报告。 接下来汇出库文件,这里Edge把本来python ML项目文件转成了C++文件来给arduino ide使用。让单片机也能玩高大上的东东。 案例文件并不能匹配我们选择的传感的具体功能。例如我这里想要剪刀石头布,然后打开不同颜色的LED。那么需要我们手动添加一些代码。案例提供了我们最讨厌的C++的内容。而我们只需要有ardiuno C的基础。添加获取传感数据的内容和执行其它命令。如下代码给出数据采样的内容。其它内容可根据自己需要添加。需要你有一定的arduino C的代码基础。
最后烧录到Wio即可。以上是跑通ML的具体步骤,以后会出具体玩转edge ML的实战项目。敬请期待。。。。 |
82.22 KB, 下载次数: 2461
ei-handshake-arduino-1.0.2.zip
4.09 MB, 下载次数: 2500
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed