Overleg:Arduino lessen

Uit Lab
Naar navigatie springen Naar zoeken springen

Uitgangspunten en doelstellingen

We gaan ervan uit dat leerlingen eerder kennisgemaakt hebben met programmeren in een tekst-gebaseerde taal.

Arduino is niet de meest geschikte omgeving om leerlingen kennis te laten maken met programmeren, of zelfs met "physical computing": daar zijn bijvoorbeeld Scratch en de microbit beter voor geschikt. De Arduino-programmeertaal is niet de meest "gebruikersvriendelijke". Nu is dat in veel gevallen niet zo'n probleem, omdat de meeste Arduino-programma's niet erg ingewikkeld zijn. Dit betekent ook dat Arduino niet een geschikte omgeving is om je programmeerkennis uit te breiden - behalve voor het programmeren van "embedded systems".

Opbouw van het materiaal

Het Arduino-materiaal op deze website bestaat uit de volgende onderdelen:

  • lessen: praktische opdrachten met bijbehorende vragen en experimenten;
  • achtergrondmateriaal, met een uitgebreidere uitleg van de verschillende concepten en onderdelen;
  • cheatsheets: een beknopte samenvatting van het achtergrondmateriaal, om te gebruiken bij het praktisch werk.
  • (docentenmateriaal)

Opbouw van een les

Een les bestaat uit de volgende onderdelen:

  1. inleiding: doel, voorkennis, nodige hardware-onderdelen, nodige software
  2. tutorial: nabouwen van een gegeven schakeling en programma, met een uitleg over de werking.
  3. vragen en experimenten - gericht op het begrijpen van de schakeling en het programma.
  4. extra vragen en experimenten - gericht op uitbreiding en verdieping

Alle leerlingen moeten de eerste drie onderdelen kunnen begrijpen en uitvoeren - binnen redelijke tijd. De extra vragen en opdrachten zijn optioneel, maar in principe voor alle leerlingen zinvol.

Manier van werken

Er zijn twee aspecten aan het werken met Arduino's die soms strijdig zijn:

  • de kortste weg naar een aansprekend resultaat;
  • werken op zo'n manier dat je begrijpt wat je doet.

We gaan ervan uit dat leerlingen een eerste kennismaking met programmeren en met "physical computing" gehad hebben, bijvoorbeeld met behulp van de microbit. Bij zo'n eerste kennismaking is vooral de kortste weg naar een leuk resultaat van belang, voor de motivatie van de leerlingen.


Bij het uitvoeren van de lessen zijn de volgende aspecten van belang:

  • neem kleine stappen - en controleer steeds het resultaat
  • probeer steeds te begrijpen wat je doet
    • soms kun je je begrip vergroten door een klein experiment te doen, bijvoorbeeld door een kleine variatie in de schakeling of in het programma.
  • werk netjes, en houd je aan de "style guide" voor hardware en software.

Kleine stappen

Neem steeds een kleine stap, en test het resultaat.

  • probeer de "minimale stap" te nemen die je dichter bij het resultaat brengt;
  • testen van een hardware-stap:
    • met alleen hardware (bijv. extra LEDje, schakelaar, draad)'
    • met aansturing vanuit Firmata (je gebruikt dan directe besturing vanuit de host);
    • met een speciaal testprogramma (zo eenvoudig mogelijk! ook testprogramma's kunnen fouten bevatten);
  • testen van een software-stap:
    • gebruik van print-opdrachten (Serial.print(...);

Soms moet je de software en de hardware beide aanpassen, bijvoorbeeld als je een onderdeel op een bepaalde pin aansluit. Ook in dit geval kan bijv. ee extra LED op de pin je de nodige informatie geven.

In een embedded system is het niet altijd mogelijk om met "print" statements te werken. Je hebt niet altijd een host-verbinding; en een print-opdracht kost tijd: dit kan de timing van je systeem in de war schoppen. In zo'n geval kan een extra LEDje soms als indicator soms uitkomst bieden.

Bij "test driven development", een professionele manier van software-ontwikkeling, is er sprake van een reeks testen waar de software op dat moment aan voldoet. Een stap in de ontwikkeling bestaat uit het bedenken van een volgende (kleine) test voor deze reeks; vervolgens wordt de software uitgebreid zodat deze ook aan de nieuwe test voldoet. De stappen die hierbij gebruikt worden zijn erg klein: vaak komen deze overeen met enkele regels code.