作者:CAVEDU教育團隊
前言
Jetbot作為一款基於NVIDIA Jetson Nano的開源機器人平台,以其強大的運算能力和靈活的擴展性受到了許多使用者喜愛。其內建的視覺處理能力使其在物體識別和路徑規劃方面都有出色的表現。但加入紅外線循跡感測器後,Jetbot的導航能力將得到進一步的提升。不再僅僅依賴影像,Jetbot將能夠結合紅外線循跡感測器的資料,更為準確和迅速地進行路徑選擇。
本文將深入探討如何為Jetbot加入紅外線循跡感測器,從理論到實踐,再到程式撰寫,無論你是初學者還是有經驗的開發者,相信這次的教學都能讓您收穫滿滿!
撰寫/攝影 | 許鈺莨 (ChatGPT協作編輯) | ||
時間 | 2 小時 | 材料表 |
|
難度 | 2(滿分5) |
本文
紅外線循跡感測器的工作原理
感測器的紅外發射二極體不斷發射紅外線,有以下兩種情形:
- 當發射出的紅外線沒有被反射回來或被反射回來但強度不夠大時, 光敏三極體一直處於關斷狀態,此時模塊的輸出端為高電壓,板載指示LED處於熄滅狀態。
- 被檢測物體出現在檢測範圍內時,紅外線被反射回來且強度足夠大, 光敏三極體飽和,模塊輸出低電壓,板載指示LED被點亮。
主要應用:本次運用於循跡車路線偵測,藉由紅外線被白色塊反射、黑色塊吸收減弱來偵測地上白線。 循跡模組感測器感應原理:
(1)利用顏色對光線的反射率,來檢測路徑,黑色吸收光線,感應器在 黑色線上時不會收到IR反射訊號 。
(2) 感應器背面LED指示燈,當LED燈亮起,表示接收到反射的紅外線。
Jetbot的循跡動作
1. 循跡感測器的模組訊號示意圖,L代表Left(左邊)、M代表Middle(中間)、R代表Right(右邊)。如下圖所示:
2. 循跡感測器控制 Jetbot 行為
若感測器偵測到白色,則訊號為1,若感測器偵測到黑色,則訊號為0。這樣會有八種排列組合並對應到 Jetbot 的某個動作。
循跡感測器腳位訊號 | |||
L (左側) | C (中央) | R (右側) | Jetbot動作 |
0 | 0 | 0 | 停止 |
0 | 0 | 1 | 右轉 |
0 | 1 | 0 | 直走 |
0 | 1 | 1 | 右轉 |
1 | 0 | 0 | 左轉 |
1 | 1 | 0 | 左轉 |
1 | 1 | 1 | 停止 |
圖示說明
Jetbot直走 |
感測器偵測結果:010 |
Jetbot 停止 | |
感測器偵測結果:000 | 感測器偵測結果:111 |
Jetbot 右轉,有兩種不同偏移程度,可藉此讓車子有不同的修正行為 | |
感測器偵測結果:001 (車體相當偏左) | 感測器偵測結果:011 (車體稍微偏左) |
Jetbot 左轉 | |
感測器偵測結果:100 | 感測器偵測結果:110 |
程式執行與說明
(1) 開啟程式
路徑位置在 /Jetbot
根目錄底下的 widget_linefollower_slider.ipynb
當您的 Jetbot SD 卡燒錄完成之後,Jetson Nano 開機之後會成為一個 Jupyter Lab伺服服器,請由網路端連入即可操作,請參考本篇教學。
(2) 程式執行
在工作列點選 Kernel → Restart Kernel and Run All Cells
顯示使用者操作介面 這個 cell 執行之後會出現操作介面,按下live即可啟動Jetbot
(3) 程式撰寫說明
- 程式的第1格區塊
主要是匯入Jetbot 和使用者互動介面 widget 小工具的相關函式庫。
2. 程式的第2格區塊
設定紅外線感測器腳位,感測器L、C、R腳位分別接在 Jetbot 的17、27、22腳位。
3. 程式的第3格區塊
接感測器L、C、R 的Jetbot 的腳位,設定為輸入訊號。
4. 程式的第4格區塊
根據循跡感測器偵測到的訊號,去定義 Jetbot 的行為動作。
5. 程式的第5格區塊
使用按鈕、文字欄位和滑桿來建立使用者操作介面。
6. 程式的第6格區塊
定義 Jetbot 前進、停止、左轉、右轉。
7. 程式的第7格區塊
觸發 live 和 stop 按鈕的事件。
8. 程式的第8格區塊
顯示使用者操作畫面,stop 按鈕停止Jetbot ; live 按鈕啟動 Jetbot ; 三個滑桿來控制 Jetbot 的馬力。
- 馬達前進動力滑桿,控制 Jetbot 走直線時的馬力,最小0,最大1,預設為0.8。
- 左轉幅度滑桿,控制 Jetbot 左轉時的馬力,最小0.2,最大1,預設為0.8。
- 右轉幅度滑桿,控制 Jetbot 右轉時的馬力,最小0.2,最大1,預設為0.8。
- 文字方塊則可以看 Jetbot 動作。
實機展示
實際操作時可以看到機器人應可根據循跡感測器來沿著白色軌跡線前進,請根據實際狀況來修改相關參數。機器人就是要不斷地調整才行呢!
影片請回到本文一開始或點選本連結播放。後續還有繼續加入超音坡測距感測器為您的 Jetbot 加入更多豐富的功能。