PULSOUT - 資訊學科中心

Download Report

Transcript PULSOUT - 資訊學科中心

100年度精進學科中心工作團隊
成長策略聯盟研習活動
課程主題:機器人專題製作與應用
碰觸式導航機器人
 主講人:國立彰化師大附工
 機電科主任 楊昭德
 指導單位:教育部(中教司)
 承辦單位:資訊學科中心學校-國立台南第二高級中學
 協辦學校:生活科技學科中心學校-國立板橋高級中學
Slide 1
“Boe-Bot (BB car)寶博機器人"
Slide 2
硬體清單
 4個橡膠腳墊
 電池盒
 BASIC Stamp 2 微處理器
 BOE(Board of Education)載版
 新的三號鹼性電池
Slide 3
BOE組裝
Slide 4
測試通訊
Slide 5
測試通訊
Slide 6
第一個 程式
Page 30
Slide 7
程式範例:
Page 36
Slide 8
LED 控制
Slide 9
LED 控制
Slide 10
連續旋轉伺服機介紹
Page 49
Slide 11
伺服機與BOE教育板連結
Page 74
Slide 12
伺服機與BOE教育板連結
Page 72
Page 73
Page 73
Slide 13
連結伺服馬達
Page 81
Page 83
Slide 14
連結伺服馬達
Page 81
旋轉到伺服馬達停止轉動-用螺絲起子.
Page 82
Slide 15
伺服機程式控制
伺服機是由脈衝的時間寬度所控制,稱為脈波寬
度調變(Pulse WidthModulation,簡稱PWM)。
它是由極短的高準位訊號(High;代表邏輯”1”)
的維持時間所控制。這些訊號會每隔20 毫秒
(ms)不斷地被傳送。此高準位訊號可以在任何
地方維持1~2 毫秒(ms)。
以下是關於PULSOUT 的語法:
PULSOUT pin, duration
pin腳: 定義哪一個I/O pin腳作使用.
持續期間(duration):則是指維持的時間,只是單
位並不是毫秒(ms).
Slide 16
對於BASIC Stamp2 ,Duration 單位為2millionth-of-a-second也就是2 微秒(μs)的時間。
1 S(微秒) = .000001 seconds(秒).
1 mS(毫秒) = 1000S (微秒)
範例: PULSOUT 14, 750
以上的這個例子將會送一個傳送的脈衝維持
750 x 2 S (微秒) = 1500 S (微秒) or 1.5mS
在 pin 14.
(毫秒)
Slide 17
連續旋轉 伺服馬達測試 (PWM訊號)
Slide 18
調整速度與參數
Page 96
Slide 19
非連續旋轉 伺服馬達測試 ..... (補充資料)
伺服機測試程式發出一組脈波,而下列為其對
應的持續時間:
500 = 1 mS
750 = 1.5 mS
1000 = 2 mS
範例程式:
當程式執行時, 設定1000是送出20mS的脈
波150次.
Slide 20
非連續旋轉 伺服馬達測試 ..... (補充資料)
當程式執行時, 伺服機的出力轉
盤將會指向10點鐘方向 to 2點
鐘方向 to 12點鐘方向.
不同的伺服機其所
能轉動角度也會有
所不同.
Slide 21
非連續旋轉 伺服馬達測試 ..... (補充資料)
Slide 22
機構組裝說明
Page 92 – 93
組裝前
組裝後
Slide 23
機構組裝說明
Slide 24
機構組裝說明
Slide 25
機構組裝說明
Slide 26
機構組裝說明
Slide 27
機構組裝說明
Slide 28
機構組裝說明
Slide 29
組裝完成圖
Page 132
Slide 30
再次測試伺服機
Page 119
Slide 31
伺服器控制
 方向
• 由PWM訊號做控制
 距離
• 由每一個pulse讓伺服機轉動的總和
 速度
• 最大值 1.3 和 1.7 ms.
• 停止值為 1.5 ms
脈波寬
轉向
參數
Pulse Width Direction of Rotation PULSOUT Period
順時鐘轉
1.3 ms
650
1.5 ms
停止轉動
750
1.7 ms
逆時鐘轉
850
Slide 32
Boe-Bot基本運動練習
Page 158
Slide 33
控制運動方向
 執行 "BoeBotForwardThreeSeconds.bs2"
 在課本P144 中有詳細介紹,Boe-Bot基本運動控
制
FOR counter = 1 TO 122
PULSOUT 13, 850
PULSOUT 12, 650
PAUSE 20
NEXT
Slide 34
範例程式: ForwardLeftRightBackward.bs2
Page 162 – 164
前進
左轉
右轉
倒退
Slide 35
練習
1m
1m
1m
1m
Page 185
Slide 36
觸鬚的觸碰式導航
Page 192
Page 193
Page 194
Slide 37
組裝觸鬚
Page 196
Page 195
Page 197
Slide 38
測試觸鬚
 把搭載板和伺服機重新接上電源。
 載入、儲存,在執行TestWhiskers.bs2。
p.198
 這個程式需要利用Debug Terminal,所
以在執行程式時,所以
再程式執行時,請讓串列纜線保持連接。
DEBUG "WHISKER STATES", CR,
"Left
Right", CR,
"-----------"
DO
DEBUG CRSRXY, 0, 3,
"P5 = ", BIN1 IN5,
"
P7 = ", BIN1 IN7
PAUSE 50
LOOP
Slide 39
場地測試觸鬚– 增加 LEDs
Page 222
Page 221
Page 223
Slide 40
觸鬚的觸碰式導航
 執行 "Roaming with Whiskers.bs2“P204
 試著讓Boe-Bot 漫遊,當它在其路徑上遭遇到
障礙物時,他應該要退後、轉向,再往新的方向
前進。
DO
IF (IN5 = 0) AND (IN7 = 0) THEN
GOSUB Back_Up
GOSUB Turn_Left
GOSUB Turn_Left
ELSEIF (IN5 = 0) THEN
GOSUB Back_Up
GOSUB Turn_Right
ELSEIF (IN7 = 0) THEN
GOSUB Back_Up
GOSUB Turn_Left
ELSE
GOSUB Forward_Pulse
ENDIF
LOOP
' Both whiskers detect obstacle
' Back up & U-turn (left twice)
' Left whisker contacts
' Back up & turn right
' Right whisker contacts
' Back up & turn left
' Both whiskers 1, no contacts
' Apply a forward pulse
' and check again
Slide 41
觸鬚的觸碰式導航高階版(避免角落)
 執行 "EscapingCorners.bs2 “P210
 這一個程式會使Boe-Bot 在第四或第五次的交
替接觸後做U 型迴轉,由哪一個whisker 先被
擠壓到決定。
Slide 42
光敏電阻進行光感應導航_光明電阻特性介紹
Page 222
如圖6-4 所示的等效線路,光電阻的電阻值表
示為R,被強光照射時它可以只是幾歐姆小電
阻,也可以是完全黑暗時在兩端形成50KΩ。在
一個有光線充足的房間內,電阻值可以小到僅
有1KΩ(強光照射下),或是大到有25KΩ(周圍有
很多物體投射陰影)。
Slide 43
光敏電阻進行光感應導航
Page 224
Slide 44
偵測陰影
執行 "TestPhotoresistorDividers.bs2 “P227
 在無陰影時,確認IN6 與 IN3 都儲存數值1,確
認在你用手遮住照射光電阻的光線時,就會使它
的輸入端暫存器改為0。
' Robotics with the Boe-Bot - TestPhotoresistorDividers.bs2
‘I/O輸出腳連接到光電阻器
‘分壓器狀態
' {$STAMP BS2}
' {$PBASIC 2.5}
DEBUG “光敏電阻狀態“ , CR,
“左邊(P6) 右邊(P3)" , CR,
"------- --------"
DO
DEBUG CRSRXY, 0, 3,
“P6 = ” , BIN1 IN6,
"
P3 = " , BIN1 IN3
PAUSE 100
LOOP
‘搬到游標指定的地點(第0欄,4列)
‘輸出P6腳 狀態
‘輸出P3腳 狀態
‘延遲0.1s
Slide 45
追蹤陰影
 輸入ShadowGuidedBoeBot.bs2,儲存並且執行。
 用手在光電阻上製造陰影以控制Boe-Bot 的運作。
 請仔細研讀這個簡短卻非常實用程式直到你了解這個程式如何運作。
' {$STAMP BS2}
' {$PBASIC 2.5}
DEBUG “開始追蹤陰影了!"
FREQOUT 4, 2000, 3000 ‘ 開始或重新開始訊號(Pin腳,時間,頻率)
DO
IF (IN6 = 0) AND (IN3 = 0) THEN ‘查出兩個都陰影 向前
PULSOUT 13, 850
PULSOUT 12, 650
ELSEIF (IN6 = 0) THEN ‘ 左邊查出陰影
PULSOUT 13, 750 ‘ 轉左
PULSOUT 12, 650
ELSEIF (IN3 = 0) THEN ‘ 右邊查出陰影
PULSOUT 13, 850 ‘ 轉右
ELSE
‘ 沒有陰影, 不動作
PULSOUT 13, 750
PULSOUT 12, 750
ENDIF
PAUSE 20 ‘停留0.02秒
LOOP
Slide 46
使用紅外線頭燈移動
Page 236
Page 276
Page 277
Slide 47
組裝及測試 紅外線發射及接收
Page 277
Page 283
Page 283
Slide 48
範例程式: TestIrPairsAndIndicators.bs2
Page 284
Slide 49
範例程式: RoamingWithIr.bs2
Page 290
Slide 50
Example Program: FastIrRoaming.bs2_高水準的IR 運行
Page 253
Slide 51
向下探測器
Page 255
Slide 52
使用絕緣膠帶來模擬桌面邊緣
Page 257
Slide 53
範例程式: AviodTableEdge.bs2
Page 298
Slide 54
運用接收頻率來做距離偵測
Page 308
Page 309
Slide 55
BOE-BOT 追蹤小車
Page 285
Slide 56
BOE-BOT 追蹤小車
Slide 57
循線
Page 287
Slide 58
循線
Page 286
Slide 59