回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

【DF冬季AI挑战赛】基于mind+平台的智能视力检测系统 简单

头像 rzegkly 2020.03.15 1248 0
project-image

一、项目背景

根据世界卫生组织报告,中国近视患者人数有6亿之多,这意味着几乎每两个中国人中就有一人受到近视问题困扰,而我国青少年的近视率高居世界第一。受这次疫情影响,开学时间进行延期,为了不影响学生学习,开展了停课不停学物联网上课的模式,学生可以通过手机、电脑、电视等多渠道进行学习,不仅保障了学生们的安全,还可以让学生们“有学可上”,但是如何保证我们学生视力不受影响,今天分享一个基于mind+平台的智能视力检测项目。

project-image

材料清单

project-image

二、搭建环境

 1、硬件:  micro:bit 

                     micro:bit物联网扩展板

                   HuskyLens 

 2、软件:Mind+_Win_V1.6.2_RC2.0 

                 物联网服务器 SIoT v1.2 

project-image

三、功能原理

1.通过虚谷物联SIOT,在Micro:bit和Mind+建立数据通信.

2.未检测手势时,在Mind+实时模式下随机播放视力表;micro:bit点阵屏显示跳动的心;

3.当哈士奇检测到不同手势的位置,将识别的结果在Micro:bit板led点阵屏上显示.

4.同时,将跟踪到手势信息通过虚谷物联SIOT在Mind+上进行判断和比对.

5.将检测视力结果通过虚谷物联SIOT在micro:IoT的 OLED 屏幕上显示出来。

project-image

四、视频演示

五、哈士奇的手势追踪说明

1.     通过学习哈士奇相关参考资料,我们知道哈士奇屏幕的分辨率是 320×240,屏幕左上角的顶点为屏幕的坐标原点(0, 0),水平向右方向为 X 轴正方向,竖直向下方向为 Y 轴正方向,因此屏幕右下角的坐标为(320, 240)。为了便于理解,我们将下图中哈士奇屏幕上的信息剥离出来,抽象成下图的几何数学模型, 这有助于我们了解彩色方框的坐标值。

project-image

2.下图黄色区域为哈士奇摄像头“看到”的手势位置提供一个依据。

当手触动在屏幕区域(80.20)--(200.20)和(80, 70)--(200, 70)之间,哈士奇发现手在摄像头屏幕的上方;

当手触动在屏幕区域(20.80)--(70.80)和(20.140)--( 70.140)之间,哈士奇发现手在摄像头屏幕的右方;

当手触动在屏幕区域(80.150)--(200.150)和(80, 220)--(200, 220)之间,哈士奇发现手在摄像头屏幕的下方;

当手触动在屏幕区域(220.80)--(290.80)和(220.140)--( 290.140)之间,哈士奇发现手在摄像头屏幕的左方;

project-image

说明:

1.在哈士奇手势追踪模式下,我们把屏幕划分四个区域,定位手势在屏幕区域的位置 ;

2.当哈士奇识别学过的物体时,在屏幕上会有蓝色方框将其框选,屏幕方框随手势位置而改变;

3.当哈士奇发现手势出现上图黄色区域时,方向信息传递给bit,发出相关指令,实现物体跟踪的目的。

六、建立SIOT物联网服务器

project-image

1、运行虚谷物联SIOT 服务器记住本机电脑IP地址,在本电脑上打开http://127.0.0.1:8080/html,账号:siot 密码:dfrobot 登陆SIOT服务器。

project-image

2、当micro:bit IoT扩展板接通电源,当联网指示灯led绿灯亮,说明正常接入siot网络,bit板的LED发出“对号图案”,hello发送服务器rzegkly/shili主题topic0,网络连接成功。


project-image

3、当接受到microbit主板发过来topic0主题信息,在实时模式Mind+进行手势方向比对 。视力检测结果通过topic1返回给microbit主板上显示出来。

project-image

七、Mind+编程

步骤1 Micro:bit编程环境配置

1.通过数据线连接micro:bit和计算机,用管理员模式打开Mind+1.6.2,将Mind+切换为“上传模式”下,连接设备,选择串口com19

project-image

2、扩展模块中,添加主控板:micro:bit;扩展板:物联网microbitIoT,传感器:HuskyLens AI摄像头

project-image
project-image
project-image

步骤2 哈士奇识别手势坐标位置

project-image

1.上电后,将二哈切换到物体识别模式,伸出手势放在哈士奇屏幕前,一个黄色的矩形框瞄准,按下学习按键 ,显示黄色方框正在学习,松开按钮完成学习,显示蓝色方框和物体ID1。(如果效果不理想,再次按下学习按键,进入遗忘信息界面,之前学习的内容全部清空,重新识别。 )


project-image

2.通过mind+程序,检测串口输出识别方框中心的X,Y坐标,对屏幕坐标认识。

说明:哈士奇物体跟踪效果很满意时,长按“功能按键”,进入物体识别功能的二级菜单参数设置界面,向右拨动“功能按键”关闭“学习多个”的开关,再短按“功能按键”,保存并返回物体跟踪界面,如果不关,受到光线或其他物体的干扰 ,影响物体跟踪的效果。

project-image

步骤3 micro:bit编程

project-image

1.在micro:IoT初始程序相关参数,当micro:bit的点阵屏显示“对号”,MQTT物联网连接成功!,在OLED 屏幕显示:micro:IoT 智能视力检测系统。

project-image

2.哈士奇检测到手势出现在屏幕的四个区域时,发出上、下、左、右四个方向消息到Topic0:rzegkly/shili,同时,在bit的点阵屏显示不同手势方向。

project-image

3.在Mind+实时模式,对手势和视力表进行比对,将检测到的视力结果通过虚谷物联siot的 Topic1:rzegkly视力级别,在micro:IOT板子上OLED 屏幕显示。

说明:由于扩展板micro:IOT没有清空命令,所以使用显示文字块中“空白”实时清空第4行文字内容。

project-image

步骤4 Mind+实时模式环境配置

project-image

1.用管理员模式打开Mind+1.6.2,将Mind+切换为“实时模式”下;

project-image
project-image
project-image

2.在背景库里添加logo背景,在角色库中分别添加小麦和视力表两个角色.

project-image
project-image

3.在Mind+扩展模块中,功能模块:添加文字朗读,网络模块:添加MQTT模块;

步骤5 Mind+视力表程序编写

1.编写视力表角色脚本——初始相关参数

程序启动后,初始相关变量参数,在Mind+左侧网络服务模块,设置物联网平台:SIOT ,服务器地址:192.168.0.103,账号:siot ;密码:dfrobot 接受bit发送过来的手势信息主题1:rzegkly/shili ;发送给bit检测视力结果信息给主题2:rzgekly/视力级别。

project-image

2.编写视力表角色脚本——添加初始化视力表和初始化视力方向系数

由于视力表中从0.1至2.0一共设定了11个级别,每个级别中我们按照开口次序准备了4张图片,我们的视力表角色编号是依次为1-44,对应视力表列表0.1--0.4;方向列表存储了四个方向,第1个是上,第4个是右,与角色视力表图片命名顺序完全一致!

project-image

3.编写视力表角色脚本——接收手势数据

当接收到物联网哈士奇识别到手势MQTT信息,由于接收手势信息是一个事件程序,会不停接收主题topic0中信息!

如果有信息传递,必须将收到数据赋值给手势方向变量,将结果存储下来。这数据才能在程序之间相互调用。

将显示变量图标赋值为1,为显示视力表中图片准备。


project-image

4.编写视力表角色脚本——显示图片

当显示变量为1时,开始随机播放不同开口方向的视力表

图片显示的规律是:(系数-1)×4+(1-4间的一个随机数),这个随机数只决定视力表开口朝向,不决定级别。

project-image

5.编写视力表角色脚本——处理图片

将收到手势方向与角色视力表开口方向进行比对,如果相等,文字朗读“ 正确“,正确次数加1,发送广播给Mind+,不相等,错误次数加1,发送广播给Mind+,文字朗读“ 错误“。 注意每次比对结束后,都要将手势方向变量 结果清0,等待接收下一次手势数据。


project-image

6.编写视力表角色脚本——反馈信息

测试视力结束包括两种情况,一是完成了12级要退出,二是错误次数超过3次以上要退出,发出广播end给Mind+

这里我们用到了视力系数列表11个等级(0.1- 2.0),因为如每一个级别中有4幅图片,答对3次进入下1个等级,视力系数累加1,所以完成12级后,视力系数就会变成13,所以播报结果时当前视力系数-1。如果用户累计答错2次,也要退出程序。

project-image
project-image

7.编写Mind+角色脚本

当接受广播小麦正确或者小麦错误时,让我们看到当前随机视力表开口方向,

当接受广播end时,将视力检测结果通过topic1返回给micro:IOT主板上显示出来!,进而实现人机互动的目的。


project-image

八、知识拓展

micro:IoT 物联网扩展板

1. micro:IoT扩展板在集成了WIFI物联网模块、OLED屏,方便数据的更新;

2.两路电机驱动、6路IO口、2路I2C、1路串口、1路蜂鸣器、3路RGB灯,编程资源丰富;

3.锂电池盒、充电电路、应急电源接口等众多功能。在供电上选用容量为1000mA的CR123A 3.6V可充电锂电池;

4.在电路上还专门设计了短路保护和防反接保护,更加完善了使用的安全。

5.产品支持makecode图形化编程和Mind+图形化编程两大平台。


project-image

九、参考案例

1.视力智能检测系统https://mc.dfrobot.com.cn/thread-302570-1-1.html

2. 写给小学生看的视觉PID巡线算法https://mc.dfrobot.com.cn/thread-300508-1-1.html

3.Huskylens|麦昆+二哈,都是追梦人_简易版 https://mc.dfrobot.com.cn/thread-300508-1-1.html

4.Mind+官方教程:https://mindplus.dfrobot.com.cn/

5.HUSKYLENS官方介绍:https://www.dfrobot.com.cn/goods-2050.html

评论

user-avatar