当前位置:首页 > 消费电子 > 消费电子
[导读] 介绍一种以ARM为核心的嵌入式服务机器人体感遥控器的设计。硬件上,本遥控器采用具有ARM Cortex-M3内核的STM32F103C8T6作为核心处理器,选用ST公司的iNEMO惯性导航模块进行手部姿态的识别,同时还具有LCD显示模块、

 介绍一种以ARM为核心的嵌入式服务机器人体感遥控器的设计。硬件上,本遥控器采用具有ARM Cortex-M3内核的STM32F103C8T6作为核心处理器,选用ST公司的iNEMO惯性导航模块进行手部姿态的识别,同时还具有LCD显示模块、无线收发模块和电源模块;软件上,采用嵌入式操作系统μ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姿态角运算系统,从而实现对姿态角的实时测量。

iNEMO惯性导航模块的基本原理

本遥控器采用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引脚,本文采用串行传输方式进行设计。

3 软件系统设计

体感遥控器的软件系统设计基于实时嵌入式操作系统μC/OS-II,借助于μC/OS-II内核的多任务管理和优秀的实时性能,大大简化了软件系统设计,并且可以保证系统响应的实时性。

3.1 任务分配与实现

在任务规划的过程中,采用分层次和模块化的思想将整个系统任务进行划分。首先,我们必须对系统整体的控制任务有清楚地了解,具体任务划分如表1所列。

表1中除OSTaskStat和OSTaskIdle任务为系统自带,其他8个任务均为用户创建。其中:App_TaskStart为起始任务,系统运行后第一个建立的任务,其作用是为初始化系统时钟和底层设备创建所有事件和其他任务;App_TaskAD任务监视电池电压的变化,当电压低于设定值Low Battery时,将启动蜂鸣器报警;App_TaskAHRS任务通过DMA不断接收iNEMO惯性导航模块数据,然后交由USART1接收缓冲区,实时获得手部姿态信息;App_TaskCmd根据手部姿态信息转化为机器人运动指令,然后按照制定的通信协议通过nRF24L01无线模块将指令数据包发送出去;App_TaskData任务在每发送一次指令数据包后,通过nRF24L01无线模块接收机器人本体回传的运动状态信息包;App_TaskLCD任务实现运动指令、机器人运动状态、电池电量、实时时钟在12864液晶显示模块上的显示;App_TaskLED_B任务通过LED指示遥控器上的主控芯片与iNEMO惯性导航模块、遥控器与机器人是否通信正常,当电池电量过低时,通过蜂鸣器进行报警;App_TaskClock任务得到DS1302的实时时钟,通过消息邮箱App_LCDClockMbox发送给App_TaskLCD任务予以实时显示。

3.2 任务间通信设计

任务和中断服务子程序可以通过事件控制块与其他任务进行通信,常用的通信方式有信号量、邮箱和消息队列,同时,通过事件标志实现任务与事件之间的同步。本操作系统共创建了8个消息邮箱和1个事件标志:

OS_EVENT *App_AHRSMbox

OS_EVENT *App_CommandMbox

OS_EVENT *App_DataMbox

OS_EVENT *App_ADMbox

OS_EVENT *App_LCDCmdMbox

OS_EVENT *App_LCDDataMbox

OS_EVENT *App_LCDADMbox

OS_EVENT *App_LCDClockMbox

OS_FLAG_GRP *App_GreenLEDFlag

其中,App_GreenLEDFlag包括3个标志位:

#define Flg_GreenLED 0x0001

#define Flg-BlueLED 0x0002

#define Flg_Buzzer 0x0004

3.3 软件系统流程图设计

软件系统流程图如图4所示。体感遥控器经上电初始化后,首先采集电池电压,然后通过邮箱*App_ADMbox将采集得到的电量值发送给 12864液晶显示模块进行显示,若电量过低,则使标志位Flg_Buzzer置位,即通过蜂鸣器进行报警。并且,通过DMA把iNEMO惯性导航模块的数据接收到USART1,判断校验位是否正确,若不正确则重新配置DMA,重新接收数据;若正确则将接收到的数据转化为控制指令,通过nRF24L01无线模块发送给机器人。同时通过邮箱*App-LCDCmdMbox将指令发送给App_TaskLCD任务,在12864液晶显示模块显示当前发送的指令,并通过置位Flg_GreenLED点亮相应LED,以表示STM32F103C8T6与iNEMO模块通信正常;机器人本体接收到指令后,会给遥控器返回数据包,如果遥控器接收的数据错误标志位没有置位,则说明遥控器与机器人本体通信正常,通过邮箱*App_LCDDataMbox将机器人的状态信息发送给App_Tas kLCD任务,在12864液晶显示模块上显示机器人本体运动状态,同时通过置位Flg_BlueLED点亮相应LED,以表示遥控器与机器人本体通信正常。App_TaskClock任务通过邮箱*App_LCDClockMbox向App_TaskLCD任务发送当前时间信息,并予以显示。

体感遥控器软件系统开发环境为IAR EWARM5.4,μC/OS-II版本为V2.86,STM32F103C8T6的调试工具为J-Link仿真器,STM32F103C8T6的固件库版本为V2.0.3。

3.4 遥控器与机器人本体通信方案设计

本设计采用严格的“一问一答”形式,即每发送一条指令都需要机器人本体返回一帧数据包。遥控器发送一条指令后,等待机器人本体返回的数据包,只有获得机器人本体返回的数据包后才可以继续发送指令包。如果机器人本体接收到错误指令(经校验错误的指令),置位通信错误标志位,上传数据包;同时,机器人本体报警,将机器人速度置0,接下来1 s内下位机清除串口DMA,重新接收指令。如果遥控器收到的数据包中通信错误标志位置位,则重新配置nRF24L01无线模块,重新发送指令。

4 性能测试

对本文所描述的嵌入式机器人体感遥控器进行了相应的测试,测试环境分别为室内走廊环境和室外环境,测试结果如表2所列。测试结果表明,在室内走廊环境中,收发指令的正确率在95%以上;在室外环境中,由于环境中可能存在多种干扰,并且距离在20~30 m,正确率在90%以上。由于遥控器底层软件具备一定容错能力,90%以上的正确率完全满足要求。

结语

本文讨论了基于STM32F103C8T6的嵌入式服务机器人体感遥控器的设计与实现,并对具体的硬件电路和软件系统进行了详细的介绍。经过大量的实验证明,本体感遥控器具有操作简便、可操作性强、通信可靠、稳定性和人性化程度高等优点,在实验室服务机器人的实际应用中取得了良好的效果。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭