# 概述
* 为了支持国产芯片方案的应用、学习更高的arm架构,专为梁山Pi设计了一款多功能扩展板,既可以玩游戏,也可以通过WiFi控制相关设备、显示网络内容。
* 参考官方游戏机扩展板,并添加了个人创意(ESP-01S WiFi、按键++、1.3寸TFT屏幕、TP4056充放电)。
* 目前已通过基础功能例程测试,设计第1版3D外壳,实现NES游戏模拟器。
# 功能说明
## 屏幕显示
![image.png](//image.lceda.cn/pullimage/eVg9vFZBsYx7Sjzozp3i5F4BKZw0L8EUPnlKaEQr.png)
* 芯美达 1.3寸 TFT彩色显示屏,分辨率 240×240,ST7789V驱动。
* 尺寸 26.16mm×29.22mm×1.5mm,12PIN 0.7mm 焊接引脚。
* 控制方式:硬件SPI,屏幕背光可调。
* **说明**:个人创建了屏幕封装,可较好贴合实物。
## 音频输出
![image.png](//image.lceda.cn/pullimage/TjM0OowML4sih6hvCJ8MLXQ4arFPiAieyWTBhfWl.png)
* 8002A功率放大器 + 3020腔体喇叭。
* 喇叭参数:4欧2W,尺寸 20mm×30mm×7mm。
* 控制方式:DAC,模拟输出,音量可调。
## 供电管理
![image.png](//image.lceda.cn/pullimage/NWVkrPptqFje7Oi5Ux5Ek5uEJBAPOxIo0YAHfNSD.png)
* 第三方TP4056电源管理模块(Type-C接口),搭配3.7V 350mAh 1S锂电池。
* 3.7V → 5V升压,通过梁山Pi降压至3.3V。
* 充电功率 5V 1A。
* **说明**:个人创建了电源管理模块的封装,不使用排针插接方式,改用贴片方式焊接至扩展板。
## 摇杆 & 按键
![image.png](//image.lceda.cn/pullimage/EUP0r0ouqO7bCBkFWtDMxfKi0Vn2ZW2mucFtQLkr.png)
* 1颗 PSP超薄摇杆,可测量 X轴 & Y轴分量,2路ADC控制。
* 4颗 功能按键,用于游戏操控。
* 4颗 系统按键,用于模拟器界面操作。
* 1颗 RESET按键,用于重置程序。
## EEPROM
* AT24C02存储器件,用于保存模拟器参数等初始化信息。
* 控制方式:硬件IIC。
## WiFi
![image.png](//image.lceda.cn/pullimage/hX10j43PKmkyyXGeLYCL6TEdrqeE8jVaenEpCjTm.png)
* ESP-01S模组,用于WiFi无线传输。
* 控制方式:UART串口通信,AT指令配置。
# NES游戏模拟器程序说明
![image.png](//image.lceda.cn/pullimage/aV92krOSLoCbauOWwk4dBpb1iMhW4YJmzTIIejZ4.png)
* 调整了官方游戏机代码,使其适配1.3寸屏幕和按键引脚,并且修改了NES源码,使游戏画面可以无裁切显示。
* **注意**:官方游戏机代码并没有将游戏画面全部显示!由于游戏画面尺寸 256×240,官方屏幕尺寸 240×280 ,因此官方代码裁切掉了左右两侧的8个像素列。
## 按键引脚修改
* S1键:KEY_S1信号 -- PE5引脚。
* S2键:KEY_S2信号 -- PE2引脚。
* S3键:KEY_S3信号 -- PG13引脚。
* S4键:KEY_S4信号 -- PG9引脚。
* X键:KEY_X1信号 -- PD3引脚。
* Y键:KEY_Y1信号 -- PD4引脚。
* A键:KEY_A1信号 -- PG10引脚。
* B键:KEY_B1信号 -- PD6引脚。
## 游戏画面优化
* 受限于屏幕尺寸(240×240),不再显示 顶部状态栏 & 底部信息栏。
* 不再裁切左右两侧像素列,通过降采样显示全部游戏内容,实测画面效果无明显失真,有利于游玩。
```
{
while(RESET == spi_i2s_flag_get(SPI4, SPI_FLAG_TBE));
spi_i2s_data_transmit(SPI4, NES_Palette[ppu->dummy_buffer[(int)(i*16/15-8/15)]]>>8);
while(RESET == spi_i2s_flag_get(SPI4, SPI_FLAG_TBE));
spi_i2s_data_transmit(SPI4, NES_Palette[ppu->dummy_buffer[(int)(i*16/15-8/15)]]);
}
```
# 3D外壳设计
![image.png](//image.lceda.cn/pullimage/ITdYKX4gOm1vYlkUecuJ6zvFYBRGw29kJ92xBV3l.png)
* 顶壳单独固定扩展板,底壳单独固定梁山Pi,最后通过排针接驳装配,喇叭和锂电池均置入电路板中心空隙。
# 展望
* 目前3D外壳不容易装配,充电口不方便接入,需要再改进。
* 继续开发程序,实现WiFi天气时钟和电子便签功能,并将其整合至NES模拟器。
1
2
收藏到专辑