esp8266小发明(用ESP8266制作复古游戏机)
esp8266小发明(用ESP8266制作复古游戏机)基本完全参照项目里的图纸。只不过没使用喇叭,然后部分引脚连接没完全按照图纸来,由于nodeMCU的D4脚控制内置led就没使用D4脚2. 电路图这个项目已经发展好久,有上百款游戏,官方售价稍微有点贵,需要 $54。这套标配硬件成本约40人民币,闲鱼上售价50~300不等。看到上边这个项目,就想闲置的ESP8266可否一战,就在github上找到一个大神的项目[3]我这套成本大概20元
0x00 背景上半年的时候,b站和酷安好多人用ESP8266做气象站——源码地址[1]。
当时自己看到比较感兴趣也购买了一套ESP8266开发板 和 0.96寸oled,结果一直比较忙没来及玩。前段时间无意中发现个项目Arduboy,就决定搞一搞。
0x01 Arduboy简介官网地址[2]
Arduboy基于Arduino平台,其硬件、软件、游戏全都是开源的。官方使用是ATmega32u4单片机做主控,显示屏是128x64的oled屏,内置180mAh电池,可以提供8小时续航。
这个项目已经发展好久,有上百款游戏,官方售价稍微有点贵,需要 $54。这套标配硬件成本约40人民币,闲鱼上售价50~300不等。
0x02 ESP8266的Arduboy看到上边这个项目,就想闲置的ESP8266可否一战,就在github上找到一个大神的项目[3]
硬件部分我这套成本大概20元
- 材料清单
- ESP8266 NodeMCU Lua V3物联网开发板
- 0.96寸oled 4针IIC接口
- 一个洞洞板
- 一个1k电阻
- 杜邦线若干
- 按键若干
2. 电路图
基本完全参照项目里的图纸。只不过没使用喇叭,然后部分引脚连接没完全按照图纸来,由于nodeMCU的D4脚控制内置led就没使用D4脚
- 焊接
一个理科生没有金工实习,除了前段时间焊键盘这是第二次焊接,焊得太难看了,大家忽略~
- Arduino依赖库
- ESP8266_Arduboy2 library[4]
- esp8266-oled-ssd1306[5]
- brzo_i2c[6]
- 修改对应引脚地址
NodeMCU固件中的GPIO引脚如图
修改oled对应地址
//esp8266_arduboy2/src/Arduboy2.cpp#line16
SSD1306Brzooled(0x3c D2 D1);//OLED_I2C_ADRESS I2C_SDA I2C_SCL)
修改按键对应地址
//esp8266_arduboy2/src/Arduboy2Core.h#line199-210
#definePIN_LEFT_BUTTOND6
#definePIN_RIGHT_BUTTOND7
#definePIN_UP_BUTTOND5
#definePIN_DOWN_BUTTOND4
#definePIN_A_BUTTOND3
#definePIN_B_BUTTOND0
- 测试
参考文章arduboy游戏编程之Arduboy2库[7] 使用测试绘图函数
#include<Arduboy2.h>
Arduboy2arduboy;
voidsetup(){
arduboy.begin();
arduboy.setFrameRate(15);
}
voidloop(){
if(!(arduboy.nextFrame()))
return;
arduboy.clear();
//(positionsstartat0 0)
arduboy.setCursor(4 5);
//thenweprinttoscreenwhatisintheQuotationmarks""
arduboy.print(F("Hello world!"));
arduboy.drawCircle(50 20 5 WHITE);
arduboy.drawCircle(80 20 5 WHITE);
arduboy.drawLine(0 40 127 40 WHITE);
arduboy.fillRect(65 32 2 6 WHITE);
arduboy.drawRect(55 50 20 3 WHITE);
arduboy.display();
}
运行效果
这篇文章和ESP8266_Arduboy2库中都有测试按键的程序,可以运行测试按键是否都正常
- 运行游戏
图形和按键都测试好后,就可以尝试ESP8266_Arduboy2库里的示例游戏了
推荐
- breakout 打砖块
- picovaders 小蜜蜂
- Shadow Runner 暗影奔跑者
话不多说,上视频
更多- 使用微积木,给我的Arduboy安个家~
- 除了ESP8266_Arduboy2库里提供的5、6个游戏,ESPboy里使用Arduboy2库开发的一些游戏也是支持的。项目地址[8]
平时没太多时间搞,向大家推荐几个可以探索的方向
- 硬件 由于手上只有这些硬件,大家可以考虑加电池 加喇叭 画pcb 直接用ESP芯片微型化
- 硬件 同样有基于ESP系列芯片的开源掌机社区——ESPboy[9],彩色屏幕,游戏更多
- 软件系统 ESP内存大,可修改存多个游戏,其WIFI功能可考虑联网游戏、联网下载
- 软件游戏 可以自己移植Arduboy游戏支持Arduboy2 或者自己开发一些小游戏, Arduboy官方有模拟器,开发或者试玩都比较方便,无需硬件
[1]源码地址: https://github.com/yuan910715/Esp8266_NTP_Clock_Weather
[2]官网地址: https://arduboy.com/
[3]项目: https://github.com/cheungbx/esp8266_arduboy2
[4]ESP8266_Arduboy2 library: https://github.com/cheungbx/esp8266_arduboy2
[5]esp8266-oled-ssd1306: https://github.com/ThingPulse/esp8266-oled-ssd1306
[6]brzo_i2c: https://github.com/pasko-zh/brzo_i2c
[7]arduboy游戏编程之Arduboy2库: https://blog.csdn.net/weixin_37127273/article/details/108417127
[8]项目地址: https://github.com/ESPboy-edu/ESPboy_Arduboy2_lib
[9]ESPboy: https://www.espboy.com/
❝
the Answer to Life the Universe and Everything is 42
❞
欢迎关注公众号「42号实验室」