树莓派11.9inch DSI LCD教程

产品特点

  • 11.9寸IPS电容触摸屏,硬件分辨率为320×1480
  • 电容式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模式。


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

3.将树莓派通过螺丝固定到屏幕上,注意对齐顶针位置。 最终连接如下图所示:


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

若树莓派和屏幕没有按上述操作背锁式固定,则需额外使用杜邦线通过树莓派提供供电和I2C通信。

软件设置

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

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

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

旋转

方法一

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


方法二

显示旋转:

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

触摸旋转:

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


背光控制

方法一

将/boot/config.txt文件里 dtoverlay=WS_11_9inchDSI320x1480_Screen

改为: dtoverlay=WS_11_9inchDSI320x1480_Screen,Backlight=x #( x为0-255,0为最暗,255为最亮,默认为最亮)

如:dtoverlay=WS_11_9inchDSI320x1480_Screen,Backlight=255

在reboot重启即可。

方法二

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

cd 11.9inch-DSI-LCD
cd brightness
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
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_7inchDSI1024x600_MAIN.sh
sudo reboot
#对于4inch DSI LCD使用:
cd 4inch-DSI-LCD
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_4inchDSI480x800_MAIN.sh
sudo reboot
#对于2.8inch DSI LCD使用:
cd 2.8inch-DSI-LCD
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_2_8inchDSI480x640_MAIN.sh
sudo reboot
#对于7.9inch DSI LCD使用:
cd 7.9inch-DSI-LCD
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_7_9inchDSI400x1280_MAIN.sh
sudo reboot
#对于11.9inch DSI LCD使用:
cd 11.9inch-DSI-LCD
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_11_9inchDSI320x1480_MAIN.sh
sudo reboot

安装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
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_7inchDSI1024x600_MAIN.sh
sudo reboot
#对于4inch DSI LCD使用:
cd 4inch-DSI-LCD
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_4inchDSI480x800_MAIN.sh
sudo reboot
#对于2.8inch DSI LCD使用:
cd 2.8inch-DSI-LCD
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_2_8inchDSI480x640_MAIN.sh
sudo reboot
cd 7.9inch-DSI-LCD
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_7_9inchDSI400x1280_MAIN.sh
sudo reboot
#对于11.9inch DSI LCD使用:
cd 11.9inch-DSI-LCD
cd xxx/xxx #使用不同内核,不同接口,需要进入不同目录
sudo ./WS_11_9inchDSI320x1480_MAIN.sh
sudo reboot

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