物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  其他  >  正文

基于RFID的助盲语音寻物机器人的设计与实现

作者:郑雅丽 王震 李通
来源:电脑知识与技术
日期:2016-06-03 14:18:48
摘要:基于RFID助盲寻物机器人,是帮助盲人寻找物品的电子产品,它可以方便盲人寻找所需物品,避免盲人因找物而带来的麻烦,并可以通过语音命令对机器人进行控制,同时机器人也会给出语音提示,让盲人能享受现代科技生活的便捷。

  随着科学技术的发展和人们生活水平的不断提高,我们对生活的安全、舒适、便捷等各方面的要求也越来越高[2]。针对盲人的生理缺陷,研究了一款帮助盲人寻找所需物品的移动机器人,它以UP-MAGIC2410为主控芯片,嵌入式Linux为操作系统,并采用多线程的方式集成了射频识别模块、超声波测距模块、电机驱动模块和语音声控模块。通过RFID模块对物品进行辨识确定所寻物体的位置并且进行精确定位,直流电机和驱动器完成对机器人的移动控制,而超声波模块实现避障功能[3]。盲人可以通过语音来对机器人进行寻物控制,在语音命令的指示下机器人将独立完成一次寻物过程,并会在找到的物体处给出语音提示。基于RFID的助盲寻物机器人是结合了RFID技术、语音声控技术、传感技术等的融合体,它给盲人的生活带了极大的便利[4]。

  1功能描述

  基于RFID助盲寻物机器人,是帮助盲人寻找物品的电子产品,它可以方便盲人寻找所需物品,避免盲人因找物而带来的麻烦,并可以通过语音命令对机器人进行控制,同时机器人也会给出语音提示,让盲人能享受现代科技生活的便捷。

  本系统主要包括以下几个功能模块:

  1)智能检测模块:

  ◆RFID读写器:检测室内的带有RFID标签的物品,确定其物品方位后通过语音提示给盲人。

  ◆温湿度传感器:检测室内的温度和湿度,通过语音提示给盲人。

  ◆烟雾浓度探测器:自动检测烟雾及温度,当烟雾浓度大于一定的范围的时候,进行语音提示。

  2)手动控制模块:

  ◆Zigbee模块:在手动控制模块与中控模块之间进行无线传输指令和数据。

  ◆按键控制:直接通过手持终端上的按键来发出控制指令。

  ◆SPCE061A语音模块:识别盲人发出的语音指令来控制机器人,语音控制机器人使得整个系统操作简单实用更加人性化。

  3)中控模块:

  ◆中控模块采用北京博创公司的UP-MAGIC2410开发板,它集成了助盲语音寻物机器人的所有子系统,接口丰富,功能强大,是机器人的总控制器。通过手持终端的Zigbee无线通讯,控制机器人的开启、温湿度检测、烟雾浓度检测和语音寻物的功能。

  硬件系统框图如下图1。

基于RFID的助盲语音寻物机器人的设计与实现

  2项目总体设计

  根据助盲寻物机器人的功能与技术要求的实际情况,采用“硬件+软件”的系统结构来设计机器人[5],各部分简要介绍如下:

基于RFID的助盲语音寻物机器人的设计与实现

  系统选用基于采用UP-MAGIC2410的硬件开发平台。嵌入式操作系统选用Linux 2.6.24,可以很好的满足用户的需求,而且用户可以对Linux系统进行剪裁或定制。

  SQLit3数据库支持大多数的SQL指令,使用方便,一个文件就是一个数据库,不需要安装数据库服务器软件,减小了系统空间的使用量。不仅有完整的Unicode标准支持,而且它还具有速度快的特点,可以减少系统查询所消耗的时间。

  系统的开发环境如下:

  1)硬件环境:UP-MAGIC2410硬件开发平台、SPCE061A语音模块、Zigbee无线传输模块、超声波模块、RFID模块;

  2)软件环境:Linux2.6+SQLite3

  3应用的技术分析

  3.1 Zigbee简介

  ZigBee技术是一种应用于短距离范围内,低传输数据速率下的各种电子设备之间的无线通信技术。ZigBee名字来源于蜂群使用的赖以生存和发展的通信方式,蜜蜂通过跳ZigZag形状的舞蹈来通知发现的新食物源的位置、距离和方向等信息,以此作为新一代无线通讯技术的名称。

  ZigBee技术的特点:

  1)功耗低:工作模式下,ZigBee传输速率低,传输数据量很小,因此信号的收发时间很短,其次在非工作模式时,ZigBee节点处于休眠模式。2)传输可靠:ZigBee的媒体接入控制层(MAC层)采用talk-when-ready的碰撞避免机制。3)网络容量大:ZigBee低速率、低功耗和短距离传输的特点使它非常适宜支持简单器件。4)兼容性:ZigBee技术与现有的控制网络标准无缝集成。

  5)安全性:Zigbee提供了数据完整性检查和鉴权功能,在数据传输中提供了三级安全性。

  CC2430是一颗真正的系统芯片(SoC)CMOS解决方案。这种解决方案能够提高性能并满足以ZigBee为基础的2.4GHz ISM波段应用对低成本,低功耗的要求。它结合一个高性能2.4GHz DSSS(直接序列扩频)射频收发器核心和一颗工业级小巧高效的8051控制器。

  3.2 RFID简介

  RFID模块采用RMU900+读写器。RMU900+模块是超小型化超高频读写器核心部件,它集成了PLL、发射、接收、射频耦合器件 及MCU等。其主要工作频率为840-960MHz,同时支持EPC C1 GEN2、ISO 18000-6C两个协议,可工作在+3.3V的低电压下,最大输出功率可达到27dBm,并且可以通过UART、WIEGAND连接上位机。RMU900+模块还提供完整的通讯协议,可用于上位机为Linux操作系统的应用。

  3.3 UP-MAGIC2410简介

  本次项目的设计使用的硬件平台是由北京博创兴业科技有限公司开发的UP-MAGIC 2410实验平台。S3C2410微处理器的ARM9高性能的开发平台,主频200MHz,100MHz总线频率。采用最小系统核心板加扩展板的双层构架,标配32MSDRAM和64M NAND FLASH。提供LINUX2.4/2.6操作系统,并且提供了完整的驱动和应用程序。

  UP-MAGIC 2410是专门为对成本和功耗非常敏感同时性能要求又相当高的应用而设计的。凭借代码大小和中断延迟的优化、集成的系统部件、灵活的配置、简单的高级语言编程和强大的软件系统,UP-MAGIC2410将成为广大系统(从复杂片上系统到低端的微控制器)的理想解决方案。

  部分模块的详细设计:

  3.4语音控制模块

  语音控制模块主要是通zigbee的无线传输来控制助盲机器人寻找物体。SPCE061A是台湾凌阳公司出的一款单片机,它的CPU内核采用凌阳最新推出μ’nSP?s21(Microcontroller and Signal Processor)16位微处理器芯片。围绕μ’nSP?s21所形成的16位μ’nSP?s21系列单片机采用的是模块式集成结构,它以μ’nSP?s21内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件;由于具有语音处理的特色,即便是不挂接额外的硬件,也能制作语音通讯产品[6]。

基于RFID的助盲语音寻物机器人的设计与实现

  3.5超声波模块设计图如下

  超声波是指频率超过20KHz以上的声音。理论上,声音在25℃空气中传播速度的理论值为344m/s,这个速度在0℃时降为334m/s。如果测距精度要求很高,则应通过温度补偿的方法加以校正。而超声波测距是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。由此可见,超声波测距原理与雷达原理是一样的。

  测距的公式表示为:L=C*T (1)。

  式(1)中L为测量的距离长度;C为超声波在空气中的传播速度;T为测量距离传播的时间差(T为发射到接收时间数值的一半)。

基于RFID的助盲语音寻物机器人的设计与实现

  发射部分用来对超声波换能器进行功率驱动,将由单片机产生的40KHZ脉冲信号送入发射输入端,经过驱动放大达到足够功率之后,推动超声波换能器产生超声波。之所以使用40KHz的脉冲信号是因为实际的需要α=αf2式中α为衰减,α为介质常数(空气中α=2×10-13S2/cm),f位震荡频率。由上面的公示可知,当f=40KHz时,α=3.2×10-4/cm,1/a=31m。如果f=30KMz,1/a=56cm。用波动方程表示超声波A=A0e-axcos(wt+kx),那么(1/a)表示了在这个长度上,平面声波的振幅衰减为原来e分之一。由此可见,频率越高,衰减越厉害,传播的距离越短。

基于RFID的助盲语音寻物机器人的设计与实现

  接收部分主要由接收换能器和放大电路等环节组成。其中放大电路是一个放大倍数较高的三级运算放大器,是将从目标处反射回来的微弱信号进行放大整形后送入计数控制电路部分。由于在距离较远时声波的回波信号很小,因而转换为电信号的幅度也较小,为此要求将信号放大60万倍左右[7]。因为共射放大适合用于小信号放大,所以采用三级共射放大:前两级放大100倍,其带宽为15MHz能充分满足要求;第三级采用运算放大器,带宽为4 MHz。

  部分代码如下:

  void init0int() interrupt 0

  {uint timer_us = 0;

  TR0=0;//关闭定时器0

  timer_us = TH0*256+TL0;

  if(timer_us>190)timer_us=timer_us-180;//修正测距的距离

  if(timer_us<=735)

  {timer_us=timer_us-96}//二次修正

  length = ((unsigned long)(329)*timer_us)/2000;//计算长度,是扩大1000倍

  flag = 0;

  EA = 0; }//禁止所有中断

  3.6驱动模块的设计

  驱动程序是连接硬件设备和设备文件的纽带,是操作系统内核和硬件设备之间的接口。

  采用嵌入式Linxu系统,其驱动程序主要有两种加载方式:直接编译入内核和模块加载[8]。其中,采用直接编译进内核方式,在内核启动时就已经存在。而采用模块化加载方式,需要时动态的加载入内即可,这样使得程序按需加载,节省了内存,也相对灵活[9]。

  模块化加载的的方式如下:

  1)在Linxu内核目录下,执行“make menuconfig”指令,弹出Linux内核的配置菜单。

  2)针对本课题选用的PL2303芯片的串口转USB设备,在配置菜单中选择响应的驱动模块,具体如下:

  USB support -->

  USB Serial Converter Support -->

  USB Serial Converter Support

  USB Prolific 2303 Single Port Serial Driver

  3)退出配置菜单,并执行“make modules”指令编译驱动模块。也可以只编译内指定目录下的驱动模块,即通过执行“make mod? ules SUBDIRS=drivers/usb/serial”指令只编译内核源代码中drivers/usb/serial目录下的驱动模块。

  4)执行完上述指令后,会在drivers/usb/serial目录下生成驱动模块usbserial.ko和pl2303.ko。

  5)将usbserial.ko和pl2303.ko下载到开发平台上,并执行“insmod usbserial.ko”和“insmod pl2303.ko”两条指令。当然由于pl2303. ko是依赖于usbserial.ko的,所以上述指令的执行顺序是不能改变的。

  6)最后,通过mknod建立响应的设备文件结点,即执行“mknod /dev/ttyUSB0 c 188 0”即可,而指令中的/dev/ttyUSB0代表文件节点的名车;“c”代表驱动程序的类型,为字符驱动;而188和0分别代表该串口转USB设备的主次设备号[10]。

  3.7系统的工作流程如下

  通过对SPCE061A语音模块进行语音命令预存储操作,并将训练的命令存储在flash中,在下次启动时先判定是否已经存储,如果存储,就直接将命令进行加载。否则对其训练。

  在语音训练完成时,再和中控进行串口通信。但接受到一条命令时,语音模块就通过串口像中控平台发送一个对应的命令符。

  中控平台找到物体后,语音模块可以通过串口中断接受中控平台发来的命令,并给予语音提示。

  预先对RFID记录标签信息。RFID启动时,先开启USB接口,等待中控平台传送指令,在通过指令找到相应标签信息,然后开启标签查找功能。

  机器人在中控平台的指令下启动,并根据中控平台中寻径算法控制其移动避障。并在每一次移动的同时发送超声波所反馈的信息。

  超声波先设定好其探测长度(设定频率),当电机驱动开启后,超声波通过单片机GPIO口控制也随之开启,随着机器人的每一次移动,将前方信息反馈给单片机。再由单片机通过串口传送给中控平台。

  先存储语音和RFID标签信息的数据库,再创建语音控制,RFID通信,和算法的线程,机器人的调控接口作为参数设置在算法线程中,由算法来给电机驱动提供指令。

  4仿真及总结

  基于RFID助盲语音寻物机器人完成实现之后,我们对它进行了测试,当我们在室内点燃物品产生烟雾时,机器人自动会通过语音提示来告诉盲人室内的烟雾浓度过高,同时还可以检测室内的温湿度状况;当通过语音发出寻物指令时,机器人就开始移动寻找物品,如果有障碍物遮挡时它会自动及时进行避障,不至于撞到周围物体,直到机器人移动到RFID模块扫描到所要找的物品时,它会停止移动并且通过语音提示来告诉盲人物品已找到。整个测试结果基本达到了预期的效果,但是机器人移动起来所走的路线由于受到路面等环境因素稍微有点偏差,以致最后离找到的物品发生位置上的偏差。

  这款助盲语音寻物机器人所定位的服务对象是我国的广大的盲人群体,切实的帮助盲人解决生活上寻找物体的不便,为他们带来物联网时代下高科技的生活体验[11]。利用RFID定位导航,是依赖其较高的精确度,且便于控制[12]。根据RFID技术检测到目标物的位置[13],利用超声波探测技术结合贪心算法进行局部路径规划[14],在保证规划任务顺利完成的同时,也保证了路径规划的收敛性,并且具有较好的环境适应能力[15]。在探测路面状况方面,是利用超声波来进行实时探测。超声波不仅可以设置探测定长,而且探测距离远。采用Zigbee无线传输语音命令控制机器人,实现人机互动的趣味和便利。

  随着对移动机器人技术的深入研究,以及机器人在工业和日常生活中的逐渐普及,采用RFID技术的移动机器人研究的显得越来越为人们所关注,其也必将为人们的生活、生产带了极大的便利。

  参考文献:

  [1]李磊,叶涛,谭民.移动机器人技术研究现状与未来[J].机器人,2002(24):475-477.

  [2]杨化书,曲新峰.工业机器人技术的应用及发展[J].黄河水利职业技术学院学报,2004(4):42-43.

  [3]郭戈,胡征峰,董江辉.移动机器人导航与定位技术[J].微计算机信息,2003(8):10-12.

  [4]陈博.机器人技术的发展趋势和最新发展[J].西安教育学院学报,2004(3):85-87.

  [5]康一梅.嵌入式软件设计[M].北京:机械工业出版社,2008:178,189-194,282-284.

  [6]王??.有声图书市场分析[EB/OL].http://bbs.省略/home.php?mod=space&uid=51004&do=blog&id=379745,2010-11-02。

  [7]吴涛.移动机器人避障与路径规划研究[D].武汉:华中科技大学,2004.

  [8]李俊.嵌入式Linux设备驱动开发详解[M].北京:人民邮电出版社,2008:16-20.

  [9]刘淼.嵌入式系统接口设计与Linux驱动程序开发[M].北京:北京航空航天大学出版社,2006:199-204.

  [10]童永清.Linux C编程实战[M].北京:人民邮电出版社,2008:204-219.

  [11]蒋新松.机器人学导论[M].沈阳:辽宁科学技术出版社,1944:511-516,543-554.

  [12]陈华志,谢存禧.移动机器人导航及其相关技术的研究[J].机床与液压,2003(4):12-15.

  [13]雷斌.动态环境下多移动机器人路劲规划研究[M].武汉:武汉理工大学,2006.

  [14]刘京京.多目标遗传优化及其在机器人路径规划中的应用[D].南京:南京理工大学,2007.

  [15]刘世成.工业机器人路径规划算法研究[M].沈阳:沈阳工业大学,2004.