时间:2024-05-04
李红渊
摘要
本文介绍了一种基于Arduino语音控制的五指灵巧手。该方案主要针对于会说话的残疾人,通过语音控制实现对目标物体的抓取.该语音控制的灵巧手系统包含电池模块、控制器、电机驱动模块、语音模块等。该五指灵巧手方案为在上海哲谦应用科技有限公司期间设计的第一代灵巧手。语音模块为非特定人声语音模块LD3320。该灵巧手可通过语音控制实现对日常物体的抓取。
【关键词】非特定人声语音控制 五指灵巧手
据不完全统计,截止至2010年末,我国目前肢体残疾人数高达两千多万,传统假肢多采用两指或三指为主,既不灵活也不美观,仿人的五指灵巧手产品极少,且多数进口、价格昂贵。本文介绍了一种基于Arduino平台语音控制五指灵巧手的方案,使用者只要通过语音说出自己要做的动作,即可实现对目标物体的抓取。
该语音控制的灵巧手系统包含电池/电源模块、控制器、电机驱动模块、语音模块等。该五指灵巧手方案为在上海哲谦应用科技有限公司期间设计的第一代灵巧手。语音模块为非特定人声语音模块LD3320。
1 基于Arduino语音控制五指灵巧手方案
本文介绍了一种基于Arduino语音控制五指灵巧手的方案。该方案主要针对于会说话的残疾人,通过非特定人声语音控制五指灵巧手实现对目标物体的抓取。五指灵巧手采用欠驱动结构,6个自由度,11个活动关节。
目前多数语音交互产品需要联网,交互效果受网络信号制约,且价格较高,不适合残疾人灵巧手的应用,本方案采用非特定人声语音模块。方案主要包括控制器、非特定人声语音模块、驱动器及编码器、执行机构、力传感器、电池/电源模块等。系统框图如图1所示。
备注:橘色路径为能量路径;箭头路径为信号传输路径。
1.1 控制器
控制器用于与非特定人声语音模块LD3320通信、读取力传感器值、控制电机并读取电机编码器的值、用于控制器之间互相通信。主、从控制器均采用ATMEGA2560,16路模拟输入,14路PWM输出,4路UART;256KB Flash,8KB RAM,16MHz晶振。
1.2 非特定人声语音模块LD3320
LD3320是一颗基于非特定人语音识别技术的语音识别/声控芯片,无需用户进行录音训练。芯片上集成了高精度的A/D和D/A接口,无需外接辅助的Flash和RAM,即可以实现语音识别/声控/人机对话功能。把高灵敏度低信噪比麦克风接在芯片的AD引脚上即可实现录音功能。支持用户自由编辑50条关键词语条,无需语音唤醒。
1.3 力传感器
力传感器采用单点压力传感器FSR400,柔性力传感器的电阻值随着作用于感应区上的压力增大而减小。根据压力传感器规格书及实测数值,10N~100N力范围,FSR400电阻变化范围为4kohm~1kohm。
1.4 电机驱动模块
电机驱动模块采用LV8548,一个模块可同时控制两路电机。
1.5 编码器
编码器采用FAULHABERPA2-100。
每转100线,频率上限35KHz,输出两通道信号的方波;
输入电压范围:2.7~3.3V;工作电流8mA;
脉冲宽度180±45°e;AB通道信號之间相位差90±45°e;
逻辑状态脉冲宽度90±45°e;信号周期360±30°e
码盘转动惯量0.02gcm2;工作温度-25℃~85℃。
1.6 执行机构
执行机构即电机,本系统选用的是直流有刷电机,型号FAULHABER 1024SR 009SR。
标称电压9V,电枢电阻14.9欧姆,最大输出功率1.34W,最大功效82%,空载转速12000转/分钟,堵转转矩4.28mNm,堵转电流0.6A,转子转动惯量0.12gcm2,额定转矩1.5mNm,额定电流0.22A,额定转速6910转/分钟。
减速箱10/1,减速比16:1。
1.7 电池/电源模块
电池采用9V2.6AH锂离子电池。
2 软件设计实现
软件系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层及驱动层,分别作用如下:
应用程序层:实现特定应用功能的程序。如:语音控制抓取物体。
应用程序框架层:很多核心算法是通过这一层来实现的,如抓取算法,如抓球。
系统运行库层:是应用程序框架层的支撑,如单手指开合。
驱动层:驱动层是程序以访问底层硬件的形式实现人机交互,驱动程序和应用程序之间需要实现相应的信息交互,一方面,应用程序通过对驱动程序发送相应的指令,实现硬件控制的动作指令,另一方面,驱动程序将硬件读写的状态、从硬件上获得的数据传送给应用程序,实现应用程序与驱动程序间的交互。如测速、测距、计数等。
部分程序如下:
#include"103201"
#include"FSR.h"
#include"Smarthand.h"
#include"TMI.h"
#include"Demo.h"
#include"Ball.h"
#include"Card.h"
void setup()
{
Serial.begin(9600)//配置9600
Voice.init()://初始化VoiceRecognition模块
Voice.addCommand("yan shi",0);//添加指令,参数
Voice.addCommand("na ka pian",1);
Voice.addCommand("zhua ka pian",1);
Voice.addCommand("zhua qiu",2);
Voice.addCommand("na qiu",2);
Voice.addCommand("wo qiu",2);
Voice.addCommand("zhang kai",3);
Voice.starto;//开始识别
}
void loop()
{
int number;
number=switch(Voice.reado);//判断识别
Serial.print("Mode=");
Serial.println(number);
if(number==0)Demo();
//语音识别到“yan shi”时,执行应用程序框架层的Demo程序。
else if(number==1)Card();
//语音识别到"na ka pian"或"zhua kapian"时,执行应用程序框架层的Card程序。
else if(number==2)Ball();
//语音识别到"zhua qiu"、"na qiu"或"woqiu"时,执行应用程序框架层的Ball程序。
else if(number==3)Openo;
//语音识别到"zhang kai"时,执行应用程序框架层的Open程序。
}
3 结论
基于Arduino语音控制五指灵巧手的方案实现了语音控制五指灵巧手抓取物体的功能。无需联网,无需语音唤醒。五指灵巧手采用欠驱动结构,6个自由度,11个活动关节,重约0.8kg,可强力抓取3kg物品,精准抓取0.2kg物體。具有力机械自锁功能,电机失电,机械手所持物体不会跌落。可抓取类球形、规则多边形、类圆柱体、勺子、卡片、手机、电源插头等物品,可执行点击、OK、Yeah等手势动作。
参考文献
[1]赵璐,吴蒙.基于Arduino的语音识别与控制系统实现[J].微型机与应用,2015,34(21):55-57,60.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!