衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于Arduino的OV7670相機模塊設計方案

西西 ? 來源:一板網 ? 作者:風箏 ? 2020-10-30 15:47 ? 次閱讀

電子行業中,相機一直占據著主導地位,因為它用途廣泛,如訪客監控系統、救援系統、考勤系統等?,F今,我們使用的相機非常智能,并具有早期相機中不存在的許多功能?,F今的數碼相機不僅捕捉圖像,還能捕捉高清晰度畫面并分析他們看到的內容。它廣泛用于機器人、人工智能機器學習等。捕獲的幀使用人工智能和機器學習進行處理,然后用于許多應用,如車牌檢測、物體檢測、運動檢測、面部識別等。

在本篇文章中,我們將使用最廣泛使用的相機模塊OV7670與Arduino UNO進行連接。相機模塊OV7670也可以Arduino Mega開發板連接,具有相同的引腳配置、代碼和步驟。相機模塊很難連接,因為它需要大量的引腳和雜亂的布線。當使用相機模塊時,走線變得非常重要,因為走線方式的選擇和走線的長度會顯著影響圖像質量并且會帶來噪聲。

OV7670相機模塊工作在3.3V,因此必須要注意,Arduino在其輸出GPIO引腳上提供5V輸出。 OV7670是一款FIFO相機。但在本文中,我們將在沒有使用FIFO的情況下抓取圖片。本問將提供簡單的步驟和簡化的編程,以便將OV7670與Arduino UNO進行連接。

需要的組件

● Arduino UNO開發

● OV7670相機模塊

電阻(10k和4.7k)

● 跳線

有關相機模塊OV7670的注意事項

OV7670相機模塊是一種FIFO相機模塊,可從不同制造商處獲得,具有不同的引腳配置。 OV7670提供各種格式的全幀窗口8位圖像。圖像陣列能夠在VGA中以高達每秒30幀(fps)的速度運行。 OV7670包括

圖像傳感器陣列(約656 x 488像素)

● 時序發生器

模擬信號處理器

● A / D轉換器

● 測試模式生成器

數字信號處理器(DSP

● 圖像縮放器

● 數字視頻端口

LED和頻閃閃光控制輸出

OV7670圖像傳感器使用串行攝像機控制總線協議(SCCB)進行控制,SCCB是I2C協議的一種(SIOC、SIOD),最大時鐘頻率為400KHz。

相機協議帶有握手信號,例如:

● VSYNC:垂直同步輸出 - 幀期間低電平

● HREF:水平參考 - 行的有效像素期間為高電平

● PCLK:像素時鐘輸出 - 自由運行時鐘。數據在上升沿有效

除此之外,它還有幾個信號,如

● D0-D7:8位YUV / RGB視頻分量數字輸出

● PWDN:掉電模式選擇 - 正常模式和掉電模式

● XCLK:系統時鐘輸入

● Reset:復位信號

OV7670采用24MHz振蕩器提供時鐘。這使得像素時鐘(PCLK)輸出為24MHz。 FIFO提供3Mbps的視頻幀緩沖存儲器。測試圖案生成器具有8條彩條圖案、淡灰色條紋圖案?,F在讓我們開始編程Arduino UNO以測試相機模塊OV7670,并使用串行端口讀取器抓取幀。

電路原理

編程Arduino UNO開發板

首先包含OV7670所需的庫。由于OV7670使用的是I2C接口,因此需要包含《util / twi.h》庫。該項目中使用的庫是ArduinoIDE的內置庫。我們只需要包含庫來完成工作。

在此之后,需要針對OV7670修改寄存器。該程序分成幾個部分進行講解,以便能夠更好地理解。

Setup()包括圖像捕獲所需的所有初始設置。第一個函數是arduinoUnoInut(),它用于初始化Arduino Uno。首先它會禁用所有全局中斷并進行設置通信接口配置,例如PWM時鐘、中斷引腳選擇、預分頻器選擇添加奇偶校驗和停止位。

?arduinoUnoInut();

配置Arduino后,必須配置相機。要初始化相機,我們只能選擇更改寄存器值。寄存器值需要從默認值更改為自定義。還要根據我們使用的微控制器頻率添加所需的延遲時間。因為,低速微控制器具有較少的處理時間,以及捕獲幀之間更多的延遲。

void camInit(void){

writeReg(0x12, 0x80);

_delay_ms(100);

wrSensorRegs8_8(ov7670_default_regs);

writeReg(REG_COM10, 32);//PCLK does not toggle on HBLANK.

}

相機設置為拍攝QVGA圖像,因此需要選擇分辨率。以下函數用于配置寄存器以獲取QVGA圖像。

setResolution();

在本文中,圖像以單色拍攝,因此寄存器值設置為輸出單色圖像。該函數設置寄存器列表中的寄存器值,該寄存器列表在程序中預定義。

setColor();

以下函數用于寫入寄存器,將十六進制值寫入寄存器。如果你得到了擾亂的圖像,那么試著改變第二個參數,即10到9/11/12。但大多數時候這個值工作正常,所以不需要改變它。

writeReg(0x11, 10);

以下函數用于設置圖像分辨率大小。在這個項目中,我們拍攝的照片尺寸為320 x 240像素。

captureImg(320, 240);

除此之外,代碼還將I2C配置分為幾個部分。只是為了從攝像機獲取數據,I2C配置有啟動、讀取、寫入、設置地址等函數,這些函數在使用I2C協議時非常重要。

如何使用串行端口讀取器讀取圖像

串行端口讀取器是一個簡單的GUI。該工具將捕獲base64編碼并對其進行解碼以形成圖像。只需按照以下簡單步驟即可使用串行端口讀取器

第1步:將Arduino開發板連接到PC的任何USB端口

第2步:單擊“Check”,找到您的Arduino COM端口

第3步:最后點擊“Start”按鈕開始連續讀取圖像。

第4步:只需點擊“Save Picture”即可保存這些圖片。

以下是從OV7670拍攝的圖像示例

使用OV7670時的注意事項

● 盡量確保使用的導線或跳線越短越好

● 避免與Arduino或OV7670上的任何引腳接觸不良

● 連接時要小心,因為大量的布線會導致短路

● 如果UNO向GPIO提供5V輸出,請使用電平轉換器。

● 使用3.3V作為OV7670的輸入,超過此電壓可能會損壞OV7670模塊。

本文主要是為了簡單介紹如何基于Arduino使用相機模塊。由于Arduino的內存較小,因此處理可能不如預期。您可以使用具有更多內存的不同控制器進行處理。
編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16445

    瀏覽量

    179444
  • 數碼相機
    +關注

    關注

    2

    文章

    441

    瀏覽量

    38459
  • OV7670
    +關注

    關注

    5

    文章

    59

    瀏覽量

    27487
收藏 人收藏

    評論

    相關推薦

    索尼ILX-LR1相機在無人機航測有哪些優秀的表現?

    索尼ILX-LR1相機在無人機航測中展現出了卓越的性能,其優秀表現主要體現在以下幾個方面: 一、精準性 高分辨率成像:凱茉銳電子ILX-LR1相機擁有約6100萬有效像素的全畫幅背照式Exmor R
    的頭像 發表于 12-18 16:46 ?208次閱讀

    Arduino采集雷達模塊數據與串口繪圖

    Arduino采集雷達模塊數據與串口繪圖
    的頭像 發表于 12-14 11:44 ?308次閱讀
    <b class='flag-5'>Arduino</b>采集雷達<b class='flag-5'>模塊</b>數據與串口繪圖

    OV426相機橋接處理器規格書

    最新OV426漢譯版本,供大家參考。OV426 是 OV426 醫療應用的單芯片解決方案。當 OV426 與
    發表于 10-09 14:08 ?6次下載

    OV7670攝像頭使用串口發送數據到另一個板子上的lcd,出現花屏

    測試色帶是正常的平整的,如圖所示 攝像頭端 void ov7670()//單片讀取OV7670的圖片像素并發送到TFT屏幕上 { uint8_t sendData[5]; // 假設數組長度為5
    發表于 09-12 23:32

    請問A7670E通信芯片是否支持VAD檢測?

    A7670E 芯片可以實現物聯網接打電話,類似ESP32-S3-A7670E-4G這個方案https://www.waveshare.net/wiki/ESP32-S3-A7670E-
    發表于 07-23 08:01

    SN65LVDS315相機并行RGB到MIPI CSI-1串行轉換器數據表

    電子發燒友網站提供《SN65LVDS315相機并行RGB到MIPI CSI-1串行轉換器數據表.pdf》資料免費下載
    發表于 07-08 14:31 ?2次下載
    SN65LVDS315<b class='flag-5'>相機</b>并行RGB到MIPI CSI-1串行轉換器數據表

    如何將連接到FPGA的攝像頭數據發送到主機PC?

    已閱讀了 AN75779,并能夠驗證(工作): 攝像頭 (OV7670) ---> FX3 ---> USB 主機 (PC) 對于上述應用,需要對固件和 GPIF 做哪些修改
    發表于 07-05 07:31

    UPS系統設計方案解讀

    UPS的應用場景日趨多樣化,每個場景都有其獨特的需求,對應不同的方案。UPS系統方案指南繼續上新,本文將聚焦UPS設計方案展開講述。
    的頭像 發表于 06-26 10:06 ?918次閱讀
    UPS系統<b class='flag-5'>設計方案</b>解讀

    STM32F407如何能直接出42MHz的方波?

    有一個OV7670不帶fifo,所以需要輸出一個差不多40MHz的方波信號作為時鐘源: 1、本來想的是用STM32F407的MCO1輸出,但是發現,MCO1能夠輸出的方波信號在較高頻率時會變成正弦波
    發表于 05-30 07:31

    UVC相機識別不到的原因?

    我做了兩版硬件,一版可以識別到fx3相機,另一版找不到。 但是兩版都能測試USBBulkSourceSink.img,并且速率都在4Gbps以上。 有區別的是不能識別fx3相機的版本用的是52m的參考時鐘, 請問下可能的原因在哪里?
    發表于 05-29 08:16

    攝像頭配AL422B和直接DCMI連ARM的區別是什么?

    大家好,我是ARM的新手。我們計劃用STM32做二維碼的圖像識別。 ?目前計劃用OV7670攝像頭 + STM32F2 + 8Mbit SRAM。 ?但看到很多開發板上配置的都是
    發表于 05-17 06:51

    為什么Stm32F103驅動ov7670有嚴重的分屏現象?

    為什么Stm32F103驅動ov7670有嚴重的分屏現象。
    發表于 04-07 07:40

    低功耗、底噪度模擬相機方案和DATASHEET

    XS5018A 是一款針對CMOS 圖像傳感器的高性價比的圖像信號處理芯片,為ISP+TX 單芯片解決方案產品,內部除集成 CPU 外,還包括 SPI,UART,I2C,GPIO 等豐富的外設;集成
    發表于 03-29 14:12

    尼康Z9相機與鏡頭至國際空間站,助宇航員捕捉高質影像

    自2017年起就在國際空間站上服役的尼康D5相機將由Z 9接任,這意味著自阿波羅15號任務以來,已有超過50年的時間里尼康相機和鏡頭一直為NASA的太空探索活動提供支持。
    的頭像 發表于 03-01 14:24 ?975次閱讀

    【開源項目】自制一個創客專屬的無反相機

    OV2640/OV3660/OV5640相機(最好是稍微長一點的FPC) M12變焦鏡頭 四個12毫米M2平頭螺絲 小型相機三腳架 什么是
    發表于 02-29 15:50
    易博彩票网| V博百家乐的玩法技巧和规则| 百家乐官网桌子租| 法拉利百家乐官网的玩法技巧和规则| 香港六合彩网| 网上娱乐城排名| 皇宝娱乐| 网上百家乐官网有假的吗| 葡京百家乐官网注码| 大发扑克官网| 巴东县| 澳门百家乐官网必杀技| 澳门百家乐官网信誉| 跪求百家乐官网打法| 百家乐官网有方式赢钱吗| 澳门百家乐官网游戏说明书 | 蓝盾百家乐官网赌场| 电脑赌百家乐官网可靠吗| 免费百家乐官网计划工具| 百家乐视频二人雀神| 玩百家乐有何技巧| 二八杠算法| 太阳城开户网| 英皇百家乐的玩法技巧和规则| 百家乐路单统| 大发888洗码| 久盛国际| 真人百家乐官网赌博技巧| 百家乐官网视频画面| 网络百家乐输了很多钱| 威尼斯人娱乐城澳门赌博| tt真人娱乐城| 澳门百家乐官网有赢钱的吗| 新加坡百家乐官网规则| 沙龙百家乐娱乐| 乐众国际娱乐| 百家乐官网如何计算| 百家乐官网开放词典新浪| 千亿娱百家乐官网的玩法技巧和规则| 百家乐出千的方法| 云博娱乐城,|