基于iNEMO惯性模块的简易体感遥控机械手装置
2016-05-05程招招马超武少卿刘帅
程招招+马超+武少卿+刘帅
摘 要:将STM32F103C8T6作为主控制器,结合体感识别技术,设计的机械手臂具有体积小、操作简单、可靠性高、可扩展性强等优点,能够较好地满足对机械手可靠遥控的要求,具有较大的应用推广价值。
关键词:嵌入式控制;体感技术;iNEMO惯性模块;无线控制
中图分类号:TP242 文献标识码:A DOI:10.15913/j.cnki.kjycx.2016.08.011
随着科学技术的快速发展,智能机械手臂装置被广泛应用于实际生产生活当中,基于体感技术的智能机械装置层出不穷。传统的机械手一般都是采用PLC控制的,而本设计则采用模块化机械装置组装机械手,是基于单片机的无线控制,利用STM32F103C8T6作为主控制器,采用iNEMO惯性传感器模块实现体感信息检测、nRF24L01模块完成无线通信和12864液晶显示模块实现状态显示。同时,利用体感识别技术来取代传统的按键控制,有效地减少了硬件设备的投放,简化了系统,具有体积小、操作简单、可靠性强等特点。体感技术的优势在于人们可以用肢体直接与周边的装置或环境互动,而无需使用任何复杂的控制设备,便可让人们身临其境地与内容互动。依照体感方式和原理的不同,可以将体感技术分为三大类,即惯性感测、光学感测、惯性及光学联合感测。本设计中采用惯性感测的原理对手部姿势进行检测,从而实现体感控制。
1 系统方案及整体构架
本设计采用ST公司具有Cortex-M3内核的ARM控制器STM32F103C8T6作为主控制器,采用ST公司的iNEMO惯性导航模块进行手部姿态检测,采用nRF24L01无线模块实现指令的发送和数据的接收,采用12864液晶显示模块显示当前的控制指令、机器人状态和剩余电量,采用LED和
蜂鸣器实现提示和报警功能。主控系统软件上使用μC/OS-II实时嵌入式操作系统,能够实现实时性内核、任务管理、时间管理、通信与同步、内存管理等功能。系统的整体架构如图1所示。
2 硬件电路设计
2.1 主控制模块
本设计采用ST公司的ARM控制器STM32F103C8T6作为主控制器,32位内核,工作频率最高为72 MHz,内置128 K字节的程序存储器,20 K字节的SRAM,包含时钟、复位和电源管理,供电电压为2.0~3.6 V,满足了低功耗的要求。
2.2 传感器处理模块
本设计采用iNEMO惯性导航模块进行手部姿势识别,iNEMO惯性导航模块能够检测9个自由度,利用MEMS传感器和主控芯片STM32F103RET7提供动静态方向和惯性测量功能。集成双轴滚转-俯仰陀螺仪(LPR430AL)、单轴偏航陀螺仪(LY330ALH)、6轴地磁测量模块(LSM303DLH)、压力传感器(LPS001DL)和温度传感器(STLM75)5个意法半导体公司的传感器,运行一个AHRS姿态角运算系统,从而实现对姿态角的实时测量。传感器处理模块如图2所示。
2.3 无线通信模块
无线通信模块通过nRF24L01无线模块实现指令的发送和数据的接收,将接收的数据转化为数据指令,以控制机械手的运动,实现无线控制。采用严格的“一问一答”形式,即每发送一条指令都需要机械手本体返回一帧数据包。发送一条指令后,等待机械手本体返回的数据包,只有获得机械手本体返回的数据包后才可以继续发送指令包。如果机械手本体接收到错误指令(经校验错误的指令),置位通信错误标志位,上传数据包;同时,机械手本体报警,将机械手速度置0,接下来1 s内下位机清除串口DMA,重新接收指令。如果接收到的数据包中通信错误标志位置位,则重新配置nRF24L01无线模块,重新发送指令。
2.4 显示模块
显示模块采用12864液晶模块进行显示,可显示汉字和图形,内置8 192个中文汉字(16×16点阵)、128个字符(8×16点阵)和64×256点阵显示RAM(GDRAM),具有并行数据传送方式和串行数据传送方式。其中,串行数据传输方式只用到CS、SID、SCK 3个通信引脚,较并行数据传送方式节省单片机的I/O引脚。本文采用串行传输方式设计。
3 软件系统设计
本系统经上电初始化后,首先采集电池电压,传送采集的数据,通过12864液晶进行显示。如果电量过低,则通过蜂鸣器报警。通过DMA将iNEMO惯性导航模块数据接收到USART1中,经校验后,将数据转化为机械手臂的运动指令,并点亮指示LED灯。系统软件流程如图3所示。
4 结束语
本文讨论了基于STM32F103C8T6的嵌入式体感机械手的设计与实现,并对具体的硬件电路和软件系统进行了详细的介绍。大量实验证明,本体感机械手具有操作简便、可操作性强、通信可靠、稳定性和人性化程度高等优点,在实际应用中取得了良好的效果。
参考文献
[1]刘军.例说STM32[M].北京:北京航空航天大学出版社,2011.
[2]周立功.ARM7嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2008.
[3]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.
[4]刘火良,杨森.STM32库开发实战指南[M].北京:机械工业出版社.
[5]肖广兵.ARM嵌入式开发实例——基于STM32的系统设计[M].北京:电子工业出版社,2013.
〔编辑:刘晓芳〕