树莓派游戏机Gamepi20 使用教程

产品特点

  • 支持Raspberry Pi Zero/Zero W/Zero WH//Zero 2 W/Zero 2 WH
  • 采用2寸IPS屏,320×240分辨率,画质好,色彩鲜明,可视角度大
  • 支持RetroPie游戏系统和Recalbox游戏系统,配套有上千款经典游戏,只要TF卡够大,还能任性添加喜欢的游戏
  • 带充电电路,内置14500锂电池供电,方便携带,随时游戏
  • 板载电量指示灯,方便查看游戏机的电量
  • 板载喇叭和耳机接口,听听那熟悉的BGM

快速入门

组装说明

硬件连接

  1. 将Raspberry Pi Zero/Raspberry Pi Zero W插到GamePi20扩展板中,并装到金属底盒。
  2. 装上导电胶垫和按键。最后盖上控制面板固定

您可以通过两种方法使用 GamePi20游戏机:方法一,使用预装驱动的镜像。方法二,给RetroPie系统安装驱动。

新手或者首次安装推荐安装预装驱动的镜像,镜像已做了大量优化,添加游戏ROM,直接可玩。

方法一,使用预装驱动的镜像

1) 这里提供预装驱动的镜像,解压并把镜像写入到TF卡中(打开Win32DiskImager.exe软件,选择.img文件,点击「write」烧写镜像)。

2) 烧写完成后,把卡插入树莓派上,并组装好游戏机。把开关从OFF拨到ON,正常LCD的背光会亮起,系统开始启动。由于Raspberry Pi 1/Zero/Zero W性能比较差,开机可能比较慢,需耐心等待。

  1. 如果电池电量不足,将无法启动系统,此时可以通过micro USB线,连接5V 2A电源适配器到Power接口(开关旁边的Micro USB接口),给GamePi20充电。充电时电量灯会闪烁。(支持边充边玩,但注意,在接上和断开电源适配器时,树莓派系统都会重新启动,玩游戏时注意要保存进度)
  2. 如果电池有充足的电量,则GamePi15的LED会提示当前电量,并启动系统。

3) 一般操作

  • 对于retropie:
  1. 进入到系统后,可以通过左边的方向键选择模拟器。这里选择Nintendo模拟器,按“A”确定。
  2. 可以看到里面有很多游戏。选择你想玩的游戏,按“A”确定。等过场动画结束后,可以通过按"A"确定或按"Start"开始游戏。
  3. 如果想退出当前游戏,可以同时按“Start"+"Select"。
  4. 如果想调整音量大小,可以在非游戏状态下,按"Start",选择“SOUND SETTINGS”,按"A"确定,通过左右方向键调节“SYSTEM VOLUME”,按"B"退出即可。
  • 对于recalbox:
  1. 进入到系统后,可以通过左边的方向键选择模拟器。这里选择相应的模拟器,按“B”确定。
  2. 可以看到里面有很多游戏。选择你想玩的游戏,按“B”确定。等过场动画结束后,可以通过按"A"确定或按"Start"开始游戏。
  3. 如果想退出当前游戏,可以同时按“Start"+"Select"。
  4. 如果想调整音量大小,可以在非游戏状态下,按"Start",选择“SOUND SETTINGS”,按"B"确定,通过左右方向键调节“SYSTEM VOLUME”,按"A"退出即可。

方法二,安装驱动

在retropie上安装驱动

请在retropie官网下载最新版本的镜像(根据你的树莓派,选择对应的版本)。


1) 将镜像文件下载到电脑上,并解压得到.img文件。

2) 将TF卡连接到电脑,打开Win32DiskImager.exe软件,选择第1步准备的.img文件,点击write烧写镜像。

3) 烧写完成后,将TF卡和USB键盘并联网(需要ETH/USB HUB HAT)和HDMI显示器接入到树莓派上,把开关从OFF拨到ON,启动树莓派,进入系统后按键盘的F4,进入终端。(也可通过网络登录到终端控制界面)

4) 执行以下操作设置屏幕显示:

  • 从github下载程序
  1. sudo apt-get install cmake
  2. cd ~
  3. git clone https://github.com/juj/fbcp-ili9341.git


  • 修改源文件,使程序支持当前屏幕分辨率
  1. cd fbcp-ili9341
  2. nano st7735r.h
  • 找到如下代码,将DISPLAY_NATIVE_HEIGHT 的值由240改为320
  1. #if defined(ST7789) || defined(ST7789VW)
  2. #define DISPLAY_NATIVE_WIDTH 240
  3. #define DISPLAY_NATIVE_HEIGHT 320 //原来的值为240,改为320
  4. #elif defined(ST7735R)
  • 编译程序并运行。
  1. mkdir build
  2. cd build
  3. cmake -DSPI_BUS_CLOCK_DIVISOR=20 -DWAVESHARE_ST7789VW_HAT=ON -DDMA_TX_CHANNEL=5 -DDMA_RX_CHANNEL=1 -DBACKLIGHT_CONTROL=ON -DSTATISTICS=0 ..
  4. make -j
  5. sudo ./fbcp-ili9341

正常情况运行程序后屏幕将显示图像,可能分辨率没有设置,显示的图像不完全准确。

  • 注意:如果出现类似下文提示时,表示DMA通道已被占用,需要自行修改DMA通道重新编译
  1. bcm_host_get_peripheral_address: 0xfe000000, bcm_host_get_peripheral_size: 25165824, bcm_host_get_sdram_address: 0xc0000000
  2. BCM core speed: current: 300000000hz, max turbo: 500000000hz. SPI CDIV: 10, SPI max frequency: 50000000hz
  3. Allocated DMA channel 7
  4. Allocated DMA channel 1
  5. Enabling DMA channels Tx:7 and Rx:1
  6. DMA hardware register file is at ptr: 0xb52ff000, using DMA TX channel: 7 and DMA RX channel: 1
  7. DMA hardware TX channel register file is at ptr: 0xb52ff700, DMA RX channel register file is at ptr: 0xb52ff100
  8. DMA RX channel 1 was assigned another peripheral map 1!
  9. DMA channel 0 has peripheral map 0 (is lite channel: 0, currently active: 0, current control block: (nil))
  10. DMA channel 1 has peripheral map 1 (is lite channel: 0, currently active: 1, current control block: 0xff0ea5a0)
  11. DMA channel 2 has peripheral map 11 (is lite channel: 0, currently active: 1, current control block: (nil))
  12. DMA channel 3 has peripheral map 10 (is lite channel: 0, currently active: 1, current control block: (nil))
  13. DMA channel 4 has peripheral map 0 (is lite channel: 0, currently active: 0, current control block: (nil))
  14. DMA channel 5 has peripheral map 6 (is lite channel: 0, currently active: 0, current control block: (nil))
  15. DMA channel 6 has peripheral map 7 (is lite channel: 0, currently active: 0, current control block: (nil))
  16. DMA channel 7 has peripheral map 0 (is lite channel: 1, currently active: 0, current control block: (nil))
  17. DMA channel 8 has peripheral map 0 (is lite channel: 1, currently active: 0, current control block: (nil))
  18. DMA channel 9 has peripheral map 0 (is lite channel: 1, currently active: 0, current control block: (nil))
  19. DMA channel 10 has peripheral map 0 (is lite channel: 1, currently active: 1, current control block: (nil))
  20. DMA channel 11 has peripheral map 13 (is lite channel: 0, currently active: 1, current control block: (nil))
  21. DMA channel 12 has peripheral map 13 (is lite channel: 0, currently active: 0, current control block: (nil))
  22. DMA channel 13 has peripheral map 13 (is lite channel: 0, currently active: 0, current control block: (nil))
  23. DMA channel 14 has peripheral map 13 (is lite channel: 0, currently active: 0, current control block: (nil))
  24. DMA RX channel was assigned another peripheral map!
  • 设置开机启动
  1. sudo cp ~/fbcp-ili9341/build/fbcp-ili9341 /usr/local/bin/fbcp
  2. sudo nano /etc/rc.local

设置开机启动。在 exit 0 前面添加 fbcp&。注意一定要添加"&" 后台运行,否则可能会出现系统不能启动的情况。



最后在/boot/config.txt 文件中设置用户界面显示尺寸。

  1. sudo nano /boot/config.txt
  2. #添加
  3. hdmi_force_hotplug=1
  4. hdmi_cvt=640 480 60 1 0 0 0
  5. hdmi_group=2
  6. hdmi_mode=1
  7. hdmi_mode=87
  8. display_rotate=2
  9. dtoverlay=pwm

这里是设置系统界面分辨率,和设置PWM音频输出。
启动树莓派后可以发现屏幕已经出现用户界面了。

  • 注意:如果发现没有声音输出还需要修改系统默认声卡

打开配置文件,并将默认的声卡改为声卡1.

  1. sudo vi /usr/share/alsa/alsa.conf

找到下面两行并修改为应对的声卡。

  1. defaults.ctl.card 1
  2. defaults.pcm.card 1



5) 安装按键摇杆操作,执行以下操作:

  1. git clone https://github.com/waveshare/mk_arcade_joystick_rpi.git
  2. cd mk_arcade_joystick_rpi
  3. sudo ./install.sh 3

重启后,进入系统。

6) 长按"A"键(其它键也可以),会进入到按键映射界面。

按说明分别按对应的键,进行映射。长按“A”键(其它键也可以),可以跳过多余按键的映射。

所有按键映射完成后

  1. 按"A"保存配置并配置界面。
  2. 按"B"或"Start"键放弃配置并退出配置界面。

之后就可以正常玩游戏了。

在recalbox上安装驱动

请在recalbox官网下载最新版本的镜像(根据你的树莓派,选择对应的版本)。


1) 将镜像文件下载到电脑上,并解压得到.img文件。

2) 将TF卡连接到电脑,打开Win32DiskImager.exe软件,选择第1步准备的.img文件,点击write烧写镜像。

3) 将TF卡和USB键盘并联网(需要ETH/USB HUB HAT)和HDMI显示器接入到树莓派上,把开关从OFF拨到ON,启动树莓派,进入系统后按键盘的F4,在按Alt+F2,输入帐号:root,密码:recalboxroot,进入终端。(也可通过网络登录到终端控制界面)

4) 执行以下操作设置屏幕显示:

  1. mount -o remount, rw /boot
  2. mount -o remount, rw /

执行这两条命令设置文件系统可写。

  • 打开编辑配置文件,启用一些模块
  1. nano /etc/modules.conf
  2. #添加如下:
  3. flexfb
  4. fbtft_device

在文件后面添加如下两个语句,命令实际是启动 fbtft 模块。
boot/config.txt添加下面语句,开启SPI

  1. dtparam=spi=on
  • 新建另外一个配置文件,配置 fbtft
  1. nano /etc/modprobe.d/fbtft.conf
  • 将下面语句添加到新建的空白文件中
  1. options fbtft_device name=flexfb gpios=reset:27,dc:25,cs:8,led:24 speed=96000000 bgr=1 fps=60 custom=1 height=240 width=320
  2. options flexfb setaddrwin=0 width=320 height=240 init=-1,0x11,-2,120,-1,0x36,0xA0,-1,0x3A,0x05,-1,0x21,-1,0x2A,0x00,0x01,0x00,0x3F,-1,0x2B,0x00,0x00,0x00,0xEF,-1,0xB2,0x0C,0x0C,0x00,0x33,0x33,-1,0xB7,0x35,-1,0xBB,0x1F,-1,0xC0,0x2C,-1,0xC2,0x01,-1,0xC3,0x12,-1,0xC4,0x20,-1,0xC6,0x0F,-1,0xD0,0xA4,0xA1,-1,0xE0,0xD0,0x08,0x11,0x08,0x0C,0x15,0x39,0x33,0x50,0x36,0x13,0x14,0x29,0x2D,-1,0xE1,0xD0,0x08,0x10,0x08,0x06,0x06,0x39,0x44,0x51,0x0B,0x16,0x14,0x2F,0x31,-1,0x29,-3

这里需要注意一下,这里是以options开头的两行语句。
gpios=reset:27,dc:25,cs:8,led:24 这个设置屏幕对应的引脚
height=240 width=320 设置屏幕分辨率大小。 

  • 重启一下树莓派
  1. reboot

重启后,正常进入系统。后可以发现/dev/fb1设备。 添加开机启动fbcp

  1. nano /etc/init.d/rcS

在文件最后面添加

  1. fbcp &

注意一定要添加"&" 后台运行,否则可能会出现系统不能启动的情况。

修改recalbox.conf (/recalbox/share/system/recalbox.conf)配置文件,注意有时候保存了还是原来的状态,不修改这个进去游戏会没有显示

  1. #global.videomode=CEA 4 HDMI
  2. global.videomode=default
  3.  
  4. #global.ratio=auto
  5. global.ratio=4/3

最后在/boot/config.txt 文件中设置用户界面显示尺寸。

  1. sudo nano /boot/config.txt
  2. #添加
  3. hdmi_force_hotplug=1
  4. hdmi_cvt=640 480 60 1 0 0 0
  5. hdmi_group=2
  6. hdmi_mode=1
  7. hdmi_mode=87
  8. dtoverlay=pwm

这里是设置系统界面分辨率,和设置PWM音频输出。
启动树莓派后可以发现屏幕已经出现用户界面了。

5) 设置GPIO按键 打开recalbox.conf 配置文件,找到如下部分,并修改为如下设置。

  1. # ------------ D2 - GPIO Controllers ------------ #
  2. ## GPIO Controllers
  3. ## enable controllers on GPIO with mk_arcarde_joystick_rpi (0,1)
  4. controllers.gpio.enabled=1
  5. ## mk_gpio arguments, map=1 for one controller, map=1,2 for 2 (map=1,map=1,2)
  6. controllers.gpio.args=map=4 gpio=12,20,21,13,26,16,23,4,6,17,22,5,-1

添加新游戏

本身我们镜像默认提供的游戏可能不是你感兴趣的,这时需要自行添加游戏。

注:这里仅说明retropie的添加方式,recalbox类似。

1) 由于大部分游戏容量很大,在添加游戏前,我们先进行文件系统扩展。

在配置界面选择RASPI-CONFIG,回车


选择7 Advanced Options -> A1 Expand Filesystem,回车-》Finish。(这个过程需要接上USB键盘进行操作)


选择Ok,对系统进行重启。重启后,文件系统扩展完成。

2) 准备好相应的游戏ROMs。

这里推荐一个非常酷的网站:http://coolrom.com/

你可以通过PC机,在里面下载各种游戏ROMs。比如我们要玩Sony Playstation游戏,可以选择


在里面找到你想玩的游戏,进行下载即可。例如:http://coolrom.com/roms/psx/39719/Tekken_3.php

点击此处进行下载。


把下载好的文件解压,得到以下的ROMs


3) 更新ROMs

网线接到树莓派上(树莓派需要和你的PC机在同一个局域网)。在RetroPie列表下找到SHOW IP,按"A",可以查到当前树莓派的IP。如下图:


在你的PC机上,打开相应的IP,如下图:


把ROMs复制到相关的目录即可,如下图:


之后在模拟器选择界面,按"Start"->QUIT->RESTART EMULATIONSTATION,按"A"确定。重启模拟器之后即可看到新加入的游戏。

那么就开启你的复古游戏机之旅吧!

WIFI联网

在retropie和raspbian系统上设置WIFI联网

  • 将以下文件下载,解压出wpa_supplicant.conf文件,打开wpa_supplicant.conf文件,修改WIFI的SSID和密码,保存文件。

wpa_supplicant.zip:

Wpa_supplicant.zip ‎
  • 将修改后的wpa_supplicant.conf文件放到boot目录下,重启树莓派即可。(把TF卡通过读卡器接到PC机上,打开的根目录即为boot目录)

在recalbox系统上设置WIFI联网

  • 按START进入主菜单
  • 选择网络设置
  • 将“启用WIFI”更改为“开”
  • 选择“ WIFI SSID”,然后输入您的网络名称
  • 选择“ WIFI 密码”,然后输入您的网络密码


  • WiFi连接后,RecalBox将立即检查系统更新:


接口定义

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

引脚号标识描述
13.3V电源正(3.3V电源输入)
25V电源正(5V电源输入)
3NCNC
45V电源正(5V电源输入)
5NCNC
6GND电源地
7BBCM=4,WPI=7
8NCNC
9GND电源地
10NCNC
11YBCM=17,WPI=0
12耳机接口BCM=18,WPI=1
13LCD_RESETBCM=27,WPI=2
14GND电源地
15XBCM=22,WPI=3
16ABCM=23,WPI=4
173.3V电源正(3.3V电源输入)
18LCD_LEDBCM=24,WPI=5
19LCD_MOSIBCM=10,WPI=12
20GND电源地
21NCNC
22LCD_D/CBCM=25,WPI=6
23LCD_SCKBCM=11,WPI=14
24LCD_CSBCM=8,WPI=10
25GND电源地
26NCNC
27NCNC
28NCNC
29TLBCM=5,WPI=21
30GNDGND
31TRBCM=6,WPI=22
32UPBCM=12,WPI=26
33RIGHTBCM=13,WPI=23
34GNDGND
35NCNC
36SELECTBCM=16,WPI=27
37STARTBCM=26,WPI=25
38DOWNBCM=20,WPI=28
39GNDGND
40LEFTBCM=21,WPI=29