自制Arduboy有一个包arduboy_homemade可以简化我们arduino配置工作,并扩展了不少功能。地址如下https://github.com/MrBlinky/Arduboy-homemade-package。
安装这个包只要在Arduino IDE文件->首选项,把https://raw.githubusercontent.com/MrBlinky/Arduboy-homemade-package/master/package_arduboy_homemade_index.json 添加到“其它开发板管理器地址”。然后在开发板管理中下载包即可,当然也可以在github下载zip包后离线添加。
在github主页,有一个表格Pin wiring table,里面详细说明了引脚链接,为使用方便,直接复制在这儿。
Arduboy function | Arduboy Leonardo/Micro | DevelopmentKit | ProMicro 5V (standard wiring) | ProMicro 5V (alternate wiring) |
---|---|---|---|---|
OLED CS | 12 PORTD6 | 6 PORTD7 | GND/(inverted CART_CS)** | 1/TXO PORTD3* |
OLED DC | 4 PORTD4 | 4 PORTD4 | 4 PORTD4 | 4 PORTD4 |
OLED RST | 6 PORTD7 | 12 PORTD6 | 6 PORTD7 | 2 PORTD1* |
SPI SCK | 15 PORTB1 | 15 PORTB1 | 15 PORTB 1 | 15 PORTB1 |
SPI MOSI | 16 PORTB2 | 16 PORTB2 | 16 PORTB2 | 16 PORTB2 |
RGB LED RED | 10 PORTB6 | _ | 10 PORTB6 | 10 PORTB6 |
RGB LED GREEN | 11 PORTB7 | _ | - | 3 PORTD0* |
RGB LED BLUE | 9 PORTB5 | 17 PORTB0 | 9 PORTB5 | 9 PORTB5 |
RxLED | 17 PORTB0 | _ | 17 PORTB0 | 17 PORTB0 |
TxLED | 30 PORTD5 | _ | 30 PORTD5 | 30 PORTD5 |
BUTTON UP | A0 PORTF7 | 8 PORTB4 | A0 PORTF7 | A0 PORTF7 |
BUTTON RIGHT | A1 PORTF6 | 5 PORTC6 | A1 PORTF6 | A1 PORTF6 |
BUTTON LEFT | A2 PORTF5 | 9 PORTB5 | A2 PORTF5 | A2 PORTF5 |
BUTTON DOWN | A3 PORTF4 | 10 PORTB6 | A3 PORTF4 | A3 PORTF4 |
BUTTON A (left) | 7 PORTE6 | A0 PORTF7 | 7 PORTE6 | 7 PORTE6 |
BUTTON B (right) | 8 PORTB4 | A1 PORTF6 | 8 PORTB4 | 8 PORTB4 |
SPEAKER PIN 1 | 5 PORTC6 | A2 PORTF5 | 5 PORTC6 | 5 PORTC6 |
SPEAKER PIN 2 | 13 PORTC7 | A3 PORTF4** | GND | 6 PORTD7* |
CART_CS (org) | 0 PORTD2* | - | 0 PORTD2* | 0 PORTD2* |
CART_CS (new) | 2 PORTD1* | - | 2 PORTD1* | - |
SPI MISO | 14 PORTB3* | - | - | 14 PORTB3* |
OLED SDA | 4 PORTD4* | - | 4 PORTD4* | 4 PORTD4* |
OLED SCL | 6 PORTD7* | - | 6 PORTD7* | 1/TXO PORTD3* |
安装完arduboy_homemade之后,把开发板设置为homemade Arduboy,自制Arduboy最简单的就是使用Arduino Pro micro这个板子。
在开发板设置里面可以设置为如下图所示。
Based on里面有两个关于Pro micro的选项。一个是标准接线,一个是备用接线,分别对应上面表格里面最右边两列,按照表格接线即可。Bootloader选项,选择Cathy3K(start with menu),可以支持外挂Flash芯片,上传游戏合集包。Display选择SSD1306是兼容性最强的,这样设置烧录的Bootloader可以直接使用编译好的游戏和游戏合集包,使用Arduboy-uploader这个工具上传即可。而使用其它的显示屏则只能使用Arduino IDE编译游戏源码上传游戏。我这里测试SH1103 IIC支持不好,画面抖动厉害。Flash select这个选项是专门针对外挂Flash芯片的,就是在PD2(RX1)和PD1(2)中选择一个作为SPIFlash的片选(CS)引脚,不外挂Flash可以不用理它。使用外挂Flash芯片还有一个要注意的是,我们SPI显示屏的SCL和SDA是和Flash芯片共用的,这个时候显示屏的CS引脚接地(始终激活)就行不通了,表现为在游戏菜单选择界面无法正常显示,进入游戏后正常。直接用ATMEGA32U4芯片自制Arduboy的话一般是将显示屏片选引脚接芯片的PD6脚,但是Pro micro这个板子没有将这个引脚引出来。但是根据arduboy_homemade主页说明可以使用三级管和两个电阻组成非门电路,达到在Flash芯片的CS引脚激活时,关闭显示器CS引脚激活状态的目的。整个Arduboy接线如下。
效果视频:https://www.bilibili.com/video/BV1Jz4y1A7qz/
关于使用Arduino UNO给Pro micro烧录Bootloader接线如下。