Arduino
Arduino
Een Arduino is een klein bordje met elektronica, met als belangrijkste onderdeel een microcontroller. Dit is een complete computer op een chip voor het aansturen van een apparaat. Je kunt de microcontroller op het Arduino-bordje eenvoudig programmeren via een personal computer. Op de Arduino kun je allerlei hardware aansluiten: invoerelementen ("sensoren") zoals schakelaars, temperatuursensors, infrarood-ontvangers, 3D versnellingsopnemers, enz.; en uitvoerelementen ("actuators") zoals lampjes, motoren, of andere apparaten. Hiermee kun je allerlei "physical computing" toepassingen mogelijk maken, van een eenvoudig reactiespelletje tot een robot of een 3D printer.
Arduino's worden onder andere door industrieel ontwerpers gebruikt om unieke opstellingen of prototypes te maken. Op het web vind je hiervan allerlei voorbeelden, van erg eenvoudig tot spectaculair. Je kunt een Arduino ook gebruiken om meer te leren over computers, hardware, en de besturing van systemen en machines met computers ("embedded systems").
Wat kun je met een Arduino?
Enkele links om een indruk te krijgen wat een Arduino is, en wat je ermee kunt doen:
- http://www.arduino.cc: de Arduino website bevat informatie over hardware en over de software. Hier kun je ook de Arduino software-ontwikkelomgeving (IDE) vinden.
- https://www.arduino.cc/en/Guide/Introduction
- http://playground.arduino.cc: de playground bevat veel informatie over het gebruik van Arduino, van tutorials tot voorstellen voor projecten.
- http://playground.arduino.cc/Projects/ArduinoUsers: een tentoonstelling (exhibition): een lange lijst van meer en minder interessante toepassingen van Arduino.
Hoe begin je?
Je kunt op verschillende manieren met een Arduino aan de slag. Het handigst is het om te beginnen met een starters-kit, met bijbehorende tutorials. Op het web zijn ook voor tutorials te vinden, zie verderop voor een paar voorbeelden.
Meestal begin je met het nabouwen van een project. Het is belangrijk om klein te beginnen, en om steeds kleine stappen te nemen. Het loont de moeite om te proberen de voorbeelden te begrijpen. Als je zelf iets wilt bouwen, zul je goed moeten begrijpen wat je doet. Puur "copy & paste" werkt zelden bij software, en helemaal niet bij complexere Arduino-projecten.
In het begin kan het werken met een Arduino wat overweldigend zijn. Je moet zowel programmeren als een hardware-opstelling maken. De software en de hardware moet ook nog precies op elkaar afgestemd zijn. En als het niet werkt, heb je vaak maak weinig houvast om uit te zoeken wat er aan de hand is.
Een belangrijke regel is: volhouden - ook als het niet direct werkt. Door uit te zoeken waar het probleem zit, kun je ook veel leren.
De opzet van deze website
Via deze pagina vind je het referentiemateriaal: per onderwerp een pagina. De lessen vind je via Arduino lessen.
Arduino in het Informatica-onderwijs
Op de microcontroller van de Arduino draait alleen de software die je zelf daarvoor geschreven hebt, in combinatie met een bibliotheek met ondersteunende functies. Er is geen Operating System aanwezig, er is geen filesysteem, enz. Dit betekent dat de afstand tussen je eigen programma en de hardware erg klein is, waardoor je een goed gevoel kunt krijgen voor de hardware en voor de mogelijkheden en de onmogelijkheden daarvan. Door met de Arduino te werken begrijp je ook beter hoe een computer werkt, en wat er op andere computers door het Operating System en andere software voor je gedaan wordt.
Arduino Uno, IDE 1.0
In het onderstaande gaan we uit van de Arduino Uno, als versie van het elektronica-bordje, en van versie 1.0 en hoger van de software-ontwikkelomgeving (IDE). Sommige details kunnen verschillen voor andere versies. Raadpleeg daarom altijd de officiële documentatie op de Arduino-website.
Open Source
Zowel de hardware als de software voor de Arduino zijn open source: dit wil zeggen dat je overal bij kunt, en dat je alle onderdelen -als je dat wilt- zelf kunt aanpassen aan de eigen behoefte.
Bij Open Source onderdelen moet je altijd letten op de licentie die gebruikt wordt: deze kan eisen opleggen aan de verdere verspreiding van je eigen aanpassingen. In sommige gevallen moet je deze aanpassingen weer met dezelfde licentie verspreiden.
- voor verder informatie over Open Source zie:
Ontwikkelomgeving
De software-ontwikkelomgeving (IDE) van de Arduino werkt op een "gewone" computer (desktop, laptop), die we hier de "host" noemen. Op de host bewerk je de source files (bronbestanden) met programma's en vertaal je deze programma's in machinecode. Via een USB-kabel kun je deze machinecode laden in
ICT in de wolken Arduino-Basiskit (doos met onderdelen)
Bij ICT in de Wolken gebruiken we een doos met onderdelen zoals beschreven in Arduino/Basiskit. Met deze onderdelen kun je al een groot aantal experimenten doen.
- door de kennismakingsexperimenten uit te voeren leer je in een snel tempo de verschillende onderdelen van de Arduino kennen.
- de basisexperimenten zijn bedoeld om dieper op de afzonderlijke onderdelen in te gaan.
- variaties en vrije experimenten zijn altijd mogelijk, om je eigen ideeën uit te werken, om bepaalde onderdelen en combinaties beter te leren begrijpen, en om "iets cools" te maken.
De nadruk bij de onderdelen in de basiskit ligt op sensoren en op de aansluiting op het internet en het web. Voor de volgende soorten toepassingen heb je andere onderdelen nodig:
- robotica: motoren, motor shield, afstandssensor, lijnvolgsensor, lichtsluis met schijfje met inkepingen (tellen van omwentelingen).
Informatie op het internet
Op het internet kun je erg veel informatie over de Arduino en het gebruik daarvan vinden. Het kan even tijd kosten om je weg daarin te vinden. Hieronder vind je wat suggesties om je op weg te helpen.
Officiële documentatie en referentiemateriaal
De Arduino-website bevat een schat aan informatie: voorbeelden, tutorials, en referentie-documentatie:
- Getting started: https://www.arduino.cc/en/Guide/HomePage
- Tutorial: https://www.arduino.cc/en/Tutorial/HomePage
- Reference: https://www.arduino.cc/en/Reference/HomePage
Tutorials
Er is op het web heel veel materiaal te vinden om zelf met een Arduino aan de slag te gaan. Ook op YouTube kun je het nodige vinden.
Voorbeelden van tutorials:
- https://www.youtube.com/playlist?list=PLT6rF_I5kknPf2qlVFlvH47qHvqvzkknd
- https://learn.adafruit.com/category/learn-arduino
- https://www.youtube.com/watch?v=09zfRaLEasY
- in de vorm van een strip: http://playground.arduino.cc/uploads/Main/arduino_comic_v0004.pdf
Zoals met zoveel informatie op het web, verschilt de kwaliteit nogal. Ook de betere tutorials bevatten soms kleine onnauwkeurigheden. Vertrouw niet teveel op één enkele bron. Als je twijfelt, raadpleeg een expert, en/of zoek in de originele documentatie van de fabrikant.
De Arduino is niet speciaal ontworpen voor het onderwijs, maar je kunt er goed een brug mee slaan tussen het onderwijs en relevante praktijktoepassingen.
Nederlandstalig materiaal
Het materiaal op deze website is in het Nederlands. Naast deze lessen vind je hier ook een uitgebreidere beschrijving van de principes.
Nog enkele andere voorbeelden van Nederlandstalig materiaal:
- http://www.arduino.nu/download/Arduino%20manual%201_0%20NL.pdf
- Deze handleiding is geschreven voor een oudere versie van het Arduino-bordje; de verschillen zijn minimaal.
- http://www.jrl-technasium.nl/downloads/
- Deze website bevat een schat aan Arduino-materiaal, o.a.:
- http://www.jrl-technasium.nl/files/2.%20interactief%20ontwerpen%20met%20arduino.pdf (door Stan Roukens)
- https://sites.google.com/site/hwcontwerpen/home (website van Stan Roukens)
- http://lemio.nl/arduino (website van Geert Roumen)
Cheat sheets
- Arduino Uno pinout diagram: http://pighixxx.com/unov3pdf.pdf
- voor meer: http://www.pighixxx.com/test/pinoutspg/boards/page/2/
- onder de tab "ABC" zijn heel veel Arduino Basic Circuits te vinden
- AtMega 323 pinout: http://pighixxx.com/atmega328v3_0.pdf
- oudere versie, gecombineerd: http://marcusjenkins.com/wp-content/uploads/2014/06/ARDUINO_V2.pdf
- Arduino programmeren: https://github.com/liffiton/Arduino-Cheat-Sheet/blob/master/Arduino%20Cheat%20Sheet.pdf
- Arduino programmeren: http://www.element14.com/community/docs/DOC-65128/l/arduino-cheat-sheet
- Heel veel voorbeelden van hardware schema's voor Arduino (Arduino Basic Connections - ABC)
Arduino-varianten en -toepassingen
Er zijn allerlei varianten van de Arduino: dit is mogelijk doordat zowel de hardware als de software van de Arduino Open Source zijn. Iedereen kan hier zijn eigen variaties op maken (remix). Vaak zijn deze varianten gericht op een bepaald soort toepassing. Enkele voorbeelden:
- voor het aansturen van 3D printers:
- http://reprap.org/wiki/Ultimaker's_v1.5.7_PCB (en nog vele andere)
- voor robots:
- https://www.arduino.cc/en/Guide/Robot (en nog vele andere)
- om in je kleren te naaien, of op een andere manier op je lichaam te dragen:
- draadloos, om je huis intelligent te maken:
- aansluiten op het internet, en gebruiken als onderdeel in het "Internet of Things"
De naam Arduino is beschermd - maar er zijn talloze variaties met "duino" denkbaar, zoals blijkt als je even zoekt. (Welke heb je gevonden?)
Hardware bestellen
Arduino hardware en andere elektronica kun je onder andere bestellen bij de Nederlandse leveranciers:
Voor elektronica-onderdelen kun je onder andere terecht bij:
Als je enige ervaring hebt, kun je ook het gebruik van goedkope Arduino-clones overwegen. Via de Chinese leveranciers kun je veel goedkope elektronica krijgen. Sommige Arduino-clones werken net iets anders dan de officiële versie. Deze zijn daarom minder geschikt voor de absolute beginners.