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