17
2016
11

raspberryPi连接OV7670

P61110-221717(2).jpg

相信用过这个摄像头的人都深有体会,想要让这个正常工作不是一件简单的事。

刚开始用的ov7670没有时钟,没有fifo,使用 arduinoUNO 和 arduinoMega2560 驱动,发现完全驱动不起来。然后改用树莓派驱动有fifo的那种,经过几周的不懈努力,终于可以输出图像了。

最终的目标是做成一个网络摄像头,目前网页中的刷新率还在改进中。

在后面我会详细记录开发过程的遇到的一些问题,以及解决方法。

这个项目能成功要感谢“井底添蛙”和“谜窟”的支持, 是“井底添蛙”免费提供了树莓派与摄像头转接板的打印,“谜窟”在画板与编码的过程中提供了参考和建议。


代码下载:pi_ov7670.rar


编译:

make

运行:

#输出bmp图片

sudo ./ov2bmp

#窗口显示

sudo ./ov_sdl

#发送数据到远程服务器

sudo ./ov

pcb效果图(v2.3和v2.5没有打印):


« 上一篇 下一篇 »

评论列表:

1.访客  2019-07-30 15:07:45 回复该评论
你好,想請問站主那個轉接版的PIN對應,從圖上看不太出來是如何接上OV7670,不知道是否有表格或其他可參考資料?
2.访客  2019-08-22 14:48:07 回复该评论
#define VSYNC_CMOS_PIN 21 // 10
//#define VSYNC_CMOS_PIN 26
#define FIFO_RRST_BIT 0 //12 RRST
#define FIFO_WRST_BIT 1 //15 WRST
#define FIFO_CS_BIT 2 //11 OE
#define FIFO_WE_BIT 3 //14 WR
#define FIFO_RD_BIT 4 //13 RCK
#define FIFO_DATA_BIT_0 29 //0
#define FIFO_DATA_BIT_1 28 //1
#define FIFO_DATA_BIT_2 25 //2
#define FIFO_DATA_BIT_3 27 //3
#define FIFO_DATA_BIT_4 24 //4
#define FIFO_DATA_BIT_5 23 //5
#define FIFO_DATA_BIT_6 26 //6
#define FIFO_DATA_BIT_7 22 //7
想請教一下這邊的數字是GPIO的編號 還是樹梅派上的PIN腳,因為沒有0號位,加上圖中接了19個PIN,從CODE中再加上電源也才18個PIN,想了解腳位是如何接的,希望站主能解惑,感恩
2.water  2019-09-10 09:49:14 回复该评论
是wiringPi编码
3.访客  2019-09-18 14:52:25 回复该评论
感謝回覆
CODE裡有16PIN,加上VDD GND共18PIN,上圖內轉接版有19個PIN 不知道最後多接的是哪個?
3.water  2019-09-20 11:30:35 回复该评论
我在文章后面附上了pcb图,有一条线是多余的,不需要连接,再后续版本中做了修改
4.访客  2019-09-18 15:19:21 回复该评论
補充上面問的,因為照著wiringpi 接線依樣有下列錯誤
unable to wiringPiI2CWriteReg8 : REMOTE I/O error
4.water  2019-09-25 11:09:37 回复该评论
这个错误可能和软件版本有关
5.访客  2019-10-07 11:40:17 回复该评论
了解 因為我看CODE有 IFDEFINE OLD 跟ELSE的兩種接法,想請問OLD是什麼情況下需要用OLD的接線呢?? 謝謝
5.water  2019-10-07 17:12:42 回复该评论
OLD是我从别人那里拿来的代码

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。