标题 | 基于BMI160的多自由度体感遥控机械臂设计 |
范文 | 李嘉鹏 马超 孙浩 马守贤 摘 要:随着智能制造的快速发展,传统的机械臂控制技术越来越不能满足实际生产的复杂要求,需要更加智能的机械臂该设来解决这一问题。文章设计了基于BMI160的多自由度体感遥控机械臂,该设计利用STM32F103C8T6作为主控制器,惯性导航模块用于手势检测,NRF24L01无线模块用于指令发送和数据接收,OLED液晶模块用于显示当前控制指令、机器人状态,采用LED和蜂鸣器实现提示和警报。设计的机械臂具有使用简便、机动灵活、连接可靠、稳定性能好、人性化操作等优点,基本能够满足机械臂的遥控要求,具有较高的应用与推广价值。同时保留了拓展接口,为以后的智能升级留下了充分的余地。 关键词:嵌入式控制;体感技术;BMI160惯性模块;无线控制 机械臂技术发展非常迅速,机械臂的用处也是十分广泛。在我国机械臂的研究和应用方面与很多国家相比还是有一定的差距,在传统机械手技术方面,我国的技术水平已与国际接轨,但在工艺水平方面还有一定差异,而在现代机械手发展方面,国内主要还处于摸索试验阶段,虽然有一些成品,但智能度还有待提高。传统的机械手通常采用PLC控制,此次设计采用模块化机械装置,以单片机控制为基础,以STM32F103C8T6为主控制器。通过惯性传感器模块来检测体感信息,再利用无线模块完成无线通信,同时利用OLED液晶显示模块进行实时状态显示。用体感识别技术代替了传统的按键控制,有效地减少了硬件设备的输入,增加了系统的可操控性。体感技术的优势在于人们可以通过使用肢体直接与外围设备或环境交互,不需使用任何复杂的控制设备就可以使人们非常方便地实现内容交互。根据体感的不同方式和原理,体感技术可分为三大类:惯性传感、光学传感、惯性传感和光学组合传感。此设计采用惯性传感原理对体感的位置信息进行检测。 1 系统方案及整体构架 该设计以ST公司的Cortex-M3为核心的ARM控制器STM32F103C8T6为主控制器,ST公司的BMI惯性导航模块用于手势检测,NRF24L01无线模块用于指令发送和数据接收,OLED液晶模块用于显示当前控制指令、机器人状态。采用LED和蜂鸣器实现提示和警报。主控制系统软件中使用了状态机流程代码结构,枚举了系统的所有可能状态,对每一个状态进行闭环控制,增加了系统的稳定性,提升了控制器的代码处理效率[1]。系统的整体架构如图1所示。 2 硬件电路设计 2.1 主控制模块 该设计采用ST公司的ARM控制器STM32F103C8T6作为主控制器。其拥有32位内核,工作频率高达72 MHz,内置的128 K字节程序存储器,20 K字节SRAM,还包括时钟、复位和电源管理等功能。电源电压2.0~3.6 V,满足低功耗要求。 2.2 传感器处理模块 该设计采用BMI160惯性传感器模块进行体感遥控。传感器模块通过检测X,Y,Z 3个角度的偏移量和所受重力的不同数据,数据传输给主控芯片STM32F103C8T6后,进入软件滤波模块,将因为环境、电路、电磁干扰等原因产生的不可靠数据滤除得到较为准确的测量数据。之后运行姿态计算模块,通过算法计算出控制器所在的三维角度数据来对终端进行控制[2]。传感器处理模块如图2所示。 2.3 无线通信模块 无线通信模块采用NRF24l01无线通信模块发送指令和接收数据,通過将接收到的体感数据转换成数据指令来控制机械臂上的舵机运动,实现机械臂的多自由度无线控制。采用严格的“问答”形式,即将主控器的每条体感指令的发送都要求机械臂主体控制器返回一帧状态数据包。在发送一条指令后,等待机械臂的状态返回包,然后才为机械臂本体继续发送下一条指令包。如果机械臂本体接收到了错误的指令(检查错误指令),则立即设定通信错误标志符,同时上传状态包。同时,机械臂控制器发出报警信号,停止机械臂运动,直到下一个机器清除串口DMA,重新接收指令。如果接收到的数据包在通信错误标志位置位,则重新匹配NRF24L01无线通信模块,之后再发送体感控制指令[3]。 2.4 显示模块 显示模块采用了新型OLED液晶显示模块显示机械臂的使用状态和电量数据。OLED具有轻巧便利、功耗低等特点,因此被广泛使用。其内部采用SSD1306主控芯片进行数据控制。屏幕分辨率为128×64。数据传输方式采用I2C通信协议进行通信,既节省了I/O的使用,又具有通信速率高可外接多种设备等优点。 2.5 控制模块 机械臂和小车的信号控制主要通过一个16路PWM驱动模块和一个L298N电机驱动板来完成。PWM驱动模块采用I2C通信方式,从通信上可以跟OLED显示模块公用同一套IO口,可以控制16路PWM给机械臂和小车提供PWM信号。L298N电机驱动板是一个H桥电路,通过改变输入信号的高低电平和PWM的脉宽就可以控制电机的转速和方向。在本设计中,小车电机控制和机械臂控制一共占用了10路PWM信号,还有6路PWM信号可以后续扩展使用[4]。 3 软件系统设计 系统初始化后,先进入自检状态,检测各模块通信是否正常,电池电压是否处在安全范围内并将系统信息显示在OLED屏幕上;自检通过后,进入数据接收状态,在这个状态里,系统会不断地接收来自控制板传来的数据。经过处理之后送给终端进行相应的动作控制,同时单片机内部的DMA功能将不断地传输电池电压采集的数据,判断当前电量状态[5]。 4 结语 该设计大致讨论了基于STM32F103C8T6的嵌入式体感遥控机械臂的设计论证与实现方法,同时较详细介绍了其硬件电路与软件系统。经过实验证明,该体感遥控机械臂具有使用简便、机动灵活、连接可靠、稳定性能好、人性化操作等优点,在实际使用中体现了较好的实用效果。 [参考文献] [1]刘军.例说STM32[M].北京:北京航空航天大学出版社,2011. [2]周立功.ARM7嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2008. [3]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003. [4]刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社,2013. [5]肖广兵.ARM嵌入式开发实例:基于STM32的系统设计[M].北京:电子工业出版社,2013. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。