玩转树莓派屏幕之一:LCD屏幕显示
- 树莓派
- 9天前
- 64热度
- 0评论
最近在淘宝上购买的3.5寸 MHS屏幕,准备用于展示树莓派运行时的状态。但是随着不断的对树莓派屏幕折腾,坑越踩越多,涉及的内容也是越来越多,需要记录一下防止自己忘记了。
屏幕介绍
屏幕图片:
产品介绍
- 物理分辨率320×480,带电阻式触摸控制
- 支持125MHz SPI信号输入,显示稳定无花屏无闪烁
- 配合树莓派使用刷新率约50FPS,播放视频玩游戏无压力
- 支持FBCP软件驱动,支持双屏显示,可通过软件调整分辨率进行缩放
- 大小与树莓派相同,完美兼容并可直接插入任何版本树莓派(Raspberry Pi ZeroW,A, A+, B, B+, 2B, 3B, 3B+,4B)
- 支持Raspbian/Ubuntu/Kali/Retropie系统,提供驱动和镜像
- 本产品通过CE、RoHS认证
引脚说明:
屏幕引脚:
树莓派引脚图:
屏幕引脚与树莓派对应关系:
引脚号 | 标识 | 描述 | 树莓派引脚 |
---|---|---|---|
1, 17 | 3.3V | 电源正(3.3V电源输入) | |
2, 4 | 5V | 电源正(5V电源输入) | |
3, 5, 7, 8, 10, 12, 13, 15, 16 | NC | NC悬空 | |
6, 9, 14, 20, 25 | GND | 电源地 | |
11 | TP_IRQ | 触摸面板中断,检测到触摸面板有按下则为低电平 | GPIO17 |
18 | LCD_RS | 指令/数据 寄存器选择,低电平为指令,高电平为数据 | GPIO24 |
19 | LCD_SI / TP_SI | LCD显示/ 触摸面板的SPI数据输入 | SPI0 MOSI |
21 | TP_SO | 触摸面板的SPI数据输出 | SPI0 MISO |
22 | RST | 复位信号,低电平复位 | GPIO 25 |
23 | LCD_SCK / TP_SCK | LCD显示/ 触摸面板的SPI时钟信号 | SPI0 SCLK |
24 | LCD_CS | LCD片选信号,低电平使能 | SPI0 CS0 |
26 | TP_CS | 触摸面板片选信号,低电平使能 | SPI0 CS1 |
屏幕驱动安装
有两种方式,一种是使用卖家直接提供的已经安装好驱动的镜像,另外是自己根据驱动进行安装。
这里仅展示驱动安装方式,安装好的驱动的镜像可以按照MHS-3.5inch RPi Display中的内容进行查看。
sudo rm -rf LCD-show
git clone https://github.com/goodtft/LCD-show.git
chmod -R 755 LCD-show
cd LCD-show/
sudo ./MHS35-show
安装过程中需要进行联网,并且需要安装依赖,请提前更换国内镜像源和保持网络问题。安装完成之后会自动进行重启,重启之后就可以在屏幕上看到输出了。
校准触摸屏
方式一:如果有安装桌面使用以下方法:
校准触摸屏以及调整角度可以在MHS-3.5inch RPi Display中找到解决方法。
方式二:没有安装桌面:
1、安装依赖
sudo apt update
sudo apt install libts-bin evtest
2、测试event_test测试哪个是触摸屏:
sudo evtest
结果中显示/dev/input/event0为触摸屏
root@raspberrypi:~# evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: ADS7846 Touchscreen
3、设置环境变量:
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/aarch64-linux-gnu/ts0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
💡 注意:TSLIB_PLUGINDIR=/usr/lib/aarch64-linux-gnu/ts0 路径可能因系统版本略有不同,可用 find /usr -name "ts" -type d 查找。
4、测试:
sudo ts_calibrate
此时屏幕(即使无桌面)会显示 五个十字光标,用触摸笔或手指依次点击即可完成校准。
校准数据会保存到 /etc/pointercal。
依次点击完后显示:
root@raspberrypi:~# ts_calibrate
xres = 480, yres = 320
Took 21 samples...
Top left : X = 822 Y = 3594
Took 18 samples...
Top right : X = 779 Y = 642
Took 21 samples...
Bot right : X = 3315 Y = 626
Took 19 samples...
Bot left : X = 3347 Y = 3567
Took 12 samples...
Center : X = 2077 Y = 2117
514.244507 -0.001093 -0.128951
-17.431484 0.086928 -0.001107
Calibration constants: 33701528 -71 -8450 -1142389 5696 -72 65536
5、测试:(先设置环境变量才能校准,否则报错)
ts_test