本專案為我大學第四學期《數位系統》課程期末專案。
目標
本專案目標為製作一個尋光機器人,使用 BASYS 3 FPGA 開發板、OV7670 攝影機,以及透過 PMOD HB5 H-Bridge 驅動的一組馬達。程式開發使用 Vivado 與 VHDL 完成。
由於本專案為課堂專題,我們以分組方式進行,並分工設計不同模組。我所屬小組負責根據光源的位置與大小輸入,決定機器人的移動方向與速度。
步驟
- 定義需求:輸入/輸出與模組間通訊(課堂討論完成)
- 設計數位系統架構
- 將數位系統轉換為 VHDL 程式
- 整合各模組為完整系統
- 在原型上進行測試
模組設計
本專案與 thresholding 小組以及馬達控制與速度量測小組密切合作完成。

thresholding 模組輸出光源位置(10 位元的光強與位置資訊)。若未偵測到光源,nolightcounter.vhd 模組會使機器人先原地旋轉 360 度後停止。否則,依據光源大小與位置,控制模組(Ctrl.vhd)決定機器人向左、向右、前進或後退。
接著,左右馬達的目標速度會與實際速度在誤差模組(ERROR.vhd)中進行比較,以決定所需的馬達控制動作。S2US.vhd 與 US2S.vhd 模組則負責有號與無號數值轉換,並與馬達速度量測模組相連。
原型

註:由於硬體端存在問題,加上當時正值疫情期間,我們沒有足夠時間完成整體系統的整合與測試。
貢獻
作為組長,我負責協調團隊分工、推動各子模組開發,並代表小組參與課堂討論與報告。
教學
我們將本專案教學整理並發布於 Instructables