Arduino - Basis

26-01-2021

In de vorige post kregen we van Philippe een heel duidelijke uitleg over wat Arduino nu juist is, wat je ermee kan en wat je nodig hebt om te starten. Maar om alles te laten werken, is er ook een stukje programmatie nodig. "Programmatie? Dan haak ik af..." hoor ik je denken. Maar ook dit stukje is zodanig opgezet dat je veel basisprogrammatie op het net kan vinden. Door aanpassing van de gewenste parameters, kan je dan heel eenvoudig programma's schrijven die je voor jou doeleinden kan bouwen en gebruiken. Doch: hiervoor moet je wel de basis begrijpen. Op de Arduino-pagina zullen we nog enkele goede YouTube-filmpjes plaatsen met beeld en uitleg. Maar nu is het tijd om verder te gaan met les2: de basis.


Computational Thinking

Wie ooit al eens in aanraking kwam met het programmeren van computers of automatisatie zal wel al gehoord hebben van BASIC, Turbo-Pascal (maar dan moet je wel al iets ouder zijn...), Java, Python, C en C++. Dit zijn allemaal programmeertalen die gebruikt worden om "codes" te schrijven, zodanig dat je computer of apparaat doet wat jij van hem verwacht. Een computersysteem is eigenlijk helemaal niet slim... het is door de gegevens (de codes dus) die wij hem doorgeven, dat hij bepaalde processen gaat uitvoeren. Doordat hij wel 100.000x sneller kan werken dan ons en veel complexere berekeningen hierdoor op een fractie van een seconde kan uitvoeren, kan hij bepaalde processen combineren en hierdoor zaken doen die wij als mens niet kunnen. Deze manier van werken en denken, kan uiteraard ook gewoon in het dagelijkse leven gebruikt worden. Hierbij alvast enkele leuke filmpjes:


Je zal het dus al begrepen hebben: de code moet heel duidelijk zijn, zelf zodanig duidelijk dat de computer deze maar op 1 en 1 enkele manier kan interpreteren. Om de computer dus te laten doen wat jij wenst, zal je dus heel even moeten gaan denken als een computer. 

Dit is misschien voor jou nog niet direct van toepassing, maar waarom vertellen we dit dan? Wel als je begint met heel makkelijke code, zal je waarschijnlijk op 1,2,3 vertrokken zijn. Op het ogenblik dat je iets complexer gaat zoeken, dan ga je moeten gaan kijken dat je bepaalde processen gaat uit elkaar trekken, gaat samenvoegen wat bij elkaar hoort, weglaten wat er niet hoort en "eenvoudig" gaat uitschrijven, zodanig dat de computer dit enkel op deze manier kan begrijpen.

Dit eenvoudige schema geeft eenvoudig weer, wat we bedoelen:

C/C++

Vergeet voorlopig nog maar even wat we hierboven verteld hebben (maar hou het in het achterhoofd voor later).

Arduino IDE (Integrated Development Environment) is gebaseerd op en een afgeleide van C/C++. Wat is C/C++? Juist: ook een programmeertaal... maar je hoeft hiervoor niet gestudeerd te hebben, om er mee aan de slag te gaan. De meeste codes kan je online vinden (zoals reeds gezegd).

We geven je alvast deze basiscodes mee:

1) void setup() is een functie. Dit is de eerste functie die zal worden uitgevoerd op de Arduino. In deze functie worden o.a. de poorten van de Arduino gedefinieerd als in- of output.
2) void loop() deze tweede functie wordt als een oneindige cyclus uitgevoerd. 

3) void: deze functies zijn steeds van een bepaald type. Voor het uitvoeren van een functie moet de processor een bepaalde hoeveelheid geheugen reserveren, Op het einde van de functie zal het resultaat van de functie in dit stuk geheugen worden weggeschreven. Voorbeelden van types zijn integer (getal), string (tekst) of void (betekend dat de functie geen waarde zal teruggeven).

4) {} Alle code van de functie wordt tussen accolades gegroepeerd. Deze duiden het begin en het einde van de functie aan. Door het gebruik van accolades is een programma "leesbaar".

5) /* ... */ of Blok commentaar: Alles wat tussen /* en */ staat wordt beschouwd als commentaar, de compiler houdt geen rekening met deze tekst. Hier kan je dus zelf commentaar of je lijntje ingeven.

6) // of commentaar: Vanaf // is alles tot op het einde van de regel, commentaar.


Hierbij een voorbeeld van wat we hierboven juist hebben beschreven (in dit voorbeeld zijn het nummer 3 en 5 uit de omschrijving bewust nog niet aanwezig):

Volgende keer gaan we proberen om een heel eenvoudige setup te maken, stap per stap en aan de hand van de zaken die we vandaag al leerden. Maar...

Wat hebben we vandaag geleerd?

    1. Een computer is dom... je moet hem duidelijk zeggen wat hij moet doen!
    2. Hierdoor kan het zijn dat je bepaald zaken gaat moet vereenvoudigen, door te denken als een computer. (Computational Thinking).
    3. Alles wordt geschreven in codes.
    4. De eerste functie in onze codes is steeds void setup()
    5. Nooit opgeven! Het is echt niet moeilijk, maar je moet er even mee bezig zijn... Samen helpen we je verder!

Philippe May

Auteur/lid/Modelbouwer


Sven Vandersmissen

Auteur /Oprichter en trekker van de Locloods