树莓派2.8inch DPI LCD显示屏使用教程

相关资料

软件


产品特点

  • 2.8寸全贴合IPS电容触摸屏,硬件分辨率为480×640
  • 基于Raspberry Pi 40pin GPIO接口设计
  • 通过Raspberry Pi的DPI666接口驱动LCD,刷新率可达60Hz
  • 通过Raspberry Pi的I2C接口驱动电容触摸,5点触控,钢化玻璃面板,硬度达6H
  • 支持Raspbian和Kali操作系统

搭配树莓派使用

硬件连接

请按下面操作将显示屏缓慢安装到树莓派的40PIN GPIO接口上。

软件设置

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

用于Raspberry Pi OS Bullseye分支

请在树莓派官网下载最新版本的镜像。

1. 将压缩文件下载到PC上,并解压得到img文件。
2. TF卡连接到PC,使用SDFormatter软件格式化TF卡。
3. 打开Win32DiskImager软件,选择第1步准备的系统镜像,点击write烧写系统镜像。
4. 烧写完成后,打开TF卡根目录的config.txt文件,在config.txt末端加入以下代码并保存:
dtoverlay=vc4-kms-v3d
dtoverlay=vc4-kms-DPI-28inch
dtoverlay=waveshare-28dpi-3b-4b   
dtoverlay=waveshare-28dpi-3b
dtoverlay=waveshare-28dpi-4b
5. 下载2.8inch DPI LCD DTBO文件并解压复制到overlays目录(/boot/overlays/)
6 保存并安全弹出TF卡,将TF卡插入树莓派。
7 给树莓派上电,正常等待约三十秒后可正常显示。

用于Raspberry Pi OS Buster分支和Ubuntu系统

1. 打开TF卡根目录的config.txt文件,在config.txt最后加入以下代码,保存并安全弹出TF卡。
gpio=0-9=a2
gpio=12-17=a2
gpio=20-25=a2
dtoverlay=dpi24
enable_dpi_lcd=1
display_default_lcd=1
extra_transpose_buffer=2
dpi_group=2
dpi_mode=87
dpi_output_format=0x7F216
hdmi_timings=480 0 26 16 10 640 0 25 10 15 0 0 0 60 0 32000000 1
dtoverlay=waveshare-28dpi-3b-4b
dtoverlay=waveshare-28dpi-3b
dtoverlay=waveshare-28dpi-4b

注:如果是Raspberry Pi 4,还需要把dtoverlay=vc4-fkms-V3D注释掉。

2. 下载2.8inch DPI LCD DTBO文件并解压复制到overlays目录(/boot/overlays/)
3. 保存并安全弹出TF卡,将TF卡插入树莓派。
4. 给树莓派上电,正常等待约三十秒后可正常显示。

Raspberry Pi OS分支介绍

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

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

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

镜像下载地址

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

更详细信息可查看:

树莓派分支详细信息

Buster版本说明

Bullseye版本说明

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

Raspberry Pi OS和Kali显示旋转

先检查使用的系统是否有加载KMS或FKMS驱动。

查看方法:在/boot/config.txt中,看对应的主板是否有打开了dtoverlay=vc4-kms-v3d或dtoverlay=vc4-fkms-v3d。

有加载KMS或FKMS驱动

使用以下命令进行显示旋转:

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
#在autostart文件末端输入对应显示旋转角度的指令,重启后生效
#0: 旋转0度; 1:旋转270度;2: 旋转180度; 3: 旋转90度
xrandr -o 1
没有加载KMS或FKMS驱动

使用以下命令进行显示旋转:

sudo nano /boot/config.txt
#在config.txt文件末端输入对应显示旋转角度的指令,重启后生效
#0: 旋转0度; 1:旋转90度;2: 旋转180度; 3: 旋转270度
display_rotate=3

触摸旋转

在进行显示旋转后,由于触摸并没有随着显示角度做出更改,导致触摸位置不对。所以需要对触摸做出修改。

1. 安装libinput

sudo apt-get install xserver-xorg-input-libinput
如果你安装的是Ubuntu系统。安装指令为
sudo apt install xserver-xorg-input-synaptics

2. 在/etc/X11/下创建xorg.conf.d目录 (如果该目录已存在,这直接进行第3步)

sudo mkdir /etc/X11/xorg.conf.d

3. 复制40-libinput-conf 文件到刚刚创建的目录下

sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/

4. 编辑该文件

sudo nano /etc/X11/xorg.conf.d/40-libinput.conf 

找到 touchscreen的部分,在里面添加以下语句,然后保存即可

Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"

类似下图位置:

5. 重启树莓派

sudo reboot

完成以上步骤即可进行90度旋转。

注:
90 度旋转: Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"

180度旋转: Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"

270度旋转: Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"

其它操作

设置屏幕常亮

有些用户希望显示时,不受屏幕保护功能影响,可以通过如下设置。将屏幕保护功能关闭。
打开 lightdm.conf

sudo nano /etc/lightdm/lightdm.conf

修改 lightdm.conf 找到[SeatDefaults]段下的"xserver-command",取消注释,修改为如下:

#xserver-command=X

修改为

xserver-command=X -s 0 -dpms
  • -s # –设置屏幕保护不启用
  • dpms 关闭电源节能管理

重启

sudo reboot

通过PWM控制背光亮度

对于Pi4,需要先更新wiringPi版本,操作方法如下(对于3B+及更早的版本,则无需更新):

wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

更新wiringPi成功后,可通过以下命令控制背光亮度。

gpio -g mode 18 pwm      #占用管脚为PWM管脚
gpio pwmc 100   
gpio -g pwm 18 1023      #最亮
gpio -g pwm 18 850         #最暗(对于Pi4, 850最暗;对于Pi3,  680最暗)
gpio -g mode 18 out      #释放为输出

设置屏幕的关闭和开启

用户可以通过以下命令设置屏幕的关闭和开启。

注意:需要PWM引脚释放为输出才可以控制。

sudo echo 1 | sudo tee /sys/class/backlight/rpi_backlight/bl_power
sudo echo 0 | sudo tee /sys/class/backlight/rpi_backlight/bl_power

接口定义

以下标识为“NC”的引脚表示触摸屏没有占用该引脚,用户可用于其它应用。

引脚号标识描述
1NC悬空
25V电源正(5V电源)
3VSYNC垂直同步
45V电源正(5V电源)
5HSYNC水平同步
6GND电源地
7B2RGB信号线
8G4RGB信号线
9GND电源地
10G5RGB信号线
11G7RGB信号线
12PWM背光控制
13TP_INT触摸面板的中断
14GND电源地
15R4RGB信号线
16R5RGB信号线
17NC悬空
18R6RGB信号线
19TP_SDA触摸面板的I2C SDA
20GND电源地
21B7RGB信号线
22R7RGB信号线
23TP_SCL触摸面板的I2C SCL
24B6RGB信号线
25GND电源地
26B5RGB信号线
27LCD_CLKLCD时钟
28DELCD数据使能
29B3RGB信号线
30GND电源地
31B4RGB信号线
32G2RGB信号线
33G3RGB信号线
34GND电源地
35NC悬空
36G6RGB信号线
37NC悬空
38R2RGB信号线
39GND电源地
40R3RGB信号线

树莓派长按右键设置

树莓派长按右键软件安装

测试环境:2022-04-04-raspios-bullseye-armhf 32位系统
支持型号:支持微雪电子DSI LCD、DPI LCD和HDMI LCD电容触摸屏系列

wget https://www.waveshare.net/w/upload/1/18/Evdev-right-click-emulation.zip
unzip Evdev-right-click-emulation.zip
cd evdev-right-click-emulation
sudo apt install build-essential libevdev2 libevdev-dev -y
sudo cp 'out/evdev-rce' '/usr/local/bin/'
sudo chmod +x '/usr/local/bin/evdev-rce'

输入命令

sudo evdev-rce 

运行之后即可触摸长按实现右键功能

设置 pi用户可以执行

sudo usermod -G 'input' -a pi
echo 'uinput' | sudo tee -a /etc/modules
sudo nano  /etc/udev/rules.d/99-uinput.rules

在99-uinput.rules文件中添加

KERNEL=="uinput", MODE="0660", GROUP="input"

保存,再在终端运行

sudo udevadm control --reload-rules
sudo udevadm trigger

然后重启

sudo reboot

重启后运行(此时不需要sudo)

evdev-rce 

运行之后即可触摸长按实现右键功能

设置开机启动

在终端输入

sudo mkdir ~/.config/autostart
sudo nano ~/.config/autostart/right_click.desktop

在right_click.desktop增加如下

[Desktop Entry]
Version=1.0
Type=Application
Name=evdev-rce
GenericName=Enable long-press-to-right-click gesture
Exec=env LONG_CLICK_INTERVAL=1000 LONG_CLICK_FUZZ=200  /usr/local/bin/evdev-rce
Terminal=true
StartupNotify=false

如果要修改灵敏度则可以修改 LONG_CLICK_INTERVAL=1000 LONG_CLICK_FUZZ=200 这两者参数大小,.