ICTdag/Arduino

Uit Lab
Naar navigatie springen Naar zoeken springen
ICTdag

Zie ook Regels en richtlijnen
Zie ook Artikelen bewerken

Wat is het?

Een Arduino is een kleine computer waarmee je in de fysieke wereld kun meten en aansturen ("physical computing"). Dit betekent dat je programma's concrete en tastbare resultaten kunnen hebben: bewegende robots, apparaten, 3D printers, enz.

De Arduino is in eerste instantie bedoeld voor ontwerpers en "makers"; deze is niet speciaal bedoeld voor het onderwijs. Maar je kunt Arduino's wel zinvol gebruiken in het onderwijs.

Het kan voor leerlingen motiverend zijn om met "volwassen" technologie te werken.

Arduino vergeleken met andere producten

/Arduino, RasPi en microbit

Voor wie geschikt? Welke voorkennis is vereist?

Arduino is geschikt voor leerlingen vanaf ca. 14 jaar. Naast lees- en rekenvaardigheid is enige kennis van natuurkunde (elektriciteit) wenselijk. Arduino is ook geschikt om de praktijk daarvan te demonsteren.

De drempel van het gebruik van Arduino is redelijk hoog: bij voorkeur heb je enige programmeervaardigheid in een tekst-gebaseerde programmeertaal.

Arduino-programma's zijn vaak niet erg ingewikkeld, bijvoorbeeld in de gebruikte algoritmen. Maar je hebt wel een basiskennis programmeren en foutzoeken (debugging) nodig voor die gevallen dat het niet gaat zoals gedacht. Bij het debuggen heb je bovendien het probleem dat de fout in de software kan zitten, in de hardware, of op het grensvlak (interface) van die twee.

Hoewel de drempel niet erg laag is, zijn de muren breed en het plafond hoog: je kunt er erg veel verschillende kanten mee op, van mode en muziek tot robots en praktische technische oplossingen. Je bent niet snel uitgekeken, en kennis die je hier opdoet kun je bijvoorbeeld ook gebruiken voor Raspberry Pi's en micro:bits.

Verlagen van de drempel

De drempel voor het gebruik van Arduino's kun je op verschillende manieren verlagen:

  • Er zijn blokjes-talen voor Arduino beschikbaar. Deze kunnen helpen om de drempel te verlagen. Uiteindelijk zijn deze talen beperkt bruikbaar, en moet je toch een overstap naar de tekst-gebaseerde taal maken (C++).
  • De hardware-drempel kun je verlagen worden door het gebruik van 3- en 4-pins aansluitingen van sensoren, bijvoorbeeld via het Grove systeem: je hebt dan geen breadboard nodig, en de kans op fouten is veel kleiner. Uiteindelijk is dit wel een beperking, en zul je waarschijnlijk toch een breadboard gaan gebruiken.

Hoe gebruik je dit in het onderwijs?

Physical computing en robotica-onderwijs

Met Arduino kun je tastbare toepassingen van computers maken: je programma heeft een tastbaar en concreet resultaat in de fysieke wereld, in plaats van in de virtuele wereld. Dit motiveert veel leerlingen, en helpt om de rol van computers in onze samenleving te verduidelijken (denk bijvoorbeeld aan robotica en zelfrijdende auto's).

"physical computing" is ook een belangrijk onderdeel van het vak informatica, waarbij het gaat om de interactie tussen computers en de fysieke wereld. Je leert hiermee de hardware beter begrijpen, en het interface tussen hardware en software.

Robotica/informatica-club

Arduino's zijn erg geschikt voor naschoolse activiteiten zoals een robotica/informatica-club. Je kunt deze gebruiken in combinatie met Raspberry Pi's en microbits.

Vakoverstijgende projecten

Met Arduino's kun je vakoverstijgende projecten maken, met bijvoorbeeld wiskunde, biologie, natuurkunde, scheikunde. Je kunt er opstellingen mee aansturen en automatiseren.

Welke materialen zijn er?

Er is heel veel materiaal voor de Arduino beschikbaar, in eerste instantie voor ontwerpers/makers: tutorials, onderdelen (sensoren/actuatoren), verschillende soorten bordjes, allerlei software-libraries. Bovendien is het meeste materiaal gratis (software) of relatief goedkoop (hardware).

Hoewel de Arduino niet ontworpen is voor het onderwijs, wordt het bovenstaande materiaal vaak aangepast aan de onderwijssituatie. De kwaliteit van dit materiaal loopt sterk uiteen; dit geldt ook voor de doelgroepen. (Niet elk tutorial is zonder meer geschikt voor het onderwijs.) Veel materiaal heeft sterk het karakter van een "nabouwproject": zonder extra achtergrondinformatie geeft dan relatief weinig leermogelijkheden.

Niet alle materialen zijn van dezelfde kwaliteit; dit geldt zowel voor de hardware als voor de software. Voor een "maker" is dan niet altijd een probleem; in het onderwijs is dat vaak een onwenselijke extra complicatie.

Er is materiaal in ontwikkeling voor de onderbouw HAVO/VWO en VMBO. Dit wordt aan het eind van het schooljaar 2016-2017 getest.

Arduino's zijn geschikt voor vakoverstijgend onderwijs, bijvoorbeeld in combinatie met natuurkunde, scheikunde, wiskunde, biologie.

Voorbeelden van Arduino-projecten en -tutorials zijn bijvoorbeeld te vinden op:

Welke ondersteuning is er voor leerlingen?

Welke ondersteuning is er voor docenten?

Naast de nodige boeken en tutorials, zijn er ook cursussen en workshops voor een eerste kennismaking met Arduino:

  • introductie Arduino - TU Delft
  • workshop introductie Arduino (Betapartners Amsterdam)

Een eerste kennismaking

Je werkt in dit geval met een schakeling die voorbereid is. Gewoonlijk moet je eerst zelf de schakeling opbouwen en testen. Met enige ervaring zijn er interessantere toepassingen te maken dan lampjes en schakelaars.

  • Verbind het Arduino-bordje aan de computer (USB-kabel)
  • Start het Arduino-programma (Arduino IDE)
  • Kies het voorbeeld-programma Voorbeelden->01.Basics->Blink
  • Selecteer het juiste bord (menu Hulpmiddelen->Board->Genuino/Arduino UNO)
  • Selecteer de juiste USB/COM-poort (menu Hulpmiddelen->Poort->...)
  • Vertaal het programma en laad het in de Arduino (knop: pijl naar rechts)
    • onderin het venster staat of dit gelukt is.

Knipperende LEDjes

  • Pas het voorbeeldprogramma Blink aan:
    • Verander "delay(1000);" in "delay(100);" (100 milliseconden)
    • Vertaal het programma en laad het in de Arduino
  • Hoe snel knippert de LED nu (aantal knippers per seconde: frequentie)?
  • Wat is de hoogste frequentie die je nog ziet als een knipperende LED?
    • Hoe traag is je oog?

EN-schakeling

Het onderstaande programma is bedoeld om de logische "EN" (AND) te demonstreren.

  • Maak een nieuw programma aan (Nieuw)
  • Vervang de inhoud van het venster door het programma hieronder (Copy-Paste)
  • Bewaar het programma als "en-test"
  • Vertaal het programma en laad het in de Arduino.
  • Maak de onderstaande tabel compleet
    • 1 staat voor: knop ingedrukt; 0 voor: knop niet ingedrukt
    • 1 staat voor: led brandt; 0 voor: led brandt niet
knop A knop B led C
0 0
0 1
1 0
1 1


const int led = 5;
const int buttonA = 2;
const int buttonB = 3;

void setup() {
  pinMode(led, OUTPUT);
  pinMode(buttonA, INPUT);
  pinMode(buttonB, INPUT);
}

void loop() {
  if (digitalRead(buttonA) && digitalRead(buttonB)) {
    digitalWrite(led, HIGH);
  } else {
    digitalWrite(led, LOW);
  }
}

OF-schakeling

Het onderstaande programma is bedoeld om de logische "OF" (OR) te demonstreren.

  • Maak een nieuw programma aan (Nieuw)
  • Vervang de inhoud van het venster door het programma hieronder (Copy-Paste)
  • Bewaar het programma als "of-test"
  • Vertaal het programma en laad het in de Arduino.
  • Maak de onderstaande tabel compleet
    • 1 staat voor: knop ingedrukt; 0 voor: knop niet ingedrukt
    • 1 staat voor: led brandt; 0 voor: led brandt niet
knop A knop B led C
0 0
0 1
1 0
1 1
const int led = 5;
const int buttonA = 2;
const int buttonB = 3;

void setup() {
  pinMode(led, OUTPUT);
  pinMode(buttonA, INPUT);
  pinMode(buttonB, INPUT);
}

void loop() {
  if (digitalRead(buttonA) || digitalRead(buttonB)) {
    digitalWrite(led, HIGH);
  } else {
    digitalWrite(led, LOW);
  }
}