本帖最后由 小小沙沙粒 于 2024-12-11 15:53 编辑
背景:
有一次汽车被人刮蹭了一条长长的划痕,看上去是钥匙或尖锐物品划的,车载的记录仪断电后不记录,苦于没有找到作案人员,郁闷很久。想着买一个24小时都记录的设备,网上搜索一番,看着价格偏贵,又长时间通电,如果汽车不开动,可能3-5天就把电瓶耗光了。想用一个闲置的手机录像,可惜这个很简单的功能没有找到合适的APP,直接使用照相机功能,很耗电可能一个晚上都撑不了。玩过一阵子树莓派,我想可以使用树莓派制作一个简单的拍照和录像的设备,于是开干!
选型:
手头上有树莓派3B和树莓派4B,但感觉尺寸太大,我想要的是一种小巧的设备,于是选择了树莓派2W。又担心2W性能不够,连接USB摄像头后运行不流畅,这个过程调试了很久。选择USB摄像头作为拍照录像是因为这个摄像头很清晰,对比了2W自带的摄像头,那个拍照录像一塌糊涂,很多噪点以及暗一点就黑得看不清,可能和摄像头的质量有关。测试了2款OV5647摄像头,一个很糟糕很多噪点,一个还不错暗一点也还算清晰;测试2款IMX219摄像头,一个还不错,一个驱动不了,可能是非官方的摄像头;测试1款USB摄像头,目前是最清晰的一个。调试到了后期USB摄像头碰到了问题,这个后面再说明,于是又选择了OV5647那个比较清晰的一款,原因两方面:价格和体积。屏幕是选择2.0寸ST7789芯片的,分辨率设置成640X480,整个桌面缩小了一倍。
调试:
最开始我是使用USB摄像头的,拍照和预览时都满意,看上去很清晰,使用了opencv库。在分辨率800X600以下时预览流畅,可是提高分辨率后,显示就很慢了,查找了原因,是USB摄像头要设置成MJPG格式才能流畅显示1920X1080的图像。调试过程中发现小的分辨率可以拍照可以录像,提高分辨率拍照可以但录像丢帧严重,以为是2W的性能不够,换成4B的机器上运行,仍然有丢帧的情况。在4B上使用USB摄像头录像640X480可以保存完整视频,提高分辨率后就有丢帧的情况,在2W上就更严重了,只能录像320X240的视频。查找原因,应该是USB传输的数据流需要CPU参与同步编码解码,树莓派4B也达不到这个性能。这是调试碰到的一个问题,无解;另一个问题是USB摄像头体积太大也不符合小巧的设备。
后来换成了OV5647摄像头,排线插上2W就可以使用,小巧玲珑,换成IMX219也是可以的,就是价格贵很多。使用树莓派自带的CSI接口,以及自带的raspistill/vid库或者picamera库,编程起来就简单多了。这样子安装后,把分辨率设置成1920X1080也可以录像,为了和屏幕匹配摄像头分辨率设置成1280X960,800X600,640X480这三种规格,不同的规格占存储空间不同。
现在还有一个问题,如果放在汽车上,温度需要考虑。使用锂电池感觉不安全,锂电池不耐高温,我想的是可以达到工业级范围-40~85℃,网上查了一圈,锂电池范围-20~70℃就不错了,不知道其他行车记录仪带电池的是如何做到的?另一个办法是带超级电容作为备份的电量,查了一圈,温度范围也是-20~70℃,有点难办。如果二选一,我觉得超级电容还是比锂电池安全一些。
那抛开电池,汽车直接供电可行吗?可行,但会引入新的问题。1、如果汽车电源一直都有电,即使汽车关闭后也还保留着供电,那这个树莓派记录仪可靠一些,不用担心断电损坏SD卡的问题;2、如果汽车关闭后电源也随之断开,可能会损坏SD卡,多次之后树莓派记录仪启动不了了;3、如果汽车关闭后电源延时一段时间关闭,那么增加一个IO检测可以保护树莓派记录仪安全关机。所以我分成2种方案,一种带锂电池的,但夏天白天高温天气不能使用,晚上可以使用,记录时长设置成24小时;一种汽车直供电的,为了保护SD卡还是加入超级电容,防止意外断电,也能有足够时间安全关机。
树莓派记录仪的SD卡已经被系统使用,最好是单独一个存储方式,比如使用USB转SD卡存储录像视频,如果使用系统的存储卡,那多次存储循环后可能损坏SD卡。而另一种更合适的方案是使用树莓派CM4模块,系统写入EMMC中,SD卡作为录像存储介质,这样子也更可靠。
后记:
目前程序已经可以运行,加入一些电压检测电路和自动关机电路,准备打板子测试一番,后续电路制作出来再详细介绍,欢迎大家添砖加瓦,欢迎大家留言讨论。
#我制作了一个行车记录仪#
|