(RB-13K049)AS-4WD語音識別移動機器人

來自ALSROBOT WiKi
2015年10月21日 (三) 14:10Arduino77討論 | 貢獻的版本

(差異) ←上一版本 | 最后版本 (差異) | 下一版本→ (差異)
跳轉(zhuǎn)至: 導(dǎo)航搜索
RB13K04901.png

目錄

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

RB13K04902.png

安裝步驟

4WD平臺安裝

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

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

步驟2:直流電機安裝

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

Jiansudianjianzhuang.png

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

Cebanxiabananzhuang.png

步驟4:平臺端板安裝

Duanbananzhuang.png

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

4wddiankonganzhuang00.jpg

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

4wddiankonganzhuang01.jpg

步驟7;Carduino UNO 控制器安裝

4wddiankonganzhuang02.jpg

步驟8:RB-421舵機安裝

4wddiankonganzhuang03.jpg

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

4wddiankonganzhuang04.jpg

步驟10:組合體安裝

上下兩部分安裝示意圖

步驟11:4WD 輪子安裝

4wddiankonganzhuang06.jpg

步驟12:插入藍牙模塊

注意:在插入藍牙模塊之前要將Carduino中下載好程序,插著藍牙模塊進行程序下載會造成程序下載不成功問題。

配件參數(shù)

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

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

Carduino UNO控制器

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

雙H橋電機驅(qū)動板

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

超聲波傳感器

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

傳感器擴展板

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

RB-421舵機

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

藍牙模塊

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

使用方法

凌陽61控制板供電

整機供電三粒五號電池或外接5V 電源。

RB13K04903.png

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

RB13K04904.png

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

凌陽61 接線說明

RB13K04905.png

控制器————無線藍牙模塊
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;
}
}

視頻演示

4wd yu yin 01.png


















產(chǎn)品相關(guān)推薦

Erweima.png

產(chǎn)品購買地址

AS-4WD語音控制移動機器人平臺

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