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

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

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

目錄

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

RB13K04902.png

安裝步驟

4WD平臺安裝

步驟1:充電接口撥動開關連接線制作

充電接口撥動開關連接線制作步驟詳解

步驟2:直流電機安裝

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

Jiansudianjianzhuang.png

步驟3:平臺側板安裝

Cebanxiabananzhuang.png

步驟4:平臺端板安裝

Duanbananzhuang.png

步驟5:雙H橋驅動板安裝

4wddiankonganzhuang00.jpg

步驟6:充電接口撥動開關安裝

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ù)

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

Carduino UNO控制器

Carduino UNO相關資料及使用方法

雙H橋電機驅動板

雙H橋電機驅動板相關資料及使用方法

超聲波傳感器

超聲波傳感器相關資料及使用方法

傳感器擴展板

V5.0傳感器擴展板相關資料及使用方法

RB-421舵機

RB-421舵機相關資料及使用方法

藍牙模塊

RB無線藍牙模塊相關資料及使用方法

使用方法

凌陽61控制板供電

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

RB13K04903.png

語音訓練

按一下KEY3 鍵開始按照語音提示進行語音訓練。
訓練采用應答形式,每條指令訓練兩次,每條命令的訓練方法是相同的,以第一條命令“前進”為例說明:
第一步:控制器提示“前進”
第二部:我們對著話筒說“前進”
第三部:語音控制器提示“再說一遍”
第四部:我們再次對著話筒說“前進”
到此第一條命令訓練完畢。如果訓練成功控制器會自動進入嚇一跳命令的訓練,如果環(huán)境很吵或前后你說的話偏差太大,控制器會提示“沒有聲音”或者“沒有聽清”這樣這條命令就會從新訓練。當所有的命令訓練完畢,控制器會提示“準備好了”。此時命令已經(jīng)存儲完畢,斷電后開啟不用從新訓練,如果在訓練過程中斷電,則再次上電時會從新從第一條訓練。

RB13K04904.png

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

凌陽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橋驅動板接線

雙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 厘米?!?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); //調整超聲波引腳為輸入
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;
}
}

視頻演示

4wd yu yin 01.png


















產(chǎn)品相關推薦

Erweima.png

產(chǎn)品購買地址

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

周邊產(chǎn)品推薦

Arduino 4WD鋁合金移動平臺車燈套件
Arduino 光電碼盤 光電測速傳感器

相關問題解答

AS-4WD 碰撞機器人如何安裝
4wd 紅外線巡線壁障車調試助手沒有反應

相關學習資料

視頻: Arduino-4WD移動機器人語音識別操控功能演示 視頻:機器人調試助手無線操控AS-4WD輪式機器人
視頻:Arduino-4WD移動機器人尋線功能演示
視頻:Arduino-4WD移動機器人碰撞功能演示
視頻:Arduino-4WD移動機器人追光功能演示
視頻:Arduino-4WD移動機器人尋線與避障功能演示
視頻:Arduino-4WD移動機器人偵測避障功能演示
奧松機器人技術論壇