查看: 276|回复: 2

可以让医生休息的自助视力检测系统

[复制链接]
微信图片_20200310175501.jpg
设计思路
        最近一个月都在网上讲课,眼睛干涩还特别痒,相信因为疫情的原因,很多小朋友也是一直在上网课,经常看电子设备肯定不免对小朋友的视力有所影响,就回想起了春节期间df社区有一位老师做了一个视力检测的系统,然后联想起了自己上学时体检时检测视力的场景,要用一只手遮住眼睛看视力表的那种,跟前还得有一个医生拿着指挥棒给你指着,突然就萌生了一种想法,开发一种自助检测视力的装置,可以让医生去休息了,然后就有了今天这个作品,利用掌控板,mu摄像头,siot物联网制作的可以让医生休息的自助视力检测系统,等下再来详细介绍,我们先看一下视频:
ps:估计很多人会有疑问,怎么会有那么多五花八门的硬件啊,其实做创客的和女生买衣服一样,不管东西有没有用先买回来再说,说不定哪天能把它用起来就很开心,相信很多创客有同样的感受,哈哈哈哈
本次作品电脑端为模拟的医生跟前的视力表,掌控板和mu视觉传感器,为离视力表5米远的检测装置,通过siot物联网进行通信,达到检测视力的效果,由于拍摄原因,放置的比较近,其实距离可以根据需求放置
器材清单
掌控板*1
百灵鸽扩展板*1
mu视觉传感器*1
nano扩展板*1(等一下就知道为什么用nano扩展了)
usb转串口下载线*1
微信图片_202003101755011.jpg
微信图片_202003101755012.jpg
制作流程
step1:调试mu视觉传感器,更新固件,环境光检测,接近检测,手势检测
step2 :手势检测内容在掌控板显示,掌控板收到手势信号发送至siot物联网
step3:准备标准的视力检测表,编写视力表切换的程序,正确显示视力数据并能连入siot物联网
准备工作
了解siot物联网,mu视觉传感器的新功能
siot
siot相信很多人不陌生,也可以参考上一篇文章的介绍,链接如下
https://mp.weixin.qq.com/s/vgd326PSBxm81AQMQvhSPw
SIoT是一个为中小学STEM教育定制的跨平台的开源MQTT服务器程序,S指科学(Science)、简单(Simple)的意思。SIoT重点关注物联网数据的收集和导出,是采集科学数据的最好选择之一
微信图片_202003101755013.jpg
SIoT软件下载可以到文末获取地址
1、打开电脑浏览器,在网址栏输入获得的IP地址加上“:8080”,如:192.168.31.89:8080
需在在英文输入法下
2、点击键盘enter键,打开即为SIoT网页端,如下图:
微信图片_202003101755014.jpg
账号:siot
密码:dfrobot
输入账号、密码后,点击“登陆”,登陆后页面如下:
* SIoT网页端账号、密码都是统一的
点击设备列表和查看消息就可以看到联网的设备和发送的数据了
微信图片_202003101755015.jpg
mu视觉传感器
微信图片_202003101755016.jpg
mu视觉传感器更新了新的版本固件, 增加了新的环境光检测,接近检测,和手势检测,首先需要先更新一些最新的固件,接下来是固件更新的方法
固件在mu网站可以下载,文末也会提供下载链接:
mu还有图传功能也很好玩,可以试一下朱老师的这个教程
https://mc.dfrobot.com.cn/thread-298613-1-1.html
新增wifi图传功能,Output拨码开关设置为11,连接MU后,在浏览器中输入网址192.168.4.1查看图像
mu拨码开关的设置如下图,可以参考
微信图片_202003101755017.jpg
注意事项
1、确认串口的端口号是否正确;
2、mu要进入烧写模式 :按住左侧的mode键,然后点一下右边的reset键,再松开mode键
双击打开刷固件程序flash3.6.5,这个版本能够成功,太高的版本容易失败,已经翻过车了,软件在文末提供下载
微信图片_202003101755018.jpg
点击esp32
微信图片_202003101755019.jpg
选择最新的115版本的固件,文末提供下载,也可以到官网下载,选项可以按图所示选对
微信图片_2020031017550110.jpg
微信图片_2020031017550111.jpg
微信图片_2020031017550112.jpg
第一次上传失败的原因是flash3.6.8版本太高,和工程师反馈后更换为3.6.5的才可以成功
微信图片_2020031017550113.jpg
微信图片_2020031017550114.jpg
微信图片_2020031017550115.jpg
出现进度条等待烧录完成就可以愉快的玩耍了
视力表准备
标准视力表根据测量距离和测量功能分为近视力表和远视力表,近视力表测量距离为25厘米,测的是近视力;远视力表测量距离为5米,测的是远视力,大家最熟悉也是最常用的是远视力表
所用视力表主要检查的是中心视力,即检查视网膜黄斑区中心凹视敏度,从而可简单迅速地了解到视功能的初步情况,对眼病的临床诊断治疗都有重要的意义。检查视力一般分为远视力和近视力两类,远视力多采用国际标准视力表,此表为12行大小不同开口方向各异的“E”字所组成;测量从0.1-1.5(或从4.0-5.2);每行有标号。
微信图片_2020031017550116.jpg
下图为网络搜索到的“E”的尺寸,得知最小的“E”的宽度大概是3.6毫米,缺口的宽度为0.727毫米
微信图片_2020031017550117.jpg
经过搜索资料,发现下图为视力对应的‘E’图标的大小,由上图得知最小的“E”为3.6毫米,那么如果用最小的“E”乘以下图的倍数就可以得知每一个不同大小的“E”的尺寸例如最大的“E”为3.6mm*21.817,如果将这些倍数加入到列表中每次只需要读取列表的数值就可以知道‘E’的大小了
微信图片_2020031017550118.jpg
有了思路我们就来先设计第一个“E”,这里使用的cad设计的,当然你也可以用其他的画图软件,然后导出jpg图片,具体操作可以参考下面链接
https://jingyan.baidu.com/article/e2284b2b8431d2e2e6118da6.html?from=singlemessage&isappinstalled=0
微信图片_2020031017550119.jpg
点击打印
微信图片_2020031017550120.jpg
选择输出为JPG格式
微信图片_2020031017550121.jpg
利用电脑上的画图软件调整大小为3635*3635的像素,然后导入到mind+中就可以进行等比例缩小了
微信图片_2020031017550122.jpg
导入到mind+中,可以利用角色大小模块进行随意调整了
微信图片_2020031017550123.jpg
特别声明,本次的视力表制作可能存在些许误差,不可当做真正的视力表使用,仅供参考
程序编写
本次作品程序在文末有下载地址
掌控板端程序
首先尝试mu固件的新功能,环境光检测,部署硬件扩展如下
点击mind+软件的扩展,选择主控板为掌控板
微信图片_2020031017550124.jpg
点击网络服务选择wifi和MQTT
微信图片_2020031017550125.jpg
点击传感器选择视觉识别摄像头
微信图片_2020031017550126.jpg
本次主要用到mu的新功能模块如下图
微信图片_2020031017550127.jpg
先来尝试接近检测的数据,程序如下图,结果屏幕会显示物体接近视觉传感器后的数值

微信图片_2020031017550129.jpg
测试成功,接下来测试手势识别的功能,测试程序如下
微信图片_2020031017550130.jpg
手势识别在这里翻车了,环境光和接近检测测试都正常,但手势是没有数据反馈的,后来和mu 的工程师进行了沟通得知程序没有错误,是手势识别的功率比较大,需要5V供电,由于百灵鸽的扩展板不提供5V电压,所以只好把手头上的nano扩展板拿来救急,nano扩展有提供3.3V和5V的电压,正好可以使用,同时还要注意的地方是,mu视觉传感器和掌控板分开供电,两者还要共地才能正常使用,就是把gnd接在一起,当然你有其他的电源也可以使用的

微信图片_2020031017550131.jpg

微信图片_2020031017550132.jpg
微信图片_2020031017550133.jpg
测试成功,接下来我们编写完整的手势识别的程序,这时候需要部署MQTT了,如下图
这里用到了3个主题,topic0(shili/a)为电脑端控制切换视力表“E”,topic1(shili/b)为电脑端接收手势传递的信息,判断识别正确与否,topic2(shili/c)为掌控板接收检测结束后的视力信息,并显示在OLED屏幕上
微信图片_2020031017550134.jpg
程序解释,当检测到手势信号时,屏幕显示上下左右的内容,并向siot topic1发送信号(也就是电脑端),topic1电脑端接收到传递的信息作出判断,给出结果,同时向topcic0发送信息,再切换一个视力表‘E’,检测的顺序为从视力表的最上方到最下方,最小的一个视力图检测完毕给出视力等级,如果中途识别错误,也会给出视力等级并结束本次视力测试
微信图片_2020031017550135.jpg
微信图片_2020031017550136.jpg
mind+视力图表端程序
首先mind+启动选择实时模式,点击扩展选择网络服务MQTT
微信图片_2020031017550137.jpg
然后部署一下MQTT的内容,如下图:
微信图片_2020031017550138.jpg
下面是视力表E的程序
微信图片_2020031017550139.jpg
这里设置了三个列表,符号大小列表为视力表图标“E”的角色大小,调用列表中的数值进行切换,方向列表为图标“E”缺口的朝向,视力列表为检测结束后的视力等级,和符号大小列表中的数值是一一对应的,在哪一个的图标“E”处结束的,视力就输出相对应的视力等级
这里还发现了mind+的一个bug,就是,列表的名字定义好以后好后再重命名舞台中列表的名字不会跟着修改,希望工程师能看到,进行修复,在下图中有标注出来
微信图片_2020031017550140.jpg
微信图片_2020031017550141.jpg
程序解释,如果接收到掌控板发来的手势识别信息,随后进行判断,如果信息和现在图标“E”的方向一致,表明识别正确,接下来向topic0发送消息,然后再切换一个图标“E”,如果掌控板发来的信息和现在图标“E”的方向不一致,表明识别错误,广播消息1,停止这个脚本,并将视力等级进行显示
微信图片_2020031017550142.jpg
bug如下图
微信图片_2020031017550143.jpg
下面是人偶角色的程序
程序解释,人偶负责,在最后传递向掌控板传递信息,掌控板接收到信息后屏幕显示视力等级
微信图片_2020031017550144.jpg
shi/b是topic1,接收“E”的缺口方向信息
微信图片_2020031017550145.jpg
shi/c是topic2,接收最终的视力等级信息
微信图片_2020031017550146.jpg
微信图片_2020031017550147.jpg
微信图片_2020031017550148.jpg

微信图片_2020031017550149.jpg
总结
        本次作品可以改善的地方还是有很多,比方说等复工了以后可以设计一个结构件,让装置变得更加美观,本次视力检测采用的是掌控板1.0,,如果是掌控板2.0的话还可以利用语音识别的模式,可以对被测者的手势和语音进行判断,会更加的有趣,甚至不单单是视力检测,视觉传感器加掌控板可能还会有更多的创意,大家可能还会有很多奇妙的想法,不妨你也来试一试哦,造物让生活更美好,欢迎一起交流

文末彩蛋
点击旺仔爸爸造物社公众号回复“视力”两个字可以获取本次作品的所有资料哦,

或者也可以联系         旺仔爸爸18752544995



DFrJ5KYVQaH  初级技匠

发表于 2020-3-11 07:49:52

不错,好的创意,好的制作
回复

使用道具 举报

Mr Guo  初级技匠
 楼主|

发表于 2020-3-12 14:27:03

DFrJ5KYVQaH 发表于 2020-3-11 07:49
不错,好的创意,好的制作

谢谢鼓励,一起加油
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail