教学手动机器人控制系统设计与实现

2015-07-07 07:06徐明娜寇志伟
制造业自动化 2015年7期
关键词:电路设计手动串口

徐明娜,张 峰,寇志伟

(1.内蒙古工业大学 工程训练中心,呼和浩特 010051;2.二连浩特出入境检验检疫局 技术中心,二连浩特 011100)

0 引言

机器人控制技术涉及了计算机技术、自动控制技术、传感器技术、通讯技术、人工智能、材料科学和仿生学等多类学科[1,2]。

目前,国外教学机器人大多与工业相结合,其具备了工业机器人类型繁多、控制精度高的特点,但是这类教学机器人大多以软件编程为主且价格昂贵,用户对其控制方面的开发受到很大程度上的限制。

国内的机器人控制,主要采用单片机、嵌入式工业控制模块、数字信号处理器等。其中采用比较广泛的是单片机,其具有结构简单、经济性好、开发周期短等特点,比起后两者更适用。单片机种类繁多,MCS51、AVR、STM等均应用比较广泛。传统的8位或者16位单片机, 存在硬件资源有限、运算和处理速度慢的问题。高速DSP的出现虽然使得系统模块化和全数字化,但其开发套件成本高。32位ARM微处理器的出现,较好地解决了这些矛盾[3,4]。国内有不少高校和企业已经研制出了较为成熟的教学机器人,这些教学机器人都有其各自特点,但仍有不少方面有待进一步开发,特别是作为教学机器人核心的控制器方面[5]。

为了满足我校机器人教学方面的需要,本文设计了基于STM32的教学手动机器人控制系统。

1 教学手动机器人控制系统总体设计

利用基于ARM的32位微处理器为核心控制器设计一款应用于教学的手动机器人,主要任务是能够完成自主抓取和移动。机器人应该具备以下功能:

1)能够正确判断所处的方位;

2)能用机械手正确抓取和放置物体;

3)能够在行走过程中完成前进、后退、向左向右转向等移动。

教学手动机器人由机械系统和控制系统组成。其中控制系统包括了传感器检测及电机和驱动的控制。

控制系统采用红外测距传感器、陀螺仪等组成检测和定位装置,用来检测周围环境以提供准确的方位、速度等信号,实现机器人的定位行走和自动避障功能。基于STM32,完成了系统电源及复位电路、串口通信、JTAG接口、电机驱动等电路的设计及硬件系统的调试,并编写了相应的软件程序[6]。

其系统总体框架如图1所示。

图1 系统总体框图

2 系统硬件设计

教学手动机器人控制系统硬件电路设计包括系统STM32-MCU、供电电源、系统复位、JTAG接口、USB串口、电机驱动等内容。

2.1 微处理器STM32

为实现教学手动机器人快速、准确的完成规定任务,核心处理器必须具有同时读取多通路输入信号,并且能在短时间内快速运算能力。因此,控制系统处理器选用基于ARM的32位微处理器STM32,型号为STM32F103RBT6,即基于ARM Cortex-M3内核的32位增强型微处理器。

STM32F103RBT6增强型处理器采用LQFP封装,有64个引脚,具有高性能、低成本、低功耗、运算速度快、价格便宜等特点[7]。内部有128K字节的flash存储器,用于存放程序、数据等信息。内部有2个12位的ADC转换器,每个转换器有16个外部通道,能够进行多循环扫描,电路图如图2所示。

图2 STM32微处理器

2.2 系统电源电路设计

为了满足教学手动机器人移动的要求,通过综合考虑各种电池的优缺点及整个机器人控制系统的供电需求,包括电机、传感器、驱动器、控制器等。结合电池的性能、电流等多方面因素,本文选用24V,10A的锂电池作为供电源。其具有能量密度大、质量轻、没有记忆效应,可以随充随用的特点。

教学手动机器人供电电源为24V直流电,通过三端稳压器78L05单元电路,将电压稳定调节到+5V。78L05单元电路,能改善阻抗,提供低静态电流。

STM32芯片的工作电压为3.3V。+5V电压通过三端稳压芯片正向低压稳压器AMS1117-3.3,将电压转换成+3.3V。当主电源VDD掉电后,通过VBAT脚为实时时钟(RTC)和备份寄存器提供电源,如图3所示。

图3 电源电路

2.3 系统复位电路设计

复位电路用来使系统电路恢复到起始状态。其原理是通过电阻给电容充电,使得电容的电压缓慢上升直到VCC-3.3V。电路如图4所示,充电未达到3.3V时,复位引脚为低电平,芯片复位;达到3.3V时,复位引脚为高电平,芯片复位停止,完成复位过程。

图4 复位电路

2.4 JTAG接口电路设计

JTAG(Joint Test Action Group)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试[8]。20针的JTAG仿真调试电路,需要5根信号线,包括:nTRST、TDI、TMS、TCK、TDO[9],引脚连接如图5所示。STM32处理器支持JTAG在线仿真调试,程序下载,同时也支持串口ISP。

图5 JTAG

2.5 系统串口电路设计

RS232串口用来接收上位机指令,调节各个通道输出信号的脉宽。RS232是一种全双工通讯协议,硬件扩展和协议应用都非常方便[10]。控制系统中,用Prolific公司的PL2303接口转换器进行电平转换,可调节3V~5V 输出电压,满足3V、3.3V和5V不同应用需求,其电路如图6所示。

图6 USB串口电路

2.6 电机驱动模块

为了教学手动机器人在演示时能自由移动、准确定位,其底盘选用三个轮子的结构进行支撑。倒Y字形分布,夹角120°,行走过程中前边的一个万向轮起支撑和转向的作用,左右两侧两个轮子为动力轮。每个轮子由一个单独的直流电机控制。机器人移动时,通过STM32处理器上的定时器产生数字脉冲信号,来调节驱动电机的转速。

直流电机型号:Maxon Motor公司RE40,额定电压24V,功率150W。教学手动机器人有3个轮子,因此需要3路PWM信号控制电机转速,每2路I/O控制1个电机正反转。控制使用固件库compare函数调整脉宽占空比,实现电机调速,电路如图7所示。

图7 电机驱动模块

2.7 PCB板结构及硬件调试

系统其他电路还包括模式选择、码盘接口、AD采集、PWM输出、数字量输出、PS2手柄接口、LED显示、IIC接口等,PCB总体电路图如图8所示。

图8 PCB图

3 系统主程序实现

整体程序包括主程序和相应的子程序。主程序用来控制机器人执行命令:移动到指定位置、抓取物体、放置物体等。子程序设计包括定时器中断、串口中断、编码器外部中断等内容。根据设计要求主程序流程如图9所示。

图9 程序流程图

底层控制系统完成接收命令和执行命令的任务。内容包括机器人的移动控制、抓取及放置控制。此外, 还要设计异常状态的预防和处理, 以维持机器人的正常运行。指令执行步骤如下:

1)机器人通电后,开始复位自检,等待下一步。

2)机器人读取指令后,判断执行相应动作。

3)通过程序及外部检测装置判断执行结果, 符合则停止动作,不符合则重复执行上一指令直到结束。

教学手动机器人PWM控制程序如下:

void TIM4_IRQHandler()

{

if(TIM4->SR&0x0001);

TIM4->SR&=~(1<<0);

}

//PWM输出初始化

//arr:自动重装值

//psc:时钟预分频数

void PWM_Init(u16 p_arr,u16 p_psc)

{

//此部分需手动修改IO口设置

RCC->APB2ENR|=1<<0; //复用

RCC->APB1ENR|=1<<2; //TIM4时钟使能

RCC->APB2ENR|=1<<3; //使能PORTB时钟

GPIOB->CRL&=0X00FFFFFF; //PB7 PB6 输出

GPIOB->CRL|=0XBB000000; //复用功能输出

GPIOB->CRH&=0XFFFFFF00; //PB8 PB9 输出

GPIOB->CRH|=0X000000BB; //复用功能输出

GPIOB->ODR|=0X03C0; //PB9 PB8 PB7 PB6 上拉

TIM4->ARR=p_arr; //设定计数器自动重装值

TIM4->PSC=p_psc; //预分频器不分频

TIM4->CCMR1|=6<<4; //CH1 PWM1模式

TIM4->CCMR1|=1<<3; //CH1 预装载使能

TIM4->CCMR1|=6<<12; //CH2 PWM1模式

TIM4->CCMR1|=1<<11; //CH2 预装载使能

TIM4->CCMR2|=6<<4; //CH3 PWM1模式

TIM4->CCMR2|=1<<3; //CH3 预装载使能

TIM4->CCMR2|=6<<12; //CH4 PWM1模式

TIM4->CCMR2|=1<<11; //CH4 预装载使能

TIM4->CCER|=3<<0; //OC1 输出使能

TIM4->CCER|=3<<4; //OC2 输出使能

TIM4->CCER|=3<<8; //OC3 输出使能

TIM4->CCER|=3<<12; //OC4 输出使能

TIM4->CR1=0x0080; //ARPE使能

TIM4->CR1|=0x01; //使能定时器4

// TIM4->DIER|=1<<0; //允许更新中断

// TIM4->DIER|=1<<6; //允许触发中断

}

4 结论

使用STM32作为核心处理器,研究适用于教学的手动机器人控制系统,完成了系统硬件构建和软件编程。改善了以往教学机器人芯片受限制、程序开发困难、成本高等问题。通过实验证明,该机器人控制系统能够实现预期目标,系统运行平稳可靠性高。

[1]安绍银.基于ARM的实验机器人控制系统的研制[D].哈尔滨:哈尔滨工业大学,2008.

[2]孔祥宣.自主式双轮动态平衡移动机器人的控制系统研究[D].上海:上海交通大学,2007.

[3]刘洁,王祖麟,朱顺利.基于LPC2138的小型足球机器人控制系统设计[J].制造业自动化,2008,3,30(3):40-41,66.

[4]关慧贞,刘赞,魏永,等.LPC2106在足球机器人控制中的应用设计[J].单片机与嵌入式系统应用,2005(1):47-49.

[5]朱勇勇.开放式教学机器人运动控制器设计[D].上海:上海交通大学,2007.

[6]勾慧兰,刘光超.基于STM32的最小系统及串信的实现[J].工业控制计算机,2012,9(25):26-28.

[7]张锴,李世光,朱晓莉.基于STM32的智能巡线小车[J].电子测量技术,2012,2,35(2):105-107.

[8]谭斌,雷宏.基于FPGA的数据记录器数据源的研究与实现[J].电子测量技术,2006(6):126-128.

[9]李莉,吴星明,陈伟海.基于ARM和FPGA的机器人运动控制器的实现[J].计算机测量与控制,2007,15(9):1172-1173,1118.

[10]韩庆瑶,洪草根,朱晓光,等.基于AVR单片机的多舵机控制系统设计及仿真[J].计算机测量与控制,2011,19(2):332-334,349.

猜你喜欢
电路设计手动串口
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
浅谈AB PLC串口跟RFID传感器的通讯应用
基于EM9000工控板高性能双串口通信模型设计与实现
基于Multisim的单管共射放大电路设计与仿真分析
一种车用醉驾检测电路设计
Altium Designer在电路设计中的应用
7招教你手动设置参数
负反馈放大电路设计
船舶电子设备串口数据的软件共享方法
风行S5001.6L手动尊享型