时隔多年又玩起了树莓派,稍微记录下折腾的过程。
起因
朋友的咖啡店里想用屏幕来显示菜单,相比纸质菜单可以比较方便的调整内容,本来他们准备用手机 Type C
连接屏幕,但这个方案实操了一下感觉非常不优雅。
思考了下需求只是简单的显示图片就可以了,想起了白嫖来在寝室里闲置很久了的树莓派,在GitHub上发现了 xplay 这个项目,附gitee地址。简直是为这个需求量身打造,贴张作者的宣传图:
系统安装
没想到现在树莓派装系统变得比之前更傻瓜了,比用微软官方工具装Windows还简单,打开官方的安装工具后点四下鼠标就可以坐等系统烧录了。
烧录到内存卡
还是大概写一下安装系统的步骤:
打开树莓派官网下载新推出的镜像烧录工具的
.msi
文件,将其安装到自己的电脑;我这里是在Windows上安装的,Surface读卡器yyds!
如果你使用的是 macOS 或 Linux,相信你自己也可以搞定,实在不会问谷歌问百度嘛。
傻瓜式安装:
选择系统版本 => 第一个推荐的版本;
选择存储器 => 内存卡;
点击
WRITE
写入;开始安装;
安装完成后即可将内存卡装回树莓派开机。
初始化设置
设置使用的语言、时区、键盘;
这里我的选择是:
[Chinese] [Shanghai] [US Keyboard]
为默认账户
pi
设置新的密码;若屏幕存在黑边,则选中对应选项卡;
检查更新并重启。
安装xplay
安装过程基本参考原作者的 Readme
首先开启树莓派的ssh服务,因为手边有屏幕,所以在图形化界面直接开启
ssh
和vnc
;偷懒直接用 Git Bash 连
ssh
了,按照图片指示连接即可; ① 输入用户名及树莓派的IP地址 ② 首次连接需要输入yes
进行确认 ③ 输入用户名对应密码首先设置一下树莓派中的
root
账户: ①sudo passwd root
设置新的root
密码; ②sudo passwd --unlock root
解锁root
用户; ③su root
测试能否进入root
用户;将安装文件克隆到本地;
注意:请您在(ROOT)用户下进行安装, 安装完成后请重启您的树莓派后再运行 ...
因为最近国内连GitHub网络经常波动,所以我个人是从gitee上克隆的。
1
2
3$ git clone https://github.com/nulijiabei/xplay.git -b v1.0.20.v20210117 # (最新发布版请查看标签)
# 或
$ git clone https://gitee.com/nljb/xplay.git -b v1.0.20.v20210117 # (最新发布版请查看标签)选择版本安装
安装 框架 硬件 系统 备注 buster/rpi_omx_install.sh OMX Raspberry Pi 023 Raspberry Pi OS with desktop 桌面与命令行均可运行 buster-lite/rpi_omx_install.sh OMX Raspberry Pi 023 Raspberry Pi OS with Lite 仅命令行可运行 buster/rpi4_drm_install.sh DRM Raspberry Pi 4 Raspberry Pi OS with desktop 仅命令行可运行 buster/rpi4_x11_install.sh X11 Raspberry Pi 4 Raspberry Pi OS with desktop 仅桌面可运行(可窗口化) 说明:Raspberry Pi 4 需要在 with desktop 系统下运行
在刚刚克隆的目录执行下列操作:
1
2
3$ cd xplay/
$ cd buster/ 或 cd buster-lite/
$ sh -x rpi_omx_install.sh 或 sh -x rpi4_drm_install.sh 或 sh -x rpi4_x11_install.sh这里我的机器版本是2B,根据表格我选择安装
buster/rpi_omx_install.sh
。等待安装完成,出现如下信息即表示安装成功。
显示测试
接下来进行播放测试,首先尝试官方的测试视频;
使用 cp
命令,将视频复制到想要的路径;
1 | $ cp /root/xplay/autotest/yiyezi.mp4 /root/automedia/yiyezi.mp4 |
我个人复制了整个文件夹;
1 | # 要复制到的文件夹还不存在 |
播放测试文件
使用 -playing
命令播放媒体文件:
1 | $ /usr/bin/xplay -playing /root/automedia/yiyezi.mp4 |
执行后连接的屏幕显示效果如下:
不知道这测试视频为什么是面膜,打的广告吗……
图片测试
使用 scp
命令复制图片到指定路径;
使用 -welcome
指令显示图片;
1 | $ /usr/bin/xplay -welcome /home/pi/AetteMenu/menu_example.jpg |
不清楚为什么用 -welcome
才能显示图片,而 -playing
不行。
运行参数
参数 | 默认 | 说明 |
---|---|---|
-R x,y,width,height | 0,0,1920,1080 | 分辨率设置 |
-fps n | 30 | 帧率设置 |
-sudec | 无 | 超级解码模式(多线程解码) |
-noloop | 无 | 视频在播放到结尾时是否停留在最后一帧 |
-mute | 无 | 静音设置 |
-nosync | 无 | 关闭全部同步 |
-nasync | 无 | 关闭音频同步(统一时钟同步) |
-version | 无 | 版本号 |
-cpuid | 无 | CPUID |
-playing | 无 | 播放测试 |
-welcome | 无 | 自定义欢迎页 |
设置开机自动播放的脚本
编辑脚本
在想要的位置使用新建脚本文件;
1
$ sudo nano autoPlay.sh
进入nano编辑器编辑脚本内容;
赋予脚本文件可执行权限
1
$ sudo chmod 777 /home/pi/AetteMenu/autoPlay.sh
chmod 777 /home/pi/AetteMenu/autoPlay.sh 运行命令后,autoPlay.sh的权限就被修改为777(可读可写可执行)。
设置开机自动运行
打开
rc.local
文件:1
$ sudo nano /etc/rc.local
在
exit 0
前面添加如下代码:1
$ bash /home/pi/my_script.sh
重启尝试:
1
$ reboot
目前存在的问题
root用户:
pi用户:
-playing
只能播放视频
-welcome
才能显示图片
树莓派自动连接WiFi
淘宝随便买了一个免驱的USB无线网卡,毕竟这个场景不需要速度,方便就好。
因为网卡还没邮到,先在树莓派中预设置一下,希望到了之后可以即插即用。
首先在树莓派中配置WiFi的名称及密码等信息:
1
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
在打开的文件中写入如下信息:
1
2
3
4
5
6
7
8ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="name"
psk="password"
key_mgmt=WPA-PSK
}设置固定IP:
1
$ sudo nano /etc/dhcpcd.conf
在打开的文件中写入如下信息:
1
2
3
4
5
6
7
8
9# wire:
interface eth0
static ip_address=192.168.2.100/24
static routers=192.168.2.1
# wireless:
interface wlan0
static ip_address=192.168.2.101/24
static routers=192.168.2.1没有配置默认DNS,只要一个局域网功能,也无所谓了。
静待无线网卡。
更换菜单的方案
将图片置于U盘内,直接更换U盘中的文件(废弃)
遇到了蛮多问题,发现这个方案并不是很稳定,故选用FTP来实现。
将图片置于树莓派内,使用ftp更换
使用FIleZilla的图形化界面FTP简单易懂,只是可能树莓派2B没有WLAN模块不是很方便。
安装vsftpd
安装vsftpd服务器 (约400KB)
1
$ sudo apt-get install vsftpd
启动ftp服务
1
$ sudo service vsftpd start
编辑vsftdp的配置文件
1
$ sudo nano /etc/vsftpd.conf
编辑以下项:
1
2
3
4
5
6
7
8
9
10
11anonymous_enable=NO
# 表示:不允许匿名访问
local_enable=YES
# 设定本地用户可以访问
write_enable=YES
# 设定可以进行写操作
local_umask=000
# 设定上传后文件的权限掩码
使用FileZilla
FileZilla安装很简单,没什么好说的。
装好之后打开直接使用,输入树莓派IP地址,用户名密码,FTP默认端口号为21,未更改则不需要特别设置,连接后传输想要的文件即可。