WisClub Blog

WisClub Blog

PONG weerstation

Werk ledenPosted by Ben Zijlstra Sat, July 18, 2015 22:27:48
Op het idee gekomen door de PONG spelende nodemcu met OLED scherm (128 x 64 pixels) dacht ik dat het wel leuk zou zijn om een grote in elkaar te zetten.

Een pong spelend weerstation is het uiteindelijk geworden. Gegevens worden van een nodemcu opgehaald en verschijnen op het 400 x 240 grote ILI9327 display dat gemonteerd is op een Arduino Mega 2560. Programmertaal Bascom-AVR, dat dit jaar het 20 jarig jubileum viert. Het programma neemt 12 procent van de 256 KByte flash in.

Hier het opstart scherm

De dame is de weervrouw Amara Onwuka. Het BMP-plaatje wordt via AVR-DOS, onderdeel van Bascom-AVR, van een sd-card opgehaald. Na een aantal seconden verschijnt het PONG spel met de weergegevens.


Links en rechts de batjes en net boven de bovenste regel het balletje. Terwijl het PONG spel wordt gespeeld, doorkruist het balletje de tekst en de middelste lijn. In een array wordt precies bijgehouden welke karakters zijn geraakt door het balletje (door X en Y coördinaten van het balletje bij te houden) en zodra het balletje ergens tegenaan stoot, rand of batje, worden de geraakte karakters hersteld. Een zeer dynamisch geheel.

Heb gekozen voor het herstellen van enkele karakters in plaats van de volle regels te herschrijven. Het neemt te veel tijd in beslag om de 27 karakters lange regels opnieuw weg te schrijven, bij timing bleek enkele karakters sneller te gaan. Het spel moet natuurlijk zonder haperingen door blijven spelen.

Bij dit display is het niet mogelijk om terug te lezen waar geschreven is, vandaar dat ik het in een array bij houd. Dat was overigens een idee van Theo Kleijn,

De nodemcu haalt om de 10 minuten de weergegevens op. Een GPIO pin op de nodemcu gaat omhoog en dat is voor de Arduino Mega een seintje om de laatste weergegevens op te halen en de regels van de laatste informatie te voorzien.
De Arduino zet een ander GPIO pin hoog om aan te geven dat de gegevens zijn opgehaald. Het uitwisselen van deze gegevens gaat serieel.

Na een flink aantal keer heen en weer te zijn geslagen, forceer ik dat het balletje de bat mist en begint het spel opnieuw, ook het startscherm wordt weer getoond.

De code nog enigszins opschonen en dan wordt het in het Bascom-forum gepubliceerd.
Kan me voorstellen dat er dan kritisch naar de code wordt gekeken, vandaar mijn opschoon actie.

  • Comments(0)//blog.wisclub.nl/#post96