单片机侧重于编写程序,芯片本身体积小、逻辑简单,可在芯片上灵活地修改程序,多次 调试。虽然在理论上FPGA能基本上单片机能实现的功能,但是根据本课题的性质,单片机串 行方式的设计足够实现功能,FPGA并行方式会将设计过程复杂化。
综合两者的优缺点,选择单片机作为平台进行开发。 单片机就像是人的大脑,而硬件电路相当于人的四肢,手脚能感受外界的信息并作出相应的反应,这离不开大脑的思考和对对身体运动的操控。在注重芯片性能的同时,对于单片机的 价格和适用性也需要深入思考。选用的单片机芯片一方面要能利用电路传递的信息来对外部环 境做出判断,另一方面要能对电机实行多方案的调整控制。51系列单片机价格便宜,存储空间 合理,功耗较低,能够完成本设计所需的所有功能;MSP430系列主要用于超低功耗的工业生 产中;PIC系列单片机的寄存器没有固定的地址区间,编程时容易因为地址问题出错;AVR的 通用性能较差。因而,最终选择了STC89C52作为系统的微控制器。
2.1.2 红外避障元件选择
红外避障模块的构成涉及到:一方面它需要一个光敏元件,该元件感受障碍物上的红外信 号,并且将距离信息转换成电信号。另一方面,还需要一块集成芯片来判断障碍物的距离和方 位。L293D芯片中的四个运算放大器能放大差分后的输入端信号;距离同一红外光源的不同位 置,光敏电阻GM5537的阻值不同,基于这一点再根据分压定律设计出来的相关电路产生不同 强度的电信号。施加并调节其中的某一端电压,根据两个输入端的信号差异输出电平至控制器, 能够将距离量化。 增加该光敏元件的数量,就能判断障碍物的方位,本设计中选用了2个 GM5537。
2.1.3 电机驱动芯片
系统在无障碍条件下是处于直线前进状态的,而在有障碍的条件下,为了实现避障功能, 电机必须做到能切换左转、右转和后退模式。L293D芯片可以分别驱动两个电机,从而设计者 可以根据两个轮子的状态来切换模式。另外,它的两个使能端决定了电机是否工作,从而可以 通过调节高电平和低电平的持续时间的比值来调节电机的转速。因而选择L293D作为电机驱动 芯片。
2.1.4 供电单元选择
选择了两节3.7V的锂电池和7805稳压器组合的方式对电路供电。首先,这种方式十分方便, 是常用的小型设备的供电方式,不会过分占用车身空间,也不会给车身加上过多重量。其次, 锂电池可以多次充电,使用寿命长。如果电源不经过降压稳定后,直接加在单片机的供电端口, 那么单片机很容易被烧毁,因而有必要连接一个稳压器。
2.2 编译软件选择
Keil系列软件是美国知名的技术公司Keil Software专门针对51单片机且结合C语言设计出 来的编译软件。作为开发平台,该软件用户界面简单明了,而且功能丰富强大,利用该软件生 成至单片机上的代码效率较高,因而选择Keil uVision5作为编译软件。C语言简介明了、可移 植性强,程序员使用起来比较灵活,可以实现复杂的功能,相比于汇编语言的优势,结合本科 阶段的学习情况,因此最终选择了C语言来编程。
2.3 总方案设计
在外文翻译的过程中,文献[11]针对移动机器人在未知环境中的障碍规避和路径跟踪问题, 设计了一个基于Atmel微处理器的使用红外传感器的动态避障机器人。该名为Robotino的机器 人由三个独立的高速度分辨率的直流电机作为驱动单元,其避障的核心思想是利用九个红外传 感器探测特定范围内的所有障碍,利用轴角编码器的测量值来确定小车在水平方向的位置,基 于直线轨迹自适应机制控制前进、加速、左右转和停止这五种模式,使Robotino无碰撞到达任 意终点。另外,车身上安装的止动橡胶能感应到小车被撞时的压力,从而制动机器人,避免进 一步的破坏。