以ARM为核心的嵌入式体感遥控器设计
摘要:介绍一种以ARM为核心的嵌入式服务机器人体感遥控器的设计。硬件上,本遥控器采用具有ARM Cortex-M3内核的STM32F103C8T6作为核心处理器,选用ST公司的iNEMO惯性导航模块进行手部姿态的识别,同时还具有LCD显示模块、无线收发模块和电源模块;软件上,采用嵌入式操作系统μC/OS-II实现多任务的调度和外围设备的管理。经实验验证,本遥控器具有高稳定性、高实时性、高可靠性、低误码率等优点。
关键词:服务机器人;体感遥控器;ARM;惯性传感器;μC/OS-II
引言
服务机器人作为多种高新技术发展成果的集成,为实现服务的目的,需要通过人性化、简便、自然的方式进行人机交互,传统的按键式遥控器显然不能满足这种设计要求。目前,体感设备发展迅速,各类基于体感控制的装置层出不穷。体感控制就是通过肢体动作变化来实现
控制,基于体感装置的人机交互已经成为当前研究的热门课题。
常见的无线遥控技术不外乎红外遥控技术和无线电遥控技术。其中红外遥控技术优点就是带宽大,但是需要较强的指向性,传输距离短,穿透能力差,功耗高;与之相比,无线电遥控技术无方向性,抗干扰能力和穿透能力强,传输距离远,功耗低。因此,无线电遥控技术更加适合于智能家居、消费类电子和机器人控制等领域。
本文以STM32F103C8T6作为主控制器,采用iNEMO惯性导航模块、nRF24L01无线模块和12864液晶显示模块。设计的嵌入式体感遥控器具有体积小、操作简单、可靠性高、可扩展性强等优点,能够较好地满足对服务机器人可靠遥控的要求,具有较大的应用推广价值。
1 系统功能要求及整体架构
1.1 基本功能要求
①具备实时准确发送相应控制指令的能力。根据手部姿态确定指令的内容。
②具备接收机器人本体回传数据包的能力。根据接收的数据包进行解析,进而判断本体接收的控制指令是否正确。
③具备当前指令和机器人当前状态信息的显示能力。一方面将发送的控制指令在LCD液晶屏上予以显示;另一方面根据机器人本体回传的数据包,解析得出机器人的状态,在LCD液晶屏上进行显示。
④具备电池电量检测和低压报警功能。将剩余电量实时地显示在LCD液晶屏上,当电量不足时,通过蜂鸣器进行报警提示。
1.2 系统整体方案及架构
iNEMO惯性导航模块的基本原理如图1所示,利用MEMS传感器和主控芯片STM32F103RET7提供动静态方向和惯性测量功能。集成双轴滚转-俯仰陀螺仪(LPR430AL)、单轴偏航陀螺仪(LY330ALH)、6轴地磁测量模块(LSM303DLH)、压力传感器(LPS001DL)和温度传感器(STLM75)5个意法半导体公司的传感器,运行一个AHRS姿态角运算系统,从而实现对姿态角的实时测量。
本遥控器采用ST公司具有Cortex-M3内核的ARM控制器STM32F103C8T6作为主控制器,采用ST公司的iNEMO惯性导航模块进行手部姿态检测,采用nRF24L01无线模块实现指令的发送和数据的接收,采用12864液晶显示模块对当前控制指令、机器人当前状态和剩余电量予以显示,采用LED和蜂鸣器实现提示和报警功能。遥控器软件上使用μC/OS-II实时嵌入式操作系统,能够实现实时性内核、任务管理、时间管理、通信与同步、内存管理等功能。系统的整体架构如图2所示。
2 硬件电路设计
2.1 主控制模块电路
主控制器STM32F103C8T6芯片,工作频率高达72 MHz,内置64 KB的Flash和20 KB的SRAM,具有丰富外设和超低功耗,完全满足本设计要求。主控制模块电路图如图3所示,参照ST公司发布的STMF10xxx硬件开发入门文档,该部分包括外部时钟电路、模拟电源输入、电源滤波、下载仿真口的设计。
2.2 电源模块电路
本遥控器采用8.4 V锂电池供电,采用TL750M05C稳压芯片提供5 V电压,选用REG1117-3.3稳压芯片为系统提供3.3 V电压。STM32F1 03C8T6电源分为模拟电源与数字电源,为了保证其正常工作,将两路电源进行隔离设计,在模拟地与数字地之间通过0Ω电阻实现单点共地。为监测锂电池电源电压,将电池电压经电阻分压及阻容滤波电路滤波后作为STM32F103C8T6采样输入。
2.3 无线通信模块及显示模块电路
无线通信模块采用2.4 GHz频段射频芯片nRF24L01作为无线数据收发芯片,工作于2.4~2.5GHz ISM频段,输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6 dBm的功率发射时,工作电流只有9 mA;接收时,工作电流只有12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。nRF24L01采用SPI总线方式与控制芯片进行通信。
12864液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16×1 6点阵)、128个字符(8×16点阵)及64×256点阵显示RAM(GDRAM),具有并行数据传送方式和串行数据传送方式,其中串行数据传输方式只用到CS、SID、SCK 3个通信引脚,较并行数据传送方式节省单片机的I/O引脚,本文采用串行传输方式进行设计。
评论