chenyixing 发表于 2011-5-18 23:37:25

OV7670+M16+串口发送上位机机显示终于调试成功,发帖庆祝下,图像质量还有点问题,贴出所

OV7670+M16+串口发送上位机机显示终于调试成功,发帖庆祝下。
非常感谢wangguanfu的支持,代码是参考他的,采集完一副图像后通过串口发送到上位机软件显示,点击刷新即开始发送,图像质量还有点问题,本人对光学参数不懂,希望大家指点下
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_640837IK1YAK.jpg
(原文件名:111.jpg)
现贴出所有代码,下位机是用M16做主控芯片,OV7670+AL422,电路原理图也是参照wangguanfu的。上位机是用delphi写的,采用写显存的方式刷新BMP控件,这样显示速度很快,比每个像素点赋值快多了。关键代码如下:
bmp1:=tbitmap.Create;
bmp1.PixelFormat:=pf16bit;   //16位RGB565格式,蓝色在低位
bmp1.Height:=240;
bmp1.Width:=320;
for j:=0 to 239 do          //行扫描,240行
begin
    P:=bmp1.ScanLine;
    for i:=0 to 319 do      
    begin
      P:=gImage_11;   //写入像素值
      index:=index+1;
      P:=gImage_11;
      index:=index+1;
。。。。。。。。。。。
这个串口传输协议是,点击“刷新”,发送字符‘D’给M16,——>M16发送320字节图像数据作为一帧,上位机接收到并写入到显存后发送‘D’——>M16继续发送下一帧数据
整个传输协议还是比较粗糙的,只作为验证用,还得加入校验,及修改帧的长度,以获得最好的传输效率,下一步打算用无线串口蓝牙模块试下,这样就可以够成一个无线的图像传输了,呵呵,用个M16+AL422+OV7670+无线蓝牙串口=什么,就是个微型的tou拍(你懂的——toupai)设备,拿手机接收就可以显示了,嘿嘿

delphi7工程文件:点击此处下载 ourdev_640838LFTR0Q.rar(文件大小:184K) (原文件名:串口显示.rar)


M16+OV7670+AL422代码:点击此处下载 ourdev_640839EM195C.rar(文件大小:79K) (原文件名:OV7670+AL422_test.rar)

电路原理图:点击此处下载 ourdev_640840KE3U4R.pdf(文件大小:62K) (原文件名:OV7670+FIFO.pdf)

chenyixing 发表于 2011-5-18 23:40:20

回复【楼主位】chenyixing
-----------------------------------------------------------------------

沙发自己坐,哈哈

lljyes 发表于 2011-5-18 23:45:51

顶一下

tiky 发表于 2011-5-19 00:04:51

这个情况很有可能是某一数据位没接好,之前试过。可能真的是硬件接不好,也有可能是AL422B是假货

wangguanfu 发表于 2011-5-19 00:05:08

恭喜下LZ 顺便说下 你的那个图象怎么会这个样子呢 ?

wangguanfu 发表于 2011-5-19 00:12:05

回复【3楼】tiky
这个情况很有可能是某一数据位没接好,之前试过。可能真的是硬件接不好,也有可能是al422b是假货
-----------------------------------------------------------------------

见过假货出来的什么图象么?我这里最早有买到过假的AL422,单价8RMB买的,图象出来 星星点点,类似TFT有坏点一样!

LZ这个明显至少有一个比特的位异常,不会是把RGB555当RGB565用了吧

wangguanfu 发表于 2011-5-19 00:14:53

既然都PC显示了 建议用YUV422,比RGB565更清晰

bmagui 发表于 2011-5-19 08:21:15

一定要关注

chenyixing 发表于 2011-5-19 09:02:43

回复【6楼】wangguanfu
-----------------------------------------------------------------------

确实是RGB565的,我用一个软件把一张320*240BMP位图转换为16进制文件,然后直接写入显存内,显示很正常
估计是接收时数据有错位,因为用的是M16片内8M时钟,波特率会有误差,特别是在接收320这么长一帧数据情况下
确实有可能会引起数据误差。
明天出差,待我回来重新写个传输协议完善下,看下还有没有这个问题,多谢各位指导啦

chenyixing 发表于 2011-5-19 09:11:43

还有一点,我仔细看了图分析了下,如果是接收错误,也就是是一个8位数据哪一位上出现错误的概率应该是随机的,由此出来的图像色彩也应该是随机的错误
但是我分析了图片,感觉这个色彩的偏差是有规律的,整体偏红,而且色域不完整,分辨率也很低
所以我怀疑摄像头配置出问题可能性很大,当然传输协议也是要完善的。

请教下wangguanfu,我尝试调过夜间模式,图像也是一样,是不是还有其他寄存器可以调整色系的,或者是OV7670的问题

Alexqw 发表于 2011-5-19 09:25:03

mark

dongfengge555 发表于 2011-5-20 16:03:55

回复【楼主位】chenyixing
-----------------------------------------------------------------------
    顶一下楼主。敢问楼主显示的是采色图片还是灰度的?我最近也在弄这个,采信成一副图片送上位机上面显示。可是我的图像有点模糊。希望我们能多交流一下。你在贴子里发的图片,我看不到。

dongfengge555 发表于 2011-5-20 16:11:37

回复【12楼】dongfengge555
-----------------------------------------------------------------------

这是我现在的效果图。希望可以交流。http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_641542X9FYR6.jpg
(原文件名:未命名.jpg)
我的QQ1790485810

dongfengge555 发表于 2011-5-20 16:18:27

回复【楼主位】chenyixing
-----------------------------------------------------------------------

群主能否把你的上位机显示图片的软件 发给我?万分感谢哦。发我QQ邮箱1790485810@qq.com

taoriran 发表于 2011-5-20 16:51:55

强!!

chenyixing 发表于 2011-5-20 20:20:41

回复【13楼】dongfengge555
-----------------------------------------------------------------------
我感觉你这个图像比我的还好点,分辨率起码是正确的,是不是wangguanfu说的RGB565及RGB555的搞错了哦
你的这个上位机软件我不是很清楚,我的是用bmp1.PixelFormat:=pf16bit;   //16位RGB565格式,蓝色在低位
定义的16位图,
个人表示对图像等光学参数不是很了解,同等解答

chenyixing 发表于 2011-5-20 20:21:47

回复【14楼】dongfengge555
-----------------------------------------------------------------------

我的代码全贴出来啦,莫非又不能下载了,我现在在出差,不方便传代码给你

dongfengge555 发表于 2011-5-25 10:28:31

反正我这边是显示不了。我配置的格式是Bayer RAW,图像显示感觉表面有许多不方格。

lizhengde 发表于 2011-5-25 11:29:29

回复【楼主位】chenyixing
-----------------------------------------------------------------------

楼主   我最近也在做ov7670通过串口传图像给PC显示      刚跑了你的程序   
程序是可以跑   但是为什么串口传数据那么慢啊    几乎是半秒才传一个字节
是不是我的哪一步出问题了啊   求指点   谢谢啦~~~

lizhengde 发表于 2011-5-25 11:32:35

而且    我刚用串口助手看了    从串口发来的数据    都是E   是怎么回事儿啊~~~

hongbo3636 发表于 2011-5-25 20:04:10

mark

kingboy100 发表于 2011-5-26 19:19:22

mark

jssz_hf 发表于 2011-5-29 09:41:41

好东西

oneren 发表于 2011-5-29 21:29:19

mark

chenyixing 发表于 2011-5-30 09:32:46

回复【20楼】lizhengde
-----------------------------------------------------------------------

320*240分辨率的,一张照片的大小是320*240*2=153600字节,用115200波特率传输理想速度是153600*8/115200=10.66S
所以慢是很正常的
至于接收到的数据,串口发送过来的都是字符‘E’吧,那是错误提示的意思,
你仔细看下程序,那是初始化OV7670出错,然后进入了死循环,不断的提示错误
你可以看下我的.H文件,仔细看下硬件连线什么的,有条件的话用示波器看下OV7670的时钟行信号输出有没有

wdooy 发表于 2011-5-30 23:13:08

mark

Alexqw 发表于 2011-6-16 08:25:39

mark

wuxianglei 发表于 2011-7-5 16:07:01

mark

hello0208 发表于 2011-9-25 19:16:20

MARK

416446891 发表于 2011-9-25 23:13:09

MARK

kneken 发表于 2011-9-26 01:32:12

mark

bingshuihuo888 发表于 2011-9-26 08:05:36

mark

Leshy 发表于 2011-10-1 17:23:43

记号

niulihit 发表于 2011-11-7 17:01:47

回复【14楼】dongfengge555 冷东风
-----------------------------------------------------------------------

dongfengge555 冷东风 可否发我一份你的串口图像显示软件啊,谢啦,870258912@qq.com

xiaosi1102 发表于 2011-11-7 17:38:03

记号!

qqqybq 发表于 2011-11-14 22:20:44

串口显示图像XP下不能用

redbaron 发表于 2012-6-7 10:26:58


高手,能传下程序给我吗?
还有问题请教.
email:23423141@qq.com

wwkkww 发表于 2012-6-7 21:48:02

记号!{:titter:}

linhonggui2007 发表于 2012-6-13 23:15:19

必须定起来

omg123 发表于 2012-6-23 22:24:47

本帖最后由 omg123 于 2012-6-24 10:45 编辑

楼主你好,能给我发一份程序资料吗?附件无法下载totoro0130@163.com

hncjs 发表于 2012-6-23 23:03:47

不错呀{:smile:}

lucy1289 发表于 2012-7-11 10:25:24

lizhengde 发表于 2011-5-25 11:29 static/image/common/back.gif
**** 作者被禁止或删除 内容自动屏蔽 ****

你好,我现在在做上位机图像显示,请问您有delphi软件吗?可以发一下给我吗?我找不到这个软件,所以没有办法试验楼主的程序,十分感谢。

MQYXMH 发表于 2012-7-23 10:24:35

MARK


1527317241 发表于 2012-7-23 16:20:26

有整个的电路图吗?

meme1oo 发表于 2012-11-24 16:59:53

您好,请问这个串口显示怎么用?谢谢

jinchenaquarius 发表于 2013-7-15 13:47:09

标记一下!!
页: [1]
查看完整版本: OV7670+M16+串口发送上位机机显示终于调试成功,发帖庆祝下,图像质量还有点问题,贴出所