树莓派-显示屏和摄像头驱动

1,326 阅读2分钟

1、显示屏驱动

1.1、显示屏的参数

这次用的显示屏是直接在PDD上淘来的,大致参数如下:

  • 尺寸3.5寸,基本和树莓派一样大,安装后正好覆盖
  • 接口SPI接口,需要26个引脚,如果对GPIO需求强烈的话,可以选择HDMI接口的屏
  • 刷新率60帧,实际测试后满足使用需求,稍微有点卡顿

目前使用显示屏也仅仅是展示摄像头实时捕捉的画面而已,因此上面这些参数也够用了。

1.2、显示屏驱动安装

未安装驱动连接显示屏,上电后会展示白屏,如下图所示:

微信图片_20220618113707.jpg

我们可以在显示屏连接的情况下安装驱动,这样,驱动安装好后显示屏就自动出现画面了。如果没有,可以重启树莓派。

驱动安装非常简单,购买显示屏的说明书中也介绍了安装过程,主要分为如下几步:

  • ssh远程登录
  • sudo rm -rf LCD-show
  • git clone github.com/Lcdwiki/LCD…。如果网络比较差可以在外部下载好zip包后上传树莓派进行加压缩安装。
  • chmod -R 755 LCD-show
  • cd LCD-show
  • sudo ./MHS35-show

成功安装后发现画面正常显示。

微信图片_20220618112457.jpg

2、摄像头驱动

2.1、摄像头接线

摄像头驱动的过程有点曲折,下面慢慢道来。

这次使用的是树莓派官方的摄像头组件,其中接口为CSI(Camera Serial Interface)。将摄像头与树莓派连接。注意,接线处的蓝色面要朝向黑色滑口,即有焊盘的一面要对向白色固定处。这样才能连接成功。

4B的树莓派有J3(位于中间)和J4(位于左手边)两个CSI接口,但尝试过后发现只有J3口能够连接成功,并成功检测到摄像头组件。J4口无法成功,并且J4口连接后,摄像头部分的红色LED会被点亮,J3不会,暂时没有去深究这里面的原因,有小伙伴知道的话可以在评论区介绍下。

2.2、校验连接

连接成功后,树莓派上电(一定要在断电情况下连接摄像头哈,不然可能会损坏摄像头),ssh远程连接,在终端中输入如下命令,检测是否成功安装。

pi@raspberrypi:~ $ vcgencmd get_camera
supported=1 detected=1, libcamera interfaces=0

如果出现了supported=1 detected=1两个1,那么恭喜你,一次性就连接成功了。

如果出现一个0或者两个0,首先检测下接线是否正常(断电检测),然后可以按照下面的方法逐步执行:

2.2.1、使能Camera

输入如下命令进行配置页面:

sudo raspi-config

然后依次选择:Interface Options → Legacy Camera → Yes进行激活,激活后提示重启系统。

再次重试vcgencmd get_camera命令,查看是否出现两个1。

2.2.2、修改/boot/config.txt

注释掉自动检测配置,添加start_x和gpu_mem配置

pi@raspberrypi:~ $ sudo vim /boot/config.txt
# 注释
# camera_auto_detect=1

# 添加
gpu_mem=128
start_x=1

2.2.3、修改/etc/modules

修改该文件目的是为了重新加载老版本的V4L2驱动。

pi@raspberrypi:~ $ sudo vim /etc/modules

# 在后面添加
bcm2835-v4l2

2.2.4、重启树莓派

sudo reboot

再次校验应该就能发现两个1了

pi@raspberrypi:~ $ vcgencmd get_camera
supported=1 detected=1, libcamera interfaces=0

此时系统已经支持并检测到了摄像头组件。

2.5、测试

执行如下脚本,如果在当前目录下出现pic.jpg的图片说明摄像头已经能够正常工作了。

pi@raspberrypi:~ $ raspistill -o pic.jpg -t 1000