基于STM32多模式智能视力检测装置的设计
2018-08-27苏一菲余威明
苏一菲 余威明
摘 要:为了方便家长自主检测青少年视力,设计了一款多模式智能视力检测装置。该装置以STM32F103RBT6作为主控制器,结合TFT真彩屏、NRF24L01无线传输模块、VL53L0X激光测距模块,BT06蓝牙模块。该装置具备红外遥控识别、摇杆识别、手势识别多种模式,使视力测试更具趣味性、便捷性和准确性,更适合青少年家用视力检测。
关键词:STM32F103RBT6;视力测试;多模式;无线传输
我国青少年近视率居高不下,并呈现逐年上升的态势。其中,初中生近视发病率已超过30%,高中生近视发病率已超过70%,青少年近视的防治越来越得到了学生、家长及社会的关注。视力测试是医学上反映视力状况的重要手段,家用视力检测一般是在墙壁上挂上视力表,由家长配合孩子检测,这种检测方式较为枯燥,孩子往往存在不配合的现象,家长也不能得到较为准确的视力测试结果,由于医疗资源的紧缺,去专业医院检测耗时耗力。本文提出了的基于STM32多模式智能视力检测装置的设计方案,具备红外遥控识别、摇杆识别、手势识别多个模式,由使用者自主进行视力的测试,在TFT屏上按视力测试规律显示视力图标,并利用软件算法实现了视力的自动诊断。该检测装置还具备视力测试数据的存储功能,以图表形式展示视力变化状况,对视力变化进行长期跟踪;同时可通过蓝牙模块将数据传至手机端,并通过手机的网络传送到远程云端数据库中,为医生提供视力变化的一手数据,在实现视力测试的同时还可以起到预警及远程监护的作用。另外系统还具有坐姿提醒以及照度检测功能。该设计方案功能强大,价格低廉,兼具趣味性和人性化的服务,具有较强的应用推广价值。
一、系统总体设计方案
系统的主要组成部分包括:以STM32F103RBT6 作为控制器的主机,以及向测试主机发送视标方向识别信号的手势识别子机、摇杆识别子机和红外遥控子机,主机与子机通过红外接收模块和NRF24L01无线传输模块进行通信。系统组成框图如图1所示。
二、系统硬件设计
(一)测试主机电路设计
测试主机采用以基于ARM的 Cortex-M3内核的STM32F103RBT6作为主控芯片,用SD卡存储0.1~2.0各组视力图标,EEPROM芯片存储测试的视力数据,采用480×320分辨率高清TFT屏为显示装置,用以显示“E”视力图标、操作界面、视力测试历史数据、实时时间、温度等数据。通过HS0038一体化红外接收头作为红外接收器件,接收红外遥控器发送的38KHZ调制信号,通过STM32利用外部中断对红外信号进行解码,识别出红外遥控子机发出的对应的遥控按键。利用NRF24L01無线传输模块接收摇杆识别子机以及手势识别子机发出的使用者的视标方向判断结果,进行比对,得出视力测试结果。同时可通过BT06蓝牙模块把测试数据传送至手机端,便于进行数据跟踪。另外,还增加了坐姿提醒功能以及照度检测功能。用VL53L0X激光测距模块进行距离测量,当阅读时使用者坐姿不当时,通过WT588D语音模块对其进行坐姿提醒。采用照度传感器TEMT6000检测出环境光照值,对使用者进行照度提示。测试主机硬件结构如图2所示。
(二)红外遥控子机电路设计
红外遥控子机采用的是SC6121红外遥控发射芯片。SC6121是一种用于红外遥控系统中的专用发射集成电路,采用CMOS工艺制造。它可外接32个按键,其中有三组双重按键。红外遥控子机将使用者遥控按键的方向信号编码后发送给测试主机,测试主机通过红外接收电路接收信号,通过测试主机内部的微处理器解码后,识别出使用者的视标方向信号,并与测试主机液晶屏显示的视标进行比对,确定使用者的方向判断是否正确。遥控子机的电路图如图3所示。
(三)摇杆识别子机电路设计
摇杆识别子机采用单片机STC15W404AS作为控制器。使用者的摇杆操作动作通过双轴摇杆传感器模块变换为x、y 方向对应的电压值,STC15W404AS对其进行A/D转换后,进行视标方向识别;并将识别结果通过NRF24L01无线传输模块发送至测试主机。摇杆识别子机电路结构如图4所示。
(四)手势识别子机电路设计
手势识别子机戴在使用者手指上。采用单片机STC15W404AS作为控制器,利用ADXL345 三轴加速度传感器模块识别出使用者的手部向下、向上、左倾、右倾等信息,并将这些动作信息转换为视标的上下左右的四个方向的信号,通过NRF24L01无线传输模块传送给测试主机。测试主机的无线接收电路接收到信号后送给主机控制器进行识别处理。手势识别子机电路结构如图5所示。
三、系统软件设计
本系统主机采用了基于ARM Cortex-M3内核的嵌入式处理器STM32F103RBT6,该处理器内置128KB的FLASH、20KB的SRAM、2个SPI、3个串口、1个USB、1个CAN等通信接口,内置RTC、拥有51个GPIO口,其GPIO口可允许5V电压,CPU工作频率达到了72MHZ,内置2个12位的A/D转换器,3个通用功能的16位定时器[1]。
本系统软件设计主要包括主机视力测试程序、视力测试数据存储、回显以及蓝牙传送程序、红外遥控解码程序、摇杆动作识别程序以及手势识别程序。
(一)主机视力测试程序
以接收到的手势识别子机信号为例,将手势测试信号发送给测试主机后,测试主机通过无线接收电路接收信号,通过测试主机内部的微处理器解码后,识别出使用者的视标方向判断信号,并与测试主机液晶屏显示的视标进行比对,确定使用者的方向判断是否正确。主机视力测试程序的流程图如图6所示。
视标从0.1~2.0共14组,每组有右、下、左、上四个方向图标,共56张视标图片。图片按顺序存入SD卡中,根据存储位置顺序,每张图片有对应的存储编号(index)。为了避免使用者背记方向图标,每个视力点的四个方向的图标将随机出现一个方向的图标。利用ADXL345 三轴加速度传感器模块识别出使用者的手部向下、向上、左倾、右倾等信息,并将这些动作信息转换为视标的上下左右的四个方向的信号,通过NRF24L01无线传输模块传送给测试主机。测试主机的无线接收电路接收到信号后送给主机控制器进行识别处理。并与内部的视力图标的方向进行比较,如手势方向与内部图标方向一致,则视力测试正确,否则测试错误。
(二)测试装置手机端APP和远程云端设计
为了便于家长和医生对青少年视力进行监护追踪,本装置还设计了手机端AAP和医生远程云端管理系统。APP可实现视力测试数据同步、历史数据回看,护眼知识推送的功能。同时还可以通过网络传送至远程云端,进行数据追踪。手机端APP登陆界面如图7所示,云端医生监控显示界面如图8所示。
四、结论
本文提出了一款基于STM32的多模式智能视力检测装置的设计与实现方法,详细介绍了系统的硬件结构和视力测试算法。本装置测试结果准确,采用多模式进行测试,使视力测试更具趣味性、便捷性和准确性,另外提供了坐姿提醒、照度检测、手机端和云端监护的贴心和人性化服务功能,具有良好的应用推广价值。该款视力检测装置已完成了样机的开发,各项功能运行良好。
参考文献:
[1]STMicroelectronics.STM32F103RB数据手册,2009.
[2]宋丹,司夏岩.基于STM32的新型视力仪的设计[J].电脑知识与技术,2017(6):195-196.
[3]吴家耿,林剑萍,余振超.智能儿童视力测试仪[J].数字技术与应用,2018(1):157-158.
[4]魏保立,李秀玲.智能儿童视力测试仪[J].电子制作,2014(4):23-24.
[5]杨光祥,梁华,朱军.STM32单片机原理与工程实践[M].武汉 武汉理工大学出版社,2013(6):235-263.
作者简介:苏一菲(1981—),女,壮族,广西桂林人,硕士,讲师,主要研究方向:工业机器人技术。