590 likes | 726 Views
100 年度精進學科中心工作團隊 成長策略聯盟研習活動 課程主題 : 機器人專題製作與應用 碰觸式導航機器人 主講人:國立彰化師大附工 機電科主任 楊昭德 指導單位 : 教育部 ( 中教司 ) 承辦單位 : 資訊學科中心學校 - 國立台南第二高級中學 協辦學校 : 生活科技學科中心學校 - 國立板橋高級中學. “Boe-Bot (BB car) 寶博機器人 ". 硬體清單. 4 個橡膠腳墊 電池盒 BASIC Stamp 2 微處理器 BOE(Board of Education) 載版 新的三號鹼性電池. BOE 組裝. 測試通訊. 測試通訊.
E N D
100年度精進學科中心工作團隊 成長策略聯盟研習活動 • 課程主題:機器人專題製作與應用 • 碰觸式導航機器人 • 主講人:國立彰化師大附工 • 機電科主任 楊昭德 • 指導單位:教育部(中教司) • 承辦單位:資訊學科中心學校-國立台南第二高級中學 • 協辦學校:生活科技學科中心學校-國立板橋高級中學
硬體清單 • 4個橡膠腳墊 • 電池盒 • BASIC Stamp 2 微處理器 • BOE(Board of Education)載版 • 新的三號鹼性電池
第一個 程式 Page 30
程式範例: Page 36
連續旋轉伺服機介紹 Page 49
伺服機與BOE教育板連結 Page 74
伺服機與BOE教育板連結 Page 73 Page 72 Page 73
連結伺服馬達 Page 81 Page 83
連結伺服馬達 Page 81 旋轉到伺服馬達停止轉動-用螺絲起子. Page 82
伺服機程式控制 伺服機是由脈衝的時間寬度所控制,稱為脈波寬度調變(Pulse WidthModulation,簡稱PWM)。它是由極短的高準位訊號(High;代表邏輯”1”)的維持時間所控制。這些訊號會每隔20 毫秒(ms)不斷地被傳送。此高準位訊號可以在任何地方維持1~2 毫秒(ms)。 以下是關於PULSOUT 的語法:PULSOUT pin, durationpin腳: 定義哪一個I/O pin腳作使用.持續期間(duration):則是指維持的時間,只是單位並不是毫秒(ms).
對於BASIC Stamp2 ,Duration 單位為2-millionth-of-a-second也就是2 微秒(μs)的時間。 1 S(微秒) = .000001 seconds(秒).1 mS(毫秒) = 1000S (微秒) 範例: PULSOUT 14, 750 以上的這個例子將會送一個傳送的脈衝維持750 x 2 S (微秒) = 1500 S (微秒) or 1.5mS (毫秒)在 pin 14.
調整速度與參數 Page 96
非連續旋轉 伺服馬達測試 ..... (補充資料) 伺服機測試程式發出一組脈波,而下列為其對應的持續時間: 500 = 1 mS750 = 1.5 mS 1000 = 2 mS 範例程式: 當程式執行時, 設定1000是送出20mS的脈波150次.
非連續旋轉 伺服馬達測試 ..... (補充資料) 當程式執行時, 伺服機的出力轉盤將會指向10點鐘方向 to 2點鐘方向 to 12點鐘方向. 不同的伺服機其所能轉動角度也會有所不同.
機構組裝說明 Page 92 – 93 組裝前 組裝後
組裝完成圖 Page 132
再次測試伺服機 Page 119
伺服器控制 • 方向 • 由PWM訊號做控制 • 距離 • 由每一個pulse讓伺服機轉動的總和 • 速度 • 最大值 1.3 和 1.7 ms. • 停止值為 1.5 ms
Boe-Bot基本運動練習 Page 158
控制運動方向 • 執行 "BoeBotForwardThreeSeconds.bs2" • 在課本P144 中有詳細介紹,Boe-Bot基本運動控制 FOR counter = 1 TO 122 PULSOUT 13, 850 PULSOUT 12, 650 PAUSE 20 NEXT
範例程式: ForwardLeftRightBackward.bs2 Page 162 – 164 前進 右轉 左轉 倒退
練習 1 m 1 m 1 m 1 m Page 185
觸鬚的觸碰式導航 Page 192 Page 193 Page 194
組裝觸鬚 Page 196 Page 195 Page 197
測試觸鬚 • 把搭載板和伺服機重新接上電源。 • 載入、儲存,在執行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
場地測試觸鬚– 增加 LEDs Page 222 Page 221 Page 223
觸鬚的觸碰式導航 • 執行 "Roaming with Whiskers.bs2“P204 • 試著讓Boe-Bot 漫遊,當它在其路徑上遭遇到障礙物時,他應該要退後、轉向,再往新的方向前進。 DO IF (IN5 = 0) AND (IN7 = 0) THEN ' Both whiskers detect obstacle GOSUB Back_Up ' Back up & U-turn (left twice) GOSUB Turn_Left GOSUB Turn_Left ELSEIF (IN5 = 0) THEN ' Left whisker contacts GOSUB Back_Up ' Back up & turn right GOSUB Turn_Right ELSEIF (IN7 = 0) THEN ' Right whisker contacts GOSUB Back_Up ' Back up & turn left GOSUB Turn_Left ELSE ' Both whiskers 1, no contacts GOSUB Forward_Pulse ' Apply a forward pulse ENDIF ' and check again LOOP
觸鬚的觸碰式導航高階版(避免角落) • 執行 "EscapingCorners.bs2 “P210 • 這一個程式會使Boe-Bot 在第四或第五次的交替接觸後做U 型迴轉,由哪一個whisker 先被擠壓到決定。
光敏電阻進行光感應導航_光明電阻特性介紹 Page 222 如圖6-4 所示的等效線路,光電阻的電阻值表示為R,被強光照射時它可以只是幾歐姆小電阻,也可以是完全黑暗時在兩端形成50KΩ。在一個有光線充足的房間內,電阻值可以小到僅有1KΩ(強光照射下),或是大到有25KΩ(周圍有很多物體投射陰影)。
光敏電阻進行光感應導航 Page 224
偵測陰影 • 執行 "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 DEBUGCRSRXY, 0, 3, ‘搬到游標指定的地點(第0欄,4列) “P6 = ” , BIN1 IN6, ‘輸出P6腳 狀態 " P3 = " , BIN1 IN3 ‘輸出P3腳 狀態 PAUSE 100 ‘延遲0.1s LOOP
追蹤陰影 • 輸入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
使用紅外線頭燈移動 Page 236 Page 276 Page 277
組裝及測試紅外線發射及接收 Page 277 Page 283 Page 283
範例程式: TestIrPairsAndIndicators.bs2 Page 284
範例程式: RoamingWithIr.bs2 Page 290