基於stm32和ov7725的智慧型循跡車

2021-08-26 12:21:11 字數 1665 閱讀 9018

基於stm32f103zet6的智慧型循跡車。

in1in2控制乙個輪子,in3in4控制另外乙個。這裡使用的是直流電機,控制如下:

為了使用pwm進行調速,一定要記得用跳帽使調速度端為高電平。這樣,輸入不同占空比的pwm波就可以實現調速了。

2.連線方式

連線時一定要注意的一點就是一定要保證l298n與微控制器共地,否則會出現控制端有輸入但輸出端無輸出導致車不移動的現象。

這裡使用的攝像頭是ov7725。ov7670也可以使用,但由於其幀率過低,在車速很快時將無法實時反映道路情況。當然,如果車速很慢ov7670也可以使用。

攝像頭模組儲存影象資料的過程為:等待 ov7725 幀同步訊號——fifo 寫指標復位

——fifo 寫使能——等待第二個 ov7725 幀同步訊號——fifo 寫禁止。通過以上 5 個步驟,我們就可以完成 1 幀影象資料在 al422b 的儲存。注意:fifo 寫禁止操作不是必須的,只有當你想將一幀資料儲存在 fifo,並在外部 mcu 讀取完這幀資料之前,不再採集新的資料的時候,才需要進行 fifo 寫禁止。

接下來,我們來看看如何讀取影象資料。

在儲存完一幀影象以後,我們就可以開始讀取影象資料了。讀取過程為:fifo 讀指標

復位——給 fifo 讀時鐘(fifo_rclk)——讀取第乙個畫素高位元組——給 fifo 讀時鐘——讀取第乙個畫素低位元組——給 fifo 讀時鐘——讀取第二個畫素高位元組_迴圈讀取剩餘畫素——結束。

可以看出,攝像頭模組資料的讀取也是十分簡單,比如 qvga 模式,rgb565 格式,我們總共迴圈讀取 320*240*2 次,就可以讀取 1 幀影象資料,把這些資料寫入 lcd 模組,我們就可以看到攝像頭捕捉到的畫面了。

4.程式思路

首先,利用ov7725將「路況」反映到lcd屏上,為了辨別黑白兩色,將rgb565格式轉換為rbg888格式,再利用灰度化公式,計算灰度值。與閾值比較,將影象二值化,這樣就可以辨別黑白了。

根據攝像頭安裝的位置,將所需要觀察的「路況」分成左中右三段,計算三段的二值化之後的總值進行比較,就可以判斷出車到底是應該左轉還是右轉還是直行了。

其次是pwm輸出問題。選擇四路pwm輸出,設定好不同的占空比輸出,在判斷出左右轉之後根據不同的占空比輸出,控制電機,就可以讓車按照黑線行走啦!

5.部分程式

pwm設計

電機設計

主程式設計

(源程式為ov7725攝像頭程式)

基於STM32f103野火的OV7725攝像頭驅動

這周組長接了個畢設的活交給我們做,模組大體上是用了ov7725 超聲波 蜂鳴器報警 按鍵 lcd led。一 簡介 流程圖如下 在這個專案中我主要負責攝像頭模組,攝像頭的配置和顯示。先對攝像頭進行一下介紹 1 這次專案用的是ov7725,該攝像頭主要由鏡頭 影象感測器 板載電路 fifo 快取及下方...

STM32驅動OV7725攝像頭顏色識別

實驗目的 使用stm32驅動ov7725攝像頭進行影象實時採集,在tft螢幕上實時顯示並識別影象中的特定顏色,在顏色的周圍畫上框。實驗現象 實現原理 將攝像頭的資料讀出寫入tft屏,讀取tft螢幕上的畫素點的顏色進行識別。由於rgb格式的顏色資料的效果不好,所以將其轉換為hsl格式資料。首先遍歷尋找...

對於攝像頭程式的時序優化(ov7725)

想法產生 我想寫一寫自己對調攝像頭時的的一點小心得,剛開始調攝像頭時候,就對pit定時和攝像頭的場中斷了解的不太清楚,似乎發現有問題但不知道是什麼。比如把處理影象的程式是放在主函式裡好呢,還是放在 pit中好呢,場中斷和 pit讓誰的優先順序更高一點好呢,場中斷時間和我自己程式執行的時間都是多少呢?...