零知增强板-摄像头 串口输出/LCD显示-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4325|回复: 2

零知增强板-摄像头 串口输出/LCD显示

[复制链接]
发表于 2019-1-7 17:07 | 显示全部楼层 |阅读模式
零知增强板-DCMI接口 OV2640 摄像头 串口输出/LCD显示
http://www.lingzhilab.com/forum. ... d=893&fromuid=2

零知-平台软件源码,上位机调试工具、上位机工具源码请到零知官网下载。


本文将演示在零知增强板上进行摄像头的显示和传输,零知增强板自带摄像头接口,可以直接接入OV2640\OV7670等相同接口的摄像头模块。

1、硬件连接:

本文使用OV2640模块:http://www.lingzhilab.com/forum. ... 96&highlight=ov
该模块可以直接接入零知-增强板,不需要其他连线,如果要在LCD上显示,则按照之前的教程接入TFT屏的连线即可。

2、程序:


1)在LCD上直接显示图像,在工程代码camera.h中:
#define JPEG_OUTPUT_MODE//注释掉此行代码,表示RGB565模式,不注释就是JPG模式


2)抓取JPG格式图像,然后通过串口传输到PC显示


图像存储到了jpeg_buf中,然后我们把数据通过串口发送出去,这里使用Serial3传输图像数据,波特率设置为 460800,这样可以有比较高的帧率。
位机解析并显示:

3)上位机解析数据并显示
在PC端,串口收到数据后,按照jpg图像格式解析并显示,以下为Qt平台的代码:


[mw_shl_code=arduino,true]
QByteArray str1;
QByteArray str2;
QByteArray str3;
QByteArray str4;

bool start = false;

str1 = m_serial->read(1);
if(str1.contains(start_flag.at(0))){
str2 = m_serial->read(1);
if(str2.contains(start_flag.at(1))){
str3 = m_serial->read(1);
if(str3.contains(start_flag.at(2))){
str4 = m_serial->read(1);
if(str4.contains(start_flag.at(3))){
start = true;
}
}
}
}

if(start == false){
continue;
}

QByteArray str;
str.append(str1);
str.append(str2);
str.append(str3);
str.append(str4);

// if(str.contains(start_flag))
{
qDebug()<<"frame start,num="<<m_fram_num;

m_frameBuff.clear();
m_frameBuff.append(str);

while(1){
if(m_serial->bytesAvailable()){

if(!m_serial->isOpen()){
return;
}

QByteArray bytes = m_serial->read(1);

m_frameBuff.append(bytes);

if(bytes.contains(end_flag.at(0))){
QByteArray byte2 = m_serial->read(1);

m_frameBuff.append(byte2);

if(byte2.contains(end_flag.at(1))){

break;
}
}

}
QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
}

qDebug()<<"frame read done"<<","<<m_frameBuff.size();
qDebug()<<"buff:"<<m_frameBuff.toHex();

QString picname = QString("temp%1.jpg").arg(m_fram_num);

m_fram_num++;

QImage img = QImage::fromData(m_frameBuff);

QPixmap pixmap = QPixmap::fromImage(img);

ui->labelPIC->setPixmap(pixmap);[/mw_shl_code]

20190107155907.jpg

发表于 2019-1-14 15:31 | 显示全部楼层
赞一下,这个得提高到什么速度……
 楼主| 发表于 2019-1-14 20:24 来自手机 | 显示全部楼层
xo37 发表于 2019-1-14 15:31
赞一下,这个得提高到什么速度……

直接显示到LCD还很流畅,到串口就速度被限制了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 01:43 , Processed in 0.121954 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表