树莓派4寸DSI电容触摸屏使用教程

产品特点

  • 4寸IPS电容触摸屏,硬件分辨率为480×800
  • 电容式5点触摸控制
  • 钢化玻璃电容触摸面板,硬度达6H
  • 直接通过Raspberry Pi的DSI接口驱动LCD,刷新率可达60Hz
  • 配合Raspberry Pi使用,支持Raspberry Pi OS系统
  • 支持Pi 4B/3B+/3A+,CM3+/4须搭配转接板使用
  • 支持通过软件控制背光亮度

搭配树莓派使用

硬件连接

1. 将LCD背面的拨码开关拨到I2C0或I2C1的模式,Bullseye分支使用I2C0,Buster分支使用I2C1。默认是I2C0模式。

注:如果你不清楚Raspberry Pi OS的两个分支的差别,可以查看以下介绍#Raspberry Pi OS分支介绍


2. 使用15PIN的FPC排线,将4inch DSI LCD连接到Raspberry Pi的DSI接口。

3. 将4inch DSI LCD通过铜柱与Raspberry Pi固定。则时显示屏的5V,GND,SCL,SDA会通过顶针连接到树莓派的40PIN GPIO上。5V和GND接口可以接入小功率设备,如风扇。

注:对于使用I2C0模式,可以不将4inch DSI LCD和Raspberry Pi固定,也可以正常使用,但显示屏的5V和GND接口将不能对外供电。

最终连接如下图所示:


软件设置

1. 在树莓派官网下载最新版本的镜像,将压缩文件下载到PC上,并解压得到.img文件。
2. TF卡连接到PC,使用SDFormatter软件格式化TF卡。
3. 打开Win32DiskImager软件,选择第1步准备的系统镜像,点击write烧写系统镜像。
4. 烧写完成后,将TF卡接入到树莓派上,并启动树莓派,登录树莓派的终端(可以将树莓派接到HDMI显示器或用ssh远程登录)。
git clone git://github.com/waveshare/4inch-DSI-LCD.git
cd 4inch-DSI-LCD
#终端输入uname -a查看内核版本,并进入到对应文件目录
cd 5.10.63
#确定当前使用的是什么通信接口,进入到对应文件目录
#Bullseye分支使用I2C0
cd I2C0
#Buster分支使用I2C1
#cd I2C1
sudo ./WS_4inchDSI480x800_MAIN.sh
sudo reboot

注:以上步骤需要确保树莓派可以正常连接到互联网。

5. 等待系统重启,将可以正常显示和触摸。

旋转

Bullseye分支显示与触摸旋转

在开始菜单里选择:Preferences->Screen Configuration->Configure->Screens->DSI-1->Orientation,在里面选择对应的角度,点击“√”,选择Yes,重启即可。


2022/2/10注:当前Bullseye分支有一个BUG,就是如果打开VNC后,使用上面的旋转,触摸的旋转方向是错误的。这个BUG将在之后的版本中修复。如果你需要同时打开VNC和进行旋转,可以参考Buster分支的旋转方式。

Buster分支显示旋转

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
#在autostart文件末端输入对应显示旋转角度的指令,重启后生效
#显示旋转90度
xrandr --output DSI-1 --rotate right
#显示旋转180度
xrandr --output DSI-1 --rotate inverted
#显示旋转270度
xrandr --output DSI-1 --rotate left

Buster分支触摸旋转

sudo nano /boot/config.txt
#在config.txt文件末端修改触摸旋转角度的指令,重启后生效(默认存在0°触摸方向的指令)
#90°:
dtoverlay=WS_4inchDSI480x800_Touch,invertedx,invertedy
#180°:
dtoverlay=WS_4inchDSI480x800_Touch,invertedy,swappedxy
#270°:
dtoverlay=WS_4inchDSI480x800_Touch
#0°:
dtoverlay=WS_4inchDSI480x800_Touch,invertedx,swappedxy

背光控制

方法一

sudo nano /boot/config.txt
#在config.txt里,将dtoverlay=WS_4inchDSI480x800_Screen改成以下的命令,其中x为0-255,0为最暗,255为最亮,默认为最亮)
dtoverlay=WS_4inchDSI480x800_Screen,Backlight=x
#如:
dtoverlay=WS_4inchDSI480x800_Screen,Backlight=100
#在重启即可
reboot

方法二

使用微雪提供的应用程序(该程序仅用于Raspberry Pi OS系统),用户可以通过以下方式下载安装使用:

#找到原来的驱动目录
cd 4inch-DSI-LCD
cd Backlight
sudo ./install.sh

安装完成后,可以在开始菜单-》Accessories -》Brightness 打开该程序,如下图: 


扩展阅读:Buster分支使用CSI摄像头方法

注:如果你不清楚Raspberry Pi OS的两个分支的差别,可以查看以下介绍#Raspberry Pi OS分支介绍

  • 说明

DSI LCD在使用时,需要加载KMS显示驱动程序,这会与Buster分支的默认相机子系统raspicam产生冲突。

需要编译和安装libcamera相机子系统,才可以正常使用树莓派相关的CSI摄像头。

如果用户使用Bullseye分支,则无需进行任何操作就可以使用树莓派相关的CSI摄像头。

  • 硬件连接

先关闭树莓派,在接上树莓派摄像头,在给树莓派上电。

注:不允许带电插拔树莓派摄像头,否则可能导致烧坏相关电路。

  • 更新与打开摄像头接口

libcamera-apps应用程序支持Pi3和Pi4。 在安装之前,需要先更新您的Raspberry Pi软件:

sudo apt update

根据实际摄像头,在/boot/config.txt中设置正确的dtoverlay

sudo nano /boot/config.txt

在文档末端添加:

#以RPi Camera V2为例,感光芯片为索尼IMX219,则添加以下代码:
dtoverlay=imx219
#同理,OV5647芯片:
#dtoverlay=ov5647
#IMX477芯片:
#dtoverlay=imx477

打开摄像头接口,执行以下命令:

sudo raspi-config

选择3 Inteface Options -》 P1 Camera -》回车 -》 Yes -》 Finish -》 Yes,然后会重启树莓派。

安装libcamera 方法一

注1:建议使用Pi4来安装和编译libcamera-apps,而非Pi3,因为Pi4的性能更强,编译不容易出错。编译完成后的镜像也可以在Pi3上使用。

注2:在安装libcamera的过程中很可能在某些步骤会出错,如果你是新手,建议直接烧录#方法一 ,使用预装驱动的镜像,在这个镜像中我们已经安装好了libcamera。

为libcamera安装所有必需的依赖项:

sudo apt install libboost-dev -y
sudo apt install libgnutls28-dev openssl libtiff5-dev -y
sudo apt install qtbase5-dev libqt5core5a libqt5gui5 libqt5widgets5 -y
sudo apt install meson -y
sudo pip3 install pyyaml ply
sudo pip3 install --upgrade meson

现在我们可以下载并构建libcamera:

git clone git://linuxtv.org/libcamera.git
cd libcamera
meson build
cd build
meson configure -Dpipelines=raspberrypi -Dtest=false
cd ..
ninja -C build
sudo ninja -C build install
  • libepoxy

Libcamera-apps需要安装libepoxy。首先安装其前提条件:

sudo apt install libegl1-mesa-dev

然后下载并构建libepoxy:

cd
git clone https://github.com/anholt/libepoxy.git
cd libepoxy
mkdir _build
cd _build
meson
ninja
sudo ninja install
  • libcamera-apps

Libcamera-apps进一步操作如下:

sudo apt install cmake libboost-program-options-dev libdrm-dev libexif-dev

构建libcamera-apps,请输入:

cd
git clone https://github.com/raspberrypi/libcamera-apps.git
cd libcamera-apps
mkdir build
cd build
cmake ..
make -j4

最后使用libcamera-hello指令打开一个5秒钟的预览摄像画面:

./libcamera-hello

相关指令介绍:

libcamera-still   #可替换raspistill使用。
libcamera-vid     #可替换raspivid使用。
libcamera-raw     #libcamera-vid的一个版本,用于保存未压缩的原始视频文件。
libcamera-hello   #入门指令,运行即可在显示屏上看到摄像画面。
libcamera-jpeg    #一个精简版的libcamera——仍然可以运行预览并捕捉JPEG,不受其他选项的干扰。

注意:在安装好libcamera-apps后,会将原来的DSI驱动覆盖,为了使DSI LCD可以正常使用,需要重新安装驱动:

#对于7inch DSI LCD (C)使用:
cd 7inch-DSI-LCD-C
sudo ./WS_7inchDSI1024x600_MAIN.sh
sudo reboot
#对于4inch DSI LCD使用:
cd 4inch-DSI-LCD
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_4inchDSI480x800_MAIN.sh

安装libcamera 方法二

由于安装libcamera的步骤很多,耗时很长。我们提供一个脚本程序进行直接安装。

具体操作步骤如下:

1. 更新可用软件包列表

sudo apt update

2. 下载libcamera-install文件并安装

git clone https://github.com/waveshare/libcamera-install.git
cd libcamera-install
sudo chmod +x install_libcamera_all.sh
sudo ./install_libcamera_all.sh

3. 出现echo "install Succeed"表示成功安装。出现echo "install Fail" 表示安装失败。

成功安装后会在libcamera-install目录下生成libcamera、libcamera-apps和libepoxy三个文件夹,如果需要重新安装,应先将这三个文件夹删除后,在重新安装。

受网络影响,运行一次可能安装不成功,多运行几次即可。

注意:在安装好libcamera-apps后,会将原来的DSI驱动覆盖,为了使DSI LCD可以正常使用,需要重新安装驱动:

#对于7inch DSI LCD (C)使用:
cd 7inch-DSI-LCD-C
sudo ./WS_7inchDSI1024x600_MAIN.sh
sudo reboot
#对于4inch DSI LCD使用:
cd 4inch-DSI-LCD
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_4inchDSI480x800_MAIN.sh

4. 重启

sudo reboot

5. 测试,显示5秒摄像头图像

cd /home/pi/libcamera-install/libcamera-apps/build
./libcamera-hello
  • 进阶

更多关于libcamera的使用说明,请参考:

https://www.raspberrypi.org/documentation/linux/software/libcamera/README.md

https://github.com/raspberrypi/libcamera-apps/blob/main/README.md

https://www.raspberrypi.org/documentation/linux/software/libcamera/rpi_SOFT_libcamera_1p2.pdf

Raspberry Pi OS分支介绍

在2021年12月2日,树莓派的Raspberry Pi OS分成了两个分支,分别是Buster分支和Bullseye分支。

其中Buster分支是老系统的延续,更为稳定,使用raspicam作为默认的相机子系统。

Bullseye分支则添加了一些新的功能,其中将KMS作为了默认的显示驱动程序,并且使用libcamera作为默认的相机子系统。

对于配合该显示屏使用的项目,我们建议用户使用Bullseye分支系统,因为在该系统上,只需进行简单的配置就可正常使用,并且可使用DSI接口中默认的I2C0进行通信,无需占用树莓派40PIN GPIO中的I2C1。

对于必须使用Buster分支的用户,我们当前也提供了相关的驱动程序,但由于DSI驱动默认需要加载KMS显示驱动程序,导致在Buster分支下的raspicam默认的相机子系统无法使用,需要重新编译和安装libcamera相机子系统(对新手来说,有一定难度),并且为了使raspicam相机子系统不与DSI驱动冲突,DSI驱动会占用树莓派40PIN GPIO中的I2C1。

对于Bullseye分支,微雪研发团队将长期维持更新,对于Buster分支,我们将会持续支持到2024年6月(因为树莓派基金会在此时间后,将不会对Buster分支进行支持)。

以下是该显示屏的系统支持列表:

系统名称所属分支操作系统位数
2022-01-28-raspios-bullseye-arm64bullseye64位
2022-01-28-raspios-bullseye-armhfbullseye32位
2022-01-28-raspios-buster-armhfbuster32位
2021-10-30-raspios-bullseye-armhfbullseye32位
2021-12-02-raspios-buster-armhfbuster32位

镜像下载地址


Raspberry Pi OS和Raspberry Pi OS (64-bit)为Bullseye分支,Raspberry Pi OS (Legacy)为Buster分支。

更详细信息可查看:

树莓派分支详细信息

Buster版本说明

Bullseye版本说明

注:以上信息更新于2022年2月10日,由于树莓派的镜像更新比较频繁,在你看到此信息时,相关信息可能已经过时,具体以镜像的实际表现为准,这里仅供参考。

注意事项

1. 更新系统,如执行以下命令

sudo apt-get update
sudo apt-get full-upgrade

在更新完系统后,原本安装的驱动有些文件可能会被覆盖掉,需要重新安装驱动才可以正常显示。

2. 更换主板

如果原来在Raspberry Pi 4 Model B上安装的驱动,用户更换主板,如修改成Raspberry Pi 3 Model B+,会导致显示屏无法正常显示。

因为Pi4和Pi3需要加载不同的驱动文件,需在新的主板上重新安装驱动才可以正常显示。