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
-----------------------------------------------------------------------
沙发自己坐,哈哈 顶一下 这个情况很有可能是某一数据位没接好,之前试过。可能真的是硬件接不好,也有可能是AL422B是假货 恭喜下LZ 顺便说下 你的那个图象怎么会这个样子呢 ? 回复【3楼】tiky
这个情况很有可能是某一数据位没接好,之前试过。可能真的是硬件接不好,也有可能是al422b是假货
-----------------------------------------------------------------------
见过假货出来的什么图象么?我这里最早有买到过假的AL422,单价8RMB买的,图象出来 星星点点,类似TFT有坏点一样!
LZ这个明显至少有一个比特的位异常,不会是把RGB555当RGB565用了吧 既然都PC显示了 建议用YUV422,比RGB565更清晰 一定要关注 回复【6楼】wangguanfu
-----------------------------------------------------------------------
确实是RGB565的,我用一个软件把一张320*240BMP位图转换为16进制文件,然后直接写入显存内,显示很正常
估计是接收时数据有错位,因为用的是M16片内8M时钟,波特率会有误差,特别是在接收320这么长一帧数据情况下
确实有可能会引起数据误差。
明天出差,待我回来重新写个传输协议完善下,看下还有没有这个问题,多谢各位指导啦 还有一点,我仔细看了图分析了下,如果是接收错误,也就是是一个8位数据哪一位上出现错误的概率应该是随机的,由此出来的图像色彩也应该是随机的错误
但是我分析了图片,感觉这个色彩的偏差是有规律的,整体偏红,而且色域不完整,分辨率也很低
所以我怀疑摄像头配置出问题可能性很大,当然传输协议也是要完善的。
请教下wangguanfu,我尝试调过夜间模式,图像也是一样,是不是还有其他寄存器可以调整色系的,或者是OV7670的问题 mark 回复【楼主位】chenyixing
-----------------------------------------------------------------------
顶一下楼主。敢问楼主显示的是采色图片还是灰度的?我最近也在弄这个,采信成一副图片送上位机上面显示。可是我的图像有点模糊。希望我们能多交流一下。你在贴子里发的图片,我看不到。 回复【12楼】dongfengge555
-----------------------------------------------------------------------
这是我现在的效果图。希望可以交流。http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_641542X9FYR6.jpg
(原文件名:未命名.jpg)
我的QQ1790485810 回复【楼主位】chenyixing
-----------------------------------------------------------------------
群主能否把你的上位机显示图片的软件 发给我?万分感谢哦。发我QQ邮箱1790485810@qq.com 强!! 回复【13楼】dongfengge555
-----------------------------------------------------------------------
我感觉你这个图像比我的还好点,分辨率起码是正确的,是不是wangguanfu说的RGB565及RGB555的搞错了哦
你的这个上位机软件我不是很清楚,我的是用bmp1.PixelFormat:=pf16bit; //16位RGB565格式,蓝色在低位
定义的16位图,
个人表示对图像等光学参数不是很了解,同等解答 回复【14楼】dongfengge555
-----------------------------------------------------------------------
我的代码全贴出来啦,莫非又不能下载了,我现在在出差,不方便传代码给你 反正我这边是显示不了。我配置的格式是Bayer RAW,图像显示感觉表面有许多不方格。 回复【楼主位】chenyixing
-----------------------------------------------------------------------
楼主 我最近也在做ov7670通过串口传图像给PC显示 刚跑了你的程序
程序是可以跑 但是为什么串口传数据那么慢啊 几乎是半秒才传一个字节
是不是我的哪一步出问题了啊 求指点 谢谢啦~~~ 而且 我刚用串口助手看了 从串口发来的数据 都是E 是怎么回事儿啊~~~ mark mark 好东西 mark 回复【20楼】lizhengde
-----------------------------------------------------------------------
320*240分辨率的,一张照片的大小是320*240*2=153600字节,用115200波特率传输理想速度是153600*8/115200=10.66S
所以慢是很正常的
至于接收到的数据,串口发送过来的都是字符‘E’吧,那是错误提示的意思,
你仔细看下程序,那是初始化OV7670出错,然后进入了死循环,不断的提示错误
你可以看下我的.H文件,仔细看下硬件连线什么的,有条件的话用示波器看下OV7670的时钟行信号输出有没有 mark mark mark MARK MARK mark mark 记号 回复【14楼】dongfengge555 冷东风
-----------------------------------------------------------------------
dongfengge555 冷东风 可否发我一份你的串口图像显示软件啊,谢啦,870258912@qq.com 记号! 串口显示图像XP下不能用
高手,能传下程序给我吗?
还有问题请教.
email:23423141@qq.com 记号!{:titter:} 必须定起来 本帖最后由 omg123 于 2012-6-24 10:45 编辑
楼主你好,能给我发一份程序资料吗?附件无法下载totoro0130@163.com 不错呀{:smile:} lizhengde 发表于 2011-5-25 11:29 static/image/common/back.gif
**** 作者被禁止或删除 内容自动屏蔽 ****
你好,我现在在做上位机图像显示,请问您有delphi软件吗?可以发一下给我吗?我找不到这个软件,所以没有办法试验楼主的程序,十分感谢。 MARK
有整个的电路图吗? 您好,请问这个串口显示怎么用?谢谢 标记一下!!
页:
[1]