“(RB-13K049)AS-4WD語音識別移動機器人”的版本間的差異
(→?產(chǎn)品清單) |
(→?產(chǎn)品相關推薦) |
||
(未顯示1個用戶的6個中間版本) | |||
第32行: | 第32行: | ||
====步驟12:插入藍牙模塊==== | ====步驟12:插入藍牙模塊==== | ||
注意:在插入藍牙模塊之前要將Carduino中下載好程序,插著藍牙模塊進行程序下載會造成程序下載不成功問題。<br/> | 注意:在插入藍牙模塊之前要將Carduino中下載好程序,插著藍牙模塊進行程序下載會造成程序下載不成功問題。<br/> | ||
? | + | ==配件參數(shù)== | |
? | == | + | ===凌陽61板技術參數(shù)=== |
? | === | + | |
# 控制器供電范圍:DC5V 或DC3.3V | # 控制器供電范圍:DC5V 或DC3.3V | ||
# 機器人供電7.4V 鋰電 | # 機器人供電7.4V 鋰電 | ||
第40行: | 第39行: | ||
# 波特率:115200b / s | # 波特率:115200b / s | ||
# 擴展功能:AD 輸入、舵機控制等 | # 擴展功能:AD 輸入、舵機控制等 | ||
? | ===使用方法=== | + | ===Carduino UNO控制器=== |
? | 1. | + | [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相關資料及使用方法]<br/> |
+ | ===雙H橋電機驅動板=== | ||
+ | [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橋電機驅動板相關資料及使用方法]<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 超聲波傳感器相關資料及使用方法]<br/> | ||
+ | ===傳感器擴展板=== | ||
+ | [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傳感器擴展板相關資料及使用方法]<br/> | ||
+ | ===RB-421舵機=== | ||
+ | [http://gharee.com/wiki/index.php?title=(SKU:RB-04M008)RB-421%E8%88%B5%E6%9C%BA RB-421舵機相關資料及使用方法]<br/> | ||
+ | ===藍牙模塊=== | ||
+ | [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無線藍牙模塊相關資料及使用方法]<br/> | ||
+ | ==使用方法== | ||
+ | ===凌陽61控制板供電<br/>=== | ||
+ | 整機供電三粒五號電池或外接5V 電源。<br/> | ||
+ | [[文件:RB13K04903.png|500px|有框|居中]] | ||
+ | ===語音訓練=== | ||
+ | 按一下KEY3 鍵開始按照語音提示進行語音訓練。<br/> | ||
+ | 訓練采用應答形式,每條指令訓練兩次,每條命令的訓練方法是相同的,以第一條命令“前進”為例說明:<br/> | ||
+ | 第一步:控制器提示“前進”<br/> | ||
+ | 第二部:我們對著話筒說“前進”<br/> | ||
+ | 第三部:語音控制器提示“再說一遍”<br/> | ||
+ | 第四部:我們再次對著話筒說“前進”<br/> | ||
+ | 到此第一條命令訓練完畢。如果訓練成功控制器會自動進入嚇一跳命令的訓練,如果環(huán)境很吵或前后你說的話偏差太大,控制器會提示“沒有聲音”或者“沒有聽清”這樣這條命令就會從新訓練。當所有的命令訓練完畢,控制器會提示“準備好了”。此時命令已經(jīng)存儲完畢,斷電后開啟不用從新訓練,如果在訓練過程中斷電,則再次上電時會從新從第一條訓練。<br/> | ||
+ | [[文件:RB13K04904.png|500px|有框|居中]] | ||
+ | 按鍵說明:<br> | ||
+ | KEY1:按下KEY1 鍵播放控制器內所有語音(控制器自檢功能)<br/> | ||
+ | KEY2:緊急停止命令等同語音“停止”命令<br/> | ||
+ | KEY3:從新進行語音訓練(當識別靈敏度降低或更換法令人時使用)<br/> | ||
+ | |||
+ | ===凌陽61 接線說明=== | ||
+ | [[文件:RB13K04905.png|500px|有框|居中]] | ||
+ | 控制器————無線藍牙模塊<br/> | ||
+ | IOB7(RXD) ——PIN5(TXD)<br/> | ||
+ | IOB10(TXD)——PIN4(RXD)<br/> | ||
+ | IOB+(5V) ———PIN1(5V)<br/> | ||
+ | IOB-(GND)———PIN2(GND)<br/> | ||
+ | ===4WD 平臺部分接線=== | ||
+ | ====超聲波傳感器接線==== | ||
+ | {|border="1" cellspacing="0" align="center" cellpadding="5" width="500px" | ||
+ | |- | ||
+ | |align="center"|超聲波模塊引腳 | ||
+ | |align="center"|Carduino UNO控制器 | ||
+ | |- | ||
+ | |align="center"|5V | ||
+ | |align="center"|數(shù)字2腳VCC端 | ||
+ | |- | ||
+ | |align="center"|GND | ||
+ | |align="center"|數(shù)字2腳GND端 | ||
+ | |- | ||
+ | |align="center"|OUTPUT | ||
+ | |align="center"|空 | ||
+ | |- | ||
+ | |align="center"|INPUT | ||
+ | |align="center"|數(shù)字2腳S端 | ||
+ | |} | ||
+ | ====雙H橋驅動板接線==== | ||
+ | {|border="1" cellspacing="0" align="center" cellpadding="5" width="400px" | ||
+ | |- | ||
+ | |align="center"|雙H橋驅動板 | ||
+ | |align="center"|Carduino UNO控制器 | ||
+ | |- | ||
+ | |align="center"|EA | ||
+ | |align="center"|數(shù)字腳10信號S | ||
+ | |- | ||
+ | |align="center"|EB | ||
+ | |align="center"|數(shù)字腳5信號S | ||
+ | |- | ||
+ | |align="center"|I1 | ||
+ | |align="center"|數(shù)字腳8信號S | ||
+ | |- | ||
+ | |align="center"|I2 | ||
+ | |align="center"|數(shù)字腳9信號S | ||
+ | |- | ||
+ | |align="center"|I3 | ||
+ | |align="center"|數(shù)字腳7信號S | ||
+ | |- | ||
+ | |align="center"|I4 | ||
+ | |align="center"|數(shù)字腳6信號S | ||
+ | |} | ||
+ | ===語音控制4WD平臺=== | ||
+ | ====基本語音控制==== | ||
+ | 第一步:打開控制器電源及4WD 機器人電源。<br/> | ||
+ | 第二步:等待藍牙配對。主從藍牙模塊黃燈都亮起表示配對成功(十秒左右)。<br/> | ||
+ | 第三步:發(fā)號施令,在說出命令后4WD 開始運動,控制器回應相同的命令。如說“前進”4WD 機器人向前走,控制器回應“前進”。<br/> | ||
+ | ====復合語音控制==== | ||
+ | 第一次說“前進”4WD 慢速前進(一檔),控制器應答“前進”再說一次“前進”,4WD 快速前進(二檔)控制器應答“加速前進”再次說“前進”4WD 更快速前進(三檔)控制器應答“全速前進”。在“前進”命令中執(zhí)行其他命令后4WD 從慢速前進(一檔)開始。<br/> | ||
+ | 第一次說“停止”4WD 停止所有動作,控制器應答“停止”再次說“停止”4WD 機器人測試前面障礙物與超聲波探頭距離,測試完成后數(shù)據(jù)回傳給控制器進行播報“當前距離XX 厘米?!?lt;br/> | ||
+ | ==例子程序== | ||
+ | <pre style="color:blue"> | ||
+ | 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); //調整超聲波引腳為輸入 | ||
+ | duration = pulseIn(srfPin, HIGH); //從SRF05 回波脈沖在讀取在微秒 | ||
+ | distance = duration/58; //除以58 就是我們要得到的厘米數(shù) | ||
+ | return distance; //返回厘米數(shù) | ||
+ | } | ||
+ | void BACK() //后退 | ||
+ | { | ||
+ | analogWrite(10,120); //輸入模擬值進行設定速度 | ||
+ | analogWrite(5,120); | ||
+ | digitalWrite(7,LOW); //使直流電機(右)順時針轉 | ||
+ | digitalWrite(6,HIGH); | ||
+ | digitalWrite(8,LOW); //使直流電機(左)逆時針轉 | ||
+ | digitalWrite(9,HIGH); | ||
+ | } | ||
+ | void GO() //前進 | ||
+ | { | ||
+ | analogWrite(10,100); //輸入模擬值進行設定速度 | ||
+ | analogWrite(5,100); | ||
+ | digitalWrite(7,HIGH); //使直流電機(右)順時針轉 | ||
+ | digitalWrite(6,LOW); | ||
+ | digitalWrite(9,LOW); //使直流電機(左)逆時針轉 | ||
+ | digitalWrite(8,HIGH); | ||
+ | } | ||
+ | void QUICKEN() //加速前進 | ||
+ | { | ||
+ | analogWrite(10,120); //輸入模擬值進行設定速度 | ||
+ | analogWrite(5,120); | ||
+ | digitalWrite(7,HIGH); //使直流電機(右)順時針轉 | ||
+ | digitalWrite(6,LOW); | ||
+ | digitalWrite(9,LOW); //使直流電機(左)逆時針轉 | ||
+ | digitalWrite(8,HIGH); | ||
+ | } | ||
+ | void FULLSPEED() //全速前進 | ||
+ | { | ||
+ | analogWrite(10,250); //輸入模擬值進行設定速度 | ||
+ | analogWrite(5,250); | ||
+ | digitalWrite(7,HIGH); //使直流電機(右)順時針轉 | ||
+ | digitalWrite(6,LOW); | ||
+ | digitalWrite(9,LOW); //使直流電機(左)逆時針轉 | ||
+ | digitalWrite(8,HIGH); | ||
+ | } | ||
+ | void LEFT() //左轉 | ||
+ | { | ||
+ | analogWrite(10,170); //輸入模擬值進行設定速度 | ||
+ | analogWrite(5,170); | ||
+ | digitalWrite(7,HIGH); //使直流電機(右)順時針轉 | ||
+ | digitalWrite(6,LOW); | ||
+ | digitalWrite(8,LOW); //使直流電機(左)逆時針轉 | ||
+ | digitalWrite(9,HIGH); | ||
+ | } | ||
+ | void RIGHT() //右轉 | ||
+ | { | ||
+ | analogWrite(10,170); //輸入模擬值進行設定速度 | ||
+ | analogWrite(5,170); | ||
+ | digitalWrite(7,LOW); //使直流電機(右)順時針轉 | ||
+ | digitalWrite(6,HIGH); | ||
+ | digitalWrite(8,HIGH); //使直流電機(左)逆時針轉 | ||
+ | digitalWrite(9,LOW); | ||
+ | } | ||
+ | void STOP() //停止 | ||
+ | { | ||
+ | analogWrite(10,0); //輸入模擬值進行設定速度 | ||
+ | analogWrite(5,0); | ||
+ | digitalWrite(7,LOW); //使直流電機(右)順時針轉 | ||
+ | digitalWrite(6,HIGH); | ||
+ | digitalWrite(8,HIGH); //使直流電機(左)逆時針轉 | ||
+ | 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); //打開串口并設置通信波特率為9600 | ||
+ | pinMode(8,OUTPUT); //定義I1 接口 | ||
+ | pinMode(9,OUTPUT); //定義I2 接口 | ||
+ | pinMode(11,OUTPUT); //定義EA(PWM 調速)接口 | ||
+ | pinMode(5,OUTPUT); //定義EB(PWM 調速)接口 | ||
+ | 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': //左轉命令 | ||
+ | LEFT(); //左轉函數(shù) | ||
+ | Serial.flush(); //刷新串口緩沖區(qū)數(shù)據(jù) | ||
+ | break; | ||
+ | case 'D': //右轉命令 | ||
+ | RIGHT(); //右轉函數(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; | ||
+ | } | ||
+ | } | ||
+ | </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)品相關推薦== | ||
+ | [[文件:erweima.png|230px|無框|右]] | ||
+ | ===產(chǎn)品購買地址=== | ||
+ | [http://gharee.com/goods-309.html AS-4WD語音控制移動機器人平臺]<br/> | ||
+ | ===周邊產(chǎn)品推薦=== | ||
+ | [http://gharee.com/goods-407.html Arduino 4WD鋁合金移動平臺車燈套件]<br/> | ||
+ | [http://gharee.com/goods-185.html Arduino 光電碼盤 光電測速傳感器]<br/> | ||
+ | ===相關問題解答=== | ||
+ | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=4875&highlight=4WD AS-4WD 碰撞機器人如何安裝]<br/> | ||
+ | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=5473&fromuid=10780 4wd 紅外線巡線壁障車調試助手沒有反應]<br/> | ||
+ | ===相關學習資料=== | ||
+ | [http://v.youku.com/v_show/id_XMzQyODA1MzAw.html?from=y1.7-2 視頻: Arduino-4WD移動機器人語音識別操控功能演示] | ||
+ | [http://www.makerspace.cn/forum.php?mod=viewthread&tid=3953&fromuid=10780 視頻:機器人調試助手無線操控AS-4WD輪式機器人]<br/> | ||
+ | [http://v.youku.com/v_show/id_XMjgwMjk0NDE2.html 視頻:Arduino-4WD移動機器人尋線功能演示]<br/> | ||
+ | [http://v.youku.com/v_show/id_XMjgwMjkyNDM2.html 視頻:Arduino-4WD移動機器人碰撞功能演示]<br/> | ||
+ | [http://v.youku.com/v_show/id_XMjgwMjk4MjU2.html 視頻:Arduino-4WD移動機器人追光功能演示]<br/> | ||
+ | [http://v.youku.com/v_show/id_XMjgwNTg5NTI4.html 視頻:Arduino-4WD移動機器人尋線與避障功能演示]<br/> | ||
+ | [http://v.youku.com/v_show/id_XMzQyNzk2MzM2.html 視頻:Arduino-4WD移動機器人偵測避障功能演示]<br/> | ||
+ | [http://www.makerspace.cn/portal.php 奧松機器人技術論壇]<br/> |
2015年10月21日 (三) 14:10的最后版本
目錄 |
產(chǎn)品概述
2014年最新推出的AS-4WD語音識別移動機器人是哈爾濱奧松機器人科技有限公司汲取國內外多款移動平臺優(yōu)點于一體,自主研發(fā)的語音識別的機器人。音識別是一門交叉學科。近二十年來,語音識別技術取得顯著進步,開始從實驗室走向市場。人們預計,未來10年內,語音識別技術將進入工業(yè)、家電、通信、汽車電子、醫(yī)療、家庭服務、消費電子產(chǎn)品等各個領域。 語音識別聽寫機在一些領域的應用被美國新聞界評為1997年計算機發(fā)展十件大事之一。與機器人進行語音交流,讓機器人明白你說什么,這是人們長期以來夢寐以求的事情。AS-4WD語音識別移動機器人就可以實現(xiàn)你的夢想,其語音識別器采用凌陽單片機控制器可以學習記錄你的聲音,并且跟你實現(xiàn)人機對話,通過識別和理解過程把語音信號轉變?yōu)橄鄳?,?jīng)無線藍牙模塊傳輸給機器人,從而可以完成前進、后退、左轉、右轉、測距播報等功能。這款平臺非常適合Arduino愛好者、各大中小學開展機器人普及教育使用,更適合學生用其參加全國大學生電子大賽、智能車競賽、足球機器人等比賽。讓你輕松感受機器人DIY無限樂趣。
產(chǎn)品清單
安裝步驟
4WD平臺安裝
步驟1:充電接口撥動開關連接線制作
步驟2:直流電機安裝
4WD平臺兩側電機安裝方法相同,需要注意的是在安裝電機之前需要將電機連接線使用電烙鐵焊接好,并使用熱縮過加熱塑封。
步驟3:平臺側板安裝
步驟4:平臺端板安裝
步驟5:雙H橋驅動板安裝
步驟6:充電接口撥動開關安裝
步驟7;Carduino UNO 控制器安裝
步驟8:RB-421舵機安裝
步驟9:超聲波傳感器安裝
步驟10:組合體安裝
步驟11:4WD 輪子安裝
步驟12:插入藍牙模塊
注意:在插入藍牙模塊之前要將Carduino中下載好程序,插著藍牙模塊進行程序下載會造成程序下載不成功問題。
配件參數(shù)
凌陽61板技術參數(shù)
- 控制器供電范圍:DC5V 或DC3.3V
- 機器人供電7.4V 鋰電
- 通信接口:RS232(串口)或TTL 配合無線藍牙模組
- 波特率:115200b / s
- 擴展功能:AD 輸入、舵機控制等
Carduino UNO控制器
雙H橋電機驅動板
超聲波傳感器
傳感器擴展板
RB-421舵機
藍牙模塊
使用方法
凌陽61控制板供電
整機供電三粒五號電池或外接5V 電源。
語音訓練
按一下KEY3 鍵開始按照語音提示進行語音訓練。
訓練采用應答形式,每條指令訓練兩次,每條命令的訓練方法是相同的,以第一條命令“前進”為例說明:
第一步:控制器提示“前進”
第二部:我們對著話筒說“前進”
第三部:語音控制器提示“再說一遍”
第四部:我們再次對著話筒說“前進”
到此第一條命令訓練完畢。如果訓練成功控制器會自動進入嚇一跳命令的訓練,如果環(huán)境很吵或前后你說的話偏差太大,控制器會提示“沒有聲音”或者“沒有聽清”這樣這條命令就會從新訓練。當所有的命令訓練完畢,控制器會提示“準備好了”。此時命令已經(jīng)存儲完畢,斷電后開啟不用從新訓練,如果在訓練過程中斷電,則再次上電時會從新從第一條訓練。
按鍵說明:
KEY1:按下KEY1 鍵播放控制器內所有語音(控制器自檢功能)
KEY2:緊急停止命令等同語音“停止”命令
KEY3:從新進行語音訓練(當識別靈敏度降低或更換法令人時使用)
凌陽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橋驅動板接線
雙H橋驅動板 | 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 開始運動,控制器回應相同的命令。如說“前進”4WD 機器人向前走,控制器回應“前進”。
復合語音控制
第一次說“前進”4WD 慢速前進(一檔),控制器應答“前進”再說一次“前進”,4WD 快速前進(二檔)控制器應答“加速前進”再次說“前進”4WD 更快速前進(三檔)控制器應答“全速前進”。在“前進”命令中執(zhí)行其他命令后4WD 從慢速前進(一檔)開始。
第一次說“停止”4WD 停止所有動作,控制器應答“停止”再次說“停止”4WD 機器人測試前面障礙物與超聲波探頭距離,測試完成后數(shù)據(jù)回傳給控制器進行播報“當前距離XX 厘米。”
例子程序
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); //調整超聲波引腳為輸入 duration = pulseIn(srfPin, HIGH); //從SRF05 回波脈沖在讀取在微秒 distance = duration/58; //除以58 就是我們要得到的厘米數(shù) return distance; //返回厘米數(shù) } void BACK() //后退 { analogWrite(10,120); //輸入模擬值進行設定速度 analogWrite(5,120); digitalWrite(7,LOW); //使直流電機(右)順時針轉 digitalWrite(6,HIGH); digitalWrite(8,LOW); //使直流電機(左)逆時針轉 digitalWrite(9,HIGH); } void GO() //前進 { analogWrite(10,100); //輸入模擬值進行設定速度 analogWrite(5,100); digitalWrite(7,HIGH); //使直流電機(右)順時針轉 digitalWrite(6,LOW); digitalWrite(9,LOW); //使直流電機(左)逆時針轉 digitalWrite(8,HIGH); } void QUICKEN() //加速前進 { analogWrite(10,120); //輸入模擬值進行設定速度 analogWrite(5,120); digitalWrite(7,HIGH); //使直流電機(右)順時針轉 digitalWrite(6,LOW); digitalWrite(9,LOW); //使直流電機(左)逆時針轉 digitalWrite(8,HIGH); } void FULLSPEED() //全速前進 { analogWrite(10,250); //輸入模擬值進行設定速度 analogWrite(5,250); digitalWrite(7,HIGH); //使直流電機(右)順時針轉 digitalWrite(6,LOW); digitalWrite(9,LOW); //使直流電機(左)逆時針轉 digitalWrite(8,HIGH); } void LEFT() //左轉 { analogWrite(10,170); //輸入模擬值進行設定速度 analogWrite(5,170); digitalWrite(7,HIGH); //使直流電機(右)順時針轉 digitalWrite(6,LOW); digitalWrite(8,LOW); //使直流電機(左)逆時針轉 digitalWrite(9,HIGH); } void RIGHT() //右轉 { analogWrite(10,170); //輸入模擬值進行設定速度 analogWrite(5,170); digitalWrite(7,LOW); //使直流電機(右)順時針轉 digitalWrite(6,HIGH); digitalWrite(8,HIGH); //使直流電機(左)逆時針轉 digitalWrite(9,LOW); } void STOP() //停止 { analogWrite(10,0); //輸入模擬值進行設定速度 analogWrite(5,0); digitalWrite(7,LOW); //使直流電機(右)順時針轉 digitalWrite(6,HIGH); digitalWrite(8,HIGH); //使直流電機(左)逆時針轉 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); //打開串口并設置通信波特率為9600 pinMode(8,OUTPUT); //定義I1 接口 pinMode(9,OUTPUT); //定義I2 接口 pinMode(11,OUTPUT); //定義EA(PWM 調速)接口 pinMode(5,OUTPUT); //定義EB(PWM 調速)接口 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': //左轉命令 LEFT(); //左轉函數(shù) Serial.flush(); //刷新串口緩沖區(qū)數(shù)據(jù) break; case 'D': //右轉命令 RIGHT(); //右轉函數(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)品相關推薦
產(chǎn)品購買地址
周邊產(chǎn)品推薦
Arduino 4WD鋁合金移動平臺車燈套件
Arduino 光電碼盤 光電測速傳感器
相關問題解答
AS-4WD 碰撞機器人如何安裝
4wd 紅外線巡線壁障車調試助手沒有反應
相關學習資料
視頻: Arduino-4WD移動機器人語音識別操控功能演示
視頻:機器人調試助手無線操控AS-4WD輪式機器人
視頻:Arduino-4WD移動機器人尋線功能演示
視頻:Arduino-4WD移動機器人碰撞功能演示
視頻:Arduino-4WD移動機器人追光功能演示
視頻:Arduino-4WD移動機器人尋線與避障功能演示
視頻:Arduino-4WD移動機器人偵測避障功能演示
奧松機器人技術論壇