Handleiding voor bij de lessenserie Kennismaken met Arduino.
De Arduino is ruim 10 jaar geleden ontwikkeld en wordt tegenwoordig steeds vaker ingezet in het onderwijs. De orginele Arduino UNO komt uit Italie als handig applicatie device dat kan omgaan met output- en inputsignalen. Met een Arduino kun je eenvoudig een meet- en regelsysteem bouwen. Het kan LED's laten knipperen of reageren op temperauur, licht en/of beweging, maar dat is nog maar het begin. De mogelijkheden zijn onbeperkt en het is nog goedkoop ook.
De Arduino-community is sterk aan het groeien. Voor bijna iedere applicatie kun je wel een voorbeeld of tutorial vinden. Google je op "Applicatie's met Arduino" vind je ongetwijfeld iets van instructables.com. Niet alles wat je vindt kun je direct gebruiken, maar onderschat de leerlingen niet.
Om met een Arduino te kunnen werken moeten de leerlingen twee dingen kennen. Een stukje basiselectronica en programmeren. Van basiskennis over electronica is nodig: Stroomkring, spanning, schakelaar, plus/minpool, weerstanden en LED's aansluiten. Indien je met de analoge ingangssignalen wilt werken, is kennis van het principe van spanningsverdeler nodig. Inzake programmeren is er een standaard Arduino IDE software dat werkt via tekstregels, de in te voeren tekst regels lijken veel op de C++ programmeer taal. Ook kun je gebruik maken van de modulaire programmeer taal Ardu-blocks. Communicatie van PC naar de Arduino wordt met software geregeld en loopt via een USB poort.
We hebben geprobeerd deze lesmodule zo veel mogelijk constructivistisch in te richten. Wij willen de leerlingen onderzoekend laten leren door codes aan ze te presenteren, waarmee ze zelf kunnen experimenteren. Op die manier kunnen ze leren omgaan met programmeren, zonder dat het aanvoelt als een cursus programmeren.
Daarnaast hebben we geprobeerd de stukken tekst zo kort mogelijk te houden, zodat leerlingen zelf op zoek moeten als ze nog meer informatie nodig hebben.
De eindopdracht zullen we probleemgestuurd inrichten. Leerlingen moeten zelf onderzoeken welke codes uit het lesmateriaal ze nodig hebben, ze moeten deze codes nu zelf gaan aanpassen en hun eigen opstelling maken.
Na wat uitleg over het lessen pakket en de opbouw er van, kunnen de leerlingen aan de slag met de eerste oprachten.
Naast de Arduino-lessen kunnen de leerlingen het geheel afsluiten met een eigen gekozen project. Aan het einde zijn verschillende project ideeën geformuleerd. Hieruit kan gekozen worden of een van de aantal goede Nederlandstalige voorbeelden, die de komende tijd zeker ontworpen zullen gaan worden.
Voor de gehele module is ongeveer 12 uur nodig. De bedoeling is dat de leerlingen homogene groepjes van twee gaan formeren. Het project bestaat uit een applicatie systeem ontwerp, een concrete proto-type toepassing naar aanleiding van het ontwerp, de bijbehorende documentatie/beschrijving en een presentatie. Voor de beoordeling van het project kan gebruik gemaakt worden van het volgende beoordelingsschema. Uiterard kan ook een eigen matrix/rubriks gebruikt/gemaakt worden.
Lessen
De modules zijn gemaakt om leerlingen zelfstandig op een constructivistische manier te laten werken. Zorg dat u een aantal van de oefeningen zelf ook al eens gedaan hebt.
Als leerlingen eenmaal begrijpen dat er digitale en analoge pinnen zijn welke als input of output gedefinieerd kunnen worden om waardes naar toe te schrijven of mee uit te lezen, kunnen ze op een cognitivistische leerstyle heel veel leuke projecten uitvoeren. He is de bedoeling dat het project met twee-tallen gedaan wordt zoals eerder beschreven.
Niveau
De module is geschikt voor HAVO en VWO leerjaar 4 (voor DNS ontworpen op niveau VWO 4). Het is niet noodzakelijk dat leerlingen basis programmeer concepten al kennen. Het Arduino platform is zeker heel geschikt om basis programmeer vaardigheden aan te leren.
Talen zoals Python, Pascal, C# of C++ zijn erg geschikt als basis voor deze module, hoewel het met Visual Basic of eventueel iets als PHP ook al wel zou moeten kunnen.
Een Arduino is....
een platform bestaande uit:
- Een Atmel AVR microcontroller
- Een Arduino bordje waarmee je de chip kunt gebruiken
- Een programmeertool + taal waarmee de Arduino wat kan doen!
- Het ‘shield’ concept zodat extra functionaliteit in een handomdraai toegevoegd wordt aan de Arduino basis
Leveranciers en hardware
Een paar tips over leveranciers e.d. Ten eerste staat op arduino.cc een lijst van hardware leveranciers (ook voor Nederland). Freeduino.eu heeft kits gemaakt voor een Hogeschool en daar zijn positieve ervaringen mee.
A-blocks.org heeft handige kits om zonder solderen (of alleen éénmalig solderen) sensoren en actuatoren meerdere malen toe te kunnen passen. Bij andere kits zullen LED’s e.d. bij verkeerd gebruik soms vervangen moeten worden.
Het is ook handig om voldoende breadboard draadjes in voorraad te hebben. Deze raken in de praktijk snel op bij opdrachten zoals het verkeerslicht.
Soms is het handig als leerlingen bepaalde sensoren (bijv. voor de bumper) solderen. Dit kunt u natuurlijk ook als docent doen.
Zorg ook dat u wat tangetjes, schoevendraaiers e.d. in de klas heeft zodat leerlingen snel aan de gang kunnen.
Goedkope (maar goede) Arduino klonen en ander gerelateerd materiaal is zeer goedkoop te krijgen op Chinese webshops. Let hierbij wel op dat een bestelling 3 tot 4 weken onderweg zal zijn.
- http://www.banggood.com/buy/Arduino.html
- http://www.dx.com/s/arduino
Software en klasgebruik
Op Arduino.cc is de Arduino omgeving als Open Source te downloaden. Deze is op zich prima als netwerkversie te installeren. Leerlingen moeten soms wel bij de libraries map kunnen als zij bepaalde sensoren willen gebruiken of zelf de bibliotheek willen uitbreiden. Eventueel kunt u ook zelf eerst zo veel mogelijk uitbreidingen doen aan de bibliotheek en deze aan systeembeheer leveren. Arduino is overigens platform onafhankelijk en het uitpakken van de ZIP naar een USB stick is ook al voldoende om Arduino aan de praat te krijgen.
Bij de eindopdrachten
Stimuleer leerlingen in twee tallen zo veel mogelijk om zelf een eindopdracht te verzinnen. Er worden (in de eerste fase) twee eindopdrachten aangedragen:
Er zijn tal van andere toepassingen mogelijk, zo bedachten leerlingen uit de testgroep een kubus (gemaakt in een zogenaamd FabLab met Plexiglas) met een acceleratiesensor welke verandert van kleur bij het detecteren van beweging.(Tip: Google: “resistor color code calculator”)
Veel voorkomende syntax errors
Fout bij uploaden
avrdude: ser_open(): can't open device "\\.\COM6": Het systeem kan het opgegeven bestand niet vinden.
De Arduino is waarschijnlijk niet goed aangeloten op de PC. Kijk of de USB kabel is aangesloten.
Kies onder Hulpmiddelen > Poort de COM poort waar (Arduino) achter staat.
Fout bij compileren
link.ino: In function 'void loop()':
Blink.ino:29:1: error: expected ';' before '}' token
Fout bij compileren.
Waarschijnlijk is dit de meest voorkomende syntax fout, de vergeten puntkomma na een functie.
Er staat bij in de hoeveelste regel van de code (hier29).
Link naar overige syntax errors voor Arduino en C++
http://womble.decadent.org.uk/c++/syntax-errors.html
Andere links en/of referentie sites
NVON.tk/fun-electro voor lespakk1etten en cursussen
NVON.tk/beta-steun cursus en DOT over de Arduino ban Betasteunpunt Zuid-Holland
NVON.tk/verdiep Cursussen beginners en gevorderen van de Verdiep (Be).
NVON.tk/ardui-forum forum voor als je er niet uit komt.
Voor de praktisch opdracht kan het volgende model gebruikt worden.
De beoordeling ( kan gebeuren) gebeurt op basis van een groot aantal punten, die hierna vermeld worden. Zij wordt mede bepaald door de vorm van je toepassing/ applicatie. Onder elk punt worden een aantal criteria vermeld, waarop (indien van toepassing) de beoordeling voornamelijk gebaseerd is. Achter elk beoordelingscriterium is tussen haakjes de bijbehorende mogelijke score vermeld. De score wordt per onderdeel vermeld en levert een maximale totaalscore van 100 op. Het cijfer wordt berekend door het totaal aantal behaalde punten te delen door 10.
Het niet op tijd inleveren van onderdelen, zoals aangegeven een vooraf afgesproken het tijdpad, betekent per te laat ingeleverd onderdeel 5 punten in mindering op het totaal van 100 punten.
Keuze applicatie (1-3)
Hoort de applicatie bij het thema?
Past de applicatie bij de gekozen vakken ?
Voldoende inhoudelijk niveau (1-5)
Diepgang / Complexiteit
Originaliteit
Onderzoeksvraag
(Relevante) deelvragen
Plan van aanpak (1-10)
Duidelijkheid
Uitvoerbaarheid
Deelactiviteiten
Geeft het antwoord op de onderzoeksvraag ?
Tijdsplanning
Maken van afspraken met docent en TOA
Veiligheid
Verzamelde gegevens (informatiebronnen) (1-5)
Voldoende
Variatie
Relevant
Betrouwbaar
Mate van zelfstandigheid (1-7)
Bij het verzamelen van gegevens
Bij keuze van de applicatie
Bij opstellen van het systeem ontwerp
Bij problemen oplossen
Bij nemen van (juiste) beslissingen
Bij meedenken
Creativiteit, inventiviteit
Kwaliteit van het logboek(1-5)
Soort informatie
Overzichtelijkheid
Uitvoering van het systeem ontwerp (in relatie met plan van aanpak) (1-8)
Tijdsplanning
Afwijken van aanpak
Veiligheid
Gegevens(verwerking)(1-8)
Voldoende relevante informatie/waarnemingen/metingen
Leesbaarheid
Relatie met theorie
Kwaliteit
Afwerking (1-5)
Op basis gegevens
complexiteit
Mate van zelfstandigheid(1-8)
Bij het verwerken van de gegevens
Bij opstellen conclusie
Bij het oplossen van problemen
Bij het nemen van (juiste) beslissingen
Bij meedenken
Creativitet, inventiviteit
Evt. functioneren in de groep
Inzet(1-8)
Werkverdeling onder de team leden
Betrokkenheid van de team leden
Logboek(1-5)
Soort informatie
Overzichtelijkheid
Volledigheid
Inhoudelijke keuzes en motivering
Diepgang
Bronvermelding(1-4)
Aanwezig
Notatie
Presentatie(1-3)
Educatie gehalte
Creativiteit
Detailering
Structuur / Opbouw (1-4)
Introductie / inleiding
Logische vervolg van presentatie
Afsluiting / afronding
Vormgeving (1-3)
Duur van de presentatie
Consistentie van het verhaal
Gebruik van audiovisuele middelen
Taalgebruik (1-4)
Correct Nederlands
Gericht op doelgroep
Woordenschat
Creativiteit
Stemgebruik (1-3)
Verstaanbaarheid
Stemgebruik / intonatie / muziek
Vlotheid van de spreker
Non verbale communicatie (1-3)
Enthousiasme
Houding
Uitstraling