2017年12月10日 星期日

OpenQCam樹莓派開源迷你相機#5_系統開發

五、開源迷你相機OpenQCam 系統開發

接下來就要開始說明如何進行程式開發。本專案是採C++語言,原則上只須文字編輯器(可用內建nano 或其它習慣編輯器亦可)即可,不需視窗也不需要IDE 環境就可獨立完成。若不習慣傳統文字編輯器的人,亦可在視窗環境點選檔名,按滑鼠右鍵,啟用Text Editor(類似Windows上的工具軟體-[筆記本]),即可進行編輯。另外在Linux 上知名的視窗開發整合環境軟體QT,經測試在Pi Zero W 上執行非常卡,且和OpenCV 有些許不相容,後續若有找到比較合適的解法會再另外撰文說明,如想使用其它IDE 亦可。

本專案目前僅支援TFT LCD 320*240 像素(一般正常是直式顯示,目前預設用程式轉成橫式顯示),ILI9341 驅動IC 之SPI 介面,此類LCD 在網路上為主流產品很容易買到。程式中有提供顯示直式介面的函式,可自行修改利用。若有其它顯示規格需求請上網查閱驅動IC 資料手冊自行修改,但請注意改錯參數有可能造成LCD損壞,後果請自行負責。

工作前建議先建立一個Project 目錄,再將本專案所有檔案下載該目錄下。接著執行本專案已預建編譯指令批次檔 go.sh 進行編譯,等待約30 秒後即可完成,產生執行檔camera,由於BCM2835 須要較高權限,所以執行時要加上 sudo,完整操作如下所示。

sudo ./go.sh
(編譯程式)
sudo ./camera (執行程式)

執行後,攝像頭會自動取像並降低影像解析度,從五百萬像素降至QVGA (320*240 像素),LCD 上會同步顯示取像內容,在LCD 左上角會顯示目前速度(取像加顯示),單位是FPS(每秒幀數),正常狀況約有15 ~ 18 FPS。當按下SW1 時紅燈會亮,模擬快門按下後閃光燈會亮,畫面涷結1 秒並自動存檔。按下SW2 時綠燈會亮,並結束程式。

本專案是做為後續利用OpenCV 進行影像辨識的很好入門平台,程式的相關註解詳見各程式原始碼。受限於個人能力有限,撰文上難免產生誤解或疏漏,如有任何問題歡迎留言或來信指教! 

沒有留言:

張貼留言

【頂置】簡報、源碼、系列文快速連結區

常有人反應用手機瀏覽本部落格時常要捲很多頁才能找到系列發文、開源專案、課程及活動簡報,為了方便大家快速查詢,特整理連結如下,敬請參考! Edge AI Taiwan 邊緣智能交流區 全像顯示與互動交流區 NTUST人工智慧與邊緣運算實務 【課程及活動簡報...