亲爱的朋友们,在本教程中,我们将构建一个Arduino驱动的游戏。这是经典的太空垃圾游戏!硬件组件阿杜诺UNO×1(或者任何其他像Attiny85这样的Arduino兼容微控制器就足够了)OLED显示屏128x64×1(i2c和SPI都可以工作)按钮开关12mm×3(SparkFun按钮开关12mm)电阻10k欧姆×3通用印刷电路板×1(或者你可以在面包板上制作)母头8位1排(0.1")×1公头40位置1排(0.1")×14xAA电池座×1软件应用程序和在线服务ArduinoIDE手动工具和制造机器烙铁(通用)焊锡丝,无铅欢迎使用PiBOTSMakerHub。今天我们将使用Arduino和OLED显示器制作游戏。我建议使用具有I2C或SPI通信的128x64像素OLED显示器,以及更小的Arduino(如PROMini)。但是我使用ArduinoUNO,因为由于COVID19无法购买组件。我们也可以使用ATtiny85制作这个游戏机。第1步:获取所有零件该项目非常简单且易于构建。构建此项目所需的部件如下:ArduinoUNO或任何其他同等产品OLED显示屏128x64按钮10k欧姆电阻PCB或面包板公母连接器或跨接电缆第2步:构建原型电路连接非常简单。连接图如下。连接OLED显示器显示器的Vcc连接到Arduino的5V输出。显示器的GND连接到ArduinoGND引脚。显示器的SDA引脚连接到Arduino的A4或SDA引脚。显示器的SCL引脚连接到Arduino的A5或SCL引脚。连接按钮ArduinoD3的向上按钮ArduinoD4的向下按钮ArduinoD5的点火按钮第3步:编程Arduino在我们可以对Arduino进行编程之前,我们需要为OLED显示器安装U8G2库。安装U8G2库并将代码上传到Arduino的步骤如下图所示。第4步:观看我们的视频以确保您已正确完成第5步:电路原理图:第6步:Arduino代码:点击下载在ArduinoIDE中打开,安装U8G2库,然后上传/*太空垃圾网通用8位图形库(https://github.com/olikraus/u8g2/)版权所有(c)2016,olikraus@gmail.com版权所有。以源代码和二进制形式重新分发和使用,无论是否修改,在满足以下条件的情况下是允许的:*重新分发源代码必须保留上述版权声明,此列表条件和以下免责声明。*以二进制形式重新分发必须复制上述版权声明,这文件和/或其他文件中的条件列表和以下免责声明分发时提供的材料。本软件由版权持有人提供,并且贡献者“按原样”和任何明示或暗示的保证,包括但不限于对特定用途的适销性和适用性已拒绝。在任何情况下,版权持有人或贡献者应对任何直接、间接、偶然、特殊的、示范性的或间接的损害(包括但不限于替代品或服务的采购;使用、数据或利润的损失;或业务中断)但是引起的和基于任何责任理论,无论是在合同中,严格责任或侵权(包括疏忽或其他)因使用本软件而以任何方式产生,即使已告知此类损坏的可能性。*/#include#include#ifdefU8X8_HAVE_HW_SPI#include#万一#ifdefU8X8_HAVE_HW_I2C#include#万一//请取消注释下面的构造器行之一//U8g2构造器列表(图片循环页面缓冲区)//完整列表在这里:https://github.com/olikraus/u8g2/wiki/u8g2setupcpp//请根据您的设置更新引脚编号。如果未连接复位引脚,则使用U8X8_PIN_NONE//U8G2_NULLu8g2(U8G2_R0);//空设备,一个8x8像素的显示器,什么都不做//U8G2_SSD1306_128X64_NONAME_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/12,/*dc=*/4,/*reset=*/6);//Arduboy(生产,Kickstarter版)//U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1306_128X64_NONAME_1_3W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*reset=*/8);U8G2_SSD1306_128X64_NONAME_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//U8G2_SSD1306_128X64_ALT0_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//与NONAME变体相同,但可以解决“每2行被跳过”的问题//U8G2_SSD1306_128X64_NONAME_1_SW_I2Cu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*reset=*/8);//U8G2_SSD1306_128X64_NONAME_1_SW_I2Cu8g2(U8G2_R0,/*clock=*/SCL,/*data=*/SDA,/*reset=*/U8X8_PIN_NONE);//没有重置显示的所有板//U8G2_SSD1306_128X64_NONAME_1_SW_I2Cu8g2(U8G2_R0,/*clock=*/16,/*data=*/17,/*reset=*/U8X8_PIN_NONE);//ESP32Thing,纯软件模拟I2C//U8G2_SSD1306_128X64_NONAME_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE,/*clock=*/16,/*data=*/17);//ESP32Thing,带引脚重新映射的硬件I2C//U8G2_SSD1306_128X64_NONAME_1_6800u8g2(U8G2_R0,13,11,2,3,4,5,6,A4,/*使能=*/7,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1306_128X64_NONAME_1_8080u8g2(U8G2_R0,13,11,2,3,4,5,6,A4,/*使能=*/7,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1306_128X64_VCOMH0_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//与NONAME变体相同,但最大化setContrast()范围//U8G2_SSD1306_128X64_ALT0_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//与NONAME变体相同,但可以解决“每2行被跳过”的问题//U8G2_SH1106_128X64_NONAME_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SH1106_128X64_NONAME_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//U8G2_SH1106_128X64_VCOMH0_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//与NONAME变体相同,但最大化setContrast()范围//U8G2_SH1106_128X64_WINSTAR_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//与NONAME变体相同,但使用更新的SH1106初始化序列//U8G2_SH1106_72X40_WISE_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SH1107_64X128_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SH1107_128X128_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SH1107_128X128_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/8);//U8G2_SH1107_PIMORONI_128X128_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/8);//U8G2_SH1107_SEEED_128X128_1_SW_I2Cu8g2(U8G2_R0,/*clock=*/SCL,/*data=*/SDA,/*reset=*/U8X8_PIN_NONE);//U8G2_SH1107_SEEED_128X128_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//U8G2_SH1107_SEEED_96X96_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SH1108_160X160_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SH1122_256X64_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//在u8g2.h中启用U8G2_16BIT//U8G2_SSD1306_128X32_UNIVISION_1_SW_I2Cu8g2(U8G2_R0,/*clock=*/21,/*data=*/20,/*reset=*/U8X8_PIN_NONE);//AdafruitFeatherM0BasicProto+FeatherWingOLED//U8G2_SSD1306_128X32_UNIVISION_1_SW_I2Cu8g2(U8G2_R0,/*clock=*/SCL,/*data=*/SDA,/*reset=*/U8X8_PIN_NONE);//AdafruitFeatherESP8266/32u4板+FeatherWingOLED//U8G2_SSD1306_128X32_UNIVISION_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//AdafruitESP8266/32u4/ARM板+FeatherWingOLED//U8G2_SSD1306_128X32_UNIVISION_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE,/*clock=*/SCL,/*data=*/SDA);//使用ESP8266HWI2C重新映射引脚//U8G2_SSD1306_128X32_WINSTAR_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE,/*clock=*/SCL,/*data=*/SDA);//使用ESP8266HWI2C重新映射引脚//U8G2_SSD1306_64X48_ER_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//EastRising0.66"OLED分线板,Uno:A4=SDA,A5=SCL,5V供电//U8G2_SSD1306_48X64_WINSTAR_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//U8G2_SSD1306_64X32_NONAME_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//U8G2_SSD1306_64X32_1F_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//U8G2_SSD1306_96X16_ER_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//EastRising0.69"OLED//U8G2_SSD1322_NHD_256X64_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//在u8g2.h中启用U8G2_16BIT//U8G2_SSD1322_NHD_256X64_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//在u8g2.h中启用U8G2_16BIT//U8G2_SSD1322_NHD_128X64_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1322_NHD_128X64_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1325_NHD_128X64_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1325_NHD_128X64_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD0323_OS128064_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD0323_OS128064_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1326_ER_256X32_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//实验司机为ER-OLED018-1//U8G2_SSD1327_SEEED_96X96_1_SW_I2Cu8g2(U8G2_R0,/*clock=*/SCL,/*data=*/SDA,/*reset=*/U8X8_PIN_NONE);//SeeedstudioGroveOLED96x96//U8G2_SSD1327_SEEED_96X96_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//SeeedstudioGroveOLED96x96//U8G2_SSD1327_EA_W128128_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1327_EA_W128128_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1327_EA_W128128_1_SW_I2Cu8g2(U8G2_R0,/*clock=*/5,/*data=*/4,/*reset=*/U8X8_PIN_NONE);//U8G2_SSD1327_EA_W128128_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//U8G2_SSD1327_MIDAS_128X128_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1327_MIDAS_128X128_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1327_WS_128X128_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1327_WS_128X128_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1329_128X96_NONAME_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1329_128X96_NONAME_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1305_128X32_NONAME_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1305_128X32_NONAME_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1305_128X32_ADAFRUIT_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1305_128X32_ADAFRUIT_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1305_128X64_ADAFRUIT_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1305_128X64_ADAFRUIT_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1309_128X64_NONAME0_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1309_128X64_NONAME0_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1309_128X64_NONAME2_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_SSD1309_128X64_NONAME2_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1316_128X32_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1316_128X32_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1317_96X96_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8);//未测试,未确认//U8G2_SSD1317_96X96_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//未测试,未确认//U8G2_SSD1318_128X96_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_SSD1318_128X96_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_LD7032_60X32_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/11,/*data=*/12,/*cs=*/9,/*dc=*/10,/*reset=*/8);//SWSPI纳米板//U8G2_LD7032_60X32_1_4W_SW_I2Cu8g2(U8G2_R0,/*clock=*/11,/*data=*/12,/*reset=*/U8X8_PIN_NONE);//未测试!//U8G2_UC1701_EA_DOGS102_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_UC1701_EA_DOGS102_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_PCD8544_84X48_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8);//诺基亚5110显示器//U8G2_PCD8544_84X48_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//诺基亚5110显示器//U8G2_PCF8812_96X65_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8);//也可以是PCF8814//U8G2_PCF8812_96X65_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//也可以是PCF8814//U8G2_HX1230_96X68_1_3W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*reset=*/8);//U8G2_HX1230_96X68_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_KS0108_128X64_1u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/18,/*DC=*/17,/*CS0=*/14,/*CS1=*/15,/*cs2=*/U8X8_PIN_NONE,/*重置=*/U8X8_PIN_NONE);//将R/W设置为低!//U8G2_KS0108_ERM19264_1u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/18,/*DC=*/17,/*CS0=*/14,/*CS1=*/15,/*cs2=*/16,/*重置=*/U8X8_PIN_NONE);//将R/W设置为低!//U8G2_ST7920_192X32_1_8080u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/18,/*CS=*/U8X8_PIN_NONE,/*DC=*/17,/*复位=*/U8X8_PIN_NONE);//U8G2_ST7920_192X32_1_SW_SPIu8g2(U8G2_R0,/*clock=*/18/*A4*/,/*data=*/16/*A2*/,/*CS=*/17/*A3*/,/*reset=*/U8X8_PIN_NONE);//U8G2_ST7920_128X64_1_8080u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/18/*A4*/,/*CS=*/U8X8_PIN_NONE,/*DC/RS=*/17/*A3*/,/*reset=*/15/*A1*/);//记得将R/W设置为0//U8G2_ST7920_128X64_1_SW_SPIu8g2(U8G2_R0,/*clock=*/18/*A4*/,/*data=*/16/*A2*/,/*CS=*/17/*A3*/,/*reset=*/U8X8_PIN_NONE);//U8G2_ST7920_128X64_1_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*CS=*/10,/*reset=*/8);//U8G2_ST7920_128X64_1_SW_SPIu8g2(U8G2_R0,/*clock=*/14,/*data=*/13,/*CS=*/15,/*reset=*/16);//FeatherHUZZAHESP8266,E=时钟=14,RW=数据=13,RS=CS//U8G2_ST7920_128X64_1_HW_SPIu8g2(U8G2_R0,/*CS=*/10,/*reset=*/8);//U8G2_ST7920_128X64_1_HW_SPIu8g2(U8G2_R0,/*CS=*/15,/*reset=*/16);//FeatherHUZZAHESP8266,E=时钟=14,RW=数据=13,RS=CS//U8G2_ST7565_EA_DOGM128_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_ST7565_EA_DOGM128_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7565_64128N_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7565_64128N_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7565_EA_DOGM132_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/PIN_ONE);//DOGM132盾牌//U8G2_ST7565_EA_DOGM132_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/U8X8_PIN_NONE);//DOGM132盾牌//U8G2_ST7565_ZOLEN_128X64_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_ST7565_ZOLEN_128X64_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7565_LM6059_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8);//AdafruitST7565GLCD//U8G2_ST7565_LM6059_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//AdafruitST7565GLCD//U8G2_ST7565_LX12864_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7565_LX12864_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7565_ERC12864_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_ST7565_ERC12864_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7565_ERC12864_ALT_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//对比度改进版的ERC12864//U8G2_ST7565_ERC12864_ALT_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//对比度改进版的ERC12864//U8G2_ST7565_NHD_C12832_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_ST7565_NHD_C12832_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7565_NHD_C12864_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_ST7565_NHD_C12864_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7565_JLX12864_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_ST7565_JLX12864_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7567_PI_132X64_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/7,/*DC=*/9,/*复位=*/8);//PaxInstrumentsShield,LCD_BL=6//U8G2_ST7567_PI_132X64_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/7,/*dc=*/9,/*reset=*/8);//PaxInstrumentsShield,LCD_BL=6//U8G2_ST7567_JLX12864_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/7,/*DC=*/9,/*复位=*/8);//U8G2_ST7567_JLX12864_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/7,/*dc=*/9,/*reset=*/8);//U8G2_ST7567_ENH_DG128064_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_ST7567_ENH_DG128064_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7567_ENH_DG128064I_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_ST7567_ENH_DG128064I_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7567_64X32_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/U8X8_PIN_NONE);//U8G2_ST75256_JLX172104_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_ST75256_JLX172104_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST75256_JLX19296_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_ST75256_JLX19296_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST75256_JLX256128_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_ST75256_JLX256128_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_ST75256_WO256X128_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_ST75256_WO256X128_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_ST75256_JLX256128_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/9,/*data=*/8,/*cs=*/7,/*dc=*/6,/*reset=*/5);//MKR零,使能U8g216位模式对于该显示//U8G2_ST75256_JLX256128_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/7,/*dc=*/6,/*reset=*/5);//MKR零,使能U8g216位模式对于该显示//U8G2_ST75256_JLX256160_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_ST75256_JLX256160_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_ST75256_JLX256160M_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_ST75256_JLX256160M_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_ST75256_JLX256160_ALT_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_ST75256_JLX256160_ALT_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_ST75256_JLX240160_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_ST75256_JLX240160_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST75256_JLX25664_1_2ND_HW_I2Cu8g2(U8G2_R0,/*reset=*/8);//由于,第二I2C,使U8g216位模式对于该显示//U8G2_ST75320_JLX320240_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_ST75320_JLX320240_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//乌诺,启用U8g216位模式对于该显示//U8G2_NT7534_TG12864R_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_NT7534_TG12864R_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_ST7588_JLX12864_1_SW_I2Cu8g2(U8G2_R0,/*时钟=*/SCL,/*数据=*/SDA,/*复位=*/5);//U8G2_ST7588_JLX12864_1_HW_I2Cu8g2(U8G2_R0,/*reset=*/5);//U8G2_IST3020_ERC19264_1_6800u8g2(U8G2_R0,44,43,42,41,40,39,38,37,/*使能=*/28,/*CS=*/32,/*DC=*/30,/*复位=*/31);//将WR引脚与GND连接//U8G2_IST3020_ERC19264_1_8080u8g2(U8G2_R0,44,43,42,41,40,39,38,37,/*使能=*/29,/*CS=*/32,/*DC=*/30,/*复位=*/31);//将RD引脚与3.3V连接//U8G2_IST3020_ERC19264_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_LC7981_160X80_1_6800u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/18,/*CS=*/14,/*DC=*/15,/*复位=*/16);//将RW与GND连接//U8G2_LC7981_160X160_1_6800u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/18,/*CS=*/14,/*DC=*/15,/*复位=*/16);//将RW与GND连接//U8G2_LC7981_240X128_1_6800u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/18,/*CS=*/14,/*DC=*/15,/*复位=*/16);//将RW与GND连接//U8G2_LC7981_240X64_1_6800u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/18,/*CS=*/14,/*DC=*/15,/*复位=*/16);//将RW与GND连接//U8G2_SED1520_122X32_1u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*DC=*/A0,/*E1=*/A3,/*E2=*/A2,/*复位=*/A4);//将R/W设置为低!//U8G2_T6963_240X128_1_8080u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能/WR=*/17,/*CS/CE=*/14,/*DC=*/15,/*重置=*/16);//RD接+5V,FS0和FS1接GND//U8G2_T6963_256X64_1_8080u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能/WR=*/17,/*CS/CE=*/14,/*DC=*/15,/*重置=*/16);//RD接+5V,FS0和FS1接GND//U8G2_T6963_160X80_1_8080u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能/WR=*/17,/*CS/CE=*/14,/*DC=*/15,/*重置=*/16);//RD接+5V,FS0和FS1接GND//U8G2_T6963_128X64_1_8080u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能/WR=*/17,/*CS/CE=*/14,/*DC=*/15,/*重置=*/16);//RD接+5V,FS0和FS1接GND//U8G2_T6963_128X64_ALT_1_8080u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能/WR=*/17,/*CS/CE=*/14,/*DC=*/15,/*重置=*/16);//RD接+5V,FS0和FS1接GND//U8G2_SED1330_240X128_1_8080u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/17,/*CS=*/14,/*DC=*/15,/*复位=*/16);//将/RD=E与+5V连接,使能是/WR=RW,FG与GND,14=Uno引脚A0//U8G2_SED1330_240X128_1_6800u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/17,/*CS=*/14,/*DC=*/15,/*复位=*/16);//A0是直流引脚,/WR=RW=GND,使能是/RD=E//U8G2_RA8835_NHD_240X128_1_8080u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/17,/*CS=*/14,/*DC=*/15,/*复位=*/16);//将/RD=E与+5V连接,使能是/WR=RW,FG与GND,14=Uno引脚A0//U8G2_RA8835_NHD_240X128_1_6800u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/17,/*CS=*/14,/*DC=*/15,/*复位=*/16);//A0是直流引脚,/WR=RW=GND,使能是/RD=E//U8G2_UC1601_128X32_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_UC1601_128X32_1_3W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*reset=*/8);//U8G2_UC1604_JLX19264_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_UC1604_JLX19264_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/8);//U8G2_UC1608_ERC24064_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//SWSPI,由于ERC24064-1测试设置//U8G2_UC1608_ERC240120_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//U8G2_UC1608_240X128_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//SWSPI,由于ERC24064-1测试设置//U8G2_UC1610_EA_DOGXL160_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/PINU8ONE);//U8G2_UC1610_EA_DOGXL160_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/9,/*reset=*/U8X8_PIN_NONE);//U8G2_UC1611_EA_DOGM240_1_2ND_HW_I2Cu8g2(U8G2_R0,/*reset=*/8);//由于,第二个I2C,DOGM240测试板//U8G2_UC1611_EA_DOGM240_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//SWSPI,由于DOGXL240测试板//U8G2_UC1611_EA_DOGXL240_1_2ND_HW_I2Cu8g2(U8G2_R0,/*reset=*/8);//由于,第二个I2C,DOGXL240测试板//U8G2_UC1611_EA_DOGXL240_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//SWSPI,由于DOGXL240测试板//U8G2_UC1611_EW50850_1_8080u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/18,/*CS=*/3,/*DC=*/16,/*复位=*/17);//240x160,将RD/WR1引脚与3.3V连接,CS为高电平//U8G2_UC1611_CG160160_1_8080u8g2(U8G2_R0,8,9,10,11,4,5,6,7,/*使能=*/18,/*CS=*/3,/*DC=*/16,/*复位=*/17);//将WR1和CD1引脚与3.3V连接,将CS0与cs连接,WR0与使能连接,CD与直流连接//U8G2_UC1638_160X128_1_4W_HW_SPIu8g2(U8G2_R2,/*cs=*/2,/*dc=*/3,/*reset=*/4);//未测试//U8G2_SSD1606_172X72_1_4W_SW_SPIu8g2(U8G2_R0,/*clock=*/13,/*data=*/11,/*cs=*/10,/*dc=*/9,/*reset=*/8);//电子墨水/电子纸显示//U8G2_SSD1607_200X200_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//eInk/ePaperDisplay,来自嵌入式艺术家的原始LUT//U8G2_SSD1607_GD_200X200_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//良好的显示//U8G2_SSD1607_WS_200X200_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//波共享//U8G2_IL3820_296X128_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//bottom我20.9英寸EINK/电子纸显示,使16位模式对于该显示!//U8G2_IL3820_V2_296X128_1_4W_SW_SPIu8g2(U8G2_R0,/*时钟=*/13,/*数据=*/11,/*CS=*/10,/*DC=*/9,/*复位=*/8);//电子纸显示,较小的闪烁和更快的速度,使16位模式对于该显示!//U8G2_LS013B7DH03_128X128_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/U8X8_PIN_NONE,/*reset=*/8);//没有直流线用于该显示//U8G2_LS027B7DH01_400X240_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/U8X8_PIN_NONE,/*reset=*/8);//没有直流线用于该显示//U8G2_LS013B7DH05_144X168_1_4W_HW_SPIu8g2(U8G2_R0,/*cs=*/10,/*dc=*/U8X8_PIN_NONE,/*reset=*/8);//没有直流线用于该显示//U8G2_ST7511_AVD_320X240_1_8080u8g2(U8G2_R0,13,11,2,3,4,5,6,A4,/*使能/WR=*/7,/*CS=*/10,/*DC=*/9,/*重置=*/8);//启用U8g216Bit模式并将RD引脚连接到3.3V/5V//构造函数列表结束/*按钮设置为Arduboy生产*/uint8_tpin_up=3;uint8_tpin_down=4;uint8_tpin_fire=5;#defineST_FP4/*对象类型*/结构体_st_ot_struct{/*导弹和命中:位0:玩家导弹和垃圾位1:垃圾,可能会击中玩家*/...此文件已被截断,请下载以查看其完整内容。最后:补充说明我真的很喜欢这个项目。因为它真的很容易建造而且价格低廉。当然,还有改进的余地。我们可以通过使用像Attiny85这样的板来减小这个控制台的尺寸。此外,我们可以添加一个3D外壳,使这款酷炫的游戏机外观漂亮,并方便访问。我很想听听你对这个项目的看法。你喜欢它的外观吗?你能想到这个项目的任何改进吗?请在下面的评论部分发表您的评论。谢谢。