基于手势控制与语音控制的智能机械手设计.docx
《基于手势控制与语音控制的智能机械手设计.docx》由会员分享,可在线阅读,更多相关《基于手势控制与语音控制的智能机械手设计.docx(28页珍藏版)》请在冰豆网上搜索。
基于手势控制与语音控制的智能机械手设计
手势控制与语音控制的智能机械手
目录
摘要...................................................-3-
1整体方案.............................................-4-
2方案论证.............................................-4-
2.1控制方案......................................-4-
2.2语音识别基本原理概述..........................-5-
2.3无线传输模块的选择............................-6-
2.4电机驱动模块的选择...........................-6-
2.5角度传感器模块的选择........................-7-
3系统硬件设计........................................-8-
3.1MSP430F149单片机最小系统.....................-8-
3.2语音识别模块...................................-8-
3.3舵机模块........................................-9-
3.4电机驱动模块....................................-9-
3.5电机模块......................................-10-
3.6电源模块......................................-10-
3.7角度传感器模块...............................-11-
4软件设计...........................................-11-
4.1技术要求.............................................-11-
4.2程序流程图..........................................-12-
5设计总结.................................................-12-
6参考资料...........................................-15-
参考程序:
..........................................-15-
摘要
本系统采用MSP430F149为主控芯片,通过控制电机驱动,机械臂,以及语音识别模快来实现相应的功能。
一方面可以通过摄像头采集手势的移动轨迹,经过labview及计算机视觉库Opencv对图像进行处理,通过Wife将信号进行无线传输来控制小车及机械手臂的运动;另一方面还可以由LD3320语音模块,通过非特定人语音识别来对小车及机械手臂运动的控制;此外,还在机械手上安装一个角度传感器,保证小车在运动过程中,机械手始终保持水平状态。
关键词:
MSP430F149语音识别无线传输
Abstract
ThesystemusesMSP430F149 asthemaincontrolchip, bycontrollingthemotor drive, mechanical arm, andvoicerecognition module to achievethecorrespondingfunctions. Onecan throughthemobile trajectory cameragesture, afterLabVIEW andcomputer visionlibraryOpencv forimageprocessing, throughtheWife signal wirelesstransmission tocontrolthecarandthemechanical armmovement; onthenotherhand,canalsobecomposedof LD3320voicemodule, the speakerindependentspeechrecognition tocontrol the motionof vehicleand manipulator inaddition, themanipulator; alsoananglesensorisinstalledon, ensurethatthecar intheprocessofmovement, mechanicalhand keephorizontal state.
Keywords:
MSP430F149SpeechrecognitionWirelesstransmission
1整体方案
采用MSP430F149单片机作为控制中枢,其具有低功耗、运行速度高等特点;通过MSP430F149单片机的定时器中断A,可以简便的改变PWM信号大小,从而实现机械臂转动角度不同大小。
通过labview及计算机视觉库opencv对图像进行处理,通过手势的移动来控制小车及机械手臂的运动;还可以通过LD3320语音模块,利用语音识别对小车及机械手臂运动的控制;此外,还在机械手上安装一个角度传感器,保证小车在运动过程中,机械手始终保持水平状态。
2方案论证
2.1控制方案
方案一:
ARM单片机。
拥有强大的32位接口,但是要想很好的运用ARM,需要对其充分的了解,由于时间和精力,我们没有去研究那方面的内容,而且现在市场上ARM比较少见,价格也比较昂贵。
方案二:
凌阳单片机。
拥有16位接口,且自身已经包含A/D,D/A,尤其是51使用者所最为羡慕的语音功能,比较51有着较为明显的优势,但是由于我们组知识的局限,被迫放弃此方案。
方案三:
采用PIC18F4620单片机。
PIC18F4620采用哈佛结构,以及RISC指令系统单片机,其具有1KRAM,64KFLASH,丰富的I/O口资源,内置A/D,内置EEPROM,看门狗电路,倍频电路等丰富的外围模块,一个指令周期是四个机器周期,运算速度快,完全能够满足我们的系统要求。
但由于其不是主流单片机,价格比较高,购买不方便,使用不广泛,放弃此方案。
方案四:
MSP430F149单片机。
该类型单片机低功耗,且I/O口较多,容易数据口定义与连接。
该芯片对于我们组来说比较熟悉,而且体积小,价格便宜,通过MSP430F149单片机的定时器中断A,可以简便的改变PWM信号大小,从而实现机械臂转动角度不同大小。
考虑到我们实际的使用,我们采用MSP430F149单片机作为我们的核心控制部分,即采用方案四。
2.2语音识别基本原理概述
语音识别过程主要包括两个阶段:
训练阶段和识别阶段。
不管是训练还是识别,都必须对输入语音进行预处理和特征提取。
训练阶段所做的具体工作是通过用户输入若干次训练语音,经过预处理和特征提取后得到特征参数,最后通过特征参数建模达到建立训练语音的参考模型库的目的。
而识别阶段所做的主要工作是将输入语音的特征矢量参数和参考模型库中的参考模型进行相似性度量比较,然后把相似性最高的输入特征矢量作为识别结果输出,从而达到了语音识别的目的。
其工作原理图如图所示
目前,语音识别技术按照识别对象的类型可以分为特定人和非特定人语音识别。
特定人是指识别对象为专门的人,非特定人是指识别对象是针对大多数用户,一般需要采集多个人的语音进行录音和训练,经过学习,从而达到较高的识别率。
语音识别技术在国内外的发展十分迅速。
在嵌入式应用领域,具有代表性的有凌阳的SPCE061A、I-CRoute的LD332X。
考虑到我们实际的使用,我们采用非特定人语音识别芯片LD3320。
2.3无线传输模块的选择
该无线传输模块需要有一定信号传输距离,实现上位机与下位机之间的无线通信。
方案一:
nRF2401是单片射频收发芯片,工作于2.4~2.5GHz ISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。
芯片能耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA,多种低功率工作模式,节能设计更方便。
其DuoCeiverTM技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。
nRF2401适用于多种无线通信的场合,如无线数据传输系统、无线鼠标、遥控开锁、遥控玩具等
方案二:
Wifi,它是基于Uart接口的符合wifi无线网络标准的嵌入式模块,内置无线网络协议IEEE802.11协议栈以及TCP/IP协议栈,能够实现用户串口或TTL电平数据到无线网络之间的转换。
支持IEEE802.11b/g无线标准,支持频率范围:
2.412-2.484 GHz,支持多种无线网络类型:
基础网(Infra)和自组网(Adhoc),WEP64/WEP128/ TKIP/CCMP(AES) WEP/WPA-PSK/WPA2-PSK ,支持快速联网,支持无线漫游,支持多种网络协议:
TCP/UDP/ICMP/DHCP/DNS/HTTP,支持自动和命令两种工作模式,支持串口透明传输模式,支持AT+控制指令集,支持多种参数配置方式:
串口/WEB服务器/无线连接。
基于Wifi的以上优点,我们决定选取Wifi进行无线传输。
2.4电机驱动模块的选择
方案一:
使用高耐压复合晶体管芯片ULN2003来驱动电机。
ULN2003的每一对达林顿管都串联一个2700欧姆的基极电阻,在5V的工作电压下它能与TTL电路直接连接,可直接处理需要逻辑缓冲器来处理的数据。
ULN2003最大工作电流为500mA,对于本智能小车设计中的直流减速电机驱动能力不足。
方案二:
使用L298N电流电机驱动模块。
L298N电机驱动芯片工作电压高,最高工作电压可达46V,输出瞬间峰值电流可达3A,持续工作电流2A,额定工作频率25W。
内含两个H桥的高电压电流全桥式驱动器可以很好的控制本系统中的直流减速电机,采用标准逻辑电平信号控制,控制直流电机更加简单容易。
方案三:
采用THB7128电机驱动芯片。
THB7128芯片内部集成了细分、电流调节、CMOS功率放大等电路,配合简单的外围电路即可实现高性能、多细分、大电流的驱动电路。
但THB7218这些性能优势使其更加适合驱动步进电机,不适合本系统智能小车直流减速电机的驱动。
根据实用性方面考虑,本设计采用方案二。
2.5角度传感器模块的选择
方案一:
采用ADXL345角度传感器芯片。
ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达±16g。
数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。
ADXL345非常适合移动设备应用。
它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。
其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。
该器件提供多种特殊检测功能。
活动和非活动检测功能通过比较任意轴上的加速度与用户设置的阈值来检测有无运动发生。
敲击检测功能可以检测任意方向的单振和双振动作。
自由落体检测功能可以检测器件是否正在掉落。
这些功能可以独立映射到两个中断输出引脚中的一个。
方案二:
采用MMA7361芯片。
MMA7361LC是低功耗、低轮廓电容、微机械型加速度计具有信号调节一级低通滤波器具有温度补偿自我测试0g-Detect检测线性自由落体G-Select允许选择两种的敏感度。
零偏移和灵敏度是出厂设置不需要外部设备。
“MMA7361LC包括睡眠模式使得它非常适合用于手持蝙蝠电池供电的电子产品。
根据实用性方面考虑,本设计采用方案一。
3系统硬件设计
3.1MSP430F149单片机最小系统
最小系统包括晶体振荡电路、复位开关和电源部分。
图2为MSP430F149单片机的最小系统。
图2:
MSP430F149最小系统
3.2语音识别模块
语音识别技术按照识别对象的类型可以分为特定人和非特定人语音识别。
非特定人是指识别对象是针对大多数用户,一般需要采集多个人的语音进行录音和训练,经过学习,从而达到较高的识别率,其原理图如图3示。
图三:
LD3320
3.3舵机模块
采用定时器输出硬件PWM脉冲,使得单片机CPU只在改变PWM占空比时参与运算,这样可大幅减轻系统运算负担和PWM软件编程成本。
线性稳压器具有输出电压恒定或可调、稳压精度高的优点,但是由于其线性调整工作方式在工作中会造成较大的“热损失”,导致其电源利用率不高、工作效率低下,不易达到便携式设备对低功耗的要求。
因此为保证较高的电源利用率,舵机驱动采用LM2596开关型稳压芯片实现,它可以提供3A以上电流,驱动强劲。
3.4电机驱动模块
智能小车电机驱动采用L298N电机驱动芯片模块,此芯片工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。
内含两个H桥的高电压大电流全桥式驱动器可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制,控制直流电机简单容易。
图4为L298N电机驱动模块原理图。
。
图4:
电机驱动模块原理图
3.5电机模块
电机模块是本系统的执行机构,用于控制智能小车的行进。
采用小型直流减速电机。
减速电机控制精度很低,虽不能准确控制电机转速,但可控制电机的正转、反转、不转等动作,且速度均匀性好。
这已足够控制智能小车的前行转弯后退等简单工作,控制简单,电源要求低,易于实现。
3.6电源模块
智能小车通过可充电锂电池供电,电池电源由L7805稳压芯片调节电压,用三端稳压l7805来组成稳压电源所需的外围元件极少,l7805电路内部还有过流、过热及调整管的保护电路,l7805使用起来可靠、方便,而且价格便宜。
图4L7805稳压电路
此稳压模块能稳定电池的供电电压,使小车行进状态稳定。
3.7角度传感器模块
在机械臂上安装有角度传感器ADXL345,在机械臂运动过程中,它始终测量机械臂静态重力加速度,从而控制机械臂始终保持水平位置。
容易操控,实现简单。
如图五所示。
图五ADXL345
4软件设计
4.1技术要求
通过摄像头采集手势的移动轨迹,通过labview及计算机视觉库opencv对图像进行处理,通过手势的移动来控制小车及机械手臂的运动;还可以通过LD3320语音模块,利用语音识别对小车及机械手臂运动的控制。
4.2程序流程图
5设计总结
经过辛勤的努力,在小组各成员的努力下,我们完成了本次“毕昇杯”全国大学生电子创新设计大赛(基于手势控制与语音控制的智能机械手)的基本要求。
但是由于时间原因和水平的限制,我们的作品也有一些缺憾,值得改进。
我们在制作过程中遇到了种种困难和障碍,但是我们知道取得成功挫折时难免的。
通过这次制作过程我们学到了很多知识,让我们领悟了想成功就要付出努力,没有最好只有更好的道理,制作的过程也就是积累经验的过程,在以后的学习中我们会再接再厉,争取取得更好的成绩,做出更好的作品。
6参考资料
[1]《单片机技术基础教程与实践》夏路易编电子工业出版社
[2]《基于MSP430F149单片机设计与仿真》侯玉宝编电子工业出版社
[3]《单片机C语言程序设计教程与实训》张秀国编北京大学出版社
[4]《单片机中级教程——原理与应用》张俊谟编北京航空航天大学出版社
[5]《MSP430系列单片机应用软件编程技术》李强编北京航空航天大学出版社
附录:
参考程序:
1#include
2#include
3
4
5#defineucharunsignedchar
6#defineuintunsignedint
7ucharsec=1,min=37,Hour=11,day=22;
8uintmiao;
9voidsend8bit(unsignedinti);//发送字函数
10voidds1302_write_byte(unsignedcharaddr,unsignedchard);
11unsignedchards1302_read_byte(unsignedcharaddr);
12voidds1302_write_time(void);
13voidds1302_read_time(void);
14voidds1302_init(void);
15sbitSCK=P2^5;//7
16sbitSDA=P2^6;//6
17sbitRST=P2^7;//5
18sbitdat=P3^0;//595数据14
19sbitclock=P3^1;//595时钟信号11
20sbitso=P3^2;//595锁存信号12
21
22
23/*复位脚*/
24#defineRST_CLRRST=0/*电平置低*/
25#defineRST_SETRST=1/*电平置高*/
26/*双向数据*/
27#defineIO_CLRSDA=0/*电平置低*/
28#defineIO_SETSDA=1/*电平置高*/
29#defineIO_RSDA/*电平读取*/
30/*时钟信号*/
31#defineSCK_CLRSCK=0/*时钟信号*/
32#defineSCK_SETSCK=1/*电平置高*/
33#defineds1302_sec_add0x80//秒数据地址
34#defineds1302_min_add0x82//分数据地址
35#defineds1302_hr_add0x84//时数据地址
36#defineds1302_date_add0x86//日数据地址
37#defineds1302_month_add0x88//月数据地址
38#defineds1302_day_add0x8a//星期数据地址
39#defineds1302_year_add0x8c//年数据地址
40#defineds1302_control_add0x8e//控制数据地址
41#defineds1302_charger_add0x90
42#defineds1302_clkburst_add0xbe
43
44unsignedchartime_buf1[8]={1,11,5,20,21,15,30,1};//空年月日时分秒周
45unsignedchartime_buf[8];//空年月日时分秒周
46unsignedcharcount;//标志位
47unsignedcharcount=0;//定义变量
48unsignedchardisbuf[64];
49unsignedcharh,hh,m,mm,n,nn,y,yy,r,rr,fe,ffe,z,zz;
50//chartable2[8][8];
51codeunsignedtable[][8]=
52{
53{0XFF,0XFF,0XC3,0XBD,0XBD,0XBD,0XC3,0XFF},//0
54{0XFF,0XFF,0XEF,0X8F,0XEF,0XEF,0X83,0XFF},//1
55{0XFF,0XFF,0XC1,0XBD,0XFB,0XC5,0X81,0XFF},//2
56{0xFF,0xC3,0xFB,0xF7,0xEF,0xF3,0xFB,0xC3},//3
57{0XFF,0XFB,0XE3,0XDB,0XBB,0XC1,0XF3,0XFF},//4
58{0XFF,0XFF,0X81,0XBF,0X83,0XBD,0XC3,0XFF},//5
59{0XFF,0XFF,0XC3,0XBF,0X83,0XBD,0XC3,0XFF},//6
60{0XFF,0XFF,0X81,0XBB,0XE7,0XEF,0XEF,0XFF},//7
61{0xFF,0xFF,0x81,0xBD,0xC3,0xBD,0xC3,0xFF},//8
62{0XFF,0XFF,0XC3,0XBD,0XC1,0XF9,0XC3,0XFF}//9
63};
64
65
66unsignedchardisbuf[64]=
67{
68
690XFF,0XFF,0XFF,0XFF,//1
700XFF,0XFF,0XFF,0XFF,//2
710XFF,0XFF,0XFF,0XFF,//3
720XFF,0XFF,0XFF,0XFF,//4
730XFF,0XFF,0XFF,0XFF,//5
740XFF,0XFF,0XFF,0XFF,//6
750XFF,0XFF,0XFF,0XFF,//7
760XFF,0XFF,0XFF,0XFF,//8
770XFF,0XFF,0XFF,0XFF,//9
780XFF,0XFF,0XFF,0XFF,//10
790XFF,0XFF,0XFF,0XFF,//11
800XFF,0XFF,0XFF,0XFF,//12
810XFF,0XFF,0XFF,0XFF,//13
820XFF,0XFF,0XFF,0XFF,//14
830XFF,0XFF,0XFF,0XFF,//15
840XFF,0XFF,0XFF,0XFF//16
85};//显示缓存
86voiddelay(void)
87{
881uchari;
891for(i=6245;i>0;i--)
901;
911}
92
93
94voidshijian(void)
95{
961
971n=time_buf1[1]/10;//年
981nn=time_buf1[1]%10;
991
1001//y=time_buf1[2]/10;//月
1011//yy=time_buf1[2]%10;
1021
1031r=time_buf1[3]/10;//日
1041rr=time_buf1[3]%10;
1051
1061h=time_buf1[4]/10;//时
1071hh=time_buf1[4]%10;
1081
109