(RB-13K049)AS-4WD語音識別移動機器人
目錄 |
產(chǎn)品概述
2014年最新推出的AS-4WD語音識別移動機器人是哈爾濱奧松機器人科技有限公司汲取國內(nèi)外多款移動平臺優(yōu)點于一體,自主研發(fā)的語音識別的機器人。音識別是一門交叉學(xué)科。近二十年來,語音識別技術(shù)取得顯著進步,開始從實驗室走向市場。人們預(yù)計,未來10年內(nèi),語音識別技術(shù)將進入工業(yè)、家電、通信、汽車電子、醫(yī)療、家庭服務(wù)、消費電子產(chǎn)品等各個領(lǐng)域。 語音識別聽寫機在一些領(lǐng)域的應(yīng)用被美國新聞界評為1997年計算機發(fā)展十件大事之一。與機器人進行語音交流,讓機器人明白你說什么,這是人們長期以來夢寐以求的事情。AS-4WD語音識別移動機器人就可以實現(xiàn)你的夢想,其語音識別器采用凌陽單片機控制器可以學(xué)習記錄你的聲音,并且跟你實現(xiàn)人機對話,通過識別和理解過程把語音信號轉(zhuǎn)變?yōu)橄鄳?yīng)命令,經(jīng)無線藍牙模塊傳輸給機器人,從而可以完成前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、測距播報等功能。這款平臺非常適合Arduino愛好者、各大中小學(xué)開展機器人普及教育使用,更適合學(xué)生用其參加全國大學(xué)生電子大賽、智能車競賽、足球機器人等比賽。讓你輕松感受機器人DIY無限樂趣。
產(chǎn)品清單
安裝步驟
4WD平臺安裝
步驟1:充電接口撥動開關(guān)連接線制作
步驟2:直流電機安裝
4WD平臺兩側(cè)電機安裝方法相同,需要注意的是在安裝電機之前需要將電機連接線使用電烙鐵焊接好,并使用熱縮過加熱塑封。
步驟3:平臺側(cè)板安裝
步驟4:平臺端板安裝
步驟5:雙H橋驅(qū)動板安裝
步驟6:充電接口撥動開關(guān)安裝
步驟7;Carduino UNO 控制器安裝
步驟8:RB-421舵機安裝
步驟9:超聲波傳感器安裝
步驟10:組合體安裝
步驟11:4WD 輪子安裝
步驟12:插入藍牙模塊
注意:在插入藍牙模塊之前要將Carduino中下載好程序,插著藍牙模塊進行程序下載會造成程序下載不成功問題。
配件參數(shù)
凌陽61板技術(shù)參數(shù)
- 控制器供電范圍:DC5V 或DC3.3V
- 機器人供電7.4V 鋰電
- 通信接口:RS232(串口)或TTL 配合無線藍牙模組
- 波特率:115200b / s
- 擴展功能:AD 輸入、舵機控制等
Carduino UNO控制器
雙H橋電機驅(qū)動板
超聲波傳感器
傳感器擴展板
RB-421舵機
藍牙模塊
使用方法
凌陽61控制板供電
整機供電三粒五號電池或外接5V 電源。
語音訓(xùn)練
按一下KEY3 鍵開始按照語音提示進行語音訓(xùn)練。
訓(xùn)練采用應(yīng)答形式,每條指令訓(xùn)練兩次,每條命令的訓(xùn)練方法是相同的,以第一條命令“前進”為例說明:
第一步:控制器提示“前進”
第二部:我們對著話筒說“前進”
第三部:語音控制器提示“再說一遍”
第四部:我們再次對著話筒說“前進”
到此第一條命令訓(xùn)練完畢。如果訓(xùn)練成功控制器會自動進入嚇一跳命令的訓(xùn)練,如果環(huán)境很吵或前后你說的話偏差太大,控制器會提示“沒有聲音”或者“沒有聽清”這樣這條命令就會從新訓(xùn)練。當所有的命令訓(xùn)練完畢,控制器會提示“準備好了”。此時命令已經(jīng)存儲完畢,斷電后開啟不用從新訓(xùn)練,如果在訓(xùn)練過程中斷電,則再次上電時會從新從第一條訓(xùn)練。
按鍵說明:
KEY1:按下KEY1 鍵播放控制器內(nèi)所有語音(控制器自檢功能)
KEY2:緊急停止命令等同語音“停止”命令
KEY3:從新進行語音訓(xùn)練(當識別靈敏度降低或更換法令人時使用)
凌陽61 接線說明
控制器————無線藍牙模塊
IOB7(RXD) ——PIN5(TXD)
IOB10(TXD)——PIN4(RXD)
IOB+(5V) ———PIN1(5V)
IOB-(GND)———PIN2(GND)
4WD 平臺部分接線
超聲波傳感器接線
超聲波模塊引腳 | Carduino UNO控制器 |
5V | 數(shù)字2腳VCC端 |
GND | 數(shù)字2腳GND端 |
OUTPUT | 空 |
INPUT | 數(shù)字2腳S端 |
雙H橋驅(qū)動板接線
雙H橋驅(qū)動板 | Carduino UNO控制器 |
EA | 數(shù)字腳10信號S |
EB | 數(shù)字腳5信號S |
I1 | 數(shù)字腳8信號S |
I2 | 數(shù)字腳9信號S |
I3 | 數(shù)字腳7信號S |
I4 | 數(shù)字腳6信號S |
語音控制4WD平臺
基本語音控制
第一步:打開控制器電源及4WD 機器人電源。
第二步:等待藍牙配對。主從藍牙模塊黃燈都亮起表示配對成功(十秒左右)。
第三步:發(fā)號施令,在說出命令后4WD 開始運動,控制器回應(yīng)相同的命令。如說“前進”4WD 機器人向前走,控制器回應(yīng)“前進”。
復(fù)合語音控制
第一次說“前進”4WD 慢速前進(一檔),控制器應(yīng)答“前進”再說一次“前進”,4WD 快速前進(二檔)控制器應(yīng)答“加速前進”再次說“前進”4WD 更快速前進(三檔)控制器應(yīng)答“全速前進”。在“前進”命令中執(zhí)行其他命令后4WD 從慢速前進(一檔)開始。
第一次說“停止”4WD 停止所有動作,控制器應(yīng)答“停止”再次說“停止”4WD 機器人測試前面障礙物與超聲波探頭距離,測試完成后數(shù)據(jù)回傳給控制器進行播報“當前距離XX 厘米?!?br />
例子程序
int srfPin = 2; //定義srfPin 發(fā)送引腳為2 int z; //定義全局變量z int Distance; //定義距離寄存器存放測試距離數(shù)據(jù) int duration; //定義脈寬寄存器 int data; //定義串口接收寄存器 int ultrasonic(int distance) { digitalWrite(srfPin, LOW); //確保在發(fā)送脈沖前保持該引腳為低電平 delayMicroseconds(2); //保持低電平2ms digitalWrite(srfPin, HIGH); //發(fā)送一個高脈沖開始測距 delayMicroseconds(10); //保持10ms digitalWrite(srfPin, LOW); //在等待脈沖返回來之前發(fā)送低電平 pinMode(srfPin, INPUT); //調(diào)整超聲波引腳為輸入 duration = pulseIn(srfPin, HIGH); //從SRF05 回波脈沖在讀取在微秒 distance = duration/58; //除以58 就是我們要得到的厘米數(shù) return distance; //返回厘米數(shù) } void BACK() //后退 { analogWrite(10,120); //輸入模擬值進行設(shè)定速度 analogWrite(5,120); digitalWrite(7,LOW); //使直流電機(右)順時針轉(zhuǎn) digitalWrite(6,HIGH); digitalWrite(8,LOW); //使直流電機(左)逆時針轉(zhuǎn) digitalWrite(9,HIGH); } void GO() //前進 { analogWrite(10,100); //輸入模擬值進行設(shè)定速度 analogWrite(5,100); digitalWrite(7,HIGH); //使直流電機(右)順時針轉(zhuǎn) digitalWrite(6,LOW); digitalWrite(9,LOW); //使直流電機(左)逆時針轉(zhuǎn) digitalWrite(8,HIGH); } void QUICKEN() //加速前進 { analogWrite(10,120); //輸入模擬值進行設(shè)定速度 analogWrite(5,120); digitalWrite(7,HIGH); //使直流電機(右)順時針轉(zhuǎn) digitalWrite(6,LOW); digitalWrite(9,LOW); //使直流電機(左)逆時針轉(zhuǎn) digitalWrite(8,HIGH); } void FULLSPEED() //全速前進 { analogWrite(10,250); //輸入模擬值進行設(shè)定速度 analogWrite(5,250); digitalWrite(7,HIGH); //使直流電機(右)順時針轉(zhuǎn) digitalWrite(6,LOW); digitalWrite(9,LOW); //使直流電機(左)逆時針轉(zhuǎn) digitalWrite(8,HIGH); } void LEFT() //左轉(zhuǎn) { analogWrite(10,170); //輸入模擬值進行設(shè)定速度 analogWrite(5,170); digitalWrite(7,HIGH); //使直流電機(右)順時針轉(zhuǎn) digitalWrite(6,LOW); digitalWrite(8,LOW); //使直流電機(左)逆時針轉(zhuǎn) digitalWrite(9,HIGH); } void RIGHT() //右轉(zhuǎn) { analogWrite(10,170); //輸入模擬值進行設(shè)定速度 analogWrite(5,170); digitalWrite(7,LOW); //使直流電機(右)順時針轉(zhuǎn) digitalWrite(6,HIGH); digitalWrite(8,HIGH); //使直流電機(左)逆時針轉(zhuǎn) digitalWrite(9,LOW); } void STOP() //停止 { analogWrite(10,0); //輸入模擬值進行設(shè)定速度 analogWrite(5,0); digitalWrite(7,LOW); //使直流電機(右)順時針轉(zhuǎn) digitalWrite(6,HIGH); digitalWrite(8,HIGH); //使直流電機(左)逆時針轉(zhuǎn) digitalWrite(9,LOW); } void PLAYDISTANCE() //發(fā)送超聲波數(shù)據(jù) { Distance = ultrasonic(z); if(Distance > 0 && Distance <= 10){ //判斷測試距離為1 至10CM Serial.print('a');} else if(Distance > 10 && Distance <= 15){ //判斷測試距離為11 至15CM Serial.print('b');} //發(fā)送字符'b' else if(Distance > 15 && Distance <= 20){ Serial.print('c');} else if(Distance > 20 && Distance <= 25){ Serial.print('d');} else if(Distance > 25 && Distance <= 30){ Serial.print('e');} else if(Distance > 30 && Distance <= 35){ Serial.print('f');} else if(Distance > 35 && Distance <= 40){ Serial.print('g');} else if(Distance > 40 && Distance <= 45){ Serial.print('h');} else if(Distance > 45 && Distance <= 50){ Serial.print('i');} else if(Distance > 50 && Distance <= 55){ Serial.print('j');} else if(Distance > 55 && Distance <= 60){ Serial.print('k');} else if(Distance > 60 && Distance <= 65){ Serial.print('l');} else if(Distance > 65 && Distance <= 70){ Serial.print('m');} else if(Distance > 70 && Distance <= 75){ Serial.print('n');} else if(Distance > 75 && Distance <= 80){ Serial.print('o');} else if(Distance > 80 && Distance <= 85){ Serial.print('p');} else if(Distance > 85 && Distance <= 90){ Serial.print('q');} else if(Distance > 90 && Distance <= 95){ Serial.print('r');} else{ Serial.print('~');} } void setup(){ Serial.begin(115200); //打開串口并設(shè)置通信波特率為9600 pinMode(8,OUTPUT); //定義I1 接口 pinMode(9,OUTPUT); //定義I2 接口 pinMode(11,OUTPUT); //定義EA(PWM 調(diào)速)接口 pinMode(5,OUTPUT); //定義EB(PWM 調(diào)速)接口 pinMode(6,OUTPUT); //定義I4 接口 pinMode(7,OUTPUT); //定義I3 接口 } void loop(){ //主程序開始 Distance = ultrasonic(z); //讀取超聲波值 data = Serial.read(); //讀取串口數(shù)據(jù) switch (data){ case 'W': //前進命令 GO(); //前進函數(shù) Serial.flush(); //刷新串口緩沖區(qū)數(shù)據(jù) break; case 'X': //后退命令 BACK(); //后退函數(shù) Serial.flush(); //刷新串口緩沖區(qū)數(shù)據(jù) break; case 'A': //左轉(zhuǎn)命令 LEFT(); //左轉(zhuǎn)函數(shù) Serial.flush(); //刷新串口緩沖區(qū)數(shù)據(jù) break; case 'D': //右轉(zhuǎn)命令 RIGHT(); //右轉(zhuǎn)函數(shù) Serial.flush(); //刷新串口緩沖區(qū)數(shù)據(jù) break; case 'S': //停止命令 STOP(); //停止函數(shù) Serial.flush(); //刷新串口緩沖區(qū)數(shù)據(jù) break; case '1': //加速前進命令 QUICKEN(); //加速前進函數(shù) Serial.flush(); //刷新串口緩沖區(qū)數(shù)據(jù) case '2': //全速前進命令 FULLSPEED(); //全速前進函數(shù) Serial.flush(); //刷新串口緩沖區(qū)數(shù)據(jù) break; case '#': //測試當前距離命令 PLAYDISTANCE(); //發(fā)送當前距離函數(shù) Serial.flush(); //刷新串口緩沖區(qū)數(shù)據(jù) break; default: break; } }
視頻演示
產(chǎn)品相關(guān)推薦
產(chǎn)品購買地址
周邊產(chǎn)品推薦
Arduino 4WD鋁合金移動平臺車燈套件
Arduino 光電碼盤 光電測速傳感器
相關(guān)問題解答
AS-4WD 碰撞機器人如何安裝
4wd 紅外線巡線壁障車調(diào)試助手沒有反應(yīng)
相關(guān)學(xué)習資料
視頻: Arduino-4WD移動機器人語音識別操控功能演示
視頻:機器人調(diào)試助手無線操控AS-4WD輪式機器人
視頻:Arduino-4WD移動機器人尋線功能演示
視頻:Arduino-4WD移動機器人碰撞功能演示
視頻:Arduino-4WD移動機器人追光功能演示
視頻:Arduino-4WD移動機器人尋線與避障功能演示
視頻:Arduino-4WD移動機器人偵測避障功能演示
奧松機器人技術(shù)論壇