神经翻译局 发表于 2025-3-6 10:58:14

行空板 K10 AI传感器-手势魔法棒

本帖最后由 神经翻译局 于 2025-3-6 12:15 编辑

行空板 K10手势魔法棒项目将Edge Impulse训练的AI模型部署到行空板 K10上。该项目使用K10的板载加速度计进行模型训练和推断,并使用ESP NOW在多个行空板 K10之间进行通信。


Edge Impulse是一个公开可用的AI模型训练平台,允许用户从串行端口发送数据到PC,然后使用Edge Impulse提供的edge impulse cli工具将串行数据转发到Edge Impulse平台。

- 注册:Edge Impulse]https://edgeimpulse.com/]Edge Impulse
- 下载:https://www.python.org
- 下载:https://nodejs.or

以管理员身份打开powershell。



输入“npm install -g edge-impulse-cli --force”安装edge impulse cli工具。
为了将传感器数据上传到K10进行训练,需要向K10上传一个数据转发代码。
打开powershell,然后输入以下命令将行空板 K10的数据转发到Edge Impulse:
edge-impulse-data-forwarder --frequency 100

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/458de46a0e2365987508ae3163f70a38.png

输入你的EdgeImpulse账号,为你的魔法棒命名,最后给上面代码输出的五个变量各取一个不同的变量名,这里我命名为k,x,y,z,v。

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/d17db02dcddf7e9f5913452b56f399df.png

登录到你的Edge Impulse账户,选择你的数据收集设备:

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/4609e1c43a364ef6e1afbd1359ef9389.png


选择数据采集部分,填入动作传感器数据的标签,并选择2000ms为采样持续时间开始采样。
然后我们来到整个项目中最关键的一步,数据收集。

点击开始采样后,你有2秒钟的时间挥动手中的行空板 K10。
你可以挥动行空板 K10画圈、画三角形、画正方形等。并且你需要确保在挥动前,同一类型的动作有相同的标签。

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/b8041f1ad3fb1cd002aa5472f0a52994.png

强烈建议你在训练数据和测试数据集中收集足够的数据。Edge Impulse将使用训练数据进行训练,并将测试数据代入模型进行验证。

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/0921cdae3ca4e7ac486fd8c9ffc3266c.png

收集数据后,你可以去“创建冲击”设置特征值采集窗口的大小和频率。

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/b1b1f00a8c02afb25f4c698dd4d9c11c.png

特征值可以如下图所示生成

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/2a4ac2edeb49bfdcaadc2bdab0617a26.pnghttps://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/94515d981c7eccb1c42c7dc1342432c1.png


接下来,你可以进入“分类器”进行模型训练,你可以设置训练周期的次数,这里我设置了100次,然后选择模型版本,float32模型会稍大一些,但准确度会提高很多。

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/e9e411c0f3e782543d5cdf2b10d6d197.png

训练完成后,你可以在右边看到训练模型的准确度 这种精度是通过使用我们之前收集的测试数据集替换模型进行验证的。

一旦对准确性感到满意,我们可以导出模型并部署它。
点击进入部署。选择Arduino库,TensorFlow Lite,然后构建。

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/867483ddd421b521d52a143cdfba7e52.png

下载一个Arduino库。

下载库后,将其复制到Arduino IDE 1.8.19的库文件夹并解压缩。然后将conv.cpp和depthwise_conv.cpp复制到以下路径的库中
src→edge-impulse-sdk→tensorflow→lite→micro→kernels

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/a21b3ac6a66275244acc3018afcd15cf.png

然后将以下代码上传到魔法棒。

由于涉及到Edge Impulse模型,这段代码的编译需要很长时间,大约40分钟左右。

构建所需要的库文件也在下方附上。

同时,Magic Wand K10的屏幕会显示一些图片,也放置在TrasmitterPic文件夹中。
上传代码后,请按照显示的图片安装按钮和WS2812 LED灯条。

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/4f107ce1ffe2c8e677928100e98dc86a.png
HAT K10接受ESPNOW消息并驱动WS2812 LED灯条以及继电器。继电器控制对伺服器的电源,我购买的帽子中的伺服器一旦通电就会开始移动。

如果你购买的帽子伺服器需要PWM信号或其他信号驱动,你可能需要适当地修改下面的代码。

将行空板 K10连接到你的继电器模块,并使用COM/NA来开关你的HAT电机。

https://dfimg.dfrobot.com/63158dbfaa9508d63a425e17/community/0c1dbd53ada132615a45c59f4b460b4c.png
3D打印一个魔法棒设备来安装行空板 K10,魔法棒设备的背面有一个盖子,可以用来安装CR123A电池盒。盖子可以配有磁铁,以使电池舱磁化。



zoey不种土豆 发表于 2025-3-6 13:42:52

{:6_213:}

hnyzcj 发表于 2025-3-6 20:21:37

{:5_121:}
页: [1]
查看完整版本: 行空板 K10 AI传感器-手势魔法棒