肖晓兰,黄海峰,刘利河,陈世光,陈城茂,赖国宾
(广东工业大学,广东 广州 510006)
摘要:设计了一种可自动避障并且可以自动跟随主人行走的小车。该小车通过蓝牙与安装APP的安卓手机连接,当APP软件获得手机的电子磁罗盘方位信息后,通过蓝牙将信息发送出去。小车蓝牙接收到手机方位信息再与自身携带的电子磁罗盘方位信息比较,经过算法处理,控制小车的转向角度和行走速度,从而实现小车跟随手机移动的功能。
关键词:自动跟随小车;安卓APP软件控制;蓝牙 中图分类号:TP273 文献标识码:A
0 引言
目前已经有很多关于智能跟踪的产品,但是这些产品都还不成熟,它们大多是使用简单的传感器,不能跟随特定的人,如Five Elements Robotics推出的Budgee机器人,是一款专门针对老年人和残疾人的轻量级助力机器人,其最高速度为3.9 km/h左右,如果主人的行进速度太快,它就会用消息推送的方式提醒主人慢一些;CaddyTrek推出的电动高尔夫轮式机器人已经能够取代部分劳动力,可带着打球装备跟随运动员走,但它们身上需要佩带特定的超音波发射器,易发出噪声、易被外界干扰、且价格昂贵,针对此,本文设计的小车只需要手机即可进行控制,仅需一次连接,无需后续操作便可让小车一直跟随着车主,当人多路杂时,车主还可以遥控小车前进。
1跟随原理和实现方式
小车以STM32F103为主控芯片,应用到电子罗盘、蓝牙模块、超声波测距传感器、直流电机、舵机和LCD显示屏等外设上。
1.1 主控芯片
STM32F103ZEV6芯片是以Cortex-M3为内核,其最高工作主频可达72 MHz,内置高速存储器(高达512 k B的闪存和64 k B的SRAM),采用哈佛结构,2.0 V~3.6 V供电电压,具有丰富的外设,2通道12位D/A转换器,12通道DMA控制器,多达11个定时器,支持IIC、USART、SPI、CAN、USB等通讯协议。
1.2跟随原理
当安卓手机与小车建立连接之后,APP会自动调用手机自身硬件电子磁罗盘的驱动程序,获得当前手机的方位信息,然后通过蓝牙将手机的方位信息发送出去。当小车上的蓝牙串口接收到手机的方位信息后,与小车自身的电子磁罗盘测得的方位信息作比较(求差),再通过PID调节器处理,控制舵机转向从而控制小车转向的角度。手机不断地发送方位信息过来,小车不断地接收并处理后,通过调节器控制舵机及时调整自身的转向,并不断逼近车主的方位。小车的转向由舵机控制,小车的动力由一个直流减速电机驱动,驱动电机通过处理器的数字化处理实现PWM调速。小车上配置一个320×240液晶屏终端,以显示小车当前的各种状态。控制原理结构框图如图1所示。
2 小车主要结构模块设计
2.1 电源模块
小车的电源电路如图2所示。电源采用7.4 V锂电池,具有容量大、可反复多次充电的优点,并且放电电流相对较大,可以满足小车驱动电机所需要的2A放电电流。由于小车主控芯片的供电电压和直流电机额定电压不一致,故该小车设计应用了两组电源:一组经过稳压滤波电路后输出3.3 V的电压,给主控芯片STM32F103ZEV6供电,采用的稳压芯片为LM1117- 3.3;另一组电压也是由电池稳压后引出,但却采用了 两个LM7805稳压芯片并联的方式稳压,因为单个稳压芯片承受不了电机启动时流过的大电流,这会导致稳压芯片严重发热,甚至烧毁。采用两片稳压芯片并联的连接方式,各自承担一半的电流,避免了芯片的过度发热。
2.2 电机驱动模块
BTN7971B是应用于电机驱动的大电流、半桥高集成芯片,它带有一个P沟道的高边MOSFET、一个N沟道的低边MOSFET和一个驱动IC。P沟道高边开关省去了电荷泵的需求,因而减小了EMI(电磁干扰)。BTN7971B集成的驱动IC具有逻辑电平输入、电流诊断、斜率调节、死区时间产生和过温、过压、欠压、过流及短路保护的功能。通态电阻典型值为16 mΩ,驱动电流可达43 A。采用两片BTN7971B构成一个全桥驱动,驱动电路如图3所示。
小车采用MG995舵机来控制转向。舵机(Ser-vo)是由直流电机、减速齿轮组、传感器和控制电路组成的一套自动控制系统,通过发送信号,指定输出轴旋转角度。舵机一般而言都有最大旋转角度(如1800),它与普通直流电机的区别主要在于直流电机是一圈圈转动的,而舵机只能在一定角度内转动,不能一圈圈地转(数字舵机可以在舵机模式和电机模式中切换)。普通直流电机无法反馈转动的角度信息,而舵机可以,舵机的伺服系统由可变宽度的脉冲来控制,控制线用来传送脉冲,脉冲的参数主要有最小值、最大值和频率。一般而言,舵机基准信号的周期都是20 ms,小车基准信号定义的位置为中间位置,中间位置就是从定义位置到最大角度与最小角度的量完全一样。不同舵机的最大转动角度可能不相同,但舵机中间位置的脉冲宽度是一定的,即1.5 ms。来自控制线的持续的脉冲产生转动角度,这种控制方法叫做脉冲调制,脉冲的长短决定舵机转动多大角度。当控制系统发出指令时,使舵机移动到某一位置,并让它保持这个角度,这时外力的影响不会使角度产生变化。当舵机接收到一个小于1.5 ms的脉冲时,输出轴会以中间位置为标准,逆时针旋转一定角度;当舵机接收到的脉冲大于1.5 ms,则顺时针旋转一定角度。不同品牌,甚至同一品牌的不同舵机都会有不同的脉冲最大值和最小值,一般而言,最小脉冲为1 ms,最大脉冲为2 ms。舵机的工作原理如图4所示。
舵机驱动芯片采用LN298N.L298N是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,功率部分的供电电压范围为2.5 V~48 V,逻辑部分为5 V供电,接收5 V TTL电平。一般情况下,功率部分的电压应大于6 V,否则芯片可能不能正常工作。舵机驱动电路如图5所示。
2.3 蓝牙串口电路模块
该模块电路采用Max232作为电平转换芯片,与蓝牙串口连接,实现手机和小车的蓝牙通讯。Max232芯片内部含有一个电源电压变换器,可以将输入的+5V电源电压变换成RS-232C所需的+10 V电压。模块芯片提供两组接收器和驱动器,而小车蓝牙串口只需用其中的一组即可。蓝牙串口电平转换电路的工作原理如图6所示。
2.4 电子磁罗盘模块
电子磁罗盘,又称3轴数字罗盘HMC5883L,是一种表面贴装的高集成模块,并带有数字接口的弱磁传感器芯片,应用于低成本罗盘和磁场检测领域。HMC5883L包括最先进的高分辨率HMC118X系列磁阻传感器,并附带霍尼韦尔专利的集成电路,包括放大器、自动消磁驱动器、偏差校准、能使罗盘精度控制在10~20的12位模数转换器、简易的I2C系列总线接口。
HMC5883L采用无铅表面封装技术,带有16引脚,尺寸为3.0 mm×3.0 mm×0.9 mm。其所应用领域有手机、笔记本电脑、消费类电子、汽车导航系统和个人导航系统,可通过IIC数字接口通信,带置位/复位偿。电子磁罗盘电路图如图7所示。
2.5 安卓APP算法模块
采用C语言编写小车主程序代码,通过AndroicSDK完成APP开发。安卓APP算法如图8所示。采用MDK4. 6+Jlink V8仿真器作为软件调试工具,硬件测试工具有万用表、示波器等。小车在机主拿着手机正常步行的情况下,可以实现自动跟随的功能。小车通过一块320×240液晶显示当前的状态、方位等信息。
3结语
本文介绍了一种基于STM32控制的自动跟随小车的硬件电路和核心控制算法。小车可以连接主流安卓系统,当系统与手机匹配成功后,人带着手机走到哪里,小车就会跟到哪里。该小车可以改装成行李箱、超市的购物车以及老人的备忘箱,人们可以更加轻松愉快地享受保姆式跟随小车带来的许多乐趣。该自动跟随小车使用方便简捷、成本低廉,有极大的应用前景。