李紅淵

摘要
本文介紹了一種基于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.