“(RB-13K049)AS-4WD語(yǔ)音識(shí)別移動(dòng)機(jī)器人”的版本間的差異
(→?產(chǎn)品相關(guān)推薦) |
|||
(未顯示1個(gè)用戶的5個(gè)中間版本) | |||
第32行: | 第32行: | ||
====步驟12:插入藍(lán)牙模塊==== | ====步驟12:插入藍(lán)牙模塊==== | ||
注意:在插入藍(lán)牙模塊之前要將Carduino中下載好程序,插著藍(lán)牙模塊進(jìn)行程序下載會(huì)造成程序下載不成功問(wèn)題。<br/> | 注意:在插入藍(lán)牙模塊之前要將Carduino中下載好程序,插著藍(lán)牙模塊進(jìn)行程序下載會(huì)造成程序下載不成功問(wèn)題。<br/> | ||
? | + | ==配件參數(shù)== | |
? | ==凌陽(yáng)61板技術(shù)參數(shù)== | + | ===凌陽(yáng)61板技術(shù)參數(shù)=== |
# 控制器供電范圍:DC5V 或DC3.3V | # 控制器供電范圍:DC5V 或DC3.3V | ||
# 機(jī)器人供電7.4V 鋰電 | # 機(jī)器人供電7.4V 鋰電 | ||
第39行: | 第39行: | ||
# 波特率:115200b / s | # 波特率:115200b / s | ||
# 擴(kuò)展功能:AD 輸入、舵機(jī)控制等 | # 擴(kuò)展功能:AD 輸入、舵機(jī)控制等 | ||
+ | ===Carduino UNO控制器=== | ||
+ | [http://www.alsrobot.com.cn/wiki/index.php?title=(SKU:RB-01C076)CarDuino_UNO_R3%EF%BC%88%E7%9B%B4%E6%8F%92%E8%8A%AF%E7%89%87%EF%BC%89 Carduino UNO相關(guān)資料及使用方法]<br/> | ||
+ | ===雙H橋電機(jī)驅(qū)動(dòng)板=== | ||
+ | [http://www.alsrobot.com.cn/wiki/index.php?title=(SKU:RB-01C025)%E5%8F%8CH%E6%A1%A5%E7%9B%B4%E6%B5%81%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8%E6%9D%BF 雙H橋電機(jī)驅(qū)動(dòng)板相關(guān)資料及使用方法]<br/> | ||
+ | ===超聲波傳感器=== | ||
+ | [http://gharee.com/wiki/index.php?title=(SKU:RB-02S001)RB_URF02%E8%B6%85%E5%A3%B0%E6%B3%A2%E4%BC%A0%E6%84%9F%E5%99%A8 超聲波傳感器相關(guān)資料及使用方法]<br/> | ||
+ | ===傳感器擴(kuò)展板=== | ||
+ | [http://www.alsrobot.com.cn/wiki/index.php?title=(SKU:RB-01C015)Arduino_%E4%BC%A0%E6%84%9F%E5%99%A8%E6%89%A9%E5%B1%95%E6%9D%BFv5.0#.E8.B4.AD.E4.B9.B0.E5.9C.B0.E5.9D.80 V5.0傳感器擴(kuò)展板相關(guān)資料及使用方法]<br/> | ||
+ | ===RB-421舵機(jī)=== | ||
+ | [http://gharee.com/wiki/index.php?title=(SKU:RB-04M008)RB-421%E8%88%B5%E6%9C%BA RB-421舵機(jī)相關(guān)資料及使用方法]<br/> | ||
+ | ===藍(lán)牙模塊=== | ||
+ | [http://gharee.com/wiki/index.php?title=(SKU:RB-03T008)RB%E6%97%A0%E7%BA%BF%E8%93%9D%E7%89%99%E6%A8%A1%E5%9D%97 RB無(wú)線藍(lán)牙模塊相關(guān)資料及使用方法]<br/> | ||
==使用方法== | ==使用方法== | ||
===凌陽(yáng)61控制板供電<br/>=== | ===凌陽(yáng)61控制板供電<br/>=== | ||
第52行: | 第64行: | ||
到此第一條命令訓(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ǔ)完畢,斷電后開(kāi)啟不用從新訓(xùn)練,如果在訓(xùn)練過(guò)程中斷電,則再次上電時(shí)會(huì)從新從第一條訓(xùn)練。<br/> | 到此第一條命令訓(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ǔ)完畢,斷電后開(kāi)啟不用從新訓(xùn)練,如果在訓(xùn)練過(guò)程中斷電,則再次上電時(shí)會(huì)從新從第一條訓(xùn)練。<br/> | ||
[[文件:RB13K04904.png|500px|有框|居中]] | [[文件:RB13K04904.png|500px|有框|居中]] | ||
? | + | 按鍵說(shuō)明:<br> | |
KEY1:按下KEY1 鍵播放控制器內(nèi)所有語(yǔ)音(控制器自檢功能)<br/> | KEY1:按下KEY1 鍵播放控制器內(nèi)所有語(yǔ)音(控制器自檢功能)<br/> | ||
KEY2:緊急停止命令等同語(yǔ)音“停止”命令<br/> | KEY2:緊急停止命令等同語(yǔ)音“停止”命令<br/> | ||
KEY3:從新進(jìn)行語(yǔ)音訓(xùn)練(當(dāng)識(shí)別靈敏度降低或更換法令人時(shí)使用)<br/> | KEY3:從新進(jìn)行語(yǔ)音訓(xùn)練(當(dāng)識(shí)別靈敏度降低或更換法令人時(shí)使用)<br/> | ||
+ | |||
===凌陽(yáng)61 接線說(shuō)明=== | ===凌陽(yáng)61 接線說(shuō)明=== | ||
[[文件:RB13K04905.png|500px|有框|居中]] | [[文件:RB13K04905.png|500px|有框|居中]] | ||
第68行: | 第81行: | ||
|- | |- | ||
|align="center"|超聲波模塊引腳 | |align="center"|超聲波模塊引腳 | ||
? | |align="center"|Carduino | + | |align="center"|Carduino UNO控制器 |
|- | |- | ||
|align="center"|5V | |align="center"|5V | ||
第81行: | 第94行: | ||
|align="center"|INPUT | |align="center"|INPUT | ||
|align="center"|數(shù)字2腳S端 | |align="center"|數(shù)字2腳S端 | ||
? | | | + | |} |
+ | ====雙H橋驅(qū)動(dòng)板接線==== | ||
+ | {|border="1" cellspacing="0" align="center" cellpadding="5" width="400px" | ||
+ | |- | ||
+ | |align="center"|雙H橋驅(qū)動(dòng)板 | ||
+ | |align="center"|Carduino UNO控制器 | ||
+ | |- | ||
+ | |align="center"|EA | ||
+ | |align="center"|數(shù)字腳10信號(hào)S | ||
+ | |- | ||
+ | |align="center"|EB | ||
+ | |align="center"|數(shù)字腳5信號(hào)S | ||
+ | |- | ||
+ | |align="center"|I1 | ||
+ | |align="center"|數(shù)字腳8信號(hào)S | ||
+ | |- | ||
+ | |align="center"|I2 | ||
+ | |align="center"|數(shù)字腳9信號(hào)S | ||
+ | |- | ||
+ | |align="center"|I3 | ||
+ | |align="center"|數(shù)字腳7信號(hào)S | ||
+ | |- | ||
+ | |align="center"|I4 | ||
+ | |align="center"|數(shù)字腳6信號(hào)S | ||
+ | |} | ||
+ | ===語(yǔ)音控制4WD平臺(tái)=== | ||
+ | ====基本語(yǔ)音控制==== | ||
+ | 第一步:打開(kāi)控制器電源及4WD 機(jī)器人電源。<br/> | ||
+ | 第二步:等待藍(lán)牙配對(duì)。主從藍(lán)牙模塊黃燈都亮起表示配對(duì)成功(十秒左右)。<br/> | ||
+ | 第三步:發(fā)號(hào)施令,在說(shuō)出命令后4WD 開(kāi)始運(yùn)動(dòng),控制器回應(yīng)相同的命令。如說(shuō)“前進(jìn)”4WD 機(jī)器人向前走,控制器回應(yīng)“前進(jìn)”。<br/> | ||
+ | ====復(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)(一檔)開(kāi)始。<br/> | ||
+ | 第一次說(shuō)“停止”4WD 停止所有動(dòng)作,控制器應(yīng)答“停止”再次說(shuō)“停止”4WD 機(jī)器人測(cè)試前面障礙物與超聲波探頭距離,測(cè)試完成后數(shù)據(jù)回傳給控制器進(jìn)行播報(bào)“當(dāng)前距離XX 厘米?!?lt;br/> | ||
+ | ==例子程序== | ||
+ | <pre style="color:blue"> | ||
+ | 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è)高脈沖開(kāi)始測(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); //打開(kāi)串口并設(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(){ //主程序開(kāi)始 | ||
+ | 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; | ||
+ | } | ||
} | } | ||
+ | </pre> | ||
+ | ==視頻演示== | ||
+ | [[File:4wd yu yin 01.png|400px|左|link=http://v.youku.com/v_show/id_XMzQyODA1MzAw.html?from=y1.7-2]] | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | <br/> | ||
+ | ==產(chǎn)品相關(guān)推薦== | ||
+ | [[文件:erweima.png|230px|無(wú)框|右]] | ||
+ | ===產(chǎn)品購(gòu)買(mǎi)地址=== | ||
+ | [http://gharee.com/goods-309.html AS-4WD語(yǔ)音控制移動(dòng)機(jī)器人平臺(tái)]<br/> | ||
+ | ===周邊產(chǎn)品推薦=== | ||
+ | [http://gharee.com/goods-407.html Arduino 4WD鋁合金移動(dòng)平臺(tái)車(chē)燈套件]<br/> | ||
+ | [http://gharee.com/goods-185.html Arduino 光電碼盤(pán) 光電測(cè)速傳感器]<br/> | ||
+ | ===相關(guān)問(wèn)題解答=== | ||
+ | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=4875&highlight=4WD AS-4WD 碰撞機(jī)器人如何安裝]<br/> | ||
+ | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=5473&fromuid=10780 4wd 紅外線巡線壁障車(chē)調(diào)試助手沒(méi)有反應(yīng)]<br/> | ||
+ | ===相關(guān)學(xué)習(xí)資料=== | ||
+ | [http://v.youku.com/v_show/id_XMzQyODA1MzAw.html?from=y1.7-2 視頻: Arduino-4WD移動(dòng)機(jī)器人語(yǔ)音識(shí)別操控功能演示] | ||
+ | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=3953&fromuid=10780 視頻:機(jī)器人調(diào)試助手無(wú)線操控AS-4WD輪式機(jī)器人]<br/> | ||
+ | [http://v.youku.com/v_show/id_XMjgwMjk0NDE2.html 視頻:Arduino-4WD移動(dòng)機(jī)器人尋線功能演示]<br/> | ||
+ | [http://v.youku.com/v_show/id_XMjgwMjkyNDM2.html 視頻:Arduino-4WD移動(dòng)機(jī)器人碰撞功能演示]<br/> | ||
+ | [http://v.youku.com/v_show/id_XMjgwMjk4MjU2.html 視頻:Arduino-4WD移動(dòng)機(jī)器人追光功能演示]<br/> | ||
+ | [http://v.youku.com/v_show/id_XMjgwNTg5NTI4.html 視頻:Arduino-4WD移動(dòng)機(jī)器人尋線與避障功能演示]<br/> | ||
+ | [http://v.youku.com/v_show/id_XMzQyNzk2MzM2.html 視頻:Arduino-4WD移動(dòng)機(jī)器人偵測(cè)避障功能演示]<br/> | ||
+ | [http://www.makerspace.cn/portal.php 奧松機(jī)器人技術(shù)論壇]<br/> |
2015年10月21日 (三) 14:10的最后版本
產(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í)別是一門(mén)交叉學(xué)科。近二十年來(lái),語(yǔ)音識(shí)別技術(shù)取得顯著進(jìn)步,開(kāi)始從實(shí)驗(yàn)室走向市場(chǎng)。人們預(yù)計(jì),未來(lái)10年內(nèi),語(yǔ)音識(shí)別技術(shù)將進(jìn)入工業(yè)、家電、通信、汽車(chē)電子、醫(yī)療、家庭服務(wù)、消費(fèi)電子產(chǎn)品等各個(gè)領(lǐng)域。 語(yǔ)音識(shí)別聽(tīng)寫(xiě)機(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é)開(kāi)展機(jī)器人普及教育使用,更適合學(xué)生用其參加全國(guó)大學(xué)生電子大賽、智能車(chē)競(jìng)賽、足球機(jī)器人等比賽。讓你輕松感受機(jī)器人DIY無(wú)限樂(lè)趣。
產(chǎn)品清單
安裝步驟
4WD平臺(tái)安裝
步驟1:充電接口撥動(dòng)開(kāi)關(guān)連接線制作
充電接口撥動(dòng)開(kāi)關(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)開(kāi)關(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 鍵開(kāi)始按照語(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ǔ)完畢,斷電后開(kāi)啟不用從新訓(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ǔ)音控制
第一步:打開(kāi)控制器電源及4WD 機(jī)器人電源。
第二步:等待藍(lán)牙配對(duì)。主從藍(lán)牙模塊黃燈都亮起表示配對(duì)成功(十秒左右)。
第三步:發(fā)號(hào)施令,在說(shuō)出命令后4WD 開(kāi)始運(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)(一檔)開(kāi)始。
第一次說(shuō)“停止”4WD 停止所有動(dòng)作,控制器應(yīng)答“停止”再次說(shuō)“停止”4WD 機(jī)器人測(cè)試前面障礙物與超聲波探頭距離,測(cè)試完成后數(shù)據(jù)回傳給控制器進(jìn)行播報(bào)“當(dāng)前距離XX 厘米?!?br />
例子程序
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è)高脈沖開(kāi)始測(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); //打開(kāi)串口并設(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(){ //主程序開(kāi)始 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)買(mǎi)地址
AS-4WD語(yǔ)音控制移動(dòng)機(jī)器人平臺(tái)
周邊產(chǎn)品推薦
Arduino 4WD鋁合金移動(dòng)平臺(tái)車(chē)燈套件
Arduino 光電碼盤(pán) 光電測(cè)速傳感器
相關(guān)問(wèn)題解答
AS-4WD 碰撞機(jī)器人如何安裝
4wd 紅外線巡線壁障車(chē)調(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ù)論壇