比賽獲獎的武林秘籍:08 一文速通光電設計大賽,電子人必看

FreakStudio發表於2024-07-24

比賽獲獎的武林秘籍:08 一文速通光電設計大賽,電子人必看

摘要

本文主要介紹了光電設計大賽的簡介、比賽形式、備賽方向,並結合往年題目進行了分析和總結。

正文部分

大賽簡介

全國大學生光電設計競賽是一項面向全國各高校各專業學生的科技競賽活動。這項活動旨在推動高等學校的教學改革,加強教育與產業之間的聯絡,促進科學技術轉化為生產力。大賽強調理論與實踐相結合,競賽內容既包括理論設計,也包括實際製作或創新創業設計,旨在全面檢驗和提升參賽學生的理論基礎和實踐創新能力。

競賽內容

全國大學生光電設計競賽分為兩種型別:實物賽和創意賽。這兩種競賽輪流舉行,由全國光電競賽委員會秘書處授權的全國光電競賽組委會負責公佈每屆競賽的形式、規則和技術資料。

  • 實物賽:採用命題式,固定題目、固定要求,要求參賽隊伍提交方案設計書、答辯 PPT 和答辯影片等,並進行現場演示或競技。參賽隊伍由不多於 3 名學生組成,其中研究生不超過 1 人。參賽資格包括具有正式學籍的研究生、本專科生,以及當年畢業的學生可以以在校生身份參賽。隊長必須是本專科生,每個隊伍可以有 12 名指導教師。

  • 創意賽:採用開放式,分為單純性創意設計的創意類競賽和具有法人和參股的公司運營的初創類競賽。

    • 創意設計類競賽的參賽隊伍人數不多於 3 人,研究生不超過 1 人;
    • 初創企業類競賽的參賽隊伍人數一般不多於 7 人,研究生一般不多於 2 人,且不超過本專科生數量。初創組可以有畢業五年內的學生參賽。

參賽資格同樣包括具有正式學籍的研究生、本專科生,以及當年畢業的學生可以以在校生身份參賽。隊長必須是本/專科生,每個隊伍可以有 1-2 名指導教師。

各區賽的賽題應與國賽一致,並可根據所在區域特色進行擴充。推薦參加國賽的隊伍的賽題必須與國賽賽題相一致。

備賽方向

  • 光學原理
    • 光的傳播:學習光在不同介質中的傳播,包括直線傳播、反射和折射。
    • 反射:理解光在平滑表面和粗糙表面的反射,以及反射定律。
    • 折射:學習光線在不同介質介面上的折射現象,包括斯涅爾定律和全反射。
    • 衍射:瞭解光波的衍射現象,包括單縫衍射和圓孔衍射。
    • 光學器件:熟悉透鏡、反射鏡、光柵等光學器件的工作原理,並瞭解它們在光學系統中的應用。
      • 透鏡:透鏡是一種光學元件,用於將光線聚焦或發散。根據形狀,透鏡分為凸透鏡和凹透鏡。凸透鏡能夠將平行光線聚焦於一點,而凹透鏡則能夠將平行光線發散。透鏡的主要引數包括焦距、光圈、像差等。
      • 反射鏡:反射鏡是一種光學元件,用於反射光線。根據形狀,反射鏡分為平面鏡、球面鏡和曲面鏡。平面鏡能夠將光線反射,而球面鏡和曲面鏡則能夠將光線聚焦或發散。反射鏡的主要引數包括反射率、鏡面形狀和焦距等。
      • 光柵:光柵是一種光學元件,用於產生衍射圖案。光柵由一系列平行線組成,這些線之間的距離稱為光柵常數。當光線透過光柵時,會發生衍射現象,形成一系列亮暗條紋。光柵的主要引數包括光柵常數、入射角和衍射角等。

image

  • 光電效應
    • 掌握光電效應的基本原理,包括光電管、光電二極體、太陽能電池等。
      • 光電管:光電管是一種利用光電效應檢測光訊號的裝置。當光照射到光電管的陰極上時,光電效應會使電子從陰極逸出,形成電流。光電管通常用於早期的光電訊號檢測。
      • 光電二極體:光電二極體是一種半導體器件,能夠將光訊號轉換為電訊號。當光照射到光電二極體的 PN 結上時,光電效應會使電子-空穴對形成,從而產生電流。光電二極體廣泛應用於光電檢測和轉換。
      • 太陽能電池:太陽能電池是一種利用光電效應將光能轉換為電能的裝置。當光照射到太陽能電池的半導體材料上時,光電效應會使電子-空穴對形成,併產生電流。太陽能電池在可再生能源和清潔能源領域有廣泛的應用。
    • 學習如何利用光電效應進行訊號檢測和轉換。
      • 光敏材料的特性:不同的光敏材料對光的響應不同,選擇合適的光敏材料對於實現準確的光電轉換至關重要。
      • 光電轉換效率:光電轉換效率是衡量光電轉換效能的重要指標,瞭解如何提高光電轉換效率對於最佳化設計至關重要。
      • 訊號檢測和處理:學習如何設計電路和演算法來檢測和處理光電轉換後的訊號,以實現對光訊號的有效利用。

image

  • 光電感測器
    • 瞭解各種光電感測器的原理和應用。
      • 光電編碼器:光電編碼器是一種測量機械位置、速度和方向的感測器。它通常由一個光發射器和一個光接收器組成,透過檢測反射光訊號來確定位置。光電編碼器廣泛應用於工業自動化、機器人技術和導航系統中。
      • 光電二極體:光電二極體是一種半導體器件,可以將光訊號轉換為電訊號。它的工作原理是基於光電效應,當光照射到光電二極體上時,光子能量被吸收並激發電子,從而產生電流。光電二極體廣泛應用於光電檢測、光電開關和光電耦合器中。
      • 光電三極體:光電三極體是一種半導體器件,它結合了光電二極體和電晶體的功能。它不僅可以檢測光訊號並將其轉換為電訊號,還可以放大訊號並控制電路的通斷。光電三極體廣泛應用於光電開關、光電隔離和光電耦合器中。
    • 學習如何選擇和配置光電感測器以滿足特定應用的需求。
      • 應用場景:根據應用場景,確定你需要檢測的光訊號型別和範圍。
      • 精度要求:根據精度要求,選擇具有適當解析度和靈敏度的光電感測器。
      • 環境條件:考慮光電感測器在實際應用中的環境條件,如溫度、溼度、振動和電磁干擾等,以確保其穩定性和可靠性。
      • 輸出訊號型別:根據你的控制系統需求,選擇具有適當輸出訊號型別的光電感測器,如模擬訊號、數字訊號或脈衝訊號。
      • 連線方式:根據你的接線需求,選擇適合的連線介面。

image

  • 電路設計與分析
    • 電子電路的基本原理
      • 放大器:學習放大器的工作原理,包括電壓放大器、電流放大器和功率放大器等。
      • 濾波器:瞭解不同型別的濾波器,如低通濾波器、高通濾波器、帶通濾波器和帶阻濾波器,以及它們的應用。
      • 振盪器:掌握振盪器的工作原理,包括正弦波振盪器、方波振盪器和三角波振盪器等。
    • 電路分析和設計的基本技能
      • 電路分析:學習電路分析的方法,包括節點分析、網孔分析和頻率響應分析等。
      • 電路設計:掌握電路設計的基本步驟,包括需求分析、原理圖設計、PCB 佈局和電路模擬等。
    • 電路模擬和實際搭建
      • 電路模擬:使用電路模擬軟體(如 Multisim、LTspice 等)來類比電路的效能,以便在實際搭建之前發現和解決潛在的問題。
      • 實際搭建:在實際操作中搭建電路,包括焊接、除錯和最佳化等步驟。

image

  • 嵌入式系統(以 stm32 為例)
    • 基礎知識:

      • 微控制器結構:STM32 微控制器由 ARM Cortex-M 核、儲存器(RAM、ROM/Flash)、時鐘控制單元、外設介面(GPIO、ADC、DAC、UART 等)、中斷控制器、電源管理單元等組成。
      • 工作模式:STM32 微控制器有多種工作模式,包括執行模式、睡眠模式、停止模式和待機模式,以適應不同的應用需求。
      • 介面:STM32 微控制器提供了豐富的外設介面,如 GPIO、ADC、DAC、UART、SPI、I2C 等,用於與外部裝置通訊和控制。
        image
    • STM32 的程式設計

      • 程式語言:STM32 微控制器支援多種程式語言,如 C、C++、彙編等。常用的程式設計環境包括 Keil、STM32CubeMX、STM32CubeIDE 等。
      • 程式結構:STM32 微控制器的程式通常包括初始化程式碼、中斷服務例程、主迴圈等部分。初始化程式碼用於配置微控制器的外設和中斷控制器;中斷服務例程用於處理外部中斷事件;主迴圈用於執行程式的主要邏輯。
      • 程式設計要點:
        • 熟悉 STM32 微控制器的暫存器和外設介面,以便進行正確的配置和操作。
        • 掌握中斷處理和定時器控制,以實現實時控制和事件響應。
        • 學會使用記憶體管理、資料結構和演算法,以提高程式的效能和可維護性。
        • 熟悉程式除錯和故障排查技巧,以快速解決程式設計過程中遇到的問題。

image

  • 軟體開發
    • 程式語言

      • C 和 C++:這些語言是嵌入式程式設計中最常用的語言,因為它們提供了對底層硬體的直接訪問,並且編譯器能夠最佳化程式碼以提高效能。
      • Python:雖然 Python 主要用於開發桌面和網路應用程式,但它也可以用於嵌入式開發,尤其是在資料處理和機器學習應用中,因為它具有豐富的庫和簡潔的語法。
    • 資料處理

      • 資料格式轉換
        • 學習如何將感測器採集的資料從原始格式轉換為適合進一步處理和分析的格式。
        • 掌握資料型別轉換、資料格式解析和資料打包等技術。
      • 資料過濾
        • 學習如何去除噪聲和異常值,以提高資料的質量和準確性。
        • 掌握濾波演算法,如低通濾波、高通濾波、帶通濾波和滑動平均濾波等。
      • 資料排序
        • 學習如何對資料進行排序,以便於分析和處理。
        • 掌握排序演算法,如氣泡排序、快速排序和歸併排序等。
      • 資料儲存
        • 學習如何將處理後的資料儲存在本地或遠端儲存裝置中。
        • 掌握檔案操作、資料庫操作和資料壓縮等技術。
      • 感測器資料處理和分析
        • 學習如何從感測器獲取原始資料。
        • 掌握資料預處理技術,如去噪聲、特徵提取和資料融合等。
        • 學習如何分析和提取感測器資料中的有用資訊,如模式識別、異常檢測和趨勢分析等。
          image
    • 影像識別

      • 影像處理的基本概念
        • 影像採集:學習如何使用攝像頭或其他影像採集裝置獲取影像。
        • 影像預處理:掌握影像預處理技術,如灰度轉換、影像增強、噪聲去除和邊緣檢測等。
        • 特徵提取:學習如何從影像中提取有用的特徵,如顏色特徵、紋理特徵和形狀特徵等。
        • 影像識別:瞭解影像識別的原理和方法,包括基於模板匹配、特徵提取和機器學習的方法。
      • 機器學習演算法
        • 卷積神經網路(CNN):瞭解 CNN 的基本原理和結構,它是目前最常用的影像識別和分類演算法之一。
        • 訓練和驗證:學習如何使用機器學習演算法訓練影像識別模型,並進行驗證和測試。
        • 模型最佳化:掌握如何最佳化模型,提高影像識別的準確性和效率。
          image
    • 機器學習的基本原理

      • 監督學習:學習監督學習的基本概念,包括分類和迴歸問題,以及如何使用訓練資料集來訓練模型。
      • 無監督學習:瞭解無監督學習的方法,如聚類和降維,以及如何從無標籤資料中提取結構。
      • 強化學習:掌握強化學習的基本原理,包括狀態、動作、獎勵和策略等概念,以及如何透過試錯來最佳化決策。
        image
    • 解決實際問題

      • 模式識別:學習如何使用機器學習演算法來識別影像、聲音或其他資料的模式。
      • 預測分析:掌握如何使用機器學習演算法進行時間序列預測、趨勢分析和市場預測等。
      • 最佳化控制:瞭解如何使用機器學習演算法來最佳化控制系統,如調整 PID 引數以提高響應速度和穩定性。
        image
    • 軟體開發技能

      • 程式碼規範:學習編寫清晰、可讀和可維護的程式碼,遵循程式設計規範和最佳實踐。
      • 模組化:掌握如何將程式碼分解成可重用的模組,以提高程式碼的可擴充套件性和可維護性。
      • 版本控制:學習使用版本控制系統(如 Git)來管理程式碼變更,確保團隊協作和專案歷史記錄。

image

往年題目分析

2023 年光電賽的小車題為例,競賽要點包括綜合運用影像識別、路徑規劃、自動駕駛、避障循跡、光電感測等技術設計製作“迷宮尋寶”光電智慧小車。

image

image

image

光電迷宮尋寶小車是一個整合了光電感測器、微控制器、電機驅動器、感測器資料處理和路徑規劃演算法的智慧小車。它的核心任務是在一個迷宮中自主導航,找到隱藏的寶藏,並安全返回起點。這個過程涉及到多個技術領域,包括感測器技術、控制理論、程式設計技術、機器視覺等。

根據參賽規則藏寶圖是下圖這樣的,在藏寶圖四個角擁有 4 個用於透視矯正的 4 個矯正點用於藏寶圖透視矯正。智慧車透過光電感測尋找、判斷迷宮中的真、假寶藏,並在完成尋寶後走出迷宮。比賽採用紅、藍對抗的形式,即每場比賽紅、藍兩隊在同一迷宮中比拼、對抗。比賽勝負依據各自的尋寶數、誤判數、是否走出迷宮、耗時等確定。

image

我們整體方案就可以選用:OpenMV4Plus 識別和規劃 + OpenMV4 循跡 + STM32 運動控制。

image

OpenMV4Plus 上位機部分

image

OpenMV4 循跡部分

image

STM32 下位機部分

image

原文連結

電子計算機類比賽獲獎的秘籍,可點選這裡:

電子計算機類比賽的“武林秘籍”-電賽光電設計大賽計算機設計大賽嵌入式晶片與系統設計競賽,你要的都在這裡!

image

往期推薦:

學嵌入式的你,還不會物件導向??!

全網最適合入門的物件導向程式設計教程:00 物件導向設計方法導論

全網最適合入門的物件導向程式設計教程:01 物件導向程式設計的基本概念

全網最適合入門的物件導向程式設計教程:02 類和物件的 Python 實現-使用 Python 建立類

全網最適合入門的物件導向程式設計教程:03 類和物件的 Python 實現-為自定義類新增屬性

全網最適合入門的物件導向程式設計教程:04 類和物件的Python實現-為自定義類新增方法

全網最適合入門的物件導向程式設計教程:05 類和物件的Python實現-PyCharm程式碼標籤

全網最適合入門的物件導向程式設計教程:06 類和物件的Python實現-自定義類的資料封裝

全網最適合入門的物件導向程式設計教程:07 類和物件的Python實現-型別註解

全網最適合入門的物件導向程式設計教程:08 類和物件的Python實現-@property裝飾器

全網最適合入門的物件導向程式設計教程:09 類和物件的Python實現-類之間的關係

全網最適合入門的物件導向程式設計教程:10 類和物件的Python實現-類的繼承和里氏替換原則

全網最適合入門的物件導向程式設計教程:11 類和物件的Python實現-子類呼叫父類方法

全網最適合入門的物件導向程式設計教程:12 類和物件的Python實現-Python使用logging模組輸出程式執行日誌

全網最適合入門的物件導向程式設計教程:13 類和物件的Python實現-視覺化閱讀程式碼神器Sourcetrail的安裝使用

全網最適合入門的物件導向程式設計教程:全網最適合入門的物件導向程式設計教程:14 類和物件的Python實現-類的靜態方法和類方法

全網最適合入門的物件導向程式設計教程:15 類和物件的 Python 實現-__slots__魔法方法

全網最適合入門的物件導向程式設計教程:16 類和物件的Python實現-多型、方法重寫與開閉原則

全網最適合入門的物件導向程式設計教程:17 類和物件的Python實現-鴨子型別與“file-like object“

全網最適合入門的物件導向程式設計教程:18 類和物件的Python實現-多重繼承與PyQtGraph串列埠資料繪製曲線圖

全網最適合入門的物件導向程式設計教程:19 類和物件的 Python 實現-使用 PyCharm 自動生成檔案註釋和函式註釋

全網最適合入門的物件導向程式設計教程:20 類和物件的Python實現-組合關係的實現與CSV檔案儲存

全網最適合入門的物件導向程式設計教程:21 類和物件的Python實現-多檔案的組織:模組module和包package

全網最適合入門的物件導向程式設計教程:22 類和物件的Python實現-異常和語法錯誤

更多精彩內容可看:

給你的 Python 加加速:一文速通 Python 平行計算

一文搞懂 CM3 微控制器除錯原理

肝了半個月,嵌入式技術棧大彙總出爐

電子計算機類比賽的“武林秘籍”

一個MicroPython的開源專案集錦:awesome-micropython,包含各個方面的Micropython工具庫

相關文章