基于MSP430的自主式移动机器人设计与实现
时间:06-12
来源:互联网
点击:
文章以MSP430系列单片机为核心,提出了一种轮式移动机器人的软硬件设计方案,阐述了其通过传感器网络来进行避障、遍历等自主控制,并实现机器人与PC机间无线控制的方法。
1 引言
自主式移动机器人是指能根据任务及环境信息做出全局路径规划,可在行进中不断感知局部环境信息并自主作出决策,从而能够安全行驶并到达目标的智能系统。移动机器人可广泛应用于工业、国防以及服务性行业。如自动割草机、洗尘机器人、教育机器人等。本文以MSP430单片机为核心介绍了一种移动机器人的设计雏形,该系统利用各种传感器感知周围环境,并在计算机与单片机之间实现无线通信,从而以无线方式控制移动机器人。
MSP430是美国TI公司推出的16位高性能系列单片机,其高效16位精简指令结构可以确保任务的快速执行,大多数指令可以在一个时钟周期里完成,且具有高级语言编程能力,配套友好方便的集成开发环境足可加速软件的开发。由于MSP430采用了JTAG技术、FLASH 在线编程技术、BOOT-STRAP等诸多先进技术,因此具有很高的性价比,并有超低的功耗和丰富的片上外围资源,很适合作为移动设备的微控制器来用。
2 硬件结构
笔者选用的MSP430F1232内含8kB可重复编程快闪存储器、256字节只读存储器(RAM)、多通道脉宽调制?PWM计时器、看门狗计时器和USART通讯模块等,采用28脚TSSOP封装,因此易于进行小型化设计。MSP430F1232主要用来产生两路PWM信号,以对传感器信息进行处理。同时,笔者还选用电机驱动芯片L293D来驱动直流电机,并利用霍尔元件来检测电机速度;此外还安装了红外避障和光敏传感器以获取环境信息,并利用语音电路ISD25120来进行交互,而通过微控制器的UART经232接口芯片后利用无线模块PTR2000可与PC机端的无线模块进行通讯。图1所示为其系统框图。
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、2.1、2.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属性来实现。
1 引言
自主式移动机器人是指能根据任务及环境信息做出全局路径规划,可在行进中不断感知局部环境信息并自主作出决策,从而能够安全行驶并到达目标的智能系统。移动机器人可广泛应用于工业、国防以及服务性行业。如自动割草机、洗尘机器人、教育机器人等。本文以MSP430单片机为核心介绍了一种移动机器人的设计雏形,该系统利用各种传感器感知周围环境,并在计算机与单片机之间实现无线通信,从而以无线方式控制移动机器人。
MSP430是美国TI公司推出的16位高性能系列单片机,其高效16位精简指令结构可以确保任务的快速执行,大多数指令可以在一个时钟周期里完成,且具有高级语言编程能力,配套友好方便的集成开发环境足可加速软件的开发。由于MSP430采用了JTAG技术、FLASH 在线编程技术、BOOT-STRAP等诸多先进技术,因此具有很高的性价比,并有超低的功耗和丰富的片上外围资源,很适合作为移动设备的微控制器来用。
2 硬件结构
笔者选用的MSP430F1232内含8kB可重复编程快闪存储器、256字节只读存储器(RAM)、多通道脉宽调制?PWM计时器、看门狗计时器和USART通讯模块等,采用28脚TSSOP封装,因此易于进行小型化设计。MSP430F1232主要用来产生两路PWM信号,以对传感器信息进行处理。同时,笔者还选用电机驱动芯片L293D来驱动直流电机,并利用霍尔元件来检测电机速度;此外还安装了红外避障和光敏传感器以获取环境信息,并利用语音电路ISD25120来进行交互,而通过微控制器的UART经232接口芯片后利用无线模块PTR2000可与PC机端的无线模块进行通讯。图1所示为其系统框图。
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、2.1、2.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属性来实现。
MSP430 单片机 机器人 传感器 PWM 看门狗 红外 电路 电压 LDO 电容 LED 收发器 神经网络 相关文章:
- 基于单片机控制的六自由度自动寻迹机械人的设计与实现(12-16)
- 制作机器人常用传感器盘点(02-23)
- 基于混沌电路设计阵列触觉传感器的采集系统(03-01)
- 复杂路线下机器人的三点三轮寻迹系统(01-17)
- 精密运动控制器LM628的应用设计(06-20)
- 基于图像识别的循迹车路径识别算法研究(03-30)