邵阳学院毕业设计(论文)
由于在本次设计中,驱动电机是靠单片机来控制的。所以说我们最终是靠单片机的I/O的脉冲来控制H桥中稳压三极管的导通与短路,从而控制直流驱动电机封装
L293D进行左转、右转、前进或后退等不同的指令。
下表为L293D芯片的四个输出口在不同的导通情况下所执行的状态指令。 其中“1”指此I/O口输出高电平,“0”指此I/O口输出低电平。
out1 1 0 1 0 out2 0 1 0 1 out3 0 1 1 0 out4 1 0 0 1 状态 前行 后退 左转 右转 根据如上所示的原理即设计,便可得出如图3.10所示的电路原理图。
图3.10电机驱动模块原理图
- 12 -
邵阳学院毕业设计(论文)
3.7拓展模块
在本次设计中,除了必要的循迹功能模块以及避障功能模块外,还加入了一些可拓展模块。此类模块功能更为复杂,所以完成难度更高。
3.7.1智能寻光模块
智能寻光模块中,寻光性的收集信息来源是使用光敏电阻的电气特性,将电压比较器的原始信号和处理信号输入到单片机中,利用此信号就能够对光线的强弱进行比较,从而得出光强的多少来完成相应的模块功能。利用软件程序来代替冗长的硬件原理模块,这样还可以使系统更加的灵活,使系统硬件更加的简洁,更容易实现各种各样的功能[11]。
使用光敏电阻的电气特性寻光有两种方法:采用光敏二极管的感光特性来实现对光源的检测,在这种方法下,二极管响应快,制作十分简洁,同时用到的材料还环保,但是一般灵敏度比光敏电阻低,而且稳定性差;而利用光敏电阻的高灵敏感光特性,除了所得到的信号具有光谱特性一致性等优点以外,在外部环境十分恶劣的情况下,也能够十分稳定的保持其功能模块的可靠性;即使是在完全黑暗的环境里,它的电阻值依旧很高,而当其受到光线照射时,其电阻成线性函数关系改变。
下图3.11为智能寻光拓展模块原理图。
图3.11智能寻光拓展模块原理图
在此模块中使用的电压比较器是否适合是寻光模块是否能够运行,运行结果是否精准的重点,在本次设计中我使用的是电压比较器LM393。
- 13 -
邵阳学院毕业设计(论文)
如下图3.12为LM393电压比较器内部结构图。
图3.12 LM393内部结构图
它可与光敏二极管的输入端相连,接收由电阻值变化产生的光,将模拟信号转换为输入电压比较器的输入电压,该电压信号的变化与电压比较器的反相输入端的基准电压相比,电压比较器的输出电压高于电压比较器的输出电压,这个时候同相电压将会大于反向侧电压,当相同的相电压小于反向电压时,电压比较器的输出端将输出一个低电平电压,并且将电压信号发送给单片机。从而能够实现寻光的目的[12]。
下图3.13中为电压比较器的引脚图。
图3.13 LM393电压比较器引脚图
- 14 -
邵阳学院毕业设计(论文)
第4章 软件模块
4.1循迹程序模块
智能循迹模块流程图如下图4.1所示:
图4.1 智能循迹模块流程图
当单片机进行初始化之后,智能循迹避障小车将会先前进一小段,之后将会让左前灯指示左前红外探测状态,即如果左侧红外探头检测到黑色引导线,探头正常工作,则智能循迹避障小车前方左侧指示灯就会发光。同理右前灯指示右前红外探测状态。同时,蜂鸣器根据红外探头的状态开始发出声音。
在初始化之后,单片机根据红外探头的状态检测,与其对应的I/O进行扫描。再根据所得到的扫描结果检测红外探头是否检测到黑色引导线。假设右侧红外探头没有信号但左侧红外探头有信号时,即黑色引导线在向左侧偏移,此时开始电机开始左转,在经过十分短暂的延时之后,再次判断是否还需继续左转,直至角度正确为止。同理,假设左侧红外探头没有信号但右侧红外探头有信号时,即黑色引导线在向右侧偏移,此时开始电机开始右转,在经过十分短暂的延时之后,再次判断是否还需继续左转,直至角度正确为止。
- 15 -
邵阳学院毕业设计(论文)
4.2避障程序模块
智能避障程序流程图如下图4.2所示:
图4.2智能避障程序流程图
智能避障程序主要是根据小车前方的避障模块是否有接收到所发出的信号来决定的。当小车前方检测到前方出现不明干扰物的时候,蜂鸣器将会开始鸣叫发声,提示小车开始准备避开障碍物。在这个时候小车开始停止运行,为了防止稳压电机的反向冲击电压进入单片机中,导致单片机系统开始初始化复位,从而使得程序坏死,故在此设置一个短暂的延时程序。在小车停止之后,为避开障碍物,小车将会开始向后行驶短暂的距离,使得障碍物与小车保持一定的空间。在成功避开障碍物后,驱动电机开始左向偏转,小车左转。待调整到一个合适的角度,小车继续向前行驶,直至其再次遇到其他障碍物。
- 16 -