步骤1 项目说明
通过移动手部,利用电脑摄像头捕捉手部关键点,进而实现对小车的左转和右转控制。本项目旨在通过简单的手势操作,展示机器学习与物联网技术在实际应用中的结合,激发学习者对人工智能和物联网的兴趣。
步骤2 硬软件说明
编程软件:Mind+(一款基于Scratch的图形化编程软件,适合初学者快速上手)
主控:行空板K10(具备强大的处理能力和丰富的扩展接口)
其他硬件:K10扩展板 + 小车(扩展板需支持两路电机驱动,小车配备两个TT马达)
其他软件:Siot2.0(开源免费的MQTT服务器软件,用于搭建本地物联网环境,下载链接:腾讯微云 https://share.weiyun.com/6SFhgLQj)
步骤3 相关技术
(一)机器学习及PoseNet姿态识别相关
1. 相关概念介绍
Mind+从V1.6.4版本开始加入了机器学习(ML5)功能,基于轻量的TensorFlow框架,旨在帮助广大中小学师生零成本普及人工智能教育。仅需一台电脑和一个普通USB摄像头,即可通过图形化编程完成机器学习课程,涵盖KNN分类、FaceAPI人脸识别追踪、PoseNet姿态识别、mobileNet物体识别等功能。
ML5是一个面向艺术家、创意编码人员和学生的机器学习库,基于TensorFlow.js开发,无需其他外部依赖项,即可在浏览器中访问机器学习算法和模型。PoseNet功能可实现17个人体姿态识别及追踪位置,适用于姿态控制应用。该功能无需联网,仅需一个摄像头即可实现。姿势估计是一种计算机视觉技术,用于检测图像和视频中的人类姿态,确定关键体关节的位置,但无法识别图像中的人员,不存在个人身份信息。
2. 准备工作
准备一台电脑(推荐配置:4GB及以上内存,以确保流畅运行姿态识别程序)。
准备一个摄像头(电脑自带摄像头或USB摄像头均可)。
3. 加载插件
在Mind+的实时模式下,点击“扩展”-“功能模块”,点击“机器学习(ML5)”,加载完成后,机器学习(ML5)积木块将出现在编程界面中,其中包含PoseNet姿态追踪功能。

4. 使用逻辑
PoseNet姿态识别是已经训练好的模型,无需训练过程,直接开启识别即可。

5. 开始识别
编写程序后,点击绿旗执行循环检测。识别结果将显示手部关键点的位置信息。需要注意的是,姿态追踪对电脑性能要求较高,可能会导致电脑运行变卡,建议在性能较好的电脑上运行。

6. 常见问题及解决办法
问题:使用舞台显示摄像头画面时,为什么看不到姿态识别的点位?
解决办法:默认情况下,姿态识别结果显示是关闭的,以避免影响舞台显示效果。需要使用以下积木块打开结果显示功能,舞台才会显示识别结果。

(二)物联网及MQTT相关
1. 相关概念介绍
SIoT是一个针对学校场景的开源免费的MQTT服务器软件,可一键创建本地物联网服务器。它包含一个MQTT服务器、一个数据库和一个网页界面。MQTT服务器负责数据的转发及存储判断,网页界面可用于方便地查看数据或进行简单的程序测试。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种轻量级的消息传输协议,适用于物联网场景中的低带宽、高延迟或不可靠网络环境。

2. 在电脑上运行SIoT
下载Win版本的SIoT V2,解压后双击“start SIoT.bat”启动新版SIoT。启动后会弹出小黑窗显示服务器启动信息。注意:运行的是“start SIoT.bat”,而不是“main.exe”。

启动时需将SIoT添加到允许应用通过防火墙,勾选“专用网络”和“公用网络”,否则外部设备可能无法访问。

在浏览器输入“127.0.0.1:8080”即可打开网页端口,登录账号为“siot”,密码为“dfrobot”。打开后可以新建Topic或查看消息。
如果打开的还是老版页面,可能是之前打开过存在缓存,可以按“Ctrl+F5”强制刷新页面缓存。

如果需要使用其他硬件访问电脑上的SIoT,需确保设备(如esp32掌控板等)可以通过WiFi正常连接运行SIoT的电脑。查找电脑IP地址的方法:在控制面板的网络连接中,找到当前WiFi网络对应的网卡,获取当前电脑IP地址(一般是192.168开头)。然后使用另一个处于同一WiFi网络下的设备,访问“IP:端口”,例如电脑IP为192.168.1.43,则在手机浏览器输入“192.168.1.43:8080”,如果能打开SIoT网页则说明网络通畅,否则需检查是否已将SIoT加入防火墙允许列表以及是否处于同一WiFi网络下。


3. 插件加载

在上传模式中,需添加MQTT插件和WIFI插件。
在实时模式中,只需添加MQTT插件,电脑网卡已实现网络连接。
步骤4 项目制作
(一)SIoT设置
电脑启动SIoT后,在浏览器进入SIoT后台,创建主题(Topic):“消息”。

在此处,可以进行主题删除、清空数据操作,也可以点击“查看详情”查看所有数据。进入“查看详情”后,勾选“自动刷新”,可以查看实时更新的数据。
(二)电脑端设置与程序
1. 实时模式
角色和背景可以参照下图:

2. 程序1(角色小球)
程序逻辑:根据右手腕坐标在舞台的左右位置,广播左右转消息。程序代码如下:

说明:为简单起见,本程序仅实现了左右转功能。理解该程序后,可以进一步拓展,实现前进、后退等更多功能。
3. 程序2(角色箭头)
该角色用于在舞台显示小车运行方向,同时通过程序向K10发送控制信息。程序代码如下:

(三)小车及程序
行空板K10的TF卡需提前准备三张图片(可使用豆包AI生成)。

小车必须配备带两路电机驱动的扩展板,两个TT马达分别连接12、13和14、15电机专用接线端子。

MQTT配置(此处需详细说明MQTT配置的具体参数和步骤)。

步骤5 视频演示
步骤6 项目拓展
1.通过人体关键点识别,可以实现更多样化的小车控制,如前进、后退、停止等。
2.该项目使用的主控是行空板K10,也可以将主控更换为掌控板等其他兼容设备,以满足不同的需求。
3.小车还可添加舵机、传感器等其他电子模块,实现更有趣的拓展功能。
作者公众号
评论