RaspberryPi环境配置
因最近项目要使用树莓派,因此掏出了我吃灰的树莓派 4B,需要配置一下 OpenCV 环境和串口。因为是 Linux 萌新,配置环境踩了不少坑。既然好不容易配置好,赶紧写篇文章记录一下,以免遗忘。
1. 格式化 SD 卡
烧录文件前要先格式化 SD 卡。
2. 树莓派系统烧录
使用官方提供的树莓派镜像烧录器即可。
需要注意的一些坑:
- 在选择系统的时候,谨慎选择最新版本,因为资料少,坑多,对小白不太友好。
- 强烈推荐官方的 Raspberry Pi OS ,一开始本人想装 Ubuntu 桌面版,卡的没法用,但是 Raspberry Pi OS 桌面版体验就很好。
下载好文件后,可以在烧录器选择本地文件。
3. csi 摄像头
3.1 新版本配置
配置摄像头接口
1 | sudo raspi-config |
选择 Interfacing Options -> Camera,配置好后系统会提示是否重启,选择重启。
查看当前摄像头是否可用:
1 | vcgencmd get_camera |
raspistill
指令已经被舍弃了,有关摄像头使用 libcamera
指令:
1 | # 打开摄像头几秒 |
摄像头识别不到的问题
执行上述命令时,报错 no cameras available。
但是我遇到个非常之离谱的问题,文章里说要注释掉 camera_auto_detect=1
,我反而加上这句话就好了(原本文件中是没有这条语句的)。
3.2 老版本配置
新版本的 bug 真的是非常的多,换了老版本(在 2. 里面给了链接)后,配置起来非常的快。
首先要开启摄像头,可以使用命令行配置
1 | sudo raspi-config |
也可以在桌面的左上角点击树莓派图标,打开有一个偏好设置,在里面打开摄像头。
设置好后重启 reboot。
raspistill
指令
1 | raspistill -t 2000 -o image.jpg |
延时 2s 后拍一张照片。
4. ssh
一般树莓派官方的 OS 已经配置好了,如果没有,就下载 ssh 服务
1 | sudo apt-get install ssh |
开启 ssh
1 | sudo service ssh start |
设置开机自启动
1 | sudo systemctl enable ssh |
5. vnc
vnc 是远程桌面,由于需要看摄像头,会很卡,就暂时不用。
6. OpenCV-Python
这一步真的是大坑,也是我为什么推荐不要使用新版本的原因 QwQ,严格按照这篇文章来即可。
https://blog.csdn.net/weixin_45911959/article/details/122709090
安装好 OpenCV 后,可以执行下面指令判断是否安装成功:
1 | python3 |
如果返回当前版本,说明安装成功。
在读取摄像头的第一步是打开一个摄像头,就会有下面一条语句:
1 | cap = cv2.VideoCapture(index) |
index 是摄像头索引,那么在 Linux 下,摄像头索引如何找?
查看 video 的设备号:
1 | ls /dev | grep video* |
由于前面已经配置好了 csi 摄像头,因此会有一个 video0,因此该摄像头的索引就是 0。
成功打开摄像头后,就开始尽情地图像处理吧。
7. UART
树莓派引脚图:
配置串口时又有一个坑,树莓派 3B 和 4B 的串口配置是不一样的。
树莓派 3B 的时候,一共有两个串口:
- 硬件串口:/dev/ttyAMA0
- mini 串口:/dev/ttyS0
而树莓派 4B 增加了四个硬件串口,就需要修改一些配置。需要注意的是,用户使用的串口千万不能和已经使用的 GPIO 口冲突。
按照 这篇文章 来配置即可。
8. 系统备份
如果好不容易配置好了各种环境,但是之后不小心干了什么东西把系统搞寄了,重来一次就会很崩溃。因此就需要做好系统备份。
包括每次在修改系统有关的文件时,都最好备份一下。
1 | cp filename filename.backup |
即复制并改名(在原文件名后面加个 backup 后缀表示备份)
插上 U 盘挂载到 /media 下,然后运行脚本
1 | sudo bash back.sh /media/raspberry-back.img |
但是本人在树莓派插上 U 盘时,发现系统似乎自动把 U 盘挂载到 media 下了,但是无法通过脚本写入数据。又尝试先把系统备份到脚本所在文件下,然后把文件上传至 U 盘,由于文件太大不是很稳定很容易失败。最后还是用远程传输方式解决。