3 伺服馬達 藍芽遙控自走車 4 -...
Transcript of 3 伺服馬達 藍芽遙控自走車 4 -...
-
NTU CSIE
講師張傑帆 Chang, Jie-Fan
近年來,機器人與相關技術的發展,在很多行業的應用被逐漸深入和拓寬,機器人設計有移動機構、傳感器和控制器來組成。自動化的自走車,也算是機器人的一種,稱為輪型機器人或車型機器人,我們將透過Arduino來實做一簡單可遙控且可以自重尋找路線的遙控自走車專案,
藍芽遙控自走車
1 直流馬達控制
2 自走車
3 伺服馬達
4 藍芽通訊
5 藍芽遙控自走車
-
NTU CSIE
藍芽遙控自走車
-
NTU CSIE
材料
縲絲起子車底盤+馬達+電池盒電線for馬達*49V電池接口+電源接頭3號電池*49V電池*1L9110
SG90 server
HC-SR04 測距SR04支架mini 麵包版 *1HC-05藍芽模組公母線排 4+6+4
-
NTU CSIE
作品賞析
-
NTU CSIE
作品賞析
-
NTU CSIE
作品賞析
-
NTU CSIE
作品賞析
-
NTU CSIE
作品賞析
-
NTU CSIE
組裝底盤
-
NTU CSIE
-
NTU CSIE
-
NTU CSIE
認識直流馬達玩具和動力模型的直流馬達,通常是FA-130, RE-140, RE-260或RE-280型。
-
NTU CSIE
(a) 小功率型 (b) 大功率型
圖 12-1 直流馬達
直流馬達(direct current motor,簡稱DC motor)是由法拉第(Faraday)設計並經實驗成功的最早期電動機。
當加一直流電源在馬達線圈上使其產生電流時,在線圈旁的永久磁鐵因電磁作用,會將電能轉換成機械動能驅使馬達轉動。
直流馬達普遍應用於日常生活中,如玩具車、模型汽車、電動刮鬍刀、錄音機、錄影機、CD唱盤、電動跑步機、電車、快速電梯、工作母機(車床、銑床)等。
-
NTU CSIE
直流馬達的規格書
RF-300型的主要規格
FA-130型的主要規格
設計馬達的電晶體控制電路時,最重要的兩個參數是工作電壓和堵轉電流。馬達的負荷越重,轉速會變慢,耗電流也越大,發熱量也增加。
-
NTU CSIE
電壓驅動:當兩極的電壓差愈大時,則馬達轉速愈快,反之當兩極的電壓差愈小時,則馬達轉速愈慢。
電流驅動:當通過線圈的電流愈大時,則馬達扭力愈大,反之當通過線圈的電流愈小時,則馬達扭力愈小。
直流馬達的轉速不受電源頻率的限制,因此可以製作出高速馬達。
有刷馬達控制電路簡單,但是馬達內的碳刷使用一段時間後會磨損,必須定期更換。無刷馬達不須更換碳刷,強大有效率,但控制電路較複雜。
Arduino板輸出電流約25mA,無法直接驅動直流馬達,必須外接電晶體或驅動電路,才能有足夠電流來驅動直流馬達轉動。
12-1-1 驅動方式
-
NTU CSIE
直流馬達外部有兩個電極M+及M-,當M+極電壓大於M-極電壓時,馬達正轉,反之當M+極電壓小於M-極電壓時,馬達反轉。
只要改變電壓極性,即可控制馬達轉向。
轉向控制
轉速控制
平均直流電壓T
tVV Hmdc
T
tH
Vm
tL
t0
Vdc
T
tHtH
Vm
Vm
tLtL
t0
Vdc
Vdc
PWM信號
利用脈波寬度調變(pulse width modulation,簡記PWM)來控制直流馬達轉速。
馬達有基本的起動轉矩以抵抗摩擦力,兩極的電壓差必須大於馬達的最小工作電壓,馬達才會轉動,因此PWM信號的工作週期不能太小,否則太小的平均直流電壓,將無法驅使馬達轉動。
-
NTU CSIE
控制馬達正反轉的H橋式馬達控制電路
-
NTU CSIE
-
NTU CSIE
控制馬達正反轉的H橋式馬達控制電路
-
NTU CSIE
L298N馬達控制電路板
-
NTU CSIE
L9110
• On-board 2 L9110 motor control chip
• Module can be driven by two dc motors at the same time or one phase 4
line 2 type stepping motor
• Input voltage: 2.5-12V DC
• Each channel has a continuous output current 800 ma
• PCB Size: 29.2mm x 23mm
1. B-IA: Motor B Input A 2. B-IB: Motor B Input B 3. GND: ground 4. VCC: 2.5V-12V DC 5. A-IA: Motor A Input A 6. A-IB: Motor B Input B
-
NTU CSIE
直流馬達轉向控制實習
功能說明:
利用Arduino板控制直流馬達轉動方向。本例由Serial Monitor視窗傳送命
令控制馬達轉動方向,
當輸入R鍵時,馬達右轉;
當輸入L鍵時,馬達左轉;
當輸入S鍵時,馬達停止轉動。
如圖下所示L9110 全橋(full-H)驅動器,其工作電壓 2.5 V到12V,提
供內部邏輯電源,可以連接至Arduino板的+5V腳,為外接電源,提供輸
出端馬達所需電源。
-
NTU CSIE
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3.3
V5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~11
~10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz
直流馬達
Vcc1 1A 2A 3A 4A
GND
GND
GND
1Y 2Y 3Y 4Y
L293D
半橋驅動器
Vcc2
1,2EN
3,4EN
馬達電源
16
1
GND
4
5
12
13
2 7
3 6
8
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3.3
V5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~11
~10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3.3
V5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~11
~10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz16MHz
直流馬達
Vcc1 1A 2A 3A 4A
GND
GND
GND
1Y 2Y 3Y 4Y
L293D
半橋驅動器
Vcc2
1,2EN
3,4EN
馬達電源
16
1
GND
4
5
12
13
2 7
3 6
8BIA BIB AIA AIB
MoterB MoterA
L9110
1. B-IA: Motor B Input A 2. B-IB: Motor B Input B 3. GND: ground 4. VCC: 2.5V-12V DC 5. A-IA: Motor A Input A 6. A-IB: Motor B Input B
-
NTU CSIE
C01.ino
-
NTU CSIE
-
條件控制指令—if-else-if敘述 if-else if 敘述
使用 if-else if 敘述時,必須注意 if 與 else if 的配合,其原則是 else if 要與最接
近且未配對的 if 配成一對,通常我們都是以 Tab 定位鍵或空白字元來對齊配對
的 if-else,才不會有錯誤動作出現。在 if 敘述或 else 敘述內,如果只有一行敘
述時,可以不用加大括號{},但是一行以上敘述時,一定要加上大括號"{ }"。
指令格式
if( 條件1 ) //條件1成立?
{ //條件1成立,執行敘述1。
//敘述1;
}
else if( 條件2 ) //條件2成立?
{ //條件2成立,執行敘述2。
//敘述2;
}
else if( 條件3 ) //條件3成立?
{ //條件3成立,執行敘述3。
//敘述3;
}
else //條件1、2、3皆不成立。
{ //條件1、2、3皆不成立,執行敘述4。
//敘述4;
}
Arduino程式流程控制
-
NTU CSIE
序列埠監控視窗Arduino內建處理序列埠連線的Serial程式庫建立序列埠連線的首要任務是設定資料傳輸率,底下的程式設定為9600bps序列埠監控視窗的連線速率要和Arduino程式一致。
-
NTU CSIE
從Arduino接收序列資料
微處理器內部有一個類似儲存槽的緩衝記憶區(buffer),用於暫存來自序列埠的輸入資料。
如果緩衝記憶區裡面沒有資料,Serial.available()將傳回0。
-
NTU CSIE
1.設計 Arduino 程式,使用 Serial Monitor 視窗控制直流馬達轉向。當輸入R鍵時,馬
達右轉 2 秒停止;當輸入L鍵時,馬達左轉 2 秒停止。
2.設計 Arduino 程式,使用 Serial Monitor 視窗控制直流馬達轉向。當輸入0~9鍵時,
設定馬達轉動秒數;當輸入R鍵時,馬達右轉所設定的秒數,例如輸入2R代表右
轉 2 秒停止;當輸入L鍵時,馬達左轉所設定的秒數,例如輸入5L代表左轉 5 秒
停止。
(回家)實作練習
-
NTU CSIE
12-3-4 電動車行進方向控制實習
功能說明:
利用 Arduino 板控制電動車前進、後退、右轉、左轉及停止等功能。本例
使用 L293D IC 組成全橋驅動器,控制電動車的左、右兩組直流馬達,並以 Serial
Monitor 視窗輸入按鍵 0~4 來控制直流馬達轉向。按鍵功能說明如表 12-2 所示,
本例利用左、右兩個馬達的正、反轉來控制電動車行進方向。
表 12-2 電動車行進方向控制
按鍵 左馬達 右馬達 功能
0 停止 停止 停止
1 反轉 正轉 前進
2 正轉 反轉 後退
3 反轉 停止 右轉
4 停止 正轉 左轉
-
NTU CSIE
電路圖及麵包板接線圖:
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3.3
V5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~11
~10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz
左馬達
Vcc11A 2A 3A 4A
GND
GND
GND
1Y 2Y 3Y 4Y
L293D
半橋驅動器
Vcc2
右馬達
1,2EN
3,4EN
馬達電源
16
1
9
GND
4
5
12
13
2 7 10 15
3 6 11 14
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3.3
V5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~11
~10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3.3
V5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~11
~10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz16MHz
左馬達
Vcc11A 2A 3A 4A
GND
GND
GND
1Y 2Y 3Y 4Y
L293D
半橋驅動器
Vcc2
右馬達
1,2EN
3,4EN
馬達電源
16
1
9
GND
4
5
12
13
2 7 10 15
3 6 11 14
圖 12-10 電動車行進方向控制實習電路圖
圖 12-11 電動車行進方向控制實習麵包板接線圖
L9110
BIA BIB AIA AIB
MoterB MoterA
-
NTU CSIE
switch...case控制結構
switch具有「切換」的涵意:透過比對switch()裡的變數和case後面的值,來決定切換執行哪一段程式
-
NTU CSIE
C02.ino
-
NTU CSIE
12-3 實作練習
-
NTU CSIE
-
NTU CSIE
1.設計 Arduino 程式,以 Serial Monitor 視窗控制電動車行進方向。輸入'F'鍵,車子前
進;輸入'B'鍵,車子後退;輸入'R'鍵,車子右轉;輸入'L'鍵,車子左轉;輸入'S'鍵,
車子停止。
2.設計 Arduino 程式,以 Serial Monitor 視窗控制電動車行進方向。輸入'F'鍵,車子前
進,同時 L0 燈亮;輸入'B'鍵,車子後退,同時 L1 燈亮;輸入'R'鍵,車子右轉,同
時 L2 燈亮;輸入'L'鍵,車子左轉,同時 L3 燈亮;輸入'S'鍵,車子停止,所有燈均
不亮。
(回家)實作練習
-
NTU CSIE
自動迴避障礙物的自走車
-
NTU CSIE
超音波數位量尺
藉由測量脈衝時間長度的pulseIn()函數,可得知超音波的回應時間並藉此計算距離。
-
NTU CSIE
HC-SR04• HC-SR04 是一個超音波感測器
• 探測的距離為 2cm-400cm
• 精度為 0.3 cm
• 感應角度為 15 度
• HC-SR04 總共只有 4 支接腳。
HC-SR04 Arduino
Vcc +5V
Trig GPIO
Echo GPIO
GND GND
-
NTU CSIE
線路連接圖
-
NTU CSIE
C10.ino
超音波測距儀範例
-
NTU CSIE
C11.ino
自走車 –簡易版
-
NTU CSIE
-
NTU CSIE
-
NTU CSIE
C12.ino加入選單功能
-
NTU CSIE
-
NTU CSIE
動動腦
每次都只能向右轉?能不能向左轉?
能不能自動判斷向左還是向右?
以什麼為依據向左還是向右?
會轉頭的感測器!!!
-
NTU CSIE
認識伺服馬達
伺服馬達(Servo)是一種用於精確移動、定位場合的動力裝置。
它由普通的直流馬達,再加上偵測馬達旋轉角度的電路,以及一組減速齒輪所構成。
伺服馬達有三條接線,分別是正電源、接地和控制訊號線。
-
圖 13-1 伺服馬達
第13章 伺服馬達控制實習
伺服馬達(servo motor)又稱為伺服機,其基本原理與一般直流馬達相同,但兩者的使用場合不同,因此所要求的特性也不同。
一般直流馬達較注重啟動及運行,而伺服馬達則注重輸出位置的精確度及穩定度。
伺服馬達具有體積小、重量輕、輸出功率大、扭力大、效率高等特性,常被廣泛地運用於位置及速度的控制應用,例如機器人、遙控車、遙控直昇機、遙控船及無人搬運車等。
-
表 13-2 伺服馬達電氣規格
接腳 名稱 說明 最小值 典型值 最大值
橙(白) Signal 輸入 3.3V 5.0V Vservo+ 0.2V
紅(紅) Vservo 電源 4.0V 5.0V 6.0V
棕(黑) VSS 接腳 0
伺服馬達有三條控制線,一條為電源線、一條為接地線、另一條為信號線,雖然顏色不同,但是排列順序大致相同。
電源線通常是紅色,接地線通常是黑色或棕色,信號線通常是黃色、橙色或白色。
伺服馬達的電源Vservo必須使用穩定且輸出電流足夠的電源供應,馬達才能正常動作。
伺服馬達在某些角度會輕微斗動為正常現像。
注意:電源與接地不可反接,否則伺服馬達將會卡死故障!並發燙
-
NTU CSIE
控制伺服馬達的PPM訊號
伺服馬達接收脈衝比例調變(Pulse Position Modulation,簡稱PPM)訊號,來指揮它的轉動角度。
-
13-2-1 Servo 函式庫
早期 Servo 函式庫只能使用 Arduino 板數位接腳 9、10,現今能支援多數 Arduino
板 12 個伺服馬達,而在 Mega 板子上可支援 48 個伺服馬達。在 Uno 板子上使用 Servo
函式庫時,Servo 函式庫會關閉數位接腳 9、10 的 analogWrite()功能。Servo 函式庫
可以控制 standard 型伺服馬達的移動角度(0~180之間),也可以控制 continuous 型
伺服馬達的旋轉速度。
格式: Servo
範例: include //使用Servo函式庫。
Servo myservo; //建立一個伺服馬達物件myservo。
-
13-2-2 attach( )函式
attach( )函式的功能是用來指定連接至伺服馬達的 Arduino 板數位接腳,有 pin、
min 及 max 等三個參數必須設定,pin 參數設定連接至伺服馬達的數位接腳;min 參
數(可選的)設定最小脈波寬度,單位是微秒,與伺服馬達的最小角度(0 度)有關,
預設值是 544;max 參數(可選的)設定最大脈波寬度,單位是微秒,與伺服馬達的
最大角度(180 度)有關,預設值是 2400。在使用 attach()函式之前,必須先使用 Servo
宣告一個 Servo 資料型態的物件。
格式: myservo.attach(pin,min,max)
範例: include //使用Servo函式庫。
Servo myservo; //建立一個伺服馬達物件myservo。
myservo.attach(9); //伺服馬達連接至數位接腳9。
-
13-2-3 write( )函式
write( )函式的功能是用來指定 standard 型伺服馬達的轉動角度或是 continuous
型伺服馬達的轉動速度,只有一個參數 angle 必須設定。如果使用 standard 型伺服馬
達,則 angle 參數可以設定轉動的角度(以度為單位,範圍 0~180)。如果使用
continuous 型伺服馬達,則 angle 參數可以設定轉動的速度,當 0angle
-
電路圖及麵包板接線圖:
+5V
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3
.3V
5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~1
1~
10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz
信號(橙)
地線(黑)
電源(紅)
Servo外接電源
+5V+5V
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3
.3V
5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~1
1~
10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3
.3V
5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~1
1~
10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz16MHz
信號(橙)
地線(黑)
電源(紅)
ServoServo外接電源
圖 13-5 控制固定角度型伺服馬達轉動角度實習電路圖
圖 13-6 控制固定角度型伺服馬達轉動角度實習麵包板接線圖
-
13-3-2 鍵盤控制伺服馬達轉動固定角度實習
功能說明:
利用串列埠傳送電腦鍵盤按鍵值控制伺服馬達轉動固定角度。當按下 a 鍵時,伺
服馬達轉動至 0 度位置;當按下 b 鍵時,伺服馬達轉動至 90 度位置;當按下 c 鍵
時,伺服轉動至 180 度位置。
-
程式: ch13-2.ino
#include //使用Servo.h函式庫。
Servo servo; //建立Servo資料型態的物件。
void setup()
{
Serial.begin(9600); //初始化串列埠,設定鮑率9600bps
servo.attach(2); //數位接腳2連接伺服馬達信號線。
}
void loop()
{
if(Serial.available()) //鍵盤輸入任意鍵?
{
char ch=Serial.read(); //讀取按鍵值。
Serial.println(ch); //顯示按鍵值。
if(ch=='a') //按下a鍵?
servo.write(0); //伺服馬達轉動至0度位置。
else if(ch=='b') //按下b鍵?
servo.write(90); //伺服馬達轉動至90度位置。
else if(ch=='c') //按下c鍵?
servo.write(180); //伺服馬達轉動180度位置。
}
}
C22.ino
10
-
1.設計 Arduino 程式,利用鍵盤控制伺服馬達轉動角度。當按下 a 鍵時,伺服馬達轉
動至 0 度位置;當按下 b 鍵時,伺服馬達轉動至 45 度位置;當按下 c鍵時,伺服轉
動至 90 度位置;當按下 d 鍵時,伺服馬達轉動至 135 度位置;當按下 e鍵時,伺服
轉動至 180 度位置。
2.設計 Arduino 程式,利用鍵盤控制伺服馬達轉動固定角度。當按下 a 鍵時,伺服馬
達轉動由 0 至 180 度來回擺動;當按下 b 鍵時,伺服馬達轉動由 45 至 135 度來回擺
動;當按下 c鍵時,伺服馬達轉動至 90 度後停止。
(回家)實作練習
-
NTU CSIE
安裝超音波感測器
-
NTU CSIE
C23.ino
自動判斷左右轉
-
NTU CSIE
-
NTU CSIE
同場加映-超音波雷達
-
NTU CSIE
C41.ino
-
NTU CSIE
-
NTU CSIE
-
NTU CSIE
Processing• 簡單易用的程式語言
• 著重在「繪圖」
• 用它來畫出雷達的畫面
-
NTU CSIE
改 COM port 改成Arduino的 port
C41_2.pde
-
NTU CSIE
完成
-
NTU CSIE
認識藍牙(Bluetooth)
近距離無線數據和語音傳輸技術,主要用於取代線材和紅外線傳輸採用世界各國共通的ISM頻段(2.4GHz)。為了要確保藍牙設備間的互通性,藍牙技術聯盟(SIG),制定了多種藍牙規範(Profile)取代有線序列埠的藍牙裝置規範,簡稱SPP
-
藍牙(Bluetooth)
藍牙(Bluetooth)技術由Ericsson、IBM、Intel、NOKIA、Toshiba等五家公司協議,標準版本為802.15.1,為低成本、低功率、涵蓋範圍小的跳頻(Frequency Hopping)RF系統,所謂跳頻是指載波快速在不同頻率中切換,可以非常有效抵禦蓄意的干擾。
藍牙適用於連結電腦與電腦、電腦與周邊以及電腦與其他行動數據裝置如行動電話、呼叫器、PDA等。
IrDA是一種視距的傳輸,兩個通訊設備必須對準,而且中間不能被其它物體阻隔,而藍牙使用2.45GHz載波傳輸,傳輸不會受物體阻隔的限制。
每個藍牙技術連接裝置都依IEEE 802標準所制定的48位元位址,可以一對一、一對多連接,傳輸範圍最遠10公尺,傳輸率每秒1MB~2MB,頻寬可達1Mbps。
藍牙技術可以加密保護,保密性高而且較不受電磁波干擾。
-
NTU CSIE
藍牙序列通信模組(一)常見的兩種支援SPP序列埠規範的藍牙模組:• HC-05:主/從(host/slave)一體,支援30多道AT命令• HC-06:主機或從屬模式,出廠前就設定好,不能更改;支援少數AT指令
HC-05和HC-06的硬體是相同的,只是晶片內部的韌體不同。
-
NTU CSIE
藍牙序列埠模組
支援SPP序列埠規範的藍牙模組外觀:
藍牙模組最常用的四個接腳如下:•Vcc:正電源,依製造商而定,可能是5v或3.3v•Gnd:接地•TxD:訊號傳送•RxD:訊號接收
-
NTU CSIE
藍牙序列通信模組(二)附帶底板(已焊接引腳)的藍牙序列通信模組:
-
NTU CSIE
藍牙模組選購要點
務必跟廠商索取datasheet(含AT指令表)
HC-05板建議購買有引出Key接腳的模組
多數的應用,HC-06足敷使用。
HC-05能和HC-06配對。
Bluetooth 4.0具備藍牙低功耗(Bluetooth Low Energy, BLE)模式,耗電量低,但電腦、手機和平板等裝置的支援/普及程度,不及2.1版。
註:模組(硬體)的選購,不影響Arduino,程式碼都一樣。
-
NTU CSIE
連接電路(一)
-
NTU CSIE
連接電路(二)
-
NTU CSIE
麵包板接線 本圖接線參考用請改用:
RxD 接 11
TxD 接 12
-
NTU CSIE
藍牙模組的兩種操作模式
自動連線(automatic connection),又稱為透通模式( transparent communication)
命令回應(order-response),又稱為AT模式(AT mode)
註:藍牙模組的「自動連線」模式的傳輸速率,通常是9600bps。
-
NTU CSIE
HC-06模組的AT指令
HC-05模組的設定方式:http://swf.com.tw/?p=335
http://swf.com.tw/?p=335
-
NTU CSIE
透過Arduino設定AT命令
#include // 引用程式庫
SoftwareSerial BT(8, 9); // RxD, TxDchar val; // 儲存接收資料的變數
void setup() {Serial.begin(9600);Serial.println("BT is ready!");BT.begin(9600); // 藍牙模組的連線速率
}
void loop() {// 若收到藍牙模組的資料,送到「序列埠監控視窗」if (BT.available()) {val = BT.read();Serial.print(val);
}
// 若收到「序列埠監控視窗」的資料,送到藍牙模組if (Serial.available()) {val = Serial.read();BT.print(val);
}}
參閱:http://swf.com.tw/?p=712
http://swf.com.tw/?p=712
-
功能說明:
電腦透過藍牙與 Arduino板建立連線,並控制 LED亮與暗,按 1鍵點亮 LED,
按 0鍵,關閉 LED。Arduino UNO板只有一個硬體串列埠,使用數位接腳 0(RX)
及數位接腳 1(TX),當做程式上載及【Serial Monitor】視窗使用。本例使用
SorfwareSerial 函式庫建立軟體串列埠,定義藍牙裝置使用 Arduino板的數位接腳
3(RX)及數位接腳 4(TX)當做藍牙串列埠使用。
KEYRXDTXDVCC50VCC33GND
HC-05
KEYRXDTXDVCC50VCC33GND
KEYRXDTXDVCC50VCC33GND
HC-05
(a) 元件 (b) 接腳
圖 15-4 HC-05藍牙模組
-
電路圖及麵包板接線圖:
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3
.3V
5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~1
1~
10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz
KEYRXDTXDVCC50VCC33GND
HC-05
220
LED
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3
.3V
5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~1
1~
10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz
ATMEGA328P
UNOONL
IOR
EF
RE
SE
T3
.3V
5V
GN
DG
ND
Vin
ANALOG IN
A0
A1
A2
A3
A4
A5
AR
EF
GN
D 13
12
~1
1~
10
~9 8 7
~6
~5 4 ~3 2
TX
1R
X 0
RX
TX
RE
SE
T
DIGITAL (PWM~)
POWER
SC
LS
DA
16MHz16MHz
KEYRXDTXDVCC50VCC33GND
HC-05
KEYRXDTXDVCC50VCC33GND
KEYRXDTXDVCC50VCC33GND
HC-05
220
LED
本圖接線參考用
請改用:
RxD 接 11
TxD 接 12
-
NTU CSIE
使用軟體序列埠程式連接Arduino與藍牙模組
Arduino微電腦板預設只有一個序列埠。SoftwareSerial(直譯為軟體序列埠),能讓Arduino的其他接腳變成序列埠。
透過SoftwareSerial程式庫,將數位9和10腳指定成序列埠:
本圖接線參考用
請改用:
RxD 接 11
TxD 接 12
-
NTU CSIE
Android手機藍牙遙控機器人從手機藍牙傳遞字元給機器人,機器人的微電腦將依照收到的'w', 'a',...等字元,執行前進和轉彎等動作。
-
NTU CSIE
Bluetooth SPP Pro安裝手機藍芽APPhttps://play.google.com/store/apps/details?id=mobi.dzs.android.
BLE_SPP_PRO&hl=zh_TW
https://play.google.com/store/apps/details?id=mobi.dzs.android.BLE_SPP_PRO&hl=zh_TW
-
NTU CSIE
• 配對藍芽裝置 (有可能會配對到同學的喔~)
• 藍牙裝置的配對碼通常是1234或0000
• 使用鍵盤模式
• 設定結束符號為其它(無)
-
NTU CSIE
-
NTU CSIE
-
NTU CSIE
15-3 實作練習
C31.ino
-
1.設計 Arduino 程式,電腦透過藍牙與 Arduino 板建立連線控制 LED 閃爍與暗,按 1
鍵時,閃爍 LED,按 0 鍵,關閉 LED。
2.設計 Arduino 程式,電腦透過藍牙與 Arduino 板建立連線控制 LED1~LED4,按鍵 1
控制 LED1 亮與暗;按鍵 2 控制 LED2 亮與暗;按鍵 3 控制 LED3 亮與暗;按鍵 4
控制 LED4 亮與暗。
(回家)實作練習
-
NTU CSIE
其它Android藍芽通訊軟體
https://play.google.com/store/apps/details?id=com.giumig.apps.bluetoothserialmonitor&hl=zh_TW
https://play.google.com/store/apps/details?id=com.shenyaocn.android.BlueSPP
https://play.google.com/store/apps/details?id=com.giumig.apps.bluetoothserialmonitor&hl=zh_TWhttps://play.google.com/store/apps/details?id=com.shenyaocn.android.BlueSPP
-
NTU CSIE
整合藍芽遙控自走車
-
NTU CSIE
C32.ino
-
NTU CSIE
-
NTU CSIE
C33.ino
加入監看距離功能
-
NTU CSIE
-
NTU CSIE
整合電源離線控制
-
NTU CSIE
原本長這樣
-
NTU CSIE
改成這樣
-
NTU CSIE
修正問題:
轉向會卡住!?
改變轉彎方式,成為後退轉彎
停得太慢會撞到!
增加距離threshold
降低前進速度
減短偵測距離間隔
-
NTU CSIE
C34.ino
改成後退轉彎
請測試出最佳的偵測間隔!
-
NTU CSIE
回家作業
Hw1 請將以上自走車範例實作完成後
上傳到網頁中
格式一個字都不能錯,尤其是_底線
-
NTU CSIE
其它自走車與課外參考資料
循線自走車
http://sinocgtchen.blogspot.tw/2013/05/motoduinoarduino-
l293d-ir-tracker-sensor.html
套裝自走車
http://www.86duino.com/wp-includes/file/Chapter07-TC.pdf
基本焊接與佈線
http://blog.163.com/pvc_robot/blog/static/1752764322011101
244642538
http://sinocgtchen.blogspot.tw/2013/05/motoduinoarduino-l293d-ir-tracker-sensor.htmlhttp://www.86duino.com/wp-includes/file/Chapter07-TC.pdfhttp://blog.163.com/pvc_robot/blog/static/1752764322011101244642538