基于stm32单片机的智能导盲系统设计_第1页
基于stm32单片机的智能导盲系统设计_第2页
基于stm32单片机的智能导盲系统设计_第3页
基于stm32单片机的智能导盲系统设计_第4页
基于stm32单片机的智能导盲系统设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

[13]等,部分研究机构和公司也推出了结合GPS导航和无线通信等技术的高端智能导盲杖REF_Ref193902340\r\h\#"[0"[14-REF_Ref193902343\r\h\#"0]"15],这些导盲杖能帮盲人避开障碍物,还可以提供精确的定位和路径规划,国际上一些导盲杖产品还引入了机器学习算法,借助持续学习和优化盲人的行走路径,提高了导航的精确度和个性化服务。依据市场调研得知,国外智能导盲杖在价格、普及程度以及社会接受的认可度等方面存在挑战,高精度传感器与复杂计算模型使得这些设备价格偏高,而且需要盲人有一定的技术适应水平和使用方法,这在一定程度上限制了其普及,未来,随着传感器技术、人工智能算法、无线通信技术等的发展,智能导盲杖有希望实现更精确、高效、个性化的辅助服务,提升盲人的生活品质和社会参与度。主要研究内容此智能导盲系统综合了超声波测距、光照检测、加速度传感器、GPS定位还有GSM通信模块等多种技术,目的是为盲人供给一个高效、安全、智能的生活辅助对象,以下会把本课题的设计思路和研究内容进行详细说明。智能导盲杖运用超声波测距模块实现前方障碍物的实时检测,超声波测距技术可发射声波,接着接收反射波,计算障碍物与导盲杖之间的距离,进而给盲人提供周围障碍物的实时资讯,为了把其智能化水平提高,当障碍物靠得十分近时,系统不只借助蜂鸣器发出提醒声音,提醒盲人及时闪躲,还借助语音播报功能,实时给盲人传达周边障碍物的方位信息,进一步辅助盲人找准前进的方向,以语音进行提示的功能,结合对盲人与障碍物相对位置的判定,可以顺利引导盲人调整前进路线,提升盲人在道路上行走的安全性。伴随夜间出行需求的增长,光照强度监测功能的重要性十分显著,本设计采用了光敏电阻传感器来感知所处环境的光照强度,要是环境光线降低到过低时,导盲杖会自动把照明灯打开,给出必需的照明,系统也借助语音功能,提醒盲人留意周边的行人或车辆,保证在光线欠佳的情况下,盲人尽量避免跟外界发生矛盾冲突,该功能极大提升了盲人在复杂或昏暗环境里的安全保障能力。本设计的一个重要安全保障是跌倒监测功能,采用三轴加速度传感器,系统可实时确认盲人是否出现摔倒等紧急情形,若加速度传感器监测到异常的加速度变化,系统会马上启动GPS模块得到当前位置的经纬度详情,再通过GSM模块发出求救的短信,该功能极大提高了盲人应对突发事故时的自救本领,同样可及时向亲友或救援机构发送求救的讯息,提供帮助。智能导盲杖还额外设置了求救按钮,盲人只要按一下按钮,便可主动发送求救信号,按下按键之后,GSM模块将向预设的电话号码发送带有求救信号以及此刻GPS位置的短信,该功能为盲人补充了额外的紧急求助形式,尤其是在没有外界支援的情形下,可为盲人实时给出援助信息。除了这些主要功能外,本设计也顾及了用户的个性化需求,凭借设置按键模块,用户能按照自己实际的需求,调节超声波测距的阈值以及光照强度的敏感度,盲人可按照自己一贯的使用习惯和需求,定制导盲杖的工作模式,提升使用的便捷性与灵活性。OLED液晶显示屏实现了检测数据的可视化展示,盲人虽无法直接对屏幕上的信息进行查看,但能借助语音播报功能获取相应的数值反馈,诸如障碍物的距离与光照强度等,这些信息的展示不仅能助力盲人在日常使用时知晓当前环境,还可给出实时的反馈内容,便于迅速调整行进方案。借助STM32单片机实现的智能导盲杖,整合了超声波测距、光照感应、加速度传感、GPS定位和GSM通信等一系列先进技术,拥有障碍物探测、跌倒监测、光照自动调整和紧急求救等多项智能功能,它不仅明显提高了盲人在出行方面的安全性,还能辅助他们在不同环境当中更自如地走动,随着技术不停进步和优化,未来的智能导盲杖会进一步智能化、个性化,为更多盲人打造更便捷、安全的生活情形。

系统总体设计方案需求分析该系统软件架构主要由初始化模块、功能处理单元以及串口通信接口三部分所组成,系统启动伊始,首先去完成各功能模块的初始化配置,用户能借助按键交互界面去设置关键参数,有安全距离阈值与环境光强度限定值等相关参数,实时信息借助OLED显示屏实现可视化展示,同时结合了GPS定位功能。为实现远程通讯的需求,系统采用GSM模块以支持短信收发跟语音通话功能,就安全监测这一领域而言,选用DA213B三轴加速度传感器达成跌倒行为识别,此传感器采集到的数据经过智能算法处理完毕后,可进一步拓展到多种辅助设备开发应用范畴,本研究在增进视障人士生活自主性方面呈现出显著的实际应用价值。总体设计架构本系统采用STM32F103C8T6作为系统的主控芯片,利用HC-SR04超声波传感器实现对障碍物距离的检测工作,为使夜间出行有安全保障,系统添加了光敏传感模块,可按照环境光照强度自动管控LED补光装置,就安全监测这方面而言,以高精度DA213B加速度传感器进行跌倒行为识别,还与GPS定位模块结合实时获取位置资讯,当探测到紧急情形或跌倒事件时,系统将借助SIM800通信模块给预设联系人发送报警短信,完成及时的远程预警成效。1、电路供电部分:整个电路基本工作电压为5V,单片机烧写程序可通过STINKV2下载器进行下载。2、人机交互。通过SIM800模块,将单片机和手机进行短信通信,手机上可以显示采集到的心率体温、是否跌倒和经纬度信息。3、信号处理。STM32F103C8T6单片机作为CPU,进行数据的采样以及分析运算。4、数据采集。使用HC-SR04超声波进行数据采集,DA213B进行老人跌倒检测,光敏光线采集判断,GPS定位。5、数据展示。在经过运算之后,通过设备上的OLED液晶显示屏可以得到当前测试,测量方法如图2.1所示,当前方有障碍物时,超声波传感器会发出并接收回波信号,通过测量回波的时间来计算物体与传感器之间的距离。具体数据如图2.2所示:图中显示屏第一行Dis为与障碍物的距离(单位为厘米),10指与障碍物的实际距离,5指设定的与障碍物之间的阈值,当实际距离小于阈值时会发出警报;第二行L指光照强度,光照强度越弱所显示的值就会越大,二者呈反比关系,图中462指实际光强,2500指设定的光照强度阈值,当实际光强大于设定的阈值时就会开启灯光。第三行和第四行分别显示经纬度,图中显示为东经114.3826,以及北纬36.0870。图2.1超声波传感器测距展示图2.2显示屏数据展示

系统功能模块设计系统硬件原理图本系统采用STM32F103C8T6作为系统的主控芯片,包括了电路供电、光照采集模块、显示模块、加速度传感器模块、声音模块、GMS模块、超声波模块、GPS模块,系统硬件电路原理图如图3.1所示。图3.1系统硬件原理图STM32单片机介绍单片机最小系统是能保障单片机正常运行、完成其基本功能的微型计算机系统,作为集成在一起的控制核心,该系统除了有中央处理器之外,还集成了所需的输入输出模块、定时计数单元以及通信接口等核心组件,从技术架构的维度看,现代单片机已经发展到相当成熟的水平,但该基础系统依旧坚守着精简的设计理念,本文重点对单片机最小系统的基本构成及其工作原理进行探讨。STM32F103C8T6单片机如图3.2所示。图3.2单片机最小系统框主要功能模块电路图电源电路设计电源电路设计是智能导盲杖系统里极为要紧的组成部分,承担为系统供应稳定电压以及充足电流的工作,本设计采用了DC-DC升压的这类模块,把外部输入的5V直流电压提高成所需的3.3V和12V电压,以满足32单片机及其他像超声波传感器、电机驱动模块等外设实现工作的需求,该模块凭借USB接口连接外部电源适配器或移动电源,赋予稳定的5V电压,然后经升压电路转换成所需的输出电压,为让输出电压维持稳定水平,电源电路合理配置了电容器进去,降低电流的起伏,保障系统稳定地开展运行。在电源电路设计相关工作中,5V100μF电容器实现了滤波、去噪与稳压的多重用途,因为电源输入端(像USB接口)或许存在电压波动或噪声,5V100μF电容器可对这些波动起到平滑作用,给予更安定的电压,减少高频噪声、瞬时电压波动对系统中敏感电路(如单片机和传感器)产生的干扰,加强系统整体稳定性。要是系统负载出现了变动,电容器凭借储存电荷有效缓冲电流的改变,维持电压的稳定水平,防止系统因电压波动而出现重启以及错误操作,电源电路的过压、过流保护设计及低电压报警系统,进一步改善了电源的安全性与可靠性,保障系统能持续稳定地为智能导盲杖给予电力支持。电源电路设计如图3.3所示。图3.3电源电路图定位柱电路设计在电路当中运用了四个定位柱,分别是H1、H2、H3以及H4,这些定位柱借助连接到地也就是GND的方式来达成定位的功能,每一个定位柱所有的电路结构是比较相似的,所有定位柱的其中一个端口连接到地,而另一个端口是凭借固定孔来进行连接的,以此来保障机械部件处于正确的位置并且有稳定性。这样的设计可帮助达成精确的组件定位,一般会应用在电路板或者是其他有着精确定位需求的系统当中,定位柱电路的设计情况如图3.4所示。图3.4定位柱电路图超声波测距传感器设计HC-SR04超声波测距传感器借助4个引脚和STM32F103C8T6单片机相连,传感器的VCC也就是引脚1和5V电源相接,给超声波模块供应工作所需电压,GND即引脚4接地,保障电路正常运行,HC-SR04模块经PA6即引脚2和PA7即引脚3与单片机开展数据传输。PA6负责发送超声波信号的触发信号,而PA7接收从物体反射回来的回波信号,这样的配置让STM32可操控超声波传感器并接收回波信号,借助测量回波的时间算出物体与传感器之间的距离。超声波测距传感器的工作原理是发射超声波并计算回波时间,以此确定物体的距离。在设计里,PA6和PA7与STM32F103C8T6的GPIO引脚相连,STM32依靠编程控制这些引脚状态,发送触发信号并接收回波信号,测距结果可用于智能导盲杖的障碍物检测功能,帮助用户在移动时避免碰撞,该传感器实时测量前方障碍物距离,把检测到的距离数据传输给STM32,再借助算法判断有无障碍物并给出警示反馈,保障用户安全。电路设计考虑了电源电压要求,HC-SR04模块一般在5V电压下工作,而STM32单片机在3.3V环境中工作,PA6和PA7引脚的电平转换要保证信号的兼容性与稳定性,凭借精确的超声波测距,导盲杖能有效识别障碍物的存在,优化用户的行走路径,超声波测距传感器设计如图3.5所示。图3.5超声波测距传感器OLED显示屏电路设计在智能导盲杖的设计工作当中,OLED显示屏被运用来呈现传感器的测量结果以及系统的状态信息,按照电路设计的相关要求,OLED显示屏一般会采用I2C或者SPI通信协议与STM32F103C8T6单片机进行连接,显示屏的VCC引脚连接至3.3V电源,以此为OLED屏给予稳定的电压,保证屏幕可正常显示。GND引脚接地,作为电路的地参考标准,OLED的SCL和SDA引脚分别连接到STM32对应的I2C引脚,其中SCL用于时钟信号的传输,SDA用于数据的传输工作,为了保证数据通信的稳定性,一般会在SCL和SDA引脚上配置适宜的上拉电阻,这些引脚的电连接使得STM32单片机可借助I2C协议与OLED显示屏开展数据交互,达成信息的实时更新与显示。OLED显示屏的功能是向用户提供直观的反馈信息,囊括障碍物距离、导盲杖的当前状态、系统提示等方面,在设计过程中,借助STM32控制显示内容的更新,用户可借助OLED屏实时查看测距数据、环境信息或者故障警告,在进行显示设计时,要依据导盲杖的实际应用场景对显示界面加以优化,保证信息简洁、清晰且易于阅读。因为OLED屏自身有自发光特性,不需要背光,有着较低的功耗以及较高的对比度,比较适合低功耗应用,借助精准的电路设计和编程,OLED显示屏可为导盲杖系统提供有效的可视化支持,提升用户体验以及智能导盲杖的使用效率,OLED显示屏电路设计如图3.6所示。图3.6OLED显示屏电路光照采集电路设计在智能导盲杖系统当中,光照采集电路承担着检测环境光照强度的任务,为整个系统供给实时的光照信息,该电路一般会采用光敏电阻也就是LDR或者光电传感器比如光电二极管与STM32F103C8T6单片机相连接,光敏电阻的一个端口连接至3.3V电源,另一个端口经由电阻和STM32的模拟输入引脚相连。借助设置适宜的电阻值,可构建出一个分压电路,借助光敏电阻的电阻值会随着环境光照强度的改变而变化,产生相应的电压信号,STM32依靠读取这个电压信号的模拟值,来计算环境的光照强度,此信号经过内置的ADC也就是模拟-数字转换器进行采样以及转换,为后续的光照数据处理奠定基础。光照采集电路设计呈现于图3.7。光照采集电路的主要功能是依据环境光的变化来调整导盲杖的工作模式,举例来说,当光照强度比较弱的时候,系统可增加其他辅助功能像语音提示,以此来帮助用户在较暗的环境中行走,而当光照充足时,就可以减少不必要的功能,延长电池使用寿命。为了保证系统的稳定性,光照采集电路设计时需要考虑到电源噪声的影响,可以添加滤波电容器来减少信号中的高频噪声,而且光照传感器的选择应该依据实际需求进行调整,保证其在不同的环境条件下可提供准确的光照数据,依靠这样的设计,导盲杖系统可更加智能地响应环境变化,提升用户体验。图3.7光照采集电路GSM短信无线通信设计在智能导盲杖设计中,GSM短信无线通信电路通过链接GMS模块(如GT-GA10)与STM32F103C8T6单片机进行数据交互,以此实现短信无线通信功能。在该设计中,GSM模块的VCCIN引脚(引脚1)和GND引脚(引脚2)分别连接到5V电源和地线,提供稳定的电源供应。GSM模块的TXD(引脚8)和RXD(引脚7)分别通过PB11和PB10与STM32的串口引脚连接,实现数据的发送和接收。STM32通过PB10和PB11引脚与GSM模块进行串行通信,接收短信信息或发送指令,通过GSM网络实现远程通信功能。GSM无线通信电路如图3.8所示。GSM短信无线通信设计的关键功能在于借助GSM模块的串口通信来和STM32单片机开展短信的发送与接收工作,借助对STM32串口通信功能进行编程控制,可达成把用户输入的信息经由GSM网络传送到指定的手机号,还可接收来自手机的短信信息并加以处理,该项设计适用于智能导盲杖里的紧急求助功能,当用户碰到险阻之际,可以借助导盲杖发送求助短信,以此通知预设好的联系人。在电路设计过程中,保障GSM模块与STM32之间的通信稳定十分关键,信号电平转换以及电源管理方面,经过合理设计与调试,GSM模块可为导盲杖提供实时且便捷的无线通信功能。图3.8GSM通信电路蜂鸣器提醒电路蜂鸣器提醒电路是借助对PC14引脚加以控制来与蜂鸣器实现连接的,在这个电路里,蜂鸣器的一个端口被连接到3.3V电源,以此来保证蜂鸣器可正常运作,其另一个端口经由PC14连接至STM32F103C8T6单片机,蜂鸣器的GND引脚与地相接,构成一个完整的电路回路。借助对PC14引脚电平的控制,STM32可精准地操控蜂鸣器的开启与关闭,当PC14引脚输出高电平时,蜂鸣器就会发出声音进行提示,而当引脚输出低电平时,蜂鸣器便会关闭,蜂鸣器提醒电路的具体情况如图3.9所示。蜂鸣器提醒电路的主要作用是为用户给予声音反馈,一般是用于警告或者提示功能的。在智能导盲杖当中,这个电路可用于障碍物提醒、状态提示或者紧急报警等方面,比如说,当导盲杖检测到前方存在障碍物时,蜂鸣器就会发出警告的声音,以此提醒用户进行避让,借助对STM32的PC14引脚进行编程控制,可调节蜂鸣器的频率以及时长,实现不同的声音提示效果。此电路设计较为简单,成本也比较低,可切实有效地提升导盲杖的智能化程度,提高用户的安全感以及使用体验。图3.9蜂鸣器提醒电路按键设置电路按键设置电路包含了四个独立的按键(SW1、SW2、SW3、SW4),它们分别连接到STM32F103C8T6单片机的PB12、PB13、PB14和PB15引脚。每个按键的另一端连接到地(GND),形成一个简单的开关电路。按键按下时,相应的PB引脚会被拉低,产生一个低电平信号,STM32通过检测这些引脚的电平变化,能够识别按键的状态。通过编程,STM32可以读取这些按键的输入状态,实现不同的控制功能,如选择模式、调节音量或启动特定的功能等。按键设置电路如图3.10所示。该按键设置电路的作用是为用户供给一个直观的交互手段,辅助用户凭借按键操作控制导盲杖的多样功能,在智能导盲杖系统当中,按键可用来切换工作模式、开启/关闭报警功能、对设备设置进行调节等,经由设置多个按键,用户可便捷地开展选择与调整操作,提升使用的体验感,为保障按键操作的稳定性和精准度,电路设计过程中也许会使用上拉电阻,或者去配置内部的上拉电阻,杜绝按键接触不良、抖动引发的错误读数现象,此设计实现起来简单容易,且可切实增强系统的可操作性。图3.10按键设置电路GPS定位电路在智能导盲杖的设计过程当中,GPS定位电路借助连接GPS模块和STM32F103C8T6单片机达成实时定位的功能,GPS模块的VCC引脚跟5V电源相连,以此提供其工作所需要的电压,GND引脚接地,形成电路的完整回路,GPS模块经由TXD以及RXD和STM32的PA2与PA3引脚相连,来开展串行通信。PA2接收源自GPS模块的定位数据,PA3则是用来向GPS模块发送控制命令或者请求数据,PPS引脚用于接收精准的时间同步信号,虽说该信号在某些应用里可能不直接被使用,不过它可为定位系统提供高精度的时间参考,GPS定位电路的设计情况如图3.11所示。GPS定位电路的用途是借助获取卫星信号,实时采集用户的地理位置数据,STM32对GPS模块递送的NMEA格式定位数据进行解析,选出经度、纬度、海拔等相关地理信息,并把这些数据运用到系统的导航或位置报告功能方面,在智能导盲杖这一产品里,GPS定位能协助用户达成位置追踪、实时导航,若遇到紧急情况,便向提前预设好的联系人发送位置坐标,做电路设计的时候,要确保GPS模块能收到足够卫星信号,合理的天线布局加上良好的电源管理是关键,依靠这些设计,GPS模块可为导盲杖给予精准的位置服务,提高用户的定位功能及安全性。图3.11GPS定位电路DA213B三轴加速传感器电路DA213B三轴加速传感器借助STM32单片机的PB7、PB6以及PB5引脚来实现连接,还提供3.3V的电源以及5V电源,加速传感器的功能是对盲人的运动状态展开实时监测,用于检测跌倒或者异常运动,一旦加速度传感器察觉到剧烈的加速度变化,系统便会经由STM32单片机发出警报,并且可借助GPS和GSM模块发送求救短信。如此一来,盲人在遇到突发状况的时候可及时获得帮助,安全性以及应急响应能力得以提升,三轴加速度传感器的设计呈现于图3.12。图3.12DA213B三轴加速传感器电路系统软件设计软件主程序架构在智能导盲杖系统的软件主程序架构里,系统流程是从初始化着手的,目的在于保证各个硬件组件以及外设都可正常运作,先是开展系统初始化工作,其中囊括了配置GPIO引脚、串口通信、传感器以及定时器等方面,初始化完成之后,程序便进入主循环,首先要判断是否接收到了GPS数据。要是GPS数据成功被接收,程序就会对这些数据进行解析,然后在OLED屏幕上显示出GPS位置信息,要是没有接收到GPS数据,系统就会继续运行其他功能模块,紧接着,定时器会每秒触发一次,以此来检查是否已经到达1秒定时周期,要是到达了1秒,系统就会开始进行超声波测距,获取距离数据,并且读取光照传感器的数值。在获取传感器采集数据后,系统要对环境光照以及障碍物情况做告警判定,若检测到光线暗得厉害,系统会语音提示用户“当前光线太暗”;若检测到前方遇见障碍物,会凭借语音提示“前方有障碍物”,且在屏幕上展示出相应的传感器数据,系统依旧会读取陀螺仪数据,鉴别是否出现摔倒现象。若出现摔倒情况,系统会语音播报“疑似摔倒”,随即自动给预设的联系人发去短信,告知其实际位置,整个系统流程保证导盲杖可实时对环境变化和用户需求予以响应,并且提供使用时的安全保障,程序将不断开展循环运行,保障各个功能模块稳定运行以及用户实时反馈。程序主程序架构图如图4.1所示。图4.1软件主程序架构图超声波测距子程序设计在超声波测距程序设计之时,最先要做的是硬件初始化,也就是对超声波模块的引脚加以配置,借助voidHCSR0410Init(void)函数来初始化超声波的触发引脚以及接收引脚,以此保证超声波模块可正常运作,运用voidTIM3_Init(u16arr,u16psc)初始化定时器,为超声波测距提供时间方面的基准。定时器3用于测量超声波信号的传输时间,也就是从发送超声波脉冲一直到接收回波所需要的时间,为防止超声波脉冲从发射器直接回到接收器所产生的干扰,在程序设计里添加了大概0.1毫秒的延时,以此保证超声波脉冲可传播到目标物体并且反射回来,保证测量的准确性。当超声波脉冲被发送出去后,程序借助定时器3来接收返回的超声波信号。在这个时候,外部定时器会开始计时,一直到接收到回波信号,当主程序检测到接收标志位被设置的时候,就说明回波信号成功接收,在这个时候程序会获取定时器3的计数值,依据计数值和声速公式,程序计算出超声波从发射到接收所经历的时间,确定目标物体与测距仪之间的距离。凭借这样的设计,系统可较为精准地测量前方物体的距离,提供实时的障碍物信息,并且进行相应的告警和反馈,超声波测距子程序设计流程图如4.2所示。图4.2超声波测距程序子流程图液晶显示模块子程序设计液晶显示模块程序设计流程自入口起始,最先要对STM32的相关引脚给予配置,液晶显示模块一般借助I2C接口与STM32单片机相连,要把SCL和SDA引脚配置成开漏输出模式,以此来支持I2C通信,随后程序会检查液晶显示模块有没有成功开启,要是模块处于开启状态,程序便会接着开展液晶寄存器地址的设置工作。寄存器地址的设置能让液晶模块清楚数据将会存储的地址或者控制寄存器的位置,以此保证数据可以准确无误地传送到液晶屏。设置好寄存器地址之后,程序就开始发送要显示的数据,数据经由I2C接口传输至液晶显示模块,然后写入液晶屏的内存区域,一旦数据写入完毕,程序会确认数据传输已然成功结束,接着关闭I2C通信,避免出现数据冲突或者通信干扰。这时液晶显示模块开始显示当前的数据,或许包含环境参数、状态信息或者警告提示等,完成数据传输后,程序返回主循环,继续开展其他操作,保证液晶显示模块不断更新并提供用户所需的信息,液晶显示模块程序子流程图如图4.3所示。图4.3液晶显示模块程序子流程图声音传感器子流程图首先要做的是,系统会对GPIO引脚进行初始化操作,以此来保证声音传感器可正常开展工作,紧接着,系统会去判断是否接收到了声音播放的指令,要是接收到了该指令,那么系统就会播放与之对应的声音,要是没有收到指令,便会进入结束状态,等待下一次指令的到来,整个过程有简单、直接的特点,保证了声音反馈功能可及时做出响应。声音传感器子流程图如图4.4所示。图4.4声音传感器子流程图GSM短信子流程图系统启动之际会开展串口初始化工作,紧接着,系统会判定是否接收到了AT指令,该指令乃是与GSM模块进行通信的基础命令,要是接收到了AT指令,系统便会执行发送短信的操作,流程在发送完短信后宣告结束,此流程的最关键的是借助AT指令来操控GSM模块实现短信的发送,以此保障智能导盲杖在有需求时可达成有效的通讯。GSM短信子流程图呈现在图4.5之中。图4.5GSM短信子流程图加速传感器程序子流程图DA213B加速传感器程序子流程图有一项关键功能,那就是凭借持续实时监测盲人的运动状态,以此来保障盲人的安全,系统借助IIC总线开启与加速传感器的通信流程,并对传感器展开初始化设置操作,紧接着,系统会去检测是否出现长时间的静止状态,一旦加速传感器监测到盲人处于长时间静止不动的情形,便会触发系统自动发送求救短信。以这样的形式,系统在盲人遭遇突发状况时,可及时向预先设定好的联系人发送求救信息,保证盲人可以获得及时的援助,DA213B子程序流程图呈现在图4.6之中,DA213B加速度传感器子程序流程图同样展示于图4.6。图4.6DA213B加速度传感器子程序流程图蜂鸣器报警程序子流程图蜂鸣器报警程序流程自入口起始,首先会对是否需要触发报警条件展开检查,该程序会判定系统里是否存在如障碍物检测、摔倒检测或者其他警告信号等报警触发条件,一旦条件得以契合,程序便会向蜂鸣器发送信号,启动蜂鸣器发出声响,蜂鸣器的持续工作时长会依据报警的紧急程度来设定,要是需要持续报警,那么蜂鸣器会持续发声,直至报警条件解除或者时间达到预定的限制。完成报警之后,程序返回,继续监测系统状态,等候下一次报警条件的触发,蜂鸣器报警子程序流程图如图4.7所示。图4.7蜂鸣器报警子程序流程图GPS定位程序子流程图GPS定位程序流程自入口起始,最先开展系统初始化操作,其中涉及了对STM32引脚的设置以及串口配置工作,以此保证与GPS模块之间的通信通道处于正常状态,紧接着,程序会发送AT指令或者相应的命令来启动GPS模块,同时请求获取定位数据,程序借助串口接收来自GPS模块的NMEA格式数据,对这些数据加以解析,从中提取出经度、纬度等定位信息。要是GPS数据可成功接收并解析,程序便会更新显示设备上的位置信息,并且依据需求依靠蜂鸣器或者语音模块给予实时反馈。如果GPS模块未能成功接收到有效的数据,程序会进行错误处理或重试,直到获得有效定位信息。获取到有效GPS数据后,系统将持续监控并更新位置信息,确保导盲杖能够实时提供用户的准确位置。在定位过程中,程序会不断判断GPS信号的质量,确保定位精度满足要求。如果定位信息发生变化,系统会更新显示,并根据需要发送求助短信等信息到预设联系人,确保用户在紧急情况下能够得到及时帮助。GPS定位程序子流程图如图4.8所示。图4.7GPS定位程序子流程图

仿真与实物调试分析仿真调试分析本设计采用Keil5和AltiumDesigner软件进行仿真验证,下面将重点介绍Keil5和AltiumDesigner软件的使用及调试方法,目的是创造出一个更完美的智能导盲系统,为盲人的生活提供便利。KeiluVision5仿真功能仿真:利用Keil5的调试功能,对系统各模块的驱动程序进行仿真测试,验证其功能正确性。例如,通过模拟超声波测距模块的输入信号,测试系统能否正确计算距离并触发语音播报;通过模拟加速度传感器的输出信号,测试系统能否准确识别跌倒状态并发送求救短信。性能仿真:利用KeiluVision5的性能分析工具,对系统程序的运行效率进行分析,优化代码结构,提高系统响应速度。下面介绍KeiluVision5软件使用方法:1、新建工程:打开KeiluVision5软件后依次点击Project→NewμVisionProject,如图5.1→选择保存路径→选择目标芯片型号如图5.2(本设计选择STM32F103C8T6)→点击OK。图5.1新建工程图5.2芯片的选择2、添加文件到工程:右键ProjectWorkspace中的SourceGroup1→AddExistingFiles,如图5.3。图5.3添加文件到工程3、配置头文件路径:点击魔术棒图标(OptionsforTarget)→

C/C++标签→

IncludePaths右侧的...按钮,会得到如图5.4的结果。图5.4路径的选择4、调试与验证:编写好程序后点击Build进行编译,编译结果若显示“0Error(s),0Warning(s)”则说明程序可以正常运行,如图5.5。图5.5编译结果展示AltiumDesigner20仿真:电路仿真:利用AltiumDesigner的电路仿真功能,对系统硬件电路进行仿真测试,验证其电气特性是否符合设计要求。例如,测试电源电路的稳定性、信号传输的完整性等。PCB仿真:利用AltiumDesigner的PCB仿真功能,对PCB布局布线进行仿真分析,优化信号走线,降低电磁干扰,提高系统可靠性。如何用AltiumDesigner20进行电路设计和绘制PCB线路板步骤如下:1、打开AltiumDesigner20后,依次点击文件→新的→项目→创建PCB项目,接着点击点击文件→新的,依次创建原理图和PCB图,操作界面如图5.6。接着点击文件,选择全部保存,如图5.7。图5.6创建项目图5.7保存文件2、在原理图中安装原理图库:点击右下角的Panels,勾选Components,如图5.8,此操作可以打开元件库,方便我们设计原理图,元件库需要自己根据需求去安装,本设计部分元件如图5.8。图5.8库的选择图5.9元件库3、当原理图绘制完毕后依次点击工程、ValidatePCBProjectPCB_Project.PrjPcb,进行编译,如图5.10。若原理图中无标红部分,则代表原理图无误。图5.11为编译后的原理图,无标红部分,代表原理图无误。图5.10编译原理图图5.11经编译后的原理图实物调试在完成仿真验证后,进行实物调试,进一步验证系统功能和性能。硬件调试系统硬件实现流程如下:在完成电路原理图设计并验证各功能模块正确性后,进入PCB制作阶段。选用通用型实验板作为电路载体,采用手工焊接方式完成元器件装配。首先焊接STM32微控制器及其最小系统电路,待确认焊接质量合格后,依次安装各功能模块。系统采用5VUSB电源供电,初次上电时需进行短路检测:当电源指示灯正常点亮且OLED显示屏完成初始化显示,表明供电系统工作正常。随后通过SWD接口将编译好的固件程序烧录至微控制器。若程序烧录成功,OLED界面应显示预设的系统参数,此现象可初步验证硬件连接的正确性。最后进入系统功能调试阶段,按照模块化测试方案依次验证:电源管理、传感器数据采集、通信接口等功能单元。每个测试环节均需记录关键参数,并与设计指标进行比对,确保系统达到预期的性能要求。将烧录好的单片机重新打开,首先我们插好手机卡后GMS会初始化成功,并且超声波可以采集到当前的距离,此时OLED液晶显示器显示信息,进入主页面,主页面分为四行,上面显示距离、光照等信息。光线暗的时候光敏电阻根据光线强弱开启LED灯进行照明。当DA213B发生倾倒时一段时间后,单片机通过GMS模块发送短信到手机上,可以看到手机接收到短信。实物图如图5.12所示。图5.12智能导盲杖系统实物图软件调试在开展基于STM32单片机的智能导盲系统实物焊接工作时,需要对下列功能进行调试:1、电路供电功能调试电压稳定性测试:采用万用表测量电源输出端的电压,保证在接上各类负载时,输出的5V电压都可维持平稳,波动范围处在允许的误差界限内。电源极性检查:核查电路中各元器件的电源引脚连接是否无误,保证正负极性不存在错误,防止因极性反接引起元器件损坏。2、人机交互功能调试短信通信测试:依靠手机向SIM800模块发送指令,检查单片机是否能合理接收并解析指令,接着确认手机能否准确接收。信息准确性验证:对实际采集的数据与手机所显示的数据加以对比,让信息的准确性和实时性得到保障。3、信号处理功能调试单片机初始化检查:借助调试工具考察单片机的时钟配置、引脚初始化等设置是否准确无误,保证单片机在设定主频下能正常开展工作,各引脚的功能配置契合设计要求。数据处理算法验证:输入差异化的模拟数据,检验单片机对采集到的数据做采样、分析和运算得出的结果是否无误,能通过跟理论值或者预期结果进行对照,以此判断数据处理算法的正误。4、数据采集功能调试超声波传感器调试:采用HC-SR04超声波传感器测量不同距离处的障碍物,检查所采集的距离数据是否精准,与实际测量所得的距离对比,调试传感器的参数或安装位置,以达到提高测量精度的目的。跌倒检测传感器调试:采用DA213B传感器开展跌倒检测功能测试,经过模拟各种别样的跌倒姿势与动作,查看传感器能否精准检测到跌倒事件,并把对应的信号发送给单片机模块。光敏传感器调试:改变光线的强弱,检验光敏传感器采集的光线数据是否能确切反映实际光线的变化,利用调整传感器灵敏度参数这一操作,保证系统在不同光照环境里都能正常进行工作。GPS模块调试:检查GPS模块是否可顺利接收卫星信号,并获取无误的经纬度数据,能通过把获取的经纬度信息跟实际位置作比对,以此判断GPS模块是否正常工作。调试结果分析通过仿真和实物调试,系统基本实现了预期功能:语音模块:当超声波模块检测到当前距离小于设置阈值时会配合蜂鸣器发出的滴滴声来提醒盲人,并伴随“前方有障碍物,请注意绕行!”的语音提示;当光敏传感器的值大于设置阈值时会开启灯光,并发出“当前光照过暗,已为您开启灯光!”的语音提示;当三轴加速度传感器检测到老人疑似摔倒时会发出“您疑似摔倒,已为您发送位置及求救短信至监护人手机!”。语音模块实物部分如图5.13所示。图5.13语音模块实物展示超声波测距:能够准确检测前方障碍物距离,并根据距离远近触发不同频率的语音播报,引导盲人避开障碍物。超声波模块如图5.14所示。图5.14超声波模块实物展示光照检测:能够感知环境光强度,在光线不足时自动开启照明灯并语音提醒路人注意避让。如图5.15,当光敏电阻被遮住时可以看到STM32单片机上蓝光亮起,代表开启照明,反之无遮挡则不亮。图5.15光敏传感器状态对比跌倒检测:当三轴加速度传感器DA213B检测到盲人静止不动超过一分钟时,系统会默认盲人摔倒,会自动向监护人手机发送求救短信并显示当事人的实时位置,如图5.16。能够准确识别跌倒状态,并触发GPS定位和GSM短信求救功能。三轴加速度传感器实物部分如图5.17所示。图5.16求救短信图5.17三轴加速度传感器实物展示GPS定位:能够获取当前位置信息,并在紧急情况下将位置信息发送至预设手机号。GPS模块实物部分如图5.18所示。图5.18GPS实物展示GSM通信:能够稳定可靠地发送求救短信,确保信息及时传达。GMS模块实物部分如图5.19所示。图5.19GSM通信模块实物展示以上为本系统的所有模块介绍,本系统把STM32F103C8T6选作主控芯片,整合了障碍物距离检测、环境光照感应、跌倒行为识别、实时定位以及远程报警等多种功能,处于夜间外出这个场景的时候,光敏传感模块可依据环境光照强度自动调控LED补光装置,为用户构建清晰的视野空间;从人员安全保障的角度看,DA213B加速度传感器与GPS定位模块携手合作,能及时察觉跌倒事件并明确位置,依靠SIM800通信模块向预设联系人发送报警的短信,大幅增进了用户在不同场景下的安全保障水平。

结论在这篇论文里,做了基于STM32单片机的智能导盲杖系统的设计与实现工作,该系统把多种传感器技术整合在一起,诸如超声波测距、GPS定位、光照感应等,还依靠蜂鸣器、OLED显示屏、语音提示等输出手段,协助视力障碍者提高日常活动的安全性与独立水平,系统核心功能有障碍物检测、环境光照监测、摔倒检测、实时定位以及紧急求助等项目,采用合理的硬件选定和软件编排,系统不仅具备了不错的实时响应能力,还能在复杂环境里给出精准的导航与反馈,切实为视力障碍群体提供帮扶。经实验证实,本系统在不一样的环境条件下体现出良好的稳定性与准确性,超声波测距模块能高效检测前方障碍物,及时发出警报,GPS定位模块可精准获取用户位置的相关信息,并借助短信把位置发送给预设的联系人,光照感应模块可依照环境光强度自动改变工作模式,保障设备于不同光照条件下正常运转。陀螺仪模块借助实时监测用户运动状态,可有效判断是否出现摔倒现象,而且作出语音提示,守护用户安全,本智能导盲杖系统借助多种技术的融合,极大提升了视力障碍者在出行方面的安全性,为社会弱势群体实现独立生活给予了有力的技术支撑,有着广阔的应用前景以及社会价值。参考文献张仁朝,王高原,罗政杰.基于单片机控制的智能导盲杖设计[J].电子制作,2019,(21):31-33.王一帆,王晓凤,辛凯轩,等.一种多功能智能导盲杖的设计思路[J].科技风,2023(32):1-3.薛毅,崔皓然,姚志强,等.基于STM32的多功能智能导盲杖设计[J].山西电子技术,2021(3):8-9.金佳鑫,郑皓予,郭宇凡,等.智能导盲杖控制系统设计[J].自动化应用,2024,65(19):75-76+84.温家炜,陈开潭,程思宇,等.基于51单片机的语音导盲助残系统设计[J].电子元器件与信息技术,2024,8(01):38-41.宋玉娥,刘业辉,张小燕,等.基于STM32的智能导盲杖的设计[J].电子器件,2020,43(5):1180-1184.杜宇崧,袁啸宇,马雪娇.基于多传感器融合技术的智能导盲杖的设计[J].电子制作,2021(7):80-81,19.葛亮,甘芳吉.现代数据采集技术[M].化学工业出版社:202409.259.柏俊杰,李作进,黄靖,等.STM32单片机开发与智能系统应用案例[M].重庆大学出版社:202009.274.王柄云,王柄翔,谢印忠.多传感器信息融合智能导盲手杖设计[J].日用电器,2024,(06):77-81.RUR,JanGG,PLWD.Userevaluationoftwoelectronicmobilityaidsforpersonswhoarevisuallyimpaired:aquasi-experimentalstudyusingastandardizedmobilitycourse.[J].Assistivetechnology:theofficialjournalofRESNA,2012,24(2):110-20;quiz121-2.MaximeB,SamuelP,IsmaëlD,etal.BlindnessandtheReliabilityofDownwardsSensorstoAvoidObstacles:AStudywiththeEyeCane[J].Sensors,2021,21(8):2700-2700.Anonymous.SEEINGEYE...ROBOTS[J].ASEEPrism,2024,33(4):9.RenM,PanW,LiuT,etal.Multifunctional,UVRadiationShieldingandHighBacteriostaticEfficiency3DWearableSensorTriggeredbyZIF-67.[J].ACSappliedmaterials&interfaces,2025,17(2):3676-3685.YanS.AStudyonIntelligentGuideStickUsingYOLOv3Algorithm–ImprovingSpatialAwarenesswithSelf-madeDataSet[J].ProceedingsofBusinessandEconomicStudies,2021,4(3):76-87.

附录原理图如下:PCB图如下:元件清单如下:代码如下:#include"led.h"#include"delay.h"#include"usart.h"#include"gps.h"#include"usart2.h"#include"HCSR04.h"#include"usart3.h"#include"timer.h"#include"oled.h"#include"adc.h"#include"string.h"#include"Motion.h"#include"DA213B.h"externu8secondflag;externu8ACC_DET_Flag;u8send_msg_flag=0;u8Light_Alarm=0;u8Dis_Alarm=0;intDistance=0;intDistance_Threshold=5;intLight_Threshold=2500;intLight=0;intStep_cnt=0;intStep_cnt_last=0;intStep_Threshold=40;//GPS变量nmea_msggpsx; //GPS信息u8Parse_BUF[USART2_MAX_RECV_LEN];floatLatitude=0;//纬度floatLongitude=0;//经度u16j,rxlen;charsaveflag=0;intFalldown_Judge(){if(Step_cnt-Step_cnt_last>Step_Threshold)return0;//没有摔倒elsereturn1;//摔倒了}voidUSART_SendString(USART_TypeDef*USARTx,char*DataString){inti=0;USART_ClearFlag(USARTx,USART_FLAG_TC);//发送字符前清空标志位(否则缺失字符串的第一个字符)while(DataString[i]!='\0') //字符串结束符{USART_SendData(USARTx,DataString[i]); //每次发送字符串的一个字符while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)==0); //等待数据发送成功USART_ClearFlag(USARTx,USART_FLAG_TC); //发送字符后清空标志位i++;}}voidBeep_msg_alarm(intcnt){for(inti=0;i<cnt;i++){BEEP=0;delay_ms(300);BEEP=1;delay_ms(300);}}u8phonenumber[]=;//intSIM_Send_Msg(uint8_t*telePhone_number,uint8_t*dat){charsend_str[100]={0};memset(USART3_RX_BUF,0,sizeof(USART3_RX_BUF));delay_ms(1000);USART_SendString(USART3,"AT+CSCS=\"GSM\"\r\n");delay_ms(1000);if(strstr((constchar*)USART3_RX_BUF,"OK")!=0){Beep_msg_alarm(1);return-1;}memset(USART3_RX_BUF,0,sizeof(USART3_RX_BUF));USART_SendString(USART3,"AT+CMGF=1\r\n");delay_ms(1000);if(strstr((constchar*)USART3_RX_BUF,"OK")!=0){Beep_msg_alarm(2);return-1;}memset(USART3_RX_BUF,0,sizeof(USART3_RX_BUF));memset(send_str,0,sizeof(send_str));sprintf(send_str,"AT+CMGS=\"%s\"\r\n",telePhone_number);//发送目标手机号码USART_SendString(USART3,send_str);delay_ms(1000);memset(send_str,0,sizeof(send_str));sprintf(send_str,"%s",dat);USART_SendString(USART3,send_str);delay_ms(1000);USART_SendData(USART3,0x1A);//发送操作delay_ms(1000);if(strstr((constchar*)USART3_RX_BUF,"OK")!=0){Beep_msg_alarm(3);return-1;}return0;}//显示GPS定位信息voidGps_Msg_Show(void){Longitude=(float)gpsx.longitude/100000; //gpsx.ewhemi东经西经Latitude=(float)gpsx.latitude/100000; //gpsx.nshemi南北纬}voidSend_help_message(){charHelp_Info[200]={0};intret=0;if(gpsx.ewhemi=='\0')gpsx.ewhemi='E';//防止信息发不完整USART_SendString检测'\0'字符if(gpsx.nshemi=='\0')gpsx.nshemi='N';sprintf(Help_Info,"Ifelldownandaskedforhelp.Mycurrentpositionis:Longitude=%0.6f%cLatitude=%0.6f%c",Longitude,gpsx.ewhemi,Latitude,gpsx.nshemi);ret=SIM_Send_Msg(phonenumber,(uint8_t*)Help_Info);if(ret==0){USART_SendString(USART1,"A7:00003\r\n");//摔倒提示音}}voidHCSR04_Read(){Distance=Hcsr04GetLength();}voidLightRead(){Light=Get_Adc_Average(ADC_Channel_0,ADC_SampleTime_7Cycles5,5);}voidAlarm_Judge(){staticintdis_play_cnt=0;staticintlight_play_cnt=0;if(Distance<Distance_Threshold)//报警{Dis_Alarm=1;if(dis_play_cnt==0){USART_SendString(USART1,"A7:00001\r\n");//前方有障碍物,请注意绕行}dis_play_cnt++;if(dis_play_cnt>=10)dis_play_cnt=0;//10S播放一次}else{dis_play_cnt=0;Dis_Alarm=0;}if(Light>Light_Threshold){Light_Alarm=1;LED0=0;if(light_play_cnt==0){USART_SendString(USART1,"A7:00002\r\n");//当前光线昏暗请注意慢行已为你开启照明灯光}light_play_cnt++;if(light_play_cnt>=10)light_play_cnt=0;//10S播放一次}else{Light_Alarm=0;LED0=1;light_play_cnt=0;}if(Dis_Alarm||Light_Alarm){BEEP=0;delay_ms(300);BEEP=1;}}voidData_Display(){externu8threshold_type;OLED_ShowNum(120,0,threshol

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论