基于单片机的球型机器人控制系统设计

2018-12-03 03:49徐开芸李家钊
机械设计与制造工程 2018年11期
关键词:球型球体蓝牙

吴 晗, 徐开芸, 朱 昊, 李家钊

(南京工程学院自动化学院, 江苏 南京 211167)

随着市场对机器人的自适应能力和运动特性提出了更高要求,研究和设计运动灵活的机器人已迫在眉睫。球型机器人能在恶劣、复杂的环境中行走,以其运动灵活、能耗低、外型独特等特点逐渐被各国研究人员所关注。球型机器人是非线性、多变量、强耦合的不稳定系统的典型[1-2],设计和研究球型机器人控制系统,即对非线性控制系统稳定性的研究具有较高的理论研究价值和实用价值。

1 控制系统硬件设计

本文设计的球型机器人实物如图1所示,工作原理在文献[3]中有详细叙述,其中控制系统主要包括控制模块、运动模块、通信模块以及电源模块等[3]。

图1 球型机器人实物图

球型机器人控制系统的总体结构框图如图2所示。系统控制核心为单片机STM32F103C8T6;电源模块提供12V、5V和3.3V的电压;电机为12V直流无刷电机,电机驱动器为TB6612,通过旋转编码器测量球体的速度;陀螺仪采用MPU-6050六轴传感器来测量球体的倾角和角速度,舵机型号为RDS3120MG;通信模块由蓝牙HC-05及安卓手机APP组成。硬件电路设计过程中采用模块化的设计方法,大大提高了系统的稳定性和可靠性。

图2 球型机器人控制系统总体结构框图

1.1 控制模块设计

控制模块主要包括电源电路、控制芯片STM32F103C8T6、晶振电路、复位电路和下载调试接口等电路。STM32最小系统电路图如图3所示。

STM32单片机外部的8MHz晶振,经内部倍频产生72MHz工作频率。STM32单片机采用低电平复位方式,当NRST为低电平时,单片机复位;当NRST为高电平时,单片机正常工作[4]。调试下载电路采用SWD接口。

图3 STM32最小系统电路

1.2 电源模块设计

球型机器人电源模块电路图如图4所示,为减少电源模块间的相互干扰,各模块独立设计。整个控制系统共有3种电源:1)12V锂电池,给系统提供12V电源,同时向电机提供12V电源;2)12V电压经过LM2596-5.0转换成5V电压,如图4(a)所示,给舵机供电;3)5V电压经AMS1117-3.3转换成3.3V,如图4(b)所示,给STM32单片机和MPU6050六轴传感器、蓝牙模块HC-05及相关外围设备供电。

图4 电源模块电路图

1.3 运动模块设计

本项目中使用TB6612FNG微型双路直流电机驱动模块。电机自带编码器,实现力矩、速度以及点位控制,完成球型机器人前进、后退以及速度控制。TB6612FNG内部集成了2个H桥电机驱动电路、6个控制信号输入端(其中2个为PWM控制信号输入端、4个为方向信号输入端),可同时控制球型机器人2个电机的正转、反转和制动。为防止因电机堵转而烧坏驱动器,在电机驱动器的接地端串联一个0.1Ω封装2512的贴片电阻。TB6612FNG电机驱动电路如图5所示。

图5 TB6612FNG电机驱动电路图

球型机器人转向动作由舵机RDS3120MG完成,此舵机具有位置(角度)伺服驱动功能,满足球形机器人的转向要求。通过设置单片机PB0端口的PWM占空比值来控制舵机偏转角,从而实现球型机器人的转向控制。

1.4 姿态检测模块设计

姿态检测模块选用MPU-6050六轴传感器,其电路原理图如图6所示,该模块集成了3轴微机电系统(micro-electro-mechanical system,MEMS)陀螺仪和3轴MEMS加速度计,以及一个可扩展的数字运动处理器(digital motion processor,DMP)。MPU-6050六轴传感器与单片机采用I2C通信方式,SDA引脚接单片机PB9口作为I2C数据线;SCL引脚接单片机PB8口作为I2C时钟线。另外,MPU-6050六轴传感器内部有200Hz方波信号发生器,该方波信号发生器产生5ms的工作周期,作为单片机外部中断信号源[5]。当产生外部中断时,单片机进入中断,并读取MPU-6050六轴传感器中的各姿态参数值,此参数值通过卡尔曼滤波、增量式PID控制算法修正后发送给球体的控制单元,实时调整球体姿态,控制球体在运动过程中的自身平衡。

图6 MPU-6050电路原理图

1.5 通信模块设计

蓝牙HC-05模块有主、从体2种工作模式,既可发送数据也可接收数据。这里选用从体工作模式,仅接收从安卓手机APP发来的数据。蓝牙通信电路原理图如图7所示。单片机串口与HC-05模块相连;单片机引脚PIO11接开关K1和下拉电阻,当K1闭合时控制进入AT指令模式;PIO8引脚接LED,当LED灯亮时,表示单片机与蓝牙通信正常,可以通过安卓手机APP发信息至单片机串口,从而实现蓝牙通信。

图7 蓝牙通信电路图

2 系统软件设计与实现

因球型机器人控制系统具有非线性、不稳定的特点,相应的软件设计就成为了关键。根据系统要求,软件主要任务是完成系统的初始化设置、球体姿态信息采集、卡尔曼滤波、角速度检测、电机双闭环PID控制以及蓝牙通信等。系统软件流程如图8所示。由于篇幅限制,在此重点介绍球形机器人的双闭环PID控制和蓝牙通信。

图8 系统软件流程图

2.1 双闭环PID控制

当球型机器人运动时,球体姿态随之改变,为了保证球体自身平衡,需设计相应的控制方法,这里采用工程实践中应用最为广泛的增量式PID控制算法,分别设计球体的姿态PID控制和球体速度PID控制。

2.1.1 球体姿态PID控制

球体姿态检测采用MPU-6050六轴传感器装置,该装置将陀螺仪传感器和加速度传感器集成一体。由于陀螺仪和加速度计在测量时存在噪声干扰和随机漂移误差,故采用卡尔曼滤波算法对测量数据进行融合,算出球体倾角的最优估计值[6-7]。将最优估计值通过I2C通信协议发送给单片机;然后经姿态控制算法增量式PID调节,调节后得到的参数来调整电机PWM的占空比值。球体姿态增量式PID控制的设计子程序流程图如图9所示。为了确保球型机器人平稳行走,不倾倒,必须实时调节球体姿态偏角,保证球体重心在垂直方向被限制在一定夹角内。

图9 球体姿态PID控制子程序流程图

2.1.2 球体速度PID控制

球体速度PID闭环控制系统框图如图10所示,给定转速信号与反馈转速信号比较后的转速变化量送给速度控制器PID,通过PWM1控制电机转速,构成速度闭环控制[8]。

图10 球型机器人速度闭环PID系统框图

速度PID控制子程序流程图如图11所示。当球体运动时,霍尔元件对电机AB相测速,单片机定时器中断,每10ms对编码器进行一次检测,获取角速度数值,经增量式PID调节,最终使角速度达到期望值,实现球体匀速运动,达到稳定控制效果。速度增量式PID部分程序如图12所示。

图11 速度PID控制子程序流程图

2.2 蓝牙通信

球型机器人的控制指令仅通过手机APP发给球型机器人控制单元。当蓝牙模块接收到手机APP发送的控制指令后,将该指令转发到单片机的串口3,单片机串口3的波特率设置为9600 bps,1位起始位、8位数据位、1位停止位、无校验[4]。当中断标志位为“1”时,单片机进入中断,等待接收蓝牙HC-05模块发来的数据;当单片机接收数据之后,接收标志位为“1”,单片机停止接收新的数据,并对数据算法优化,然后将优化后的数据发给球型机器人控制单元。部分蓝牙数据通信接收程序如图13所示,串口中断函数为void USART3_IRQHandler(void)。

图12 速度增量式PID部分程序

图13 部分蓝牙数据接收程序

3 结束语

本文设计的球型机器人控制系统,可自主调整球型机器人行走过程中的姿态,确保行走平稳,解决了球型机器人运动过程中自平衡能力差的问题。本文的实现方案对设计和研究非线性、多变量、强耦合的控制系统具有一定的借鉴作用,为非线性系统的控制提供了一种解决方法。但是,目前的研究工作仅通过较为经典的增量式PID控制算法来验证实现方案的可行性,要真正在非线性系统中体现控制算法的价值,还需要继续研究其他控制算法在非线性系统的应用,才能更好地利用控制算法优化非线性控制系统。

猜你喜欢
球型球体蓝牙
二氧化硅薄膜中微纳球型结构对可见光吸收性能影响
蓝牙音箱的直线之美
浅谈BIM技术应用于球型网架空间坐标的智能检测
一种锥台边界条件下的球型换能器指向性特征及声场调控
越来越圆的足球
计算机生成均值随机点推理三、四维球体公式和表面积公式
亲水与超疏水高温球体入水空泡实验研究
膜态沸腾球体水下运动减阻特性
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器