(RB-13K049)AS-4WD語(yǔ)音識(shí)別移動(dòng)機(jī)器人

來(lái)自ALSROBOT WiKi
2015年9月26日 (六) 13:36Arduino77討論 | 貢獻(xiàn)的版本

跳轉(zhuǎn)至: 導(dǎo)航搜索
RB13K04901.png

目錄

產(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)品清單

RB13K04902.png

安裝步驟

4WD平臺(tái)安裝

步驟1:充電接口撥動(dòng)開關(guān)連接線制作

充電接口撥動(dòng)開關(guān)連接線制作步驟詳解

步驟2:直流電機(jī)安裝

4WD平臺(tái)兩側(cè)電機(jī)安裝方法相同,需要注意的是在安裝電機(jī)之前需要將電機(jī)連接線使用電烙鐵焊接好,并使用熱縮過(guò)加熱塑封。

Jiansudianjianzhuang.png

步驟3:平臺(tái)側(cè)板安裝

Cebanxiabananzhuang.png

步驟4:平臺(tái)端板安裝

Duanbananzhuang.png

步驟5:雙H橋驅(qū)動(dòng)板安裝

4wddiankonganzhuang00.jpg

步驟6:充電接口撥動(dòng)開關(guān)安裝

4wddiankonganzhuang01.jpg

步驟7;Carduino UNO 控制器安裝

4wddiankonganzhuang02.jpg

步驟8:RB-421舵機(jī)安裝

4wddiankonganzhuang03.jpg

步驟9:超聲波傳感器安裝

4wddiankonganzhuang04.jpg

步驟10:組合體安裝

上下兩部分安裝示意圖

步驟11:4WD 輪子安裝

4wddiankonganzhuang06.jpg

步驟12:插入藍(lán)牙模塊

注意:在插入藍(lán)牙模塊之前要將Carduino中下載好程序,插著藍(lán)牙模塊進(jìn)行程序下載會(huì)造成程序下載不成功問(wèn)題。

配件參數(shù)

凌陽(yáng)61板技術(shù)參數(shù)

  1. 控制器供電范圍:DC5V 或DC3.3V
  2. 機(jī)器人供電7.4V 鋰電
  3. 通信接口:RS232(串口)或TTL 配合無(wú)線藍(lán)牙模組
  4. 波特率:115200b / s
  5. 擴(kuò)展功能:AD 輸入、舵機(jī)控制等

Carduino UNO控制器

Carduino UNO相關(guān)資料及使用方法

雙H橋電機(jī)驅(qū)動(dòng)板

雙H橋電機(jī)驅(qū)動(dòng)板相關(guān)資料及使用方法

超聲波傳感器

超聲波傳感器相關(guān)資料及使用方法

傳感器擴(kuò)展板

V5.0傳感器擴(kuò)展板相關(guān)資料及使用方法

RB-421舵機(jī)

RB-421舵機(jī)相關(guān)資料及使用方法

藍(lán)牙模塊

RB無(wú)線藍(lán)牙模塊相關(guān)資料及使用方法

使用方法

凌陽(yáng)61控制板供電

整機(jī)供電三粒五號(hào)電池或外接5V 電源。

RB13K04903.png

語(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)練。

RB13K04904.png

按鍵說(shuō)明:
KEY1:按下KEY1 鍵播放控制器內(nèi)所有語(yǔ)音(控制器自檢功能)
KEY2:緊急停止命令等同語(yǔ)音“停止”命令
KEY3:從新進(jìn)行語(yǔ)音訓(xùn)練(當(dāng)識(shí)別靈敏度降低或更換法令人時(shí)使用)

凌陽(yáng)61 接線說(shuō)明

RB13K04905.png

控制器————無(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)推薦

Erweima.png

產(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ù)論壇