Arduino单片机OV7670实操指南

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、所需硬件介绍
  • 二、电脑端显示图像
  • 1.安装 "ArduImageCapture" 插件
  • 2.下载LiveOV7670库
  • 3.代码调试
  • 4.硬件连接
  • 4.LED显示屏进阶

  • 前言

    提示:这里可以添加本文要记录的大概内容:

    ——大家好啊,笔者这几天有时间,开始把过去自己的一些实践分享给大家,但笔者并非这个方向的专家,有很多问题还麻烦大家指正。
    之前我在淘宝上买了一个OV7676摄像头一直没机会使用,这次下定决心,但是市面上的学习资料一方面少,一方面参差不齐,我找了一个参考网页非常靠谱:https://circuitjournal.com/arduino-OV7670-to-pc(需要翻墙)https://circuitjournal.com/arduino-ov7670-10fps(需要翻墙)


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、所需硬件介绍

    请添加图片描述
    ——本次单片机采用的是arduino UNO开发板,也可以选用arduino NANO,但是由于OV7676摄像头接线很多,对应接口会有调整。带线的话售价在15元左右。
    请添加图片描述
    ——OV7676摄像头不带FIFO,FIFO类似于一个数据储存器,会帮助单片机稳定输出图像。带固定框的话售价在8元左右。PS:别忘了摘罩子!!!
    请添加图片描述
    ——1.8寸TFT LED彩色显示屏,售价在11元左右。

    ——重中之重,需要电阻10kΩ(2个),1kΩ(6个),680Ω(6个)

    ——其他需要的面包板、杜邦线什么的就不展示啦。

    二、电脑端显示图像

    1.安装 “ArduImageCapture” 插件

    ——这里默认大家都使用过Arduino IDE.exe啦


    ——有点坑的是必须要arduion 1.x版本才能运行,花了我太多时间了,泪目。。。。。。翻不了墙的兄弟们可以留邮箱啊,我可以发给你们。
    把ArduImageCapture解压放到arduino的Tools目录,具体位置如下:
    WIN端 C:\Users<username>\Documents\Arduino\tools
    MAC端 /Users//Documents/Arduino/tools


    ——安装好就可以在Tools下看到了。

    2.下载LiveOV7670库

    请添加图片描述
    ——在Github上下载该库,地址:https://github.com/indrekluuk/LiveOV7670


    ——解压后内容如下,将src/lib/LiveOV7670Library和src/lib/Adafruit_GFX_Library两个库放到arduino的Libraries目录,具体位置如下:
    WIN端 C:\Users<username>\Documents\Arduino\libraries
    MAC端 /Users//Documents/Arduino/libraries
    其实就是和刚才的Tools目录并列位置。

    3.代码调试

    打开src/LiveOV7670,其他的引用cpp文件也会打开,找到setup.h

    代码修改如下:

    //
    // Created by indrek on 1.05.2016.
    //
    #ifndef LIVEOV7670_SETUP_H
    #define LIVEOV7670_SETUP_H
    
    /*
     *  EXAMPLE = 1
     *  Use LiveOV7670Library class that reads line into buffer and
     *  sends data to TFT over SPI during blank lines.
     *
     *  EXAMPLE = 2
     *  Use LiveOV7670Library class that processes data pixel by pixel
     *  sends data to TFT during each pixel reading loop.
     *  VGA can not be used with line buffer since there is no
     *  time (no blank lines) to do something useful with a buffered line
     *
     *  EXAMPLE = 3
     *  Reads data from LiveOV7670Library and send it over UART to computer
     *  Java application for receiving picture from UART
     *  https://github.com/indrekluuk/ArduImageCapture
     *
     *  EXAMPLE = 4
     *  Gray scale image @20Hz. Interlaced image.
     *
     */
    #define EXAMPLE 3  
    void initializeScreenAndCamera();
    void processFrame();
    #endif //LIVEOV7670_SETUP_H
    

    ——将原来的#define EXAMPLE 1改为#define EXAMPLE 3,烧录串口

    请添加图片描述
    ——图像变红,说明代码运行正确。

    4.硬件连接

    请添加图片描述
    ——这里就不多说了,按图连接即可。

    请添加图片描述
    ——连到这里图像应该变绿,说明识别相机正确。

    请添加图片描述
    ——这里就不多说了,按图连接即可。

    请添加图片描述
    ——走到这步,恭喜你成功了,图像传输会有点卡,一方面是分辨率高,一方面是没有FIFO,有时候打印的Frame之间会出现其他东西,不用理睬。

    4.LED显示屏进阶

    请添加图片描述
    BLK-3.3V;RST-pin 10;CS-pin 9;
    DC-pin 8;SDA或DIN-pin 11;SCL或CLK-pin 13
    电压线和接地线按图连接。

    ——别忘了将原来的#define EXAMPLE 3改回#define EXAMPLE 1。
    在ExampleUart.cpp进行分辨率调整,烧录串口。

    if (this.Component.Params.Input[2].SourceCount == 0)
    // select resolution and communication speed:
    //  1 - 115200bps 160x120 rgb
    //  2 - 115200bps 160x120 grayscale
    //  3 - 500000bps 160x120 rgb
    //  4 - 500000bps 160x120 grayscale
    //  5 - 500000bps 320x240 rgb
    //  6 - 500000bps 320x240 grayscale
    //  7 - 1Mbps 160x120 rgb
    //  8 - 1Mbps 160x120 grayscale
    //  9 - 1Mbps 320x240 rgb
    // 10 - 1Mbps 320x240 grayscale
    // 11 - 1Mbps 640x480 grayscale
    // 12 - 2Mbps 160x120 rgb
    // 13 - 2Mbps 160x120 grayscale
    // 14 - 2Mbps 320x240 rgb
    // 15 - 2Mbps 320x240 grayscale
    // 16 - 2Mbps 640x480 rgb
    // 17 - 2Mbps 640x480 grayscale
    #define UART_MODE 3
    

    ——#define UART_MODE 3,笔者选的是160×120,接近LED的160×128。

    请添加图片描述
    ——最后的效果很帅啊,加一个开关、储存器和电池就是古早数码相机啦。


    作者:中禅寺lqc

    物联沃分享整理
    物联沃-IOTWORD物联网 » Arduino单片机OV7670实操指南

    发表回复