Star Wars Game op ESP8266 met ESP-WROOM-02
|
Microcontrollers zijn geschikt om apparaten aan te sturen en sensors uit te lezen, maar je kun er ook spelletjes op spelen. Laatst kwam ik zo’n spel tegen: een Star Wars-game op een Arduino Nano. Het leek me een leuk project om dat spel over te zetten naar de ESP-WROOM-02, een ontwikkelbord gebaseerd op de ESP8266 microcontroller gecombineerd met OLED en 18650-accu.
Star Wars Game op Arduino Nano
Het originele project is te vinden op het YouTube-kanaal van Volos Projects. Hij gebruikt een Arduino Nano samen met een OLED-module, vergelijkbaar met de module uit de blogs “Een 128×64 pixels wit OLED display aan je Arduino project toevoegen” en “Arduino alcoholtester met MQ-3 gas sensor en OLED display“.
Op zijn kanaal vind je nog veel meer leuke en interessante Arduino-projecten.
De ESP-WROOM-02
De 18650-batterij, OLED en “joystick” maken de ESP-WROOM-02 module geschikt voor eenvoudige spelletjes. De ESP8266 is krachtiger dan de ATmega328P op de Nano, dus je kunt meer (grafische) grappen en grollen uithalen zonder dat het spel te traag wordt. Je zult er geen Crysis op kunnen spelen, maar het is wel een leuke en eenvoudige manier om programmeerervaring op te doen. De module heeft geen geluid, dit kun je oplossen door bijvoorbeeld een piezo-buzzer aan te sluiten. Dit project gebruikt een (optionele) buzzer op pin D8 (GPIO15).
Maak je Arduino IDE klaar voor de strijd
Allereerst moet je natuurlijk de Arduino IDE al op je computer geïnstalleerd hebben. Als je dat nog niet hebt gedaan, raadpleeg dan “De Arduino IDE installeren op Windows 10” of “Installeer of upgrade nieuwste Arduino IDE op Linux” om te lezen hoe je dat kunt doen.
Eveneens moet de “Arduino core for ESP8266 WiFi chip” geïnstalleerd zijn in de Arduino IDE. Hoe dat moet kun je lezen onder het hoofdstuk “De ESP8266 Arduino core installeren” in de blog “ESP8266 NodeMcu met Arduino IDE op Linux“. De procedure is hetzelfde voor Windows.
Daarnaast heb je voor het OLED-scherm ook nog twee libraries nodig, namelijk de ThingPulse ESP8266 OLED SSD1306 library en de Brzo I2C Library. Deze twee libraries kun je eenvoudig met de bibliotheekbeheerder in de Arduino IDE installeren.
Wil je over het bovenstaande meer weten, lees dan de blog “WEMOS D1 Esp-Wroom-02 met Arduino IDE“, daar staat alles uitgebreid beschreven.


Star Wars Game Sketch
Heb je dit allemaal voor elkaar, dan kun je de sketch hier van GitHub downloaden en naar je ESP-WROOM-02 uploaden. Vergeet niet eerst je ESP-WROOM-02 aan te zetten met het schakelaartje op de module.
Star Wars Game: Werk in uitvoering
Het spel werkt maar kan nog wel wat verbeteringen gebruiken. Wat al gedaan is ten opzichte van het origineel:
Wat betreft de functionaliteit:
- De graphics van de Stormtrooper en de X-Wing zijn opnieuw getekend en omgezet naar XBM-formaat want de orignele graphics waren niet geheel compatible met de ThingPulse-library.
- Tegelijk zijn de graphics uitgebreid: een compleet titelscherm, “Game Over”-scherm en eindscore-scherm.
- Er zijn grafische effecten toegevoegd: de statische achtergrond beweegt nu, de X-Wing en Death Star knipperen nu wanneer ze geraakt worden, etc.
- De twee LEDs doen nu ook mee.
- Er zijn wat extra geluidseffecten toegevoegd.
- De gameplay heeft nog wat bugs, en moet over het geheel nog verbeterd worden.
Wat betreft de code:
- De namen van de meeste variabelen zijn al vertaald van Kroatisch naar Engels maar sommige moeten nog gedaan worden.
- Er is al wat (Engelstalig) commentaar toegevoegd, maar er kan nog meer bij.


May the Force be with you
Zoals de meeste projecten op deze website is dit spel voornamelijk een aanzet. Leef je uit en maak er een compleet eigen versie van, dat is natuurlijk het leukste. Dingen die je bijvoorbeeld nog kunt doen:
- Voeg beeld- en geluidseffecten toe, of maak een compleet ander thema voor het spel;
- Gebruik de WiFi-functionaliteit van de ESP8266, voor bijvoorbeeld een dual-player modus tussen twee ESP-WROOM-02 modules;
- Maak een automatische demo-modus;
- Etc. etc.
Waarschijnlijk kun je zelf ook nog genoeg verbeteringen er interessante toevoegingen bedenken. Heb je iets leuks gemaakt, laat het dan vooral weten in de commetaren hieronder!
Andere projecten met de ESP-WROOM-02
Zijn spelletjes niet helemaal jouw kop thee, kijk dan eens naar andere projecten met deze module. Zo kun je ‘m bijvoorbeeld ook als portable Wifi-jammer/deauther gebruiken, of samen met de MQ-3 sensor als alcoholdetector inzetten.