2本设计
2.1本设计设计原理
2.1.1单片机基本介绍
主控板- ST STC89C51系列是由STC公司制造的STC89C51兼容的8位微控制器(μC)系列。
基于8051内核,由于其行业标准指令集,低单位成本以及DIL(DIP)封装中的这些芯片的可用性,因此AT89系列仍然非常受欢迎。这允许在新应用程序中重新使用大量的旧代码而不进行修改。虽然比较新的AT90系列AVR RISC微控制器的功能较弱,但AT89系列的新产品开发继续为上述优点。
虽然英特尔不再生产8051核心控制器或其衍生产品,但众多供应商制造的增强型二进制兼容衍生产品仍然受欢迎,如STC的STC89C51及其衍生产品,恩智浦P89v51及其衍生产品等。一些衍生产品集成了数字信号处理器(DSP)。 除了这些物理设备,几家公司还提供MCS-51衍生产品作为FPGA核心,用于FPGA或ASIC设计。
2.1.2引脚功能介绍
图2.1 AT89C51引脚图
2.2测距芯片的选择
2.2.1声波传感器
首先,超声波传播的速度与传播介质的密度有关,这里介质一般为空气。 适当的升高温度或者温度变化时,测量值可能会发生偏差。 当温度低至零摄氏度时,超声波的传播系数为332 m / s。 在十摄氏度时,超声波的速度为350 m / s。 在这种情况下,仅测量300米以内的目标时,由于声速变化引起的误差将达到15米,也就是说,每米约5mm的误差的确是业界难以忽略的距离,但这仅仅是用作引导装置,即在知道超声波传播速度C时,使用超声波发射器将超声波发射到前方,当声波遇到障碍物或者测试物后,声波将被反射回接收装置,反射波将被超声波接收器检测接受到。 利用声波到物体后反射回来的时间记为s,然后量出模块到障碍物体的距离记为d,即d=340·t/2。因此,对于步幅接近半米的正常人来说,5mm的距离是一个无害的数字。因为结构简单,成本便宜,因而这次设计选择这款探距芯片。声波测距原理十分简单,如图2.2。
HC-SR04超声波收发模块的技术参数
1:使用电压:DC—5V
2:电平输出:高5V
3:电平输出:低0V
4:测试障碍物距离:0.2M-4.5M
5:静态电流:0到2mA
6:感应角度:水平夹角上下各7.5度
7: 高精度:误差可达0.2CM内
图2.2 声波测距原理图
图2.3 光学测距原理图(激光三角法)
2.2.2光学传感器
首先,光速比声速快得多,这使得光学传感器的响应速度比超声传感器快得多。 光传感器可以轻松实现许多只能精确到厘米级的超声波传感器测距精确度,光学传感器精度级别可以轻松达到毫米级别,实际场景上光学传感器与超声波传感器相比,光学传感器在拐杖的应用上干扰性有待斟酌,例如碰到雾天、雨天或玻璃类障碍物的实际情况,但理论上来说,光学探测比声波探测更要精准, 无需考虑温度和风速等变化,并且由于光的传播比声波的可能性小,因此超声波传感器与光学传感器相比,后者测得的最大距离远远超过了前者。光学测距模块运行原理是:先由发射模块中的激光二极管向前方发射激光,物体接收到光线后光线向周围反射,当这时接收模块接收到部分反射的光线后,经雪崩光电二极管传递信号源,其中雪崩光电二极管是一种能放大信号的光学传感器,因此微弱的光信号也能发挥作用。只要记录光发出到返回被接收所经历的时间,也就是如声波传感器一个原理计算距离,即可测定目标距离。在具体的计算环境中,只有精确的测出传送时间才能有效计算距离,因为光速比音速快相当多。因为光速相当快,即使按光速约为3X108米每秒来计算,要想使距离误差达到1毫米,则测距模块与电路之间的误差识别要在0.001m/(3X108m/s)=3ps之内,要分辨出3ps的时间,从物料成本来看,就会大大提高了制作成本,不利于市场普及,对制造拐杖来说造价太高。市面常见的光学测距传感器工作原理如图2.3所示。
图2.4 控制系统硬件电路原理图
最终硬件选择如图2.4所示,芯片采用STC89C51,测距模块采用SRF04声波传感器,各种零部件组成,电路原理图连线如图2.4。
第三章 硬件设计介绍
3.1硬件介绍
本次设计材料主要有STC89C51单片机、1602显示屏、万用板、电阻、晶振、瓷片电容、排阻、电解电容、IC座、LED灯、插针、DC插头、自锁开关、电位器、SRF04声波传感器、蜂鸣器、轻触开关等。而数量与参数如表3.1硬件清单所示。
3.2仿真硬件展示
图3.1 LM016L仿真显示屏和实物1602A显示屏
上图为仿真LM016L和实物1602A的一个显示屏,主要作用仅是仿真过程中设计距离时用于模拟障碍物报警距离而用,实际实物并不会用得上。
图3.2 SRF04声波传感器
3.3系统控制框图
图3.7 声波报警工作流程图
本设计系统控制如图3.6,图3.7所示,由电源提供单片机5V电压,单片机驱使声波传感器不断扫面前方障碍物数据,在仿真过程中添加了显示板提供距离数值方便了解测试情况,假如障碍物在设置值30CM以内,会驱动蜂鸣器报警,而开关设定是用于拐杖不使用时靠墙或放在物体附近时可以手动关闭报警功能。
第四章 软件设计介绍
4.1概述
硬件系统需要软件系统作为驱动力,拥有软件系统这个灵魂,硬件系统这个躯体才能执行命令。硬件系统与软件系统同时运行,工作中两大系统皆不可缺一。
4.2.开发语言的选择
目前,执行设计方案的开发语言有C语言、JAVA、C++以及python等,它们都有自己的特点,都有自己擅长编程的领域。此设计的主控芯片为STC89C51单片机,目前能够对STC89C51单片机进行程序设计的语言只有C语言、C++、汇编语言以及python(micropython)语言。对于这几种语言,在MDK上运行的要求也会不一样,因此以下列举了几种方案:
方案一:采用C语言,C语言具有地层结构并且设计功能十分强大的设计功能,加上他清晰的逻辑层次编译设计,因而人们常常编译出高效、质量优良的代码。因为以上特点,用C语言来编程软件即可极大缩短研发周期,结构层次清晰还能便于他人改良和阅读。
方案二;采用汇编语言,汇编语言是最为底层的编程语言,在遇到BUG时候,能够直接针对底层进行修改,但是这种语言编写繁琐,需要写更多的代码完成相同功能,一般,汇编语言主要用在更加底层的任务编程上面,比如磁盘的修复等。
方案三:采用python(micropython)语言,在单片机中移植micropython库,这种方式一般用在人工智能上面,比如机器学习、图像识别等,优点是对于人工智能类的需求可以更适配,但是普通的需求却难以胜任。
方案四:采用C++语言,对于单片机编程,C++相比C语言来说扩充了自定义类型,可以用class对任意对象封装成模板,然后建立实物对应的对象,此语言和C语言不通,主要是面向对象,C语言主要是面向过程。
对于此设计,并非人工智能设计,因此排除方案三,C++相较于C语言更为复杂,虽然强大,但是适用性不强,汇编语言比较偏向底层,在遇到BUG时候,能够直接针对底层进行修改,但是这种语言编写繁琐,需要写更多的代码完成相同功能,C语言也是一种偏底层的编译型设计语言,拥有较为底层的语法结构以及强大的程序设计功能,它是一个运行快、用于底层硬件编译、移植和可读性简单的语言,可以操作对象为系统的硬件。可以更快地完成系统软件,并且修改或者扩编便捷,可读性更强而且更利于做出高性能且大规模的系统应用。因而,针对以上的对比与选择,智能拐杖系统选择了C语言进行程序设计。
4.3程序设计步骤
对于多通道检测的数字频率计的软件调试就是对KEIL5软件的调试,此软件编程代码相当高效,有代码紧凑、简单易懂,在大型软件的开发具有很大的优势,是一款功能强大的C语言软件开发系统,其特点是结构简单、功能齐全、易读易维护。因而使用KEIL可使代码更为紧凑而提高编程效率。开始编程前,需打开软件后需要新建一个工程文件。我们可以对这个新的工程进行命名,软件的创建新工程的选项为project-New uvision project,完毕后即可进入编写新工程文件的界面。如图
图4.1 创建新工程文件
当我们转至仿真实际功能测试中时,仿真中的声波模块能自动调节声波探测距离,即模拟物体所在距离,如图4.10,此时模拟物体距离在前方35CM处,这时声波模块设定报警距离低于30CM报警,因而这时蜂鸣器没有报警,而报警距离可以通过按键K0增加设定值,K1减少设定值。
图4.10 仿真功能测试
图4.11 距离误差测试
第五章 结论
超声波测距,所使用的原理十分明了且非常简单,即利用超声波的收发模块当作传感器,作为核芯计算机的是51系列单片机,首先测定超声波的传播的时间来计算出声音传播的距离,然后在显示器(数码管显示器并不是给使用者观看,更多的是给开发者以便利)和蜂鸣器上显示或报警的形式体现出来。但其实真实情况下,盲人却并不只是依靠了这种相对智能的拐杖即可完全的安全避开这些一切的障碍,例如生活中下垂的树枝,满地布满污泥影响行人的路况,这就需要更复杂的更精准的系统来完成检测。所有其实,最重要的还是我们的盲道的合理的设计和严格的施工,这才是盲人出行安全最大的前提,实际中,无论是实际中数量很少很少的久经训练的导盲犬、亦或是多精准的声波、光波的探测拐杖甚至是语音功能的盲人导航,都难以媲美一条合理合情设计的绿色盲人的通道。或是无论我这个多么微不足道的盲人拐杖的设计,还是已经投入了盲人市场并且获得诸多的大奖的智能的设计、产品,最终结果也是稍微的能对盲人提高辅助的工具而已。
本次设计从方案选择刀后期实物的焊接制作都花了很多时间去了解查找,而难点在于元器件搭配到电路板焊接制造实际上考虑的因素有很多,当然编程编辑与编译调试改错更是繁琐,需要多个模块协调等。因此本次设计我从阅了所学课本书籍和网上各知识点,确定了设计方向,完成了这个设计并撰写了报告。
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。