OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4064|回复: 11

我做的无限视频传输项目全部资料!!!!!

[复制链接]

18

主题

96

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-10-26
在线时间
40 小时
发表于 2017-3-1 10:14:22 | 显示全部楼层 |阅读模式
本帖最后由 zhaoyuaiweide 于 2017-3-1 10:15 编辑

材料:STM32F407两块   NRF24L01两个,OV2640摄像头一个,TFTLCD4.3寸显示屏一个,IS62WV51216(sram)一个。

注:一开始在无线传输模块的选材上有串口wifiESP8266和NRF24L01两个,先选择了ESP8266进行测试,这个wifi模块传输距离,面对阻隔物体的传输比NRF24L01强,但是经过深入学习总结,这个模块传输速度很慢,因为限制在了串口的速率上,比如115200的波特率计算下来10kb/s左右的传输速率,而NRF24L01则是115kb/s的传输速率,所以最后放弃了ESP8266.局限于各方面因素只能选择NRF24L01,如果有后生的话,有能力的话,建议选择sdio接口的WIFI模块。这个模块是我在正点原子论坛上了解到的,速度很块。



上图:

                                            

自己在这个项目中的思路:

1.先将摄像头数据过去回来打印出来,在遮挡摄像头等变化的时候看某一个位置点的数据是否有变化。

2.将获取回来的摄像头数据按照lcd屏的写入数据方式写进去,调试图像和摄像头配置

3.将NRF24L01通信的8位数据传输方式改为16位数据传输方式,并且加入视频传输开始和结束的标志。

4.(装配)将摄像头显示和无限通信结合在一起,调试程序运行的bug等


项目中的技术运用:

1.ov2640的摄像头数据通过DCMI接口获取并配置摄像头参数。

2.DCMI获取到的摄像头数据通过DMA传输到一个很大数组中。

3.单凭stm32f407的内置内存并不够,再通过FSMC内存控制器来添加外部sram(1M)  fsmc片选3

4.通过SPI对NRF24L01j进行配置和读写数据

5.通过FSMC对LCD进行控制,这里是fsmc片选4


遇到的问题以及解决方法:

1.通过数组将摄像头数据用显示屏显示出来会花屏

解决方法:因为DMA速度比较快,而外部SRAM读写速度比较慢,所以就导致数组的读取跟不上DMA的速度,然后我通过大量实验摄像头窗口参数和显示屏用到的大小参数,找到可以显示真实图像不花屏的参数匹配值:240*240比较理想,最终还是通过外部sram能够级到的DMA的一个值。


2.预计视频信息传输是不到一秒一帧,但实际两到三秒

思考:因为NRF24L01大概是128kb/s,我要传输的115kb左右的数据,所以理论上一秒钟就够了,但是实际总是残酷的,SPI读写速度才37.5MHZ最大,如果改成DMA传输的SPI通道,收益不高,也就快一秒左右,并且要用到DMA和SPI的双重读写上的新函数,这个时序没有官方说明时序等注意的地方还是不太好做的一件事情。


3.视频在传输的时候会花,花的还一塌糊涂

解决方法:发现这个问题后,我还以为是自己视频的开头结尾没有处理好,以及SRAM和lcd在FSMC片选上的冲突,最后一一排除,排出的方法就是在单独的SRAM写数据和LCD显示上尝试。最终发现是自己将接收端的NRF24L01碰到了盒子上,有阻隔了(有点坑,哈哈)最后放在一块后效果还是可以的。



总结:程序其实也没什么,我一会放在下面,有时候还会有一点花屏,所以说,传输模块一定要选择好,建议可以尝试sdio接口的wifi,如果做出来可以一起分享



无线视频传输.zip

1.84 MB, 下载次数: 302

源码

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

35

主题

309

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2641
金钱
2641
注册时间
2016-8-10
在线时间
470 小时
发表于 2017-3-1 11:12:04 | 显示全部楼层
coll                                 
回复 支持 反对

使用道具 举报

11

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2012-6-20
在线时间
38 小时
发表于 2017-3-1 11:42:11 | 显示全部楼层
cool  
回复 支持 反对

使用道具 举报

12

主题

336

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1576
金钱
1576
注册时间
2015-8-9
在线时间
625 小时
发表于 2017-3-1 13:00:09 | 显示全部楼层
顶一个~~~
当年也折腾过这视频传输。2401传输时距离问题影响特别大。隔了3米开外,有可能5-6秒才接收完一帧。信号衰减特别快。
楼主下次换个以太网传输试试?
回复 支持 反对

使用道具 举报

18

主题

96

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-10-26
在线时间
40 小时
 楼主| 发表于 2017-3-1 14:42:58 | 显示全部楼层
Akatsuki_lim 发表于 2017-3-1 13:00
顶一个~~~
当年也折腾过这视频传输。2401传输时距离问题影响特别大。隔了3米开外,有可能5-6秒才接收完一 ...

对  这个2401问题2确实很大 ,但是具体什么影响了也不清楚,我测试过没有丢包现象。 楼主自己本来还有备用ESP8266串口wifi模块作为通信   但是实际一调试了解  速度比24L01还低   无奈只能硬着头皮搞了   
回复 支持 反对

使用道具 举报

32

主题

300

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1049
金钱
1049
注册时间
2012-3-30
在线时间
321 小时
发表于 2017-3-1 17:31:56 来自手机 | 显示全部楼层
厉害,厉害。
回复 支持 反对

使用道具 举报

19

主题

702

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3339
金钱
3339
注册时间
2013-7-30
在线时间
708 小时
发表于 2017-3-1 17:47:33 | 显示全部楼层
直接用usb wifi 啊
思想很重要,无论做人还是编程!
我的技术公众号【微联智控工作室】
回复 支持 反对

使用道具 举报

18

主题

96

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2016-10-26
在线时间
40 小时
 楼主| 发表于 2017-3-3 09:49:47 | 显示全部楼层
小温 发表于 2017-3-1 17:47
直接用usb wifi 啊

楼主还不知道有这个   谢谢哈   为改进它提了宝贵意见   楼主有时间了解了解usb wifi   我只是听原子哥说sdio接口的wifi模块还不错
回复 支持 反对

使用道具 举报

6

主题

60

帖子

0

精华

高级会员

Rank: 4

积分
863
金钱
863
注册时间
2016-2-17
在线时间
192 小时
发表于 2017-3-3 11:43:51 来自手机 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

17

主题

99

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2016-7-24
在线时间
107 小时
发表于 2017-7-27 11:03:27 | 显示全部楼层
谢大神
回复 支持 反对

使用道具 举报

5

主题

266

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1526
金钱
1526
注册时间
2016-7-20
在线时间
155 小时
发表于 2017-7-27 11:34:04 | 显示全部楼层
mark一下
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2020-3-3
在线时间
17 小时
发表于 2020-3-3 17:41:40 | 显示全部楼层
最近也在搞这个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-21 10:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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