李嘉鹏 马超 孙浩 马守贤
摘 要:随着智能机器人的快速发展,传统的机器人控制技术越来越不能满足实际生产的复杂要求,需要更加智能的控制方法来解决这一问题。文章研究了基于惯性模块的智能体感遥控机器人设计,该设计利用DSP微处理器作为主控制器,同时利用惯性模块实现体感识别操控,利用液晶模块显示当前控制指令、机器人状态以及当前电池电量,采用LED和蜂鸣器实现提示和警报。设计的机器人具有体积小、操作简单方便、稳定性高、智能遥控、扩展性强等几项优点,基本能够满足机器人的遥控要求,特别是增加了基于蓝牙手机的操控方法,使机器人的操控更加方便简单,具有较高的应用与推广价值。
关键词:嵌入式控制;体感技术;惯性模块;无线通信;智能终端
近年来,机器人技术发展非常迅速,各种用途的机器人在各个领域获得广泛应用。传统的固定式机械手转变为可移动的机器人,进而满足空间上的需求。本设计采用模块化机械装置,以单片机无线控制为核心,以STM32F103C8T6为主控制器。通过BMI160惯性传感器模块来检测人体发出的信息,再利用无线通信模块完成数据通信,同时利用液晶显示模块进行实时状态显示。用体感识别技术代替了传统的按键控制,有效地减少了硬件设备的输入并简化了系统。体感技术的优势在于人们可以通过使用肢体直接与外围设备或环境交互,而无需使用任何复杂的控制设备,它们可以使人们沉浸于内容交互。根据体感的不同方式和原理,体感技术可分为四大类:惯性传感、光学传感、惯性传感和光学组合传感[1]。在本设计中,采用惯性传感原理对手的位置进行检测。此外,本设计增加的智能终端控制可以让控制人员使用手机等移动终端设备远距离遥控机器人。
1 系统方案及整体构架
本设计以基于ARM Cortex-M内核STM32系列的32位的微控制器STM32F103C8T6为主控制器,BMI160惯性传感器用于手势检测,nRF24L01无线模块用于指令发送和数据接收,OLED液晶模块用于显示当前控制指令、机器人状态。采用LED和蜂鸣器实现提示和警报,增加了电量监测模块,可以实时观测电量使用情况。主控制系统软件中使用了状态机流程代码结构,列举了系统的所有可能状态,对所有状态进行闭环控制,增加了系统的稳定性,提升了控制器的代码处理效率[2]。系统的整体架构如图1所示。
2 硬件电路设计
2.1 主控制模块
本设计采用ST公司的ARM控制器STM32F103C8T6作为主控制器。其拥有32位内核,工作频率高达72 MHz,内置的64 K×8字节程序存储器,20 K×8字节SRAM,输入输出I/O口37个,还包括时钟,复位和电源管理等功能。电源电压2.0~3.6 V,满足低功耗要求。
2.2 传感器处理模块
本设计采用BMI160惯性传感器模块进行体感遥控。传感器模块通过检测X,Y,Z3个角度的偏移量和所受重力的不同数据,数据通过无线模块传输给主控芯片STM32F103C8T6后,进入软件滤波模块,将因为各种干扰原因产生的不可靠数据滤除,以得到较为准确的测量数据,然后运行姿态计算,通过算法计算出X,Y,Z所在的三维角度数据来对终端进行控制。
2.3 无线通信模块
无线通信模块采用nRF24L01无线模块发送指令和接收数据,并将接收到的数据转换成数据指令来控制机器人的运动,实现无线控制。采用严格的“问答”形式,即每条指令的发送都要求机械手主体返回一帧数据包。
2.4 显示模块
采用OLED液晶模块显示机器人和机械臂的状态以及当前电池电量。OLED显示技术具有自发光、广视角、几乎无穷高的对比度、较低耗电、极高反应速度等优点,因此被广泛使用。其内部采用SSD1306主控芯片进行数据控制。OLED的特性是自己发光,不像TFT、LCD需要背光,因此可视度和亮度均高,其次是电压需求低且省电效率高,加上反应快、重量轻、厚度薄,构造简单,成本低等,被视为21世纪最具前途的产品之一。
2.5 控制模块
机器人及其手臂的信号控制主要通过一个16路PWM驱动模块和一个L298N电机驱动板来完成。PWM驱动模块采用I2C通信方式,从通信上可以跟OLED显示模块共用同一套IO口,可以控制16路PWM给机器人及其手臂提供PWM信号。L298N电机驱动板是一个H桥电路,通过改变输入信号的高低电平和PWM的脉宽就可以控制电机的转速和方向。在本设计中,机器人和机械臂的电机控制一共占用了10路PWM信号,还有6路PWM信号可以后续扩展使用。此次,本次设计拓展了手机控制功能,可以利用手机上的特定APP实现机器人的控制,将来也可以利用WiFi網络实现机器人的远距离操控[3-4]。
3 软件系统设计
系统初始化后,先进入自检状态,检测各模块通信是否正常,电池电压是否处在安全范围内,并将系统信息显示在OLED屏幕上;自检通过后,进入数据接收状态,在这个状态里,系统会不断地接收来自控制板传来的数据。经过处理之后送给终端进行相应的动作控制,与此同时,单片机内部的DMA功能将不断地传输电池电压采集的数据,判断当前电量状态[5]。
4 结语
该设计研究了基于DSP微处理器的嵌入式体感遥控机器人的设计与实现,同时较详细介绍了其硬件电路与软件系统。经过实验证明,该遥控机器人操作简单方便、灵活性强、通信可靠、稳定性好、多种控制方式更加人性化等优点,在实际使用中取得了较好的效果。
[参考文献]
[1]刘军.例说STM32[M].北京:北京航空航天大学出版社,2011.
[2]周立功.ARM7嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2008.
[3]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.
[4]刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社,2013.
[5]聂茹.基于Android手机蓝牙控制的智能小车设计与实现[J].微型电脑应用,2015(9):68-69,74.