Spielkonsole (kleines Display)
Schritt 1
Schritt 2
Schritt 3
Schritt 4
Schritt 5
Schritt 6 (optional)
Schritt 7 (optional)
Schritt 8
Schritt 9 (optional)
Link:
Arduino ISP
Schritt 10
Download
Im Menü auf Software, dann Downloads anklicken. Dort die Version für dein System herunterladen.
Libraries für den Arduboy herunterladen
Die Arduino Entwicklungsumgebung nun starten. Dann im Menü: "Manage Libraries..." anwählen.
Dann im Suchfeld: "arduboy" eingeben und alle aufgelisteten Libraries installieren. Mit der Maus auf das entsprechende Feld gehen, dann erscheint der Install Knopf.
Bitte darauf achten, dass die richtige Version installiert wird.
Den Programmcode anpassen
Das original Display ist ein SSD1306 und wir verwenden ein SH1106. Somit müssen im Programmcode ein paar Zeilen angepasst werden, damit die Spiele auf dem SSH1106 auch funktionieren.
Unter Windows sind die beiden Dateien im Ordner Dokumente zu finden:
Arduino\libraries\Arduboy2\src\Arduboy2core.cpp
Arduino\libraries\Arduboy\src\core\core.cpp
Bereits angepasste Dateien herunterladen und dann die alten Dateien durch diese ersetzen.
Arduboy 1.1.1 und Arduboy2 5.2.1
Arduboy 1.1.1 und Arduboy2 6.0.0
Oder wenn man den code selber anpassen möchte, muss im File: "Arduboy2core.cpp" folgende zwei Funktionen ersetzt werden:
void Arduboy2Core::paintScreen(uint8_t *image, bool clear)
{
for (int8_t i = 7; i >= 0; i--)
{
LCDCommandMode();
SPItransfer(0xB0 + i);
SPItransfer(0x02);
SPItransfer(0x10);
LCDDataMode();
for (uint16_t j = 128; j > 0; j--)
{
if(clear) image[i*128+128-j] = 0;
SPItransfer(image[i*128+128-j]);
}
}
}
void Arduboy2Core::paintScreen(const uint8_t *image)
{
for (int8_t i = 7; i >= 0; i--)
{
LCDCommandMode();
SPItransfer(0xB0 + i);
SPItransfer(0x02);
SPItransfer(0x10);
LCDDataMode();
for (uint16_t j = 128; j > 0; j--)
{
SPItransfer(image[i*128+128-j]);
}
}
}
Im anderen File: "core.cpp" nur eine Funktion ersetzen:
void ArduboyCore::paintScreen(unsigned char image[])
{
for (int8_t i = 7; i >= 0; i–-)
{
LCDCommandMode();
SPI.transfer(0xB0 + i); // Set row
SPI.transfer(0x02); // 0x02, Set lower column address (use 0x00 for SD1306 and 1309)
SPI.transfer(0x10); // Set higher column address
LCDDataMode();
for (uint16_t j = 128; j > 0; j--)
{
SPI.transfer(image[i*128+128-j]);
}
}
}
Einstellungen für das Spiel
Den Port entsprechend Eurem System Einstellen. Bei mir war es der COM24.