2022-8-31 22:32:46 [显示全部楼层]
7183浏览
查看: 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推论框架.
用单片机来玩机器学习图1
Wio开发板已包含:
光感测器(类比)
麦克风
可自订按钮 x 3
4 英吋彩色LCD
加速度感测器
Grove 接头 x 2



当然,这里不是要推销这个板子,以后会介绍能跑ML的其它类型的板子。只是刚好手里有这个板子。就拿它说事儿了。
用单片机来玩机器学习图2
用单片机来玩机器学习图3
用单片机来玩机器学习图4Wio在开箱后,先要来一个测试,测试过程如下:
用单片机来玩机器学习图15
用单片机来玩机器学习图16
用单片机来玩机器学习图17
实测效果如下:edge平台给大家最大的惊喜之一是它导出的文件可以用在arduino ide这个最大的开源硬件ide。这让广大创客可以无缝接轨机器学习项目。
用单片机来玩机器学习图18



下面隆重介绍下TinyML

TinyML 的 tiny 代表 ML 模型已针对低功耗的微型装置进行最佳化,例如 Arduino 为首的各种 MCU,各种应用纷纷出笼,但依然受限于 MCU 的算力。

常见应用:声音辨识、语音控制、影像辨识等


它内置和外延很多的传感。

光线传感        小夜灯        手势辨识
声音传感        拍手开门
加速度传感        倾斜警告装置        
气体传感        瓦斯警报器        
温湿度传感        物联网空调        


但想通过ML实现以上功能,需要一个ML平台配合。当当当当。该edge impulse登场了。
用单片机来玩机器学习图5


我们接下来要注册 Edge Impulse
地址是:https://studio.edgeimpulse.com/
记下你的登录名和密码,后面要用到
用单片机来玩机器学习图13用单片机来玩机器学习图14


其它需要安装的工具

需要安装Arduino IDE 2.0、
arduino download
https://www.arduino.cc/en/software#experimental-software

edge官方要求arduino ide得是1.8以上。但个人实测ide 1.8也能跑通,装不装2.0其实无所谓,但最好装一个。
用单片机来玩机器学习图7

在arduino的prference导入 wio terminal 开发板定义
https://files.seeedstudio.com/ar ... o_boards_index.json
用单片机来玩机器学习图8
安装Node.js 最新版,例如nodejs v16
https://nodejs.org/zh-cn/download/用单片机来玩机器学习图9

安装 edge impulse CLI tool 用来上传资料
通过CMD来安装,位置如下。有的人找不到AppData目录,需要打开win10隐藏文件。
C:\Users\Administrator\AppData\Roaming\npm\node_modules
安装命令是
npm install -g edge-impulse-cli

用单片机来玩机器学习图6

用单片机来玩机器学习图19
安装好的CLI的路径如上。如没装好,需要检查环境变量的设置
用单片机来玩机器学习图20
用单片机来玩机器学习图21

用单片机来玩机器学习图22


把wio的这个按钮连续拨两下
用单片机来玩机器学习图10
这时候你的PC会出现一个arduino盘符

用单片机来玩机器学习图11
打开这个盘符,把wio-terminal -ei-1.4文件拖入盘中,这是硬件厂商官方发布的文件,它内置了一些wio上内置的传感的调用文件。
用单片机来玩机器学习图12



edge impuls ML设置


用单片机来玩机器学习图23
用单片机来玩机器学习图24
要连接wio terminal,需要打开PC的CMD窗口。输入如下命令和你的登陆名与密码
edge-impulse-daemon --clean
用单片机来玩机器学习图25
用单片机来玩机器学习图26
并通过给出的网址,进入edge系统来做ML项目
用单片机来玩机器学习图27
用单片机来玩机器学习图28
设备支持的传感如下
用单片机来玩机器学习图29
edge主界面布局如下
用单片机来玩机器学习图30
用单片机来玩机器学习图31
然后开始取样,样本数据多一点好,不然会因为欠拟合导致精度不够。我这里做测试使用了光感传感来判断石头和布。
用单片机来玩机器学习图32
用单片机来玩机器学习图33
用单片机来玩机器学习图34
用单片机来玩机器学习图35
用单片机来玩机器学习图36
用单片机来玩机器学习图37
代码能力强的,可以看看你的ML项目的代码
用单片机来玩机器学习图38
用单片机来玩机器学习图39
我这里样本只有两笔,导致了欠拟合。精度不够,会在之后的测试中加大样本量看看。后续会持续报告。
用单片机来玩机器学习图40
用单片机来玩机器学习图41接下来汇出库文件,这里Edge把本来python ML项目文件转成了C++文件来给arduino ide使用。让单片机也能玩高大上的东东。
用单片机来玩机器学习图42
用单片机来玩机器学习图43
用单片机来玩机器学习图44
用单片机来玩机器学习图45
用单片机来玩机器学习图46
用单片机来玩机器学习图47
案例文件并不能匹配我们选择的传感的具体功能。例如我这里想要剪刀石头布,然后打开不同颜色的LED。那么需要我们手动添加一些代码。案例提供了我们最讨厌的C++的内容。而我们只需要有ardiuno C的基础。添加获取传感数据的内容和执行其它命令。如下代码给出数据采样的内容。其它内容可根据自己需要添加。需要你有一定的arduino C的代码基础。
  1. int raw_feature_get_data(size_t offset, size_t length, float *out_ptr) {
  2. float features[??]; //这里的??是你的项目采样的频率
  3.   for (byte i = 0; i < ??; i = i + 1)
  4.   {
  5.   features[i]=analogRead(WIO_LIGHT);
  6.   delay(??); //这里的??是你的训练数据时候设置的延迟
  7.   }
  8.   memcpy(out_ptr, features + offset, length * sizeof(float));
  9.   return 0;
复制代码

用单片机来玩机器学习图48
最后烧录到Wio即可。以上是跑通ML的具体步骤,以后会出具体玩转edge ML的实战项目。敬请期待。。。。






wio-terminal-ei-1.4.0.rar

82.22 KB, 下载次数: 2461

ei-handshake-arduino-1.0.2.zip

4.09 MB, 下载次数: 2500

云天  初级技神

发表于 2022-9-3 13:19:48

https://studio.edgeimpulse.com/
大家能访问吗?我之前能访问,这半个月就上不去!
回复

使用道具 举报

gada888  版主
 楼主|

发表于 2022-9-3 14:01:32

云天 发表于 2022-9-3 13:19
https://studio.edgeimpulse.com/
大家能访问吗?我之前能访问,这半个月就上不去! ...

我这边chrome正常访问,要用google chrome浏览器或者微软的edge浏览器
回复

使用道具 举报

云天  初级技神

发表于 2022-9-3 20:14:37

我用电脑google chrome浏览器访问不了,用手机也不行。
回复

使用道具 举报

小企鹅  初级技匠

发表于 2022-9-5 10:10:26

厉害厉害
回复

使用道具 举报

vvjr  见习技师

发表于 2022-9-6 14:17:07

6666666666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail