2.1 PWM脉宽调制
MSP430单片机的Timer_A是一个非常有用的定时器,它可支持同时进行的多种时序控制、多个捕获/比较功能以及多种输出波形,也可以支持上述功能的组合。这里用Timer_A来产生两路PWM信号,并分别接L293D的12EN和34EN,以用来控制两个电机的起停、转向及速度。定时器工作在增计数模式时,可由捕获/比较寄存器CCR0确定周期T,而由CCR1和CCR2产生两路PWM信号。输出单元选择模式2。改变CCR1和CCR2的值,即可改变PWM信号的占空比,从而改变电机转速。
L293D的芯片电压为5V,电机驱动电压VCC2为11.4V?可通过3节3.8V的锂电池提供,5V电压经整流桥后可由稳压器LDO7805提供,MSP430F1232的3.3V供电电压可由LM33稳压输出。L293D与单片机的连接图如图2所示。
2.2 语音电路
语音电路采用120秒的语音芯片ISD25120来实现,该芯片有多种封装,本设计采用小巧的28SOIC封装,它控制简单,其P/T引脚为录放控制端,CE引脚为放音/暂停控制端,PD为RESET信号,这些RE-SET信号端可接单片机的I/O口P2.0、;P2.1、;P2.2,地址位的最高两位A8和A9均为高时,地址/模式输入端为模式选择,否则为地址输入。在与MSP430F1232连接时,A6、A8、A9接P3.6,A0接P3.7,其余地址引脚接地,这样就可方便地对ISD25120进行地址选段选择或模式控制。
2.3 充电电路
充电电路采用无需控制器的智能快速充电器MAX1758来实现,MAX1758可对1~4节锂电池进行充电,输入电压范围在4~28V,电池充电电压可通过VADJ引脚进行设置,并通过外接电容设置预充和快充的充电时间,同时可通过LED来指示当前的充电状态。充电电源采用24V直流电源。
2.4 无线通信模块
考虑到自主机器人的特点,计算机与机器人的通信采用无线通信方式较为适宜。笔者选用微小型、低功耗、高速率、19.2K无线收发数传MODEM芯片PRT2000来完成计算机与机器的无线通信,该MODEM的工作频率为国际通用的数传频段433MHz,采用FSK调制,可连接到计算机RS232接口。因为没有信号时,PTR2000的串口会输出随机数据,因此需要定义一个简单的指令协议,设计时可加开始字符、校验位、结束标志等,校验采用CRC校验。传输协议定义为:
[开始字符][数据1][数据2][8位校验][结束字符]
在各种校验方法中,奇偶校验容易实现,但不太可靠,因其只能发现奇数个错误;校验和不能发现次序错误,相比之下,CRC更可靠些。系统首先生成多项式G(X)=X8+X6+X2+1?然后生成8位CRC校验数据。
MSP430F1232中集成的高速通用同步-异步收发器(USART)可设置成用于UART或串行外设接口(SPI)中的任一模式,本例采用UART异步模式。MSP430的USART与PTR2000连接时,PTR2000的DO和DI直接与单片机的URXD0和UTXD0连接,计算机串口的RXD和TXD需经电平转换?MAX232与PTR2000相连。计算机端可采用VisualBasic编写程序,以实现对机器人的前进、后退、左转、右转、暂停及速度调节等基本控制。对于收发状态的控制,单片机端可直接通过将一输出口置1或置0来将无线收发模块置于发射或接收状态,而对计算机串口的控制则可通过VB内MSComm控件的RTSEnable属性来实现。
|