趨光機器人:VHDL 專案

一個以 FPGA 為基礎、會朝向光源移動的輪式機器人。

本專案為我大學第四學期《數位系統》課程期末專案。

目標

本專案目標為製作一個尋光機器人,使用 BASYS 3 FPGA 開發板、OV7670 攝影機,以及透過 PMOD HB5 H-Bridge 驅動的一組馬達。程式開發使用 Vivado 與 VHDL 完成。

由於本專案為課堂專題,我們以分組方式進行,並分工設計不同模組。我所屬小組負責根據光源的位置與大小輸入,決定機器人的移動方向與速度。

步驟

  1. 定義需求:輸入/輸出與模組間通訊(課堂討論完成)
  2. 設計數位系統架構
  3. 將數位系統轉換為 VHDL 程式
  4. 整合各模組為完整系統
  5. 在原型上進行測試

模組設計

本專案與 thresholding 小組以及馬達控制與速度量測小組密切合作完成。

小組設計方塊圖

thresholding 模組輸出光源位置(10 位元的光強與位置資訊)。若未偵測到光源,nolightcounter.vhd 模組會使機器人先原地旋轉 360 度後停止。否則,依據光源大小與位置,控制模組(Ctrl.vhd)決定機器人向左、向右、前進或後退。

接著,左右馬達的目標速度會與實際速度在誤差模組(ERROR.vhd)中進行比較,以決定所需的馬達控制動作。S2US.vhd 與 US2S.vhd 模組則負責有號與無號數值轉換,並與馬達速度量測模組相連。

原型

機器人原型

註:由於硬體端存在問題,加上當時正值疫情期間,我們沒有足夠時間完成整體系統的整合與測試。

貢獻

作為組長,我負責協調團隊分工、推動各子模組開發,並代表小組參與課堂討論與報告。

教學

我們將本專案教學整理並發布於 Instructables

Licensed under CC BY-NC-SA 4.0
最後更新 Jul 10, 2021 00:00 UTC
使用 Hugo 建立
主題 StackJimmy 設計