Flowcharts


Hoofd flowchart


Dit is de hoofd flowchart van mijn project. Ik heb hier in zo weinig mogenlijk code geschreven en alles in functies gestoken. Hier onder toon ik 2 functies van de 15.

Werking:

De bijbehorende code staat in de loop-functie en zal dus blijven doorlopen tot het programma wordt gestopt. Ik begin met het toevoegen van bibliotheken, het declareren van variabelen en het instellen van de benodigde zaken in de setup.

Ik stel de variabele “HuidigeMs” gelijk aan de ingebouwde functie “millis”. Deze functie begint met tellen vanaf het moment dat de Arduino wordt aangezet of nieuwe code wordt geüpload.

Vervolgens controleer ik of het game over is. Als dit niet het geval is en het is het begin van de eerste cyclus van het programma, voer ik eerst de functie “SetupSchermenAfterGameOver” uit.

Daarna kijk ik of de joystick is bewogen. Als dat het geval is, ga ik verder met het uitvoeren van verschillende functies. Eerst print ik de game time in de seriële monitor en vervolgens voer ik vier functies na elkaar uit: “GameTimer”, “RandomLedKleur”, “ReadSensor” en “PuntenOpScherm”.

Vervolgens controleer ik of er in een richting van de joystick is bewogen. Als dat zo is, controleer ik of de motors niet te ver zijn, aangezien er een limiet is ingesteld. Als ik binnen de limiet zit, gebruik ik de functie “StepperBeweging” met de bijbehorende waarden.

Als er geen beweging is gedetecteerd, gebruik ik de functie “BewegingsDetectie”. En als “GameOver” waar is, voer ik de functie “GameOver” uit.

Functies:


Data flowchart

1: De X en Y waarden worden verstuurd van de controller naar de Arduino.
2: Er komt een analoog signaal van de afstandssensoren naar de Arduino. Deze analoge signalen zijn de afstanden van elke sensor.
3: Binnen in de Arduino gebeurt er ook data transfer. De Arduino maakt binnen in een random, deze zal dan om de zoveel seconden veranderen van waarde. De random wordt later verwerkt naar een waarde die de LED kleur kan bepalen.
4: Hierover zal de verwerkte X en Y data gaan en zo de motoren aansturen om te bewegen zoals aangegeven.
5: Hier wordt een continu signaal over gestuurd door de Arduino zou er een balletje gedetecteerd worden door de afstand sensor. Dit is er om het balletje terug naar boven te krijgen. Dit signaal duurt maar enkele seconden en start dus wanneer het balletje door een gat gaat
6: Hierover wordt het random signaal gestuurd dat de Arduino aanmaakte. Het random signaal zal de tijd tussen de verschillende kleuren en de keuze van de kleuren beslissen.
7: Op de LCD zal de score komen. Deze score wordt uitgerekend en bepaald door de Arduino. Dit gebruikt I²C als protocol om data binnen te krijgen.