modellering met Arduino

Maat: px
Weergave met pagina beginnen:

Download "modellering met Arduino"

Transcriptie

1 2015 modellering met Arduino F. Vonk versie

2 inhoudsopgave 1. inleiding de Arduino programmeren voor Arduino commentaar variabelen functies/procedures de speciale functies setup en loop opslaan van je code breadboards en elektronica verder met programmeren Flowcharts uitdagingen blok regelsystemen lichtsterkte meten temperatuur meten een knop uitlezen aansturen van een servomotor State Transition Diagrams sensoren en actuatoren combineren uitdagingen blok appendix A: Arduino IDE configureren Dit werk is gelicenseerd onder een Creative Commons Naamsvermelding NietCommercieel GelijkDelen 3.0 Unported licentie Deze module is grotendeels gebaseerd op: Aan de slag met Arduino Overleven in een ruimtestation ; ESoE bètadidactiek opdracht ; R. Eggenkamp, R. van Elst, J. Geurts en M. Savelsberg. De afbeelding op het voorblad is verkregen via INFOwrs. Copyright 2010 INFOwrs Serviços em informatica

3 1. inleiding Modelleren wordt steeds belangrijker in onze maatschappij. Producten die ontwikkeld worden, zijn steeds complexer. Om de kwaliteit en kosten van deze producten goed te kunnen managen, is het belangrijk eerst een goed model van een product te maken. Er zijn veel modelleringsmethoden op veel verschillende gebieden 1. In deze module gaan we naar een klein aantal methoden kijken op het gebied van software modellering. Om het levendiger te maken, ga je de gemaakte modellen ook implementeren met behulp van een zogenaamde microcontrollerbord, in dit geval een Arduino. Zo'n Arduino bestaat uit een eenvoudige CPU met weinig RAM die beide op een speciale printplaat zijn gemonteerd. Op deze printplaat wordt een relatief groot aantal IO (input-output) poorten aangeboden om sensoren en actuatoren aan te sluiten, zoals LED lampjes, drukknopjes, buzzers enzovoorts. Figuur 1: Een Arduino Uno Rev3 microcontrollerbord. De Arduino en andere microcontroller oplossingen worden voor de meest waanzinnige dingen gebruikt. Een aantal voorbeelden: YouTube Arduino Home Automation Project YouTube Arduino Garage Door Opener YouTube Arduino Robot Grabbing Drinks From Fridge De volgende modelleringsmethoden gaan behandeld worden: Flowcharts (stroomdiagrammen) State Transition Diagrams (toestandsovergang diagrammen) Dus welkom bij de module modellering met Arduino. We nemen je in vogelvlucht mee door de tijd vanaf het punt dat we als oorsprong van de computer zien. In deze module kom je opgaves tegen, die je moet maken om de lesstof te verwerken. De antwoorden kunnen in de les besproken worden. 1 Zie bijvoorbeeld Wikipedia Systems Modeling

4 opgave Opgaves in blauw moet je maken. Je kunt deze, op verzoek, ook aan je leraar laten zien. Kun je dit niet, dan beïnvloedt dat je cijfer voor de uitdagingen. In deze module kom je uitdagingen tegen, die je moet maken om dit onderdeel van het vak informatica af te ronden. Je oplossingen moet je als groepje met je leraar bespreken. uitdaging Opgaves in paars zijn uitdagingen. De uitvoering van alle uitdagingen samen bepalen je SE cijfer voor dit onderdeel (modellering) van het vak informatica. Wanneer je een uitdaging af hebt, verdedig je je oplossing met je hele groepje ten overstaande van je docent. Je kunt de volgende beoordelingen krijgen voor een uitdaging: 2. Je hebt geen goed model gemaakt, de hardware opstelling klopt niet of het programma werkt niet. Zelfs als delen van het voorgenoemde wel kloppen/werken, maar je kunt je oplossingen niet verdedigen, dan krijg je nog steeds deze beoordeling. 4. Je model en de hardware opstelling kloppen niet of het programma werkt niet. Zelfs als delen van het voorgenoemde wel werken, maar je kunt je oplossingen niet verdedigen, dan krijg je nog steeds deze beoordeling. 7. Je model en de hardware opstellingen kloppen en het programma werkt. De gekozen oplossingen zijn echter standaard en je verdediging is voldoende, maar houdt niet over. 8. Je model en de hardware opstellingen kloppen en het programma werkt. De gekozen oplossingen zijn inventief en je verdediging is goed. 9. Je model en de hardware opstellingen kloppen en het programma werkt. De gekozen oplossingen zijn inventief en creatief en je verdediging is uitstekend. Wanneer je de eindopdracht met goed gevolg uitvoert, dan wordt je cijfer met maximaal 1 opgehoogd en kun je een 10 halen

5 Je bent als team verantwoordelijk voor alle resultaten. Ook al heb je aan een bepaald deel niet zelf gewerkt, wil dat niet zeggen dat je er niets van hoeft te weten. Je moet dus in staat zijn om alles wat gemaakt is door je team te verdedigen. Als blijkt dat één persoon niet voldoende of juist extra heeft bijgedragen aan de resultaten van de groep dan kan de leraar besluiten over te gaan tot een individuele beoordeling in plaats van een beoordeling als team. Let op, links in dit document hebben een rode kleur

6 2. de Arduino Naast de Arduino, die je afgebeeld ziet in Figuur 1 in het vorige hoofdstuk, heb je nog een type A/B USB kabel en een computer nodig. Om software voor de Arduino te schrijven heb je de Arduino ontwikkelomgeving nodig. Deze is al geïnstalleerd op de computers in het informaticalokaal. Als je wel eens geprogrammeerd hebt, ken je ongetwijfeld het programma "Hello World!". Dit programma doet niks meer of minder dan Hello World! op het scherm laten zien. Dit programma wordt vaak gebruikt om snel te testen of de ontwikkelomgeving goed werkt. Binnen de elektronicawereld gebruikt men een variant op "Hello World!" en die heet "Blink". Het "Blink" programma zorgt ervoor dat je een LED lampje kunt laten knipperen. Het programma, ook wel "sketch" genoemd in de Arduino wereld, "Blink" wordt standaard meegeleverd met de Arduino ontwikkelomgeving. Hiermee ga je testen of alles goed werkt. opgave 2.1 Voer de volgende stappen uit en kijk of alles goed werkt: 1) Sluit de Arduino met de USB kabel aan op de PC. 2) Start de Arduino IDE op via Start All Programs Vakken Informatica Arduino (dit kan even duren als de IDE nog nooit op de PC gebruikt is). Je ziet dan het volgende venster. Dit is de Arduino IDE

7 3) Kijk of het "Arduino Uno" bord ingesteld is bij Tools Board, zie appendix A: Arduino IDE configureren. 4) Kijk of de juiste USB poort ingesteld is bij Tools Port, zie appendix A: Arduino IDE configureren. 5) Ga naar File Examples in het menu. Je ziet hier een grote verzameling voorbeelden staan. Kies het Blink programma onder Basics. 6) De omgeving opent een nieuw venster met de sketch erin. Linksboven staan twee knoppen die je nodig hebt om een sketch te verifiëren en installeren op de Arduino. De linker knop Verify gebruik je om de code te controleren, de rechter knop Upload om de sketch op de Arduino te installeren. 7) Klik nu eerst op de Verify knop. Onderin beeld zie je dat de code gecontroleerd wordt (dit noemen we compileren). Als dit succesvol verloopt zie je het volgende. 8) Klik vervolgens op de Upload knop. De Arduino ontwikkelomgeving compileert de sketch nu nogmaals en upload deze vervolgens naar de Arduino. Als dit gelukt is zie je de melding Done uploading. Als alles goed is gegaan, dan zie je nu op de Arduino het indicatie LED knipperen met een snelheid van ongeveer 1 seconde, zie afbeelding hieronder

8 Proficiat, je hebt je eerste programma uitgevoerd op een Arduino bord. Nu ga je zelf de code wat aanpassen. opgave 2.2 Bekijk de code van de Blink sketch goed. Pas de code nu zo aan, dat het indicatie LED twee keer zo snel gaat knipperen. Als het niet lukt, geen probleem, dan ga je gewoon door met de module en probeer je het straks nog een keer

9 3. programmeren voor Arduino In het vorige hoofdstuk heb je de Blink sketch geladen in de ontwikkelomgeving, gecompileerd, naar de Arduino overgezonden en gekeken of het echt werkt op de Arduino. Misschien is het je zelf al gelukt om het LED lampje twee keer zo snel te laten knipperen. In dit hoofdstuk gaan we kijken hoe zo n sketch er uitziet, en zullen we er meer wijzigingen in maken. De sketch zelf staat in het tekstgedeelte van de Arduino ontwikkelomgeving. Sketches zijn geschreven in een op C/C++ gebaseerde taal. C en C++ zijn programmeertalen die erg veel gebruikt worden. Als je Verify vanuit het menu kiest, dan gaat de omgeving de tekst lezen en vertalen naar de Arduino machinetaal (compileren) zodat de Arduino het programma uit kan voeren. De Blink sketch is niet in alle versies van de ontwikkelomgeving hetzelfde. Waarschijnlijk ziet de versie die jij hebt er anders uit dan het onderstaande voorbeeld. /* * Blink * * The basic Arduino example. Turns on an LED on for one second, * then off for one second, and so on... We use pin 13 because, * depending on your Arduino board, it has either a built-in LED * or a built-in resistor so that you need only an LED. * * */ int ledpin = 13; // LED connected to digital pin 13 void setup() { pinmode(ledpin, OUTPUT); } // run once, when the sketch starts // sets the digital pin as output void loop() { digitalwrite(ledpin, HIGH); delay(1000); digitalwrite(ledpin, LOW); delay(1000); } // run over and over again // sets the LED on // waits for a second // sets the LED off // waits for a second - 8 -

10 We gaan nu het programma ontleden. commentaar Het eerste stuk is het zogenaamd commentaar. /* * Blink * * The basic Arduino example. Turns on an LED on for one second, * then off for one second, and so on... We use pin 13 because, * depending on your Arduino board, it has either a built-in LED * or a built-in resistor so that you need only an LED. * * */ Commentaar is tekst die niet wordt vertaald naar Arduino machinetaal, het is er alleen om mensen te vertellen wat er gaat gebeuren. Commentaar verduidelijkt de code. Commentaar begint met een /* en eindigt met een */. Alles tussen de /* en */ wordt genegeerd bij het compileren. In dit voorbeeld wil de auteur het er netjes uit laten zien met extra * s, maar dat hoeft niet. Commentaar is essentieel en het is belangrijk dat je zelf ook voldoende commentaar in je eigen sketches zet. Zonder commentaar is het voor anderen veel moeilijker om jouw code te begrijpen. Dit geldt natuurlijk voor je groepsgenoten, maar ook voor de docent die jouw werk moet beoordelen. Aan het begin van de sketch zet je de naam en het doel van je sketch. variabelen Daarna komen de variabelen. int ledpin = 13; // LED connected to digital pin 13 Dit is de eerste regel van de echte Arduino instructies. Het gedeelte aan de rechterkant is het commentaar. Als je een enkele commentaarregel of een deel daarvan wilt schrijven, dan kun mag je het achter // zetten. Het gedeelte voor de // noemen we een statement, ofwel een computer opdracht. In het Nederlands eindigen we een zin met een. (punt), maar in veel computertalen gebruiken we de ; (puntkomma). De computer regel hierboven is een opdracht voor de computer om een variabele, een speciaal soort doosje, te maken die ledpin heet, en waar de waarde 13 in gestopt wordt. Het heet een variabele, omdat de inhoud gedurende de uitvoering van de sketch kan veranderen; de inhoud is "variabel"

11 Het eerste gedeelte van de regel is int, dit geeft aan wat voor soort variabele we gaan maken; we noemen dit het type. Het is de afkorting van integer en dat betekent geheel getal. Dit wil zeggen dat in deze variabele alleen gehele getallen gestopt kunnen worden. Als je er iets anders is stopt dan faalt het compileren. opgave 3.1 Verander de waarde 13 bij de variabele ledpin in "Jantje" en druk op de Verify knop. Kijk wat er gebeurt. Het tweede gedeelte van de regel is ledpin, dit is de naam van de variabele. Het derde gedeelte van de regel is de =, dit geeft aan dat de variabele ledpin de waarde krijgt die aan de rechterkant van de = staat. Deze = spreek je uit als "wordt", omdat het aangeeft dat de waarde van de variabele verandert. Het vierde gedeelte van de regel is 13, een geheel getal dat aan ledpin toegekend wordt. functies/procedures Het volgende, en laatste, stuk van de sketch bestaat uit functies, deze worden ook wel procedures genoemd. In iedere sketch worden twee speciale functies verwacht namelijk: void setup() en void loop() Daarnaast kun je ook zelf functies maken. void setup() { pinmode(ledpin, OUTPUT); } // run once, when the sketch starts // sets the digital pin as output Het woord void slaan we even over. Daarna staat de naam van de functie, in dit geval setup. Na de naam staan ALTIJD een openings- en een sluithaakje. Tussen deze haakjes mag iets staan, maar dat hoeft niet. Daarna staat wat de functie moet doen, dit staat altijd tussen accolades. Wat de functie moet doen wordt aangegeven door middel van instructies/statements. Dit alles noemen we een functiedeclaratie. De instructie in deze functie geeft aan dat de ledpin in de output modus staat, dat wil zeggen dat de Arduino verwacht dat we waardes gaan schrijven naar deze pin

12 pinmode is de naam van een functie die binnen de Arduino ontwikkelomgeving al voor ons gemaakt is en die we daarom kunnen gebruiken. Als we de pinmode functie gebruiken noemen we dat een functieaanroep. Ook bij een functieaanroep zetten we ALTIJD een openings- en een sluithaakje na de naam van de functie. Meestal staat er iets tussen de haakjes, maar dat hoeft niet! In het geval van pin- Mode staan er twee dingen tussen haakjes. Dit zijn de argumenten die we aan de functie doorgeven. Je scheidt de argumenten door middel van komma's. Je kunt dit vergelijken met wat je in de wiskunde gebruikt. Bijvoorbeeld sin(30), die de sinus van 30 graden voor je uitrekent. Een overzicht van functies die je kunt gebruiken vind je bijvoorbeeld op de Arduino website. De volgende functie heet loop en ziet er als volgt uit. void loop() { digitalwrite(ledpin, HIGH); delay(1000); digitalwrite(ledpin, LOW); delay(1000); } // run over and over again // sets the LED on // waits for a second // sets the LED off // waits for a second In deze functie worden 4 instructies uitgevoerd. De tweede en de vierde regel zijn identiek en hebben met wachten te maken. Deze instructie zegt: Arduino, doe 1000 milliseconden niets. De instructie roept de functie delay aan die ook bekend is binnen de Arduino ontwikkelomgeving. Dit is handig, want dan hoeven we niet zelf de code te schrijven om de Arduino te laten wachten. De eerste instructie bevat ook een functie aanroep. Ditmaal wordt de functie digitalwrite aangeroepen, die uiteraard ook bekend is in de Arduino ontwikkelomgeving. Hiermee kun je de spanning op een pin van de Arduino zetten of weghalen. Wanneer die pin met een LED verbonden is kun je daarmee die LED aan- en uitzetten. Aanzetten doe we met de speciale waarde HIGH en uitzetten met LOW. opgave 3.2 Als het in het vorige hoofdstuk niet gelukt is, pas dan nu de code van de Blink sketch zo aan, dat het indicatie LED twee keer zo snel gaat knipperen

13 de speciale functies setup en loop De functies setup en loop zijn speciaal voor de Arduino. De setup functie wordt altijd helemaal aan het begin aangeroepen, dus vanaf het moment dat er spanning op de Arduino staat. Nadat de setup functie is uitgevoerd, wordt telkens opnieuw de loop functie aangeroepen. De loop functie wordt dus steeds weer en net zolang aangeroepen totdat de spanning van de Arduino wordt gehaald. opslaan van je code Nu we de hele sketch geanalyseerd en aangepast hebben is het tijd om de veranderingen op te slaan. Als je dat probeert, dan krijg je de melding dat de sketch read-only is, zie de afbeelding hieronder. Sla hem nu op in een eigen map onder een zinvolle naam. Vervolgens ga je de volgende opdrachten uitvoeren. opgave 3.3 Verander de sketch zodat de code ervan er precies hetzelfde uitziet als de code aan het begin van dit hoofdstuk. Sla de sketch vervolgens op onder een nieuwe naam. opgave 3.4 Verander de sketch zo, dat de indicatie LED 100ms aan is en 900ms uit. Sla de sketch vervolgens op onder een nieuwe naam

14 opgave 3.5 Verander de sketch zo, dat de LED 50ms aan is en 50ms uit. Sla de sketch vervolgens op onder een nieuwe naam. Verklaar wat je ziet, en vergelijk het met de vorige opdracht. opgave 3.6 Verander de sketch zo, dat de LED 10ms aan is en 10ms uit. Sla de sketch vervolgens op onder een nieuwe naam. Verklaar wat je ziet, en vergelijk het met de vorige opdrachten

15 4. breadboards en elektronica Je gaat in de rest van deze module aan de slag met elektronica in de vorm van sensoren en actuatoren. In dit hoofdstuk krijg je uitleg over de basis van de elektronicacomponenten die we gaan gebruiken. Hiernaast zie je een breadboard. Dit gebruik je om componenten op elkaar aan te sluiten. Belangrijk om te weten is dat de verschillende gaatjes in een patroon met elkaar verbonden zijn. Zoek zelf uit hoe dit bij jouw breadboard zit. Hiernaast zie je enkele enkel kleurige LED lampjes, in dit geval rode. Zo'n LED lampje heeft twee pootjes. Het ene pootje (positieve pootje) sluit je aan op een hoge spanning, bijvoorbeeld 3,3 of 5 volt. Het andere pootje (negatieve pootje) sluit je aan op de 0 volt. Je sluit het positieve pootje via een weerstand aan op een digitale poort van de Arduino. Deze stuurt ongeveer 3,3 volt uit. Het negatieve pootje sluit je op de GND (ground, oftewel 0 volt) van de Arduino aan. Het lange pootje van het LED lampje is het positieve pootje, het korte is het negatieve pootje. Je kunt dit ook zien aan het hoedje, de platte kant zit bij het negatieve pootje. Hiernaast zie je drie weerstanden van 220Ω (Ohm). Een weerstand heeft geen positieve en negatieve kant, dus het maakt niet uit hoe je hem aansluit. Hiernaast zie je M/M jump wires afgebeeld. Dit zijn draadjes met aan weerszijden pinnetjes, die je in Arduino's en breadboards kunt steken. M/M staat voor male/male en dat betekent dat er pinnetjes aan de uiteinden zitten

16 opgave 4.1 Bouw de schakeling na die je hieronder ziet. Pas vervolgens de Blink sketch uit het vorige hoofdstuk zo aan, dat je niet het indicatie LED op het Arduino bord laat knipperen, maar het LED lampje op het breadboard. opgave 4.2 Breid de schakeling die je in de vorige opgave hebt gebouwd uit. Voeg een groen LED lampje toe en sluit dat aan op Arduino poort 11. Maak een nieuwe sketch om beide LED lampjes aan te sturen. Neem de Blink sketch als uitgangspunt. Zorg ervoor dat de LED lampjes om en om een seconde aan zijn. Er mag dus maar 1 LED lampje tegelijkertijd branden

17 5. verder met programmeren Tot nu toe heb je enkel een vast aantal regels code uitgevoerd. Deze regels worden niet beïnvloed door de omgeving, maar uiteindelijk wil je dit natuurlijk wel graag. Je hebt immers veel meer mogelijkheden als jouw sketch kan reageren op een actie van de gebruiker (bijvoorbeeld een druk op de knop) of de verandering van een sensor. Om dit te kunnen heb je controle structuren nodig, zoals de if-else (de selectie). Door een if-else structuur te gebruiken, voer je een stukje code conditioneel uit zoals je ooit geleerd hebt. Dit betekent dat het stukje code enkel wordt uitgevoerd indien er aan een voorwaarde (de conditie) voldaan wordt. Je kunt hierdoor reageren op bijvoorbeeld het indrukken van een knop. Wanneer je code, zonder controle structuren, binnen de loop functie wordt uitgevoerd, dan wordt alle code in de loop functie continue herhaald. Door de if-else constructie te gebruiken kun je hier controle op uitoefenen. Je kunt bijvoorbeeld code uitvoeren elke derde keer dat de loop functie doorlopen wordt. Een voorbeeld hiervan, zie je in de code hieronder. int ledpin = 13; // LED connected to digital pin 13 void setup() { pinmode(ledpin, OUTPUT); } // sets the digital pin as output int teller = 0; // var to control code in loop void loop() { // execute code only when var teller if (teller == 3) // equals 3, use == to check equality { digitalwrite(ledpin, HIGH); // sets the LED on } teller = 0; // restart counting with var teller } // execute code when var teller is not else // equal to 3 { digitalwrite(ledpin, LOW); // sets the LED off } delay(1000); teller = teller+1; // waits for a second Figuur 2: Voorbeeld van een if-else constructie

18 opgave 5.1 Bestudeer het voorgaande programma goed. Teken een tijdlijn waarin voor elke seconde de toestand (aan of uit) van het LED lampje wordt weergegeven. Doe dit voor de eerste 10 seconden (dus van 0 tot en met 10 seconden). opgave 5.2 Pas de code van de opgave 4.2 aan met een if-else controle structuur, zodat maar één keer de delay functie wordt aangeroepen

19 6. Flowcharts Aangezien dit een module over modellering is, wordt het tijd om de eerste modelleringsmethode te gaan bekijken en dat zijn de Flowcharts. Wie de comedy serie The Big Bang Theory kent, herkent misschien het diagram uit Figuur 3. Figuur 3: "The friendship algorithm" diagram. 2 In Figuur 3 zie je de Flowchart van het "friendship algorithm" uit de aflevering "Stu the Cockatoo is New at the Zoo". De clip met, een deel van, de uitleg over deze Flowchart vind je op YouTube. Je ziet dat Flowcharts handig zijn om diagrammen te maken die processen voorstellen. Feitelijk is de uitvoering van een computerprogramma ook een proces. En daarom worden Flowcharts gebruikt om computerprogramma's te modelleren

20 opgave 6.1 Bekijk de Flowchart uit Figuur 3 en zorg dat je precies snapt wat er gebeurt. Je ziet dat in Figuur 3 een aantal symbolen worden gebruikt. Deze symbolen hebben een afgesproken betekenis in het diagram. Op die manier leest iedereen een Flowchart op dezelfde manier. Er staan ook pijlen en lijnen in het diagram die aangeven welke symbolen een volgordelijke relatie met elkaar hebben. Zij laten de flow van het diagram zien. In Figuur 4 zie een overzicht van veel voorkomende Flowchart symbolen en een beknopte uitleg van elk van deze symbolen. Figuur 4: Overzicht van veel gebruikte Flowchart symbolen

21 Je zult in deze module niet alle in Figuur 4 afgebeelde symbolen gaan gebruiken. De symbolen die je mogelijk nodig gaat hebben zijn de: Terminator, Proces, Decision, Delay, Data en Subroutine. In Figuur 3 worden al deze symbolen gebruikt behalve de Terminator en de Delay. In Figuur 5 staan nog meer symbolen, daarvan heb je alleen de Merge nodig. Figuur 5: Overzicht van minder gebruikte Flowchart symbolen. 4 Flowcharts kun je met de hand tekenen op papier, maar het is handiger om het via een tekentool op de computer te doen. Een gratis online tool is GliffyOnline. In het menu aan de linkerkant van dit tool, kun je, onder Basic Shapes, kiezen voor Flowchart. Daar vind je veel van de symbolen uit Figuur 4 en Figuur De naamgeving is iets anders, zo gebruikt Gliffy start end i.p.v. Terminator, input/output i.p.v. data en predefined proces i.p.v. Subroutine

22 opgave 6.2 Probeer zelf een Flowchart te maken van het Blink programma. Laten we eens kijken naar de loop functie uit Figuur 2. Een mogelijke Flowchart voor dit algoritme zie je in Figuur 6. Figuur 6: Mogelijke Flowchart van Figuur 2. opgave 6.3 Ga voor jezelf na dat de Flowchart uit Figuur 6 inderdaad een model is voor Figuur

23 Je ziet dat in Figuur 2 door de if-else constructie twee paden zijn en dat er daarna nog meer code staat. Daarom moeten de twee paden samengevoegd (merged) worden voordat er gewacht wordt en de teller opgehoogd. Er zitten geen Terminator symbolen in omdat het programma oneindig lang door blijft gaan vanwege de eigenschap van de loop functie op de Arduino. opgave 6.4 Maak zelf een Flowchart voor de code van opgave 5.2. opgave 6.5 Is de Flowchart in Figuur 3 helemaal correct of kun je Dr. Sheldon Cooper, Ph. D verbeteren? Zo ja, hoe dan?

24 7. uitdagingen blok 1 In dit hoofdstuk staan de eerste twee uitdagingen uit deze module. Veel succes. uitdaging 7.1: verkeerslicht In deze uitdaging ga je een werkend driekleurig verkeerslicht bouwen. Benodigdheden: Arduino breadboard 3 LED lampjes (groen, oranje/geel en rood) 3 weerstanden van 220Ω (Ohm) M/M jump wires (draadjes) Maak een verkeerslicht bestaande uit drie LED lampjes (groen, oranje/geel en rood). Maak hiervoor zelf een opstelling. In de afbeelding hierna zie je een voorbeeldopstelling: Maak een Flowchart om het gedrag van het verkeerslicht te modelleren. Het gedrag is als volgt: het stoplicht staat 4 seconden op groen, vervolgens 1 seconde op oranje en tot slot 6 seconden op rood. Maak een programma zo, dat de gebouwde opstelling werkt volgens het model. Het kan zijn dat je gaandeweg je Flowchart nog moet aanpassen. Dat mag. Bewaar de eerste versie van je Flowchart zodat je die kunt laten zien. Hint: Als deze uitdaging je moeilijk lijkt, probeer dan eerst een voetgangerslicht te maken

25 uitdaging 7.2: mood light In het huidige tijdperk is het doel van licht veranderd van puur verlichting naar het creëren van sfeer. Zo bestaan er lavalampen om een rustgevende sfeer te creëren. De nieuwste trend zijn LED mood lights, dit zijn lampen die langzaam van kleur veranderen. Meestal zijn er verschillende programma s te kiezen, afhankelijk van de sfeer die de gebruiker wil creëren. Het doel van deze opdracht is om met behulp van drie gekleurde LED lampjes zelf een mood light te maken. Kijk voor een voorbeeld op YouTube. Benodigdheden: Arduino breadboard 3 LED lampjes (rood, groen en blauw) 3 weerstanden van 220Ω (Ohm) M/M jump wires (draadjes) afdekmateriaal, bijvoorbeeld wit papier Maak een mood light bestaande uit drie LED lampjes (rood, groen en blauw). Maak hiervoor zelf een opstelling. In de afbeelding hierna zie je een voorbeeldopstelling:

26 Maak een Flowchart om het gedrag van de mood light te modelleren. Het gedrag bepaal je zelf. Zorg ervoor dat je bij de verdediging uit kunt leggen waarom je dit gedrag hebt gekozen. Maak een programma zo, dat de gebouwde opstelling werkt volgens het model. Het kan zijn dat je gaandeweg je Flowchart nog moet aanpassen. Dat mag. Bewaar je de eerste versie van de Flowchart zodat je die kunt laten zien

27 8. regelsystemen In de voorgaande hoofdstukken heb je, als het goed is, een indruk gekregen van wat er allemaal met de Arduino mogelijk is. Een Arduino is een goede regelaar (controller) binnen meet- en regelsystemen. Een meet- en regelsysteem bestaat typisch uit een aantal onderdelen: één of meerdere sensoren, één of meerdere actuatoren en één of meerdere controllers. Een sensor kan een natuurkundige grootheid waarnemen in een omgeving en de waarde daarvan als signaal doorsturen naar de controller. Een voorbeeld is een temperatuursensor die de temperatuur doorgeeft aan een Arduino. Er zijn echter nog veel meer sensoren beschikbaar die makkelijk aangesloten kunnen worden op een Arduino. Met een aantal sensoren ga je kennismaken in dit hoofdstuk. Een actuator is een stuk elektronica dat direct of indirect invloed kan uitoefenen op zijn omgeving. Een voorbeeld is een elektronische schakelaar die de verwarming aanzet. Maar de LED lampjes die je al veel gebruikt hebt, zijn ook actuatoren. Ze geven immers licht en beïnvloeden daarmee hun omgeving. De controller verwerkt de signalen van de sensoren en stuurt op basis van de waarde van de binnenkomende signalen en zijn programma de actuatoren aan. Een voorbeeld van een controller in je eigen huis is de thermostaat. Deze meet de temperatuur in de kamer en zet op basis daarvan en op basis van de gebruikersinstellingen de verwarming aan of uit. lichtsterkte meten In deze paragraaf ga je de Arduino de lichtsterkte weer laten geven. Hiervoor ga je een lichtsensor aan de Arduino koppelen. Uiteindelijk ziet je opstelling er ongeveer als volgt uit

28 Lichtsterkte wordt gemeten met een Light Dependent Resistor (LDR). Dit is een weerstand die afhankelijk is van de lichtsterkte in zijn omgeving. De weerstand van een LDR neemt af naarmate er meer licht op valt. Dat klinkt misschien raar, omdat het een omgekeerd verband is. Toch werken de meeste sensoren op deze manier. In de volgende afbeelding zie je een LDR. Als je meer wilt weten over hoe een LDR werkt, kijk dan bijvoorbeeld eens op Technology Student of Lady Ada. Om de waarde van sensoren te laten zien hebben we de Serial Monitor van de Arduino ontwikkelomgeving nodig. Je vindt deze in het menu onder Tools, zoals je in de volgende afbeelding ziet. Als je de Serial Monitor aanzet krijg je het volgende scherm te zien waar je informatie in kunt afdrukken via het programma dat je op de Arduino runt

29 Om informatie naar de Serial Monitor te sturen moet je de Serial.println functie gebruiken. Om deze functie te kunnen gebruiken moet je in de setup functie de instructie Serial.begin(9600); gebruiken. Deze zorgt ervoor dat de Arduino een verbinding met de PC opent om data uit te wisselen. Bij het aansturen van een LED lampje gebruikten we een digitale Arduino poort, omdat we het lampje alleen aan en uit wilden zitten. De waarde van een LDR is echter niet aan of uit, maar een geleidende schaal. Daarom sluiten we de LDR niet op een digitale, maar een analoge Arduino poort aan. Omdat de LDR een sensor is, moeten we een inputpoort gebruiken. Via een analoge inputpoort kunnen we de waardes 0 tot en met 1023 binnen krijgen. Dit alles leidt tot de volgende code. int ldrpin = A0; // LDR zit aan analoge input A0 int ldrvalue = 0; // var om LDR waarden te onthouden void setup() { Serial.begin(9600); } // start de Serial Monitor void loop() { } ldrvalue = analogread(ldrpin); // lees een nieuwe LDR waarde Serial.println(ldrValue); // stuur waarde naar Serial Monitor delay(100); // wacht 0,1 seconde Figuur 7: Code om een LDR uit te lezen en de waarde te laten zien. Nu je dit allemaal weet, ben je klaar voor de volgende opdracht. opgave 8.1 Bouw een opstelling met een LDR die de gemeten lichtsterkte laat zien in de Serial Monitor. Benodigdheden: Arduino breadboard 1 LDR 1 weerstand van 10kΩ (kilo Ohm) 3 M/M jump wires (draadjes)

30 Je kunt voor deze opgave de opstelling in de afbeelding hierna gebruiken. De LDR heeft, net als een gewone weerstand, geen positieve of negatieve kant, het maakt dus niet uit hoe je de pootjes plaatst. Om de LDR goed te laten werken gebruik je een 10kΩ weerstand. Ze de code uit Figuur 7 in een nieuwe sketch, zorg je dat de Serial Monitor aanzet en stuur de code naar de Arduino. Kijk wat er op de Serial Monitor verschijnt. Houd je hand boven de LDR en kijk wat er met de waarde van de lichtsterkte gebeurt. Je kunt ook met een flashlight app op je smartphone extra licht op de LDR schijnen. Probeer goed te snappen wat er gebeurt en waarom. Bijvoorbeeld: Waarom hoef je niet de instructie pinmode(ldrpin, INPUT); in de setup functie te zetten? Waarom wordt er een hoog getal getoond op de Serial Monitor als er weinig licht op de LDR valt en een laag getal als er veel licht opvalt. Hint: Het programma in deze sketch leest de waarde van analoge pin A0, dat wil zeggen dat de Arduino de spanning op A0 meet

31 temperatuur meten Temperatuur kun je bijvoorbeeld meten met een temperatuursensor. De Arduino kan de waarde van een temperatuursensor uitlezen en vertalen naar een temperatuur. Zo n temperatuursensor kan er als volgt uitzien. Als je wilt weten hoe een temperatuursensor werkt, kijk dan op Lady Ada. Bij het aansluiten van een temperatuursensor (ook wel thermistor genoemd) is het belangrijk dat je weet welk pootje van de sensor wat doet. Niet alle sensoren zijn hetzelfde gebouwd, dus je moet goed weten welk type sensor je hebt. Op de site van iprototype thermistor kun je vinden hoe onze sensor werkt. Daar kun je ook de datasheet en het aansluitschema vinden. opgave 8.2 Zoek zelf uit hoe je de thermistor aan moet sluiten en bouw een opstelling. Zorg dat de output van de thermistor op analoge input pin A0 is aangesloten. Probeer vervolgens zelf een sketch te maken om de output van de thermistor uit te lezen. Als het niet lukt vraag dan om hulp van je leraar. Zoals je ziet is de waarde die uit de thermistor komt een spanningswaarde tussen de 0 en Dit is dus geen temperatuur! Die moet je er zelf nog van maken. Om dit te doen moet je de thermistor eerst ijken. intermezzo: ijken IJken is het relateren van een meetmethode aan een bekende standaard. In het geval van een temperatuursensor moet je voltage waarden aan graden Celsius relateren. Dit moet je typisch bij alles dat je gaat meten doen. Of je nu gebruik maakt van een thermistor, een geluidssensor of een druksensor, je zult de uitgelezen waarden moeten koppelen aan een eenheid waar je zelf iets aan hebt. Om te laten zien hoe je moet ijken, gaan we onze thermistor als voorbeeld nemen. Om deze goed te kunnen ijken, is het het handigst om een al geijkte thermometer te gebruiken. Je zou ook gebruik kunnen maken van smeltend water of kokend wa

32 ter, maar dat is veel lastiger. Soms hebben smartphones een temperatuur sensor, die je kunt gebruiken met de juiste app. Alleen weet je dan niet zeker dat je smartphone goed geijkt is. Hoe goed je ijkt, bepaalt de betrouwbaarheid van je opstelling. Voor je gaat ijken, is het belangrijk om uit te zoeken wat het verband is tussen de opeenvolgende waardes die de sensor produceert. Dit bepaalt namelijk hoeveel metingen je minstens moet doen om een ijkgrafiek te maken. Als je een lineaire sensor hebt (dus met een lineair verband) zijn 3 metingen voldoende; 2 metingen om de grafiek te bepalen en 1 ter controle. Bij een niet lineair verband wordt het lastiger, daarom proberen de makers van sensoren hun sensoren zoveel mogelijk lineair te maken. Overigens is het ook bij een lineaire sensor zo, dat hoe meer meetpunten je gebruikt, hoe betrouwbaarder je ijkproces wordt. In de datasheet van de thermistor die we gebruiken staat: "The MCP9700/9700A and MCP9701/9701A family of Linear Active Thermistor". En daaruit kunnen we concluderen dat we een lineaire temperatuursensor hebben. Dus 3 metingen zijn voldoende. Het is wel aan te raden om niet 3 waardes te nemen die heel dicht bij elkaar liggen. Aan te raden is om 2 betrouwbare, maar extreme, waardes te nemen. De derde waarde neem je daar dan ongeveer midden tussenin. Goede waardes in ons geval zouden 0, 35 en 70 graden Celsius zijn. Meet, bij de gekozen temperaturen, de waarde van de temperatuursensor en de thermometer. De uitdaging is natuurlijk om je opstelling in een ruimte te krijgen waar je het 0, 35 of 70 graden Celsius is. In ons geval is dat ietwat problematisch. Wanneer je alle meetpunten hebt, dan kun je op een ruitjesblad de grafiek tekenen. Zet op de horizontale as de waarden van de temperatuursensor en op de verticale as de waarden van de thermometer. Als het goed is, dan komt er een rechte lijn uit als ijkgrafiek. In Figuur 8 zie je een voorbeeld van zo'n ijkgrafiek. Vervolgens kun je de formule bij deze grafiek opstellen zoals je geleerd hebt bij wiskunde. Bij Figuur 8 hoort de formule T = 0,16S - 40, waarbij T de temperatuur in graden Celsius is en S de waarde die de sensor geeft

33 Figuur 8: Een ijkgrafiek voor temperatuur. Bij het ijken zou het voor kunnen komen dat er geen rechte lijn uitkomt. In dat geval heb je of verkeerd gemeten, of de sensor is niet lineair. In het eerste geval moet je je metingen opnieuw uitvoeren en meer meetpunten gebruiken, bijvoorbeeld 5. In het laatste geval moet je tenminste 7 metingen doen en kijken of er sprake is van een ander verband zoals een exponentieel verband. verder met temperatuur meten Om betrouwbare resultaten te krijgen van onze opstelling, moeten we de boel dus ijken. Het probleem is echter dat het lastig is om tenminste 3 goede metingen te doen. We zitten immers op school en daar heb je niet zomaar 3 locaties met verschillende temperaturen. Wat je daarom gaat doen is ijken op basis van slechts 2 meetpunten. Dat is eigenlijk te weinig, maar aangezien de betrouwbaarheid van onze opstelling niet heel belangrijk is, kunnen we hier wel mee leven. De 2 meetpunten zijn de volgende: 1. kamertemperatuur; laat je opstelling die je hebt gewoon vrij werken, pak en thermometer en lees de temperatuur af als deze constant is. 2. vingertemperatuur; laat één iemand uit de groep zijn/haar duim en wijsvinger om de thermistor en om de thermometer houden en lees de sensorwaarde en de temperatuur af als deze constant zijn. Dit is niet echt wetenschappelijk maar afdoende voor wat we willen

34 opgave 8.3 Maak een ijkgrafiek op basis van de 2 metingen die je hebt gedaan, ervan uitgaande dat de thermistor lineair is. Bepaal vervolgens de formule die bij de ijkgrafiek hoort. Pas de code van je sketch aan op basis van de formule die je bepaald hebt, zodat je de temperatuur in graden Celsius te zien krijgt in de Serial Monitor. een knop uitlezen Deze paragraaf laat zien hoe je de Arduino kunt bedienen met een drukknop. In dit voorbeeld zet je er alleen het indicatie LED van de Arduino mee aan en uit, maar later kun je er ook servomotoren en andere actuatoren mee aansturen. Ook bij drukknoppen is het belangrijk te weten welk type knop je hebt. Dit bepaalt namelijk hoe je de knop aan moet sluiten. Wij gebruiken de volgende iprototype drukknop. Via de link vind je onder andere het aansluitschema. In het schema staat 1 weerstand maar er staat nergens wat voor soort weerstand dat is. In dit geval is het een 220Ω weerstand. Je zult merken, dat als je nieuwe dingen uit gaat vinden op het gebied van elektronica, dat de informatie die je vindt vaak niet volledig is. Je zult dus zelf inventief moeten zijn om de details te achterhalen. Een drukknop heeft maar twee toestanden en kun je dus het beste aansluiten op een digitale poort van de Arduino. We geven je alvast de code die je straks nodig gaat hebben in je sketch. /* * Zet de LED van pin 13 aan en uit als er gedrukt wordt op de knop * die aan pin 2 gekoppeld is. */ int buttonpin = 2; // de drukknop zit aan pin 2 int ledpin = 13; // de indicatie LED zit aan pin 13 int buttonvalue = 0; // variable om de drukknop uit te lezen void setup() { pinmode(ledpin, OUTPUT); // initialiseer LED pin als een output pinmode(buttonpin, INPUT); // initialiseer button pin als een input }

35 void loop() { buttonvalue = digitalread(buttonpin); // lees de waarde van de knop } // Controleer of de knop is ingedrukt. if (buttonvalue == HIGH) // Dan is de waarde HIGH. { digitalwrite(ledpin, HIGH); // zet de LED aan } else { digitalwrite(ledpin, LOW); // zet de LED uit } Figuur 9: Code om een knop uit te lezen en het indicatie LED aan/uit te zetten. opgave 8.4 Bouw de opstelling die je vindt op de iprototype website. Je hebt daarvoor het volgende nodig: Arduino breadboard 1 drukknop 1 weerstand van 220Ω (Ohm) 3 M/M jump wires (draadjes) Zorg dat je de code uit Figuur 9 goed begrijpt en test alles uit. Pas vervolgens de code zo aan, dat de indicatie LED uitgaat als je de knop indrukt en aan gaat als je de knop loslaat. Pas daarna de code zo aan, dat je de toestand van de knop in de Serial Monitor ziet. Pas tot slot de code zo aan, dat de toestand van de knop maar 1 keer per seconde gecontroleerd wordt. Beredeneer goed wat het gevolg van deze wijziging is. Is deze positief of negatief en waarom? aansturen van een servomotor Deze paragraaf laat zien hoe je via de Arduino een servomotor (afgekort servo) kunt aansturen. De informatie over de servo die we gebruiken vind je op iprototype servo

36 Een servo kan typisch heen en terug draaien, maar geen rondjes draaien. Daarom is een servo niet geschikt om bijvoorbeeld de wielen van een auto te laten draaien. opgave 8.5 Bouw een opstelling aan de hand van de informatie die je vindt op de iprototype website. Je hebt daarvoor minimaal het volgende nodig: Arduino breadboard 1 servo 3 M/M jump wires (draadjes) Probeer vervolgens zelf een sketch te maken om de servo aan te sturen. Als het niet lukt vraag dan om hulp van je leraar. Hints: Zorg dat je de servo bibliotheek (Servo.h) aanhaalt (include). Zorg dat je in de setup functie aangeeft dat je een Arduino pin aan de servo koppelt (attached). Bijvoorbeeld pin 9. Zorg dat je in de loop functie een aantal keer een positie (een hoek in graden) aan de servo doorgeeft. Hiervoor gebruik je de write functie uit de servo bibliotheek. opgave 8.6 Als het goed is heb je intussen een opstelling en een sketch die goed samenwerken. Nu ga je wat dingen aanpassen. Pas de code zo aan, dat je, via een lus, de servo van 0 graden met stappen van 15 graden naar de maximale positie brengt. Iedere stap duurt 500 milliseconden. Daarna moet de servo met stappen van 10 graden weer terug draaien naar 0 graden. Iedere stap duurt nu 250 milliseconden. Pas daarna de code zo aan, dat je de stand van de servo in de Serial Monitor ziet. Je hebt intussen met redelijk wat sensoren en actuatoren gewerkt. Tot nu toe heb je steeds 1 sensor of 1 actuator gebruikt (behalve bij de drukknop waar het indica

37 tie LED feitelijk ook en actuator is). Je kunt echter, zoals je in de filmpjes uit de inleiding ziet, veel grotere opstellingen maken met meerdere sensoren en actuatoren. Stel je wilt een opstelling maken met bijvoorbeeld een lichtsensor en een temperatuursensor. Dan kun je niet beide sensoren op de A0 pin aansluiten. Gelukkig heeft de Arduino 6 analoge ingangen waar je sensoren op kunt aansluiten, zie rechts onderaan op Figuur 10. Op elk van deze analoge ingangen kun je een sensor aansluiten. Je moet uiteraard wel zorgen dat de code van je sketch de correcte pin uitleest voor de juiste sensor. Figuur 10: De power en analoge input pinnen in detail. Daarnaast wil je misschien een servomotor, een ventilator en een aantal LED lampjes aansluiten. Ook dat is mogelijk, zelfs tezamen met meerdere sensoren. De actuatoren kun je aansluiten op de digitale pinnen of analoge output pinnen aan de bovenkant van het Arduino bord. Bij de digitale pinnen staat een ~ op de Arduino Uno, zie Figuur 11. Dat zijn dus pin 3, 5, 6, 9, 10 en 11 zoals je kunt zien. Ook hier geldt, dat je in je code moet zorgen dat de juiste waarde naar de juiste pin voor de juiste actuator wordt gestuurd. Figuur 11: De digitale pinnen en analoge output pinnen in detail. Voor het uitlezen van drukknoppen, het aansturen van LED lampjes die alleen op een vaste lichtsterkte mogen te branden en het aansturen van een relais kun je vrij kiezen uit de pinnen 2 t/m

38 9. State Transition Diagrams In de afgelopen hoofdstukken ben je diverse sensoren en actuatoren tegengekomen. Veel van deze hebben een zogenaamde toestand. Een drukknop is bijvoorbeeld wel of niet ingedrukt, een LED lampje is wel of niet aan, een servo draait of staat stil enzovoorts. Dingen die een toestand hebben kunnen we modelleren met een toestandsovergang diagram. In het Engels heten dit een State Transition Diagram, afgekort STD. Een voorbeeld van een STD van een drukknop zie je afgebeeld in Figuur 12. De verklaring van de gebruikte symbolen vind je in Tabel 1. Figuur 12: STD van een drukknop. Tabel 1: Symbolen uit een STD. symbool uitleg Dit is het symbool voor de begintoestand van het diagram. Wanneer het systeem dat het STD modelleert in werking treedt, dan is het systeem in zijn begintoestand. Een toestand van het systeem. Een toestand heeft altijd een naam die de toestand zo duidelijk mogelijk beschrijft. Een event (gebeurtenis) dat op kan treden binnen het systeem. Als een event optreedt binnen het systeem, dan zorgt dit voor een toestandsovergang binnen het systeem. Dit kan een overgang naar dezelfde toestand zijn! Een event heeft meestal een naam die het event zo duidelijk mogelijk beschrijft. Soms hebben events geen naam. In dat geval treden ze altijd en onmiddellijk op. In het online tool, GliffyOnline, dat je voor Flowcharts hebt gebruikt, kun je ook een STD maken. Hiervoor kun je de symbolen gebruiken die je aan de linkerkant

39 bij UML Activity vindt. De naamgeving van de symbolen in Gliffy is iets anders dan in een standaard STD. De begintoestand heet in Gliffy initial node en de toestand heet action. opgave 9.1 Maak, met de symbolen die je nu kent, een STD voor een LED lampje. Misschien heb je gemerkt dat het maken van een STD voor een lampje minder logisch is dan voor een drukknop. Vond je het makkelijk om een goede naam te vinden voor de events? Hoe denk je dat dit komt? De drukknop is een sensor, die door een gebruiker van het systeem bedient wordt. Dat betekent, dat de events worden getriggerd door de gebruiker en dat is een heel natuurlijke situatie. Een LED lampje is echter geen sensor, maar een actuator. Wie bedient een actuator? Precies, de Arduino. De events, die horen bij een actuator, worden daarom niet getriggerd door de gebruiker van het systeem, maar door het systeem zelf. Meestal is dit wel een resultaat van iets dat de gebruiker doet. Kijk maar eens naar het STD in Figuur 13. Figuur 13: STD van een drukknop en LED lampje

40 opgave 9.2 Probeer het STD uit Figuur 13 te snappen zonder eerst de uitleg hieronder te lezen. Het diagram in Figuur 13 verandert 1 aspect van het STD, namelijk het event. In Figuur 12 gaf het event alleen de trigger (stuurpuls) van het event aan, in Figuur 13 wordt daar een actie aan toegevoegd. Een event bestaat nu dus uit een trigger / actie paar. Wat je verder ziet is dat de actie uit het ene event de trigger is in een ander event. Dit is de manier waarop sensoren invloed uitoefenen op actuatoren. Kun je je de volgende code nog herinneren? void loop() { buttonvalue = digitalread(buttonpin); // lees de waarde van de knop } if (buttonvalue == HIGH) { digitalwrite(ledpin, HIGH); // zet de LED aan } else { digitalwrite(ledpin, LOW); // zet de LED uit } // Controleer of de knop is ingedrukt. // Dan is de waarde HIGH. Figuur 14: De loop functie code om een drukknop uit te lezen. opgave 9.3 Kijk goed naar Figuur 13 en de code van Figuur 14. Is er een relatie tussen beide figuren en zo ja welke? opgave 9.4 Maak zelf een Flowchart die het programma van een drukknop en een LED lampje modelleert

41 Zoals je ziet kun je het systeem met een drukknop en een LED lampje met zowel een Flowchart als STD modelleren. Toch geldt dit niet voor alle problemen. In Flowcharts heb je geen toestanden en kan de toestand daarom niet onthouden worden. Dat kan in een STD wel, al heb je dat nog niet geleerd. Je zult begrijpen dat de STD modellen die je tot nu toe hebt gemaakt erg eenvoudig zijn en er veel meer symbolen zijn om complexere problemen te modelleren met een STD. Het mooie aan de STD modellen is dat er tools zijn om ze om te zetten in programma code die ook daadwerkelijk werkt! Kijk maar eens op Altova en Sinelabore. Je ziet daar overigens dat veel mensen de term SMD (State Machine Diagram) gebruiken in plaats van STD. opgave 9.5 Maak een STD die het programma uit Figuur 2 modelleert

42 10. sensoren en actuatoren combineren De vorige opdracht met de servo is niet echt zinvol. Een servo die alleen maar heen en weer draait heeft weinig nut, tenzij het warm is en je er een waaier op monteert. In dit hoofdstuk ga je daarom een LDR combineren met een servo. Daarbij geeft de hoeveelheid licht aan in welke stand de servo moet gaan staan. Hiermee zou je een automatische luifel kunnen maken. Hoe meer zon er is, hoe verder de luifel naar beneden moet. opgave 10.1 Bouw een opstelling waarin je een LDR en een servo aan de Arduino koppelt. Op basis van wat je in vorige opdrachten geleerd hebt, zou je daar zelf een opstelling voor moeten kunnen maken. Je hebt daarvoor minimaal het volgende nodig: Arduino breadboard 1 servo 1 LDR 1 weerstand van 10kΩ (kilo Ohm) M/M jump wires (draadjes) Maak vervolgens een Flowchart die het programma, dat je moet gaan schrijven, modelleert. Probeer ook een STD te maken voor datzelfde programma. Maak vervolgens een sketch om de LDR en de servo aan te sturen. Zorg dat je handige informatie naar de Serial Monitor stuurt. Als het niet lukt vraag dan om hulp van je leraar. Hint: De map functie, zie de Arduino website, is handig om een waarde van de LDR om te zetten naar de positie van de servo motor. De LDR geeft waarden tussen 0 en 1023 en de servo kan alleen tussen 0 en 180 gezet worden

43 11. uitdagingen blok 2 In dit hoofdstuk staat het tweede paar uitdagingen uit deze module en een eindopdracht. Veel succes. uitdaging 11.1: verkeerslicht met voetgangers In deze uitdaging ga je een semi-realistische verkeerssituatie namaken. Er is een stroom van auto's en fietsers op een eenrichtingsstraat die door een driekleurig verkeerslicht wordt geregeld. Er is echter ook een voetgangersoversteekplaats. Deze wordt geregeld door een voetgangerslicht met een drukknop en geluid. Je wilt geen ongelukken, dus het verkeerslicht en voetgangerslicht mogen niet samen op groen staan. Een voorbeeld vind je op YouTube. Benodigdheden: Arduino breadboard 5 LED lampjes (2x groen, oranje/geel en 2x rood) drukknop speaker 7 weerstanden van 220Ω (Ohm) M/M jump wires (draadjes) Maak zelf een opstelling voor het geschetste probleem. Je zoekt zelf uit hoe de speaker werkt. Wij gebruiken de volgende iprototype speaker. Je kunt deze speaker zonder weerstand gebruiken, maar het is beter om er een 220Ω weerstand tussen te zetten. Maak een STD om het gedrag van het systeem te modelleren. Je bepaalt zelf hoe lang de lichten op groen, rood of oranje staan. Daarnaast moet je een veiligheidsinterval inbouwen. Dit is de tijd tussen het op rood springen van het ene verkeerslicht en het op groen springen van het andere. Zorg dat je bij de verdediging uit kunt leggen waarom je deze tijden hebt gekozen. Maak een programma zo, dat de gebouwde opstelling werkt volgens het model. Het kan zijn dat je gaandeweg je STD nog moet aanpassen. Dat mag. Bewaar de eerste versie van je STD zodat je die kunt laten zien

44 Hint: Als deze uitdaging je moeilijk lijkt, probeer dan eerst het voetgangerslicht helemaal werkend te maken en voeg daarna pas het verkeerslicht voor de auto's en fietsers toe. uitdaging 11.2: interactief mood light In een eerdere uitdaging heb je een mood light gemaakt. Deze reageerde echter niet op zijn omgeving. Nu je ervaring hebt met sensoren ga je dat veranderen. Je gaat een interactief mood light maken. De interactieve mood light moet aan de volgende eisen voldoen: Als de omgeving donker is, dan verandert de mood light rustig van kleur. Hoe meer licht er is, hoe sneller de mood light van kleur moet veranderen. Bij hogere omgevingstemperaturen is rood de overheersende kleur en bij lagere temperaturen is dat blauw. Benodigdheden: Arduino breadboard 3 LED lampjes (rood, groen en blauw) temperatuursensor (thermistor) LDR 4 weerstanden van 220Ω (Ohm) 1 weerstand van 10kΩ (kilo Ohm) M/M jump wires (draadjes) afdekmateriaal, bijvoorbeeld wit papier Maak zelf een opstelling voor het geschetste probleem. Maak een Flowchart of een STD om het gedrag van het systeem te

45 modelleren. Maak een programma zo, dat de gebouwde opstelling werkt volgens het model. Het kan zijn dat je gaandeweg je model nog moet aanpassen. Dat mag. Bewaar de eerste versie van je model zodat je die kunt laten zien Je bepaalt zelf precieze gedrag van je systeem. Zorg ervoor dat je bij de verdediging uit kunt leggen waarom je dit gedrag hebt gekozen. eindopdracht Bedenk zelf een systeem met de sensoren en actuatoren die je tot nu toe gebruikt hebt. Het hoeft geen zinvol systeem te zijn, het mag ook gewoon een grappig systeem zijn. Zie het systeem als showcase om te laten zien wat je geleerd hebt. Je gaat zelf opschrijven wat je systeem moet doen. Verder ga je de opdracht uitvoeren zoals je gewend bent

46 12. appendix A: Arduino IDE configureren Je moet altijd controleren of het juiste Arduino bord en de juiste USB poort zijn ingesteld in de Arduino omgeving. Wij werken met Arduino Uno borden. De Arduino bord instellingen vind je bij Tools Board, zie hieronder

47 De USB poort instellingen vind je bij Tools Port, zie hieronder. Welke USB poort je nodig hebt kan per computer verschillen en zelfs per keer dat je de Arduino omgeving opstart. Meestal staan er twee COM poorten waaruit je kunt kiezen, 1 daarvan is COM1 en dat is de verkeerde, je moet de andere kiezen

modellering met Arduino project module

modellering met Arduino project module 2016 modellering met Arduino project module F. Vonk versie 1 2-9-2016 inhoudsopgave 1. inleiding... - 2-2. regelsystemen... - 3-3. lichtsterkte meten... - 4-4. een knop uitlezen... - 8-5. aansturen van

Nadere informatie

modellering met Arduino extra module

modellering met Arduino extra module 2017 modellering met Arduino extra module F. Vonk versie 2 27-7-2017 inhoudsopgave 1. inleiding... - 3-2. meet- en regelsystemen... - 5-3. lichtsterkte meten... - 6-4. een knop uitlezen... - 10-5. (optioneel)

Nadere informatie

modellering met Arduino mini module

modellering met Arduino mini module 2017 modellering met Arduino mini module F. Vonk versie 2 27-7-2017 inhoudsopgave 1. inleiding... - 3-2. de Arduino... - 5-3. programmeren voor Arduino... - 8-4. breadboards en elektronica... - 14-5. verder

Nadere informatie

MAKERKLAS WORKSHOP ARDUINO. Maandag 7 december 2015

MAKERKLAS WORKSHOP ARDUINO. Maandag 7 december 2015 1 MAKERKLAS WORKSHOP ARDUINO Maandag 7 december 2015 2 AAN DE SLAG! ONDERDELEN Je hebt de beschikking over een Arduino Starter Kit met een heleboel onderdelen. We gaan ze in de ze workshop niet allemaal

Nadere informatie

1. Sluit de LED aan zoals afgebeeld 2. Sluit de USB-kabel aan op de Arduino 3. Klik op de knop uploaden 4. De LED begint te knipperen

1. Sluit de LED aan zoals afgebeeld 2. Sluit de USB-kabel aan op de Arduino 3. Klik op de knop uploaden 4. De LED begint te knipperen Workshop Arduino Inleiding In deze workshop werk je in tweetallen met een Arduino microcontroller. Dit is een kleine computer die je kunt programmeren om te doen wat jij wilt. Om dit te doen gebruik je

Nadere informatie

Workshop Arduino - deel 2

Workshop Arduino - deel 2 Workshop Arduino - deel 2 Inleiding In het vorige deel van de workshop Arduino heb je voor het eerst kennis gemaakt met deze microcontroller. In dit deel, deel 2, ga je meer leren over de software: het

Nadere informatie

Naam + Klas: Laptop Nr: Cijfer:

Naam + Klas: Laptop Nr: Cijfer: Naam + Klas: Laptop Nr: Cijfer: Les 1a: 1: Verander de aan - en uit tijden in de sketch en bekijk het resultaat. 2: Je hebt 14 (0 t/m 13) digitale pinnen ter beschikking om je ledje op aan te sluiten.

Nadere informatie

Programmeren met Arduino-software

Programmeren met Arduino-software Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en

Nadere informatie

Werkbladen voor Arduino workshop 1

Werkbladen voor Arduino workshop 1 De aansluitingen van de Arduino Uno Werkbladen voor Arduino workshop 1 Arduino Arduino is een open-source ontwikkelbord, waarmee het eenvoudig is om informatica aan fysieke objecten te koppelen. Je kunt

Nadere informatie

Arduino[4KIDS] Maak je eigen muziekinstrument!

Arduino[4KIDS] Maak je eigen muziekinstrument! Arduino[4KIDS] Maak je eigen muziekinstrument! Wat is een Arduino? Open jullie doos! Hierin vind je: Wat is een Arduino? Er gaat slechts één 'programma' op Dit gaat via de USB ingang, met de USB kabel:

Nadere informatie

RCL Arduino Workshop 1

RCL Arduino Workshop 1 RCL Arduino Workshop 1 Leren door doen april 2015 - slides voor RCL Arduino workshop 1 ON4CDU & ON8VQ Workshop Leren door doen Werken in een groep Beperkte tijd Alleen essentiele vragen stellen Thuis oefenen

Nadere informatie

Workshop Arduino voor beginners deel 2

Workshop Arduino voor beginners deel 2 Workshop Arduino voor beginners deel 2 Voor deze workshop is het van belang dat je deel 1 van de workshop hebt afgerond. In deze workshop zitten meerdere opdrachten die elkaar niet allemaal op hoeven te

Nadere informatie

Android apps met App Inventor 2 antwoorden

Android apps met App Inventor 2 antwoorden 2014 Android apps met App Inventor 2 antwoorden F. Vonk versie 1 11-11-2014 inhoudsopgave Mollen Meppen... - 2 - Schrandere Scholier... - 15 - Meteoor... - 21 - Dit werk is gelicenseerd onder een Creative

Nadere informatie

Arduino Workshop 1 Zuid-Limburg

Arduino Workshop 1 Zuid-Limburg Arduino Workshop 1 Zuid-Limburg Leren door doen Mei 2016 - slides voor Arduino workshop 1 v2.5 Zuid-Limburg PA3CZS, PA0FOT, ON4CDU, PE1EAM 1 Workshop 1 Workshop 1 concentreert op kennismaking en eenvoudige

Nadere informatie

Programmeer-handleiding Easyboard MB

Programmeer-handleiding Easyboard MB Programmeer-handleiding 2019 Easyboard MB Programmeer-handleiding BYOR & micro:bit Deze handleiding beschrijft hoe je een micro:bit programmeert en BYOR onderdelen laat reageren op de code die op je micro:bit

Nadere informatie

Workshop Arduino voor beginners. door TkkrLab Enschede

Workshop Arduino voor beginners. door TkkrLab Enschede Workshop Arduino voor beginners door TkkrLab Enschede Tkkrlab TkkrLab (Tukkerlab) bestaat uit een groep mensen die geïnteresseerd zijn in in technologie, digitale techniek en wetenschap, kortom geeks.

Nadere informatie

Tweede workshop Arduino

Tweede workshop Arduino Tweede workshop Arduino In deze workshop zal veel gewerkt worden met voorbeelden die meegeleverd worden met de Arduino IDE. Deze zijn te vinden onder het menu File >Examples. Oefening 1 - Seriële communicatie

Nadere informatie

van PSD naar JavaScript

van PSD naar JavaScript 2015 van PSD naar JavaScript F. Vonk versie 2 19-9-2015 inhoudsopgave 1. inleiding... - 2-2. ontwikkelomgeving... - 3-3. programmeerconcepten... - 4 - statement... - 4 - sequentie... - 4 - variabele en

Nadere informatie

Workshop Arduino Uno. Touw dag 6 juni 2015 Harold Pootjes en Simon Pauw

Workshop Arduino Uno. Touw dag 6 juni 2015 Harold Pootjes en Simon Pauw Workshop Arduino Uno Touw dag 6 juni 2015 Harold Pootjes en Simon Pauw Arduino Uno Pagina 2 Een programmeerbare controller The Arduino Uno is a programmable microcontroller board based on the ATmega 328.

Nadere informatie

Programmeren met Arduino

Programmeren met Arduino Programmeren met Arduino Lieve Van Bastelaere Programmeren met Arduino. 1. Werken met een breadboard. a. Wat is een breadboard? Een breadboard is een bord waarop je elektronische schakelingen kunt maken

Nadere informatie

Hand-out Introductieworkshop LED programmeren

Hand-out Introductieworkshop LED programmeren Hand-out Introductieworkshop LED programmeren Inleiding Deze hand-out is bedoeld als naslag voor de introductie workshop LED programmeren. In deze handout vind je de uitleg over LEDs, Arduino s en LED

Nadere informatie

VANTEK Discovery set. N. B. De OPITEC bouwpakketten zijn gericht op het onderwijs. N991240#1

VANTEK Discovery set. N. B. De OPITEC bouwpakketten zijn gericht op het onderwijs. N991240#1 9 9 1. 2 4 0 VANTEK Discovery set N. B. De OPITEC bouwpakketten zijn gericht op het onderwijs. 1 Inhoudsopgave Binair rekenen Pulse en Countermodule blz. 3 Informatieverwerking Input en outputmodules blz.

Nadere informatie

KAEDU : Outputs en inputs

KAEDU : Outputs en inputs KAEDU : Outputs en inputs LED Er zijn in totaal 6 LEDS (exclusief de IR) die je kan gebruiken. Hiervoor moeten de overeenkomstige jumpers wel in de juiste stand staan. Zoals je op onderstaande foto ziet

Nadere informatie

Boe-Bots - Arduino robots

Boe-Bots - Arduino robots Boe-Bots - Arduino robots Voorbereiding - wat hebben we allemaal nodig? 1) Een laptop met de Arduino IDE 2) Een Boe-Bot 3) Een USB printerkabel 4) De Boe Bot Library én NewPing library. Hier te downloaden.

Nadere informatie

De Arduino-microcontroller in de motorvoertuigentechniek (6)

De Arduino-microcontroller in de motorvoertuigentechniek (6) De Arduino-microcontroller in de motorvoertuigentechniek (6) E. Gernaat (ISBN 978-90-79302-11-6) 1 De Arduino Programmeeromgeving (IDE) 1.1 Inleiding Als we naar de Arduino site gaan kunnen we daar de

Nadere informatie

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Module 3: Scratch programmeren: is het logisch of is het niet logisch? Module 3: Scratch programmeren: is het logisch of is het niet logisch? Inhoudsopgave Module 3: Scratch programmeren: is het logisch of is het niet logisch?...1 Wat is een computerprogramma eigenlijk?...2

Nadere informatie

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO DE ASTRO PI PROGRAMMEREN DOCENTENHANDLEIDING 1 Deze handleiding is bedoeld om leerlingen te ondersteunen bij de Astro Pi Challenge, waarbij leerlingen een programma voor de Astro Pi-computer in het ISS

Nadere informatie

by Jody Culkin Bronnen die gratis gebruikt, verspreid of aangepast kunnen worden. meestal software of hardware.

by Jody Culkin Bronnen die gratis gebruikt, verspreid of aangepast kunnen worden. meestal software of hardware. Wat is een Arduino??? Vertaling naar NL: Johan Korten by Jody Culkin Arduino is een open source elektronica prototype platform. Wat houdt dat in? Open Source Bronnen die gratis gebruikt, verspreid of aangepast

Nadere informatie

Wat is Arduino? Arduino = microprocessor (Atmel)

Wat is Arduino? Arduino = microprocessor (Atmel) Intro tot Arduino Wat is Arduino? Volgens de website: Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers,

Nadere informatie

Arduino. Arduino UNO. Sam Decoster. CoderDojo Roeselare. Sam Decoster

Arduino. Arduino UNO. Sam Decoster. CoderDojo Roeselare. Sam Decoster Arduino Arduino UNO Sam Decoster CoderDojo Roeselare Sam Decoster Inleiding Arduino is een open-source ontwikkelbord, waarmee het mogelijk wordt om informatica te koppelen aan fysieke objecten. Het is

Nadere informatie

Programmeerstructuren met App Inventor

Programmeerstructuren met App Inventor Programmeerstructuren met App Inventor Kevin Krul, Universiteit Utrecht Roncalli, Bergen op Zoom Inhoud: Les 1: Introductie tot App Inventor, when statement en variabelen. Les 2: Introductie if-statement

Nadere informatie

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam Arduino Cursus, Deel 2 Programmeren Simon Pauw, ZB45, Amsterdam Programmeren Geen zorgen als je niet alles begrijpt. Doel: Het snappen van bestaande code. Meeste kennis ook toepasbaar buiten de Arduino

Nadere informatie

Oefening 1 - Seriële communicatie via USB

Oefening 1 - Seriële communicatie via USB Werkbladen voor Arduino workshop 2 In deze workshop zal gewerkt worden met de voorbeelden die meegeleverd worden met de Arduino IDE. Deze zijn te vinden onder het menu Bestand->Voorbeelden. Oefening 1

Nadere informatie

Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368

Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368 Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368 Handleiding bij het gebruik van een microcontroller in het Accelerometerproject (Project II) Er zijn speciaal voor het Accelerometerproject

Nadere informatie

Logo quiz Project Inleiding op de Logo!

Logo quiz Project Inleiding op de Logo! Logo quiz Project Inleiding op de Logo! Project ontwikkelt door: Tim van Schuylenburg Ben van Kruisbergen Inhoudsopgave Projectbeschrijving en Planning 2 Blz. De benodigdheden en aansluitschema 4-8 Complete

Nadere informatie

Fysische Informatica met FLEC

Fysische Informatica met FLEC Fysische Informatica met FLEC Inleiding De werking van de schakelingen die je gemaakt hebt bij het onderwerp fysische informatica kunnen op 2 manieren gecontroleerd worden. De eerste manier is met behulp

Nadere informatie

Temperatuur Les 8 Leerkrachtenhandleiding. Basis

Temperatuur Les 8 Leerkrachtenhandleiding. Basis Leerkrachtenhandleiding Inleiding Deze les maken de leerlingen een automatische ventilator. Ze ervaren dat temperatuur niet altijd goed gemeten kan worden met de hand. Lesdoelen De leerlingen zijn in staat

Nadere informatie

A R D U I N O. addendum bij: Leren programmeren, meten en sturen met de Arduino. 3 e druk INHOUD

A R D U I N O. addendum bij: Leren programmeren, meten en sturen met de Arduino. 3 e druk INHOUD addendum bij: Leren programmeren, meten en sturen met de Arduino 3 e druk A R D INHOUD Errata Aanwijzigen en tips (inclusief errata) Basisset en aanvullingsset U I N O 2 Errata derde druk Pag. 71, afbeelding

Nadere informatie

Verkeerslichten. De Verkeerslichten & de PLC in het TIBBLTO / VICTO lokaal. Werkplek 1. Leer & werkboek.

Verkeerslichten. De Verkeerslichten & de PLC in het TIBBLTO / VICTO lokaal. Werkplek 1. Leer & werkboek. Verkeerslichten. Werkplek 1 De Verkeerslichten & de PLC in het TIBBLTO / VICTO lokaal. Leer & werkboek. Bij dit boek hoort een antwoordboekje waarin de antwoorden, op de vragen uit dit boek, geschreven

Nadere informatie

Ravi Ramcharan Arduino PRO Smart leeslampje

Ravi Ramcharan Arduino PRO Smart leeslampje Ravi Ramcharan Arduino PRO61 0861038 Smart leeslampje Contents 1 Kennismaking Arduino... 3 2 Idee: Leeslamp!... 4 3 Basis oefeningen... 6 4 Blokkenschema... 9 5 Hij doet het!... 10 6 Belangrijk: Arduino

Nadere informatie

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax, Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt

Nadere informatie

Je kunt de mbot ook draadloos programmeren via Bluetooth of met 2.4G Wireless. Bekijk de instructies op mbot draadloos.

Je kunt de mbot ook draadloos programmeren via Bluetooth of met 2.4G Wireless. Bekijk de instructies op mbot draadloos. Wat is een mbot? mbot is een robot die je eerst zelf in elkaar moet zetten en daarna kunt programmeren. De programmeer omgeving die je erbij kan installeren is mblock welke lijkt op Scratch 2.0 : mblock

Nadere informatie

Workshop FLL. Leer robots programmeren. Marieke Peelen Lennart de Graaf Daryo Verouden -

Workshop FLL. Leer robots programmeren. Marieke Peelen Lennart de Graaf Daryo Verouden - Workshop FLL Leer robots programmeren Marieke Peelen Lennart de Graaf Daryo Verouden - 1 Student-coaches 2 FIRST LEGO League 3 FLL Core values We zijn een team We doen zelf het werk met hulp van onze coaches.

Nadere informatie

programmeren leeromgeving

programmeren leeromgeving DO-ProLO programmeren leeromgeving Een leeromgeving voor iedereen in de leeftijd van 8 tot 80 jaar. Dit is een uitgave van Duurzame Onderneming Kennemerland. Voor meer informatie ga naar: www.duurzame-onderneming-kennemerland.nl

Nadere informatie

Gebruikershandleiding. robotcar.nl

Gebruikershandleiding. robotcar.nl Gebruikershandleiding robotcar.nl Inhoudsopgave 1 Introductie 2 2 Inventaris 3 3 Uno: een Arduino variant 4 3.1 De pinnen op het Uno board.................... 4 3.2 De Arduino software omgeving...................

Nadere informatie

Arduino. HCC Vlaanderen - Mechelen 7 februari 2011. Luc De Cock

Arduino. HCC Vlaanderen - Mechelen 7 februari 2011. Luc De Cock Arduino HCC Vlaanderen - Mechelen 7 februari 2011 Luc De Cock Inhoud Wat is Arduino? Wat hebben we nodig? Arduino IDE Voorbeelden Extra tools Uitbreidingen Wat is Arduino? Open source electronica platform

Nadere informatie

De mbot Ranger. Je wilt zeker meteen al aan de slag. Maar voordat we beginnen moet je 3 dingen weten.

De mbot Ranger. Je wilt zeker meteen al aan de slag. Maar voordat we beginnen moet je 3 dingen weten. De mbot Ranger De mbot Ranger is een robot die je helemaal zelf kunt programmeren. De mbot Ranger heeft veel meer functionaliteiten dan de originele mbot. Hij kan naast alle functies van de mbot ook de

Nadere informatie

c o n t r o l Computerbesturing voor basisscholen Laurence Rogers en Doug Dickinson, School of Education, University of Leicester

c o n t r o l Computerbesturing voor basisscholen Laurence Rogers en Doug Dickinson, School of Education, University of Leicester Logotron Junior c o n t r o l insight Computerbesturing voor basisscholen Laurence Rogers en Doug Dickinson, School of Education, University of Leicester Nederlandse bewerking van de tutorials uit de Activity

Nadere informatie

Inhoud Inhoud. Inleiding 1 Leerdoelen 1

Inhoud Inhoud. Inleiding 1 Leerdoelen 1 v Inhoud Inhoud Inleiding 1 Leerdoelen 1 1 Aftrap 3 1.1 Aanschaf 3 1.2 Arduino UNO R3 of Arduino MEGA 2560? 4 1.3 Poorten en voeding 5 1.4 Systeemeisen 6 1.5 Software 6 1.6 Arduino met pc verbinden 10

Nadere informatie

Inleiding De leerlingen maken deze les een alarm. Opent iemand stiekem hun broodtrommel? Dan worden ze dankzij het alarm gewaarschuwd!

Inleiding De leerlingen maken deze les een alarm. Opent iemand stiekem hun broodtrommel? Dan worden ze dankzij het alarm gewaarschuwd! Leerkrachthandleiding Inleiding De leerlingen maken deze les een alarm. Opent iemand stiekem hun broodtrommel? Dan worden ze dankzij het alarm gewaarschuwd! Lesdoelen De leerlingen zijn in staat om: uit

Nadere informatie

EM2 Microcontroller Project. LED cube

EM2 Microcontroller Project. LED cube EM2 Microcontroller Project LED cube Door: Dennis Koster Klas: Tc202 Studentnummer: 536496 Docent: Jan Derriks & Ruud Slokker Versie 1.0 (12-1-2009) Inhoudsopgave Inleiding 3 De onderdelen 4 t/ m 6 Het

Nadere informatie

De FOR lus: // terug naar waar je vandaan kwam Serial.begin(115200); // communicatie snelheid met de PC

De FOR lus: // terug naar waar je vandaan kwam Serial.begin(115200); // communicatie snelheid met de PC Verslag les -5-2-4-19 Werkende lussen: for-loop; while-loop; do while- loop. Wanneer iets twee of meerdere keren gedaan moet worden, dan gebruiken we een subroutine, loop, functie. (verschillende woorden

Nadere informatie

Ar-doe-wie-no. Voorwoord

Ar-doe-wie-no. Voorwoord www.conrad.nl Ar-doe-wie-no Voorwoord Leuk dat je meer wilt weten over Arduino. Wij helpen je graag een eindje op weg. De Conrad Arduino Starterkit dient om je te inspireren en biedt je een introductie

Nadere informatie

BBR programmeren met Ardublock

BBR programmeren met Ardublock BBR programmeren met Ardublock Robotkamp 2017 www.e2cre8.be VTI Torhout Middenschool Sint-Rembert 1 Motoren Beide motoren kunnen: Vooruit of achteruit draaien Versnellen of vertragen van 0 tot 255 Let

Nadere informatie

BEGINNER JAVA Inhoudsopgave

BEGINNER JAVA Inhoudsopgave Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire

Nadere informatie

Arduino Zuid-Limburg Workshop 2

Arduino Zuid-Limburg Workshop 2 1 Arduino Zuid-Limburg Workshop 2 Leren door doen Juni 2016 - slides voor Arduino workshop Zuid-Limburg 2 In deze workshop Minder focus op de programmeertaal zelf Voorbeelden als basis gebruiken Tonen

Nadere informatie

Elektor Uno R4 Installatie & Test

Elektor Uno R4 Installatie & Test Elektor Uno R4 Installatie & Test Vereisten Elektor Uno R4 Kabel USB-A naar micro-b Computer met Windows (XP of later), Linux of OSX (10.7 of later) Arduino IDE 1.6.7 of recenter (niet 1.6.8) We raden

Nadere informatie

Arduino. Workshop. 20 juni 2014 Peter Struwe Stichting De Jonge Onderzoekers Groningen

Arduino. Workshop. 20 juni 2014 Peter Struwe Stichting De Jonge Onderzoekers Groningen Arduino Workshop Beta-docentendag 20 juni 2014 Peter Struwe Stichting De Jonge Onderzoekers Groningen Wat is een microcontroller? Maak een computer met alleen het meest noodzakelijke: processor geheugen

Nadere informatie

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS) HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS) Vereiste voorkennis Voldoende kennis van het besturingssysteem (in deze handleiding wordt uitgegaan van Windows) De basisprincipes van programmeren Vereiste

Nadere informatie

De mbot. Je wilt zeker meteen al aan de slag. Maar voordat we beginnen moet je 3 dingen weten.

De mbot. Je wilt zeker meteen al aan de slag. Maar voordat we beginnen moet je 3 dingen weten. De mbot De mbot is een robot die je helemaal zelf kunt programmeren. Hij kan rijden, geluid maken, heeft verschillende kleuren lampjes, kan lijnen op de grond volgen en heeft zelfs een ultrasonische module!

Nadere informatie

g. Je kan nu door op de play knop te drukken je programma versturen naar de EV3 brick waarna het zal uitgevoerd worden.

g. Je kan nu door op de play knop te drukken je programma versturen naar de EV3 brick waarna het zal uitgevoerd worden. EV3 brick verbinden via bluetooth. 1) Alvorens de LEGO software op te starten kijk je het best of bluetooth op je PC is geactiveerd. Vooral bij laptops schakelt men deze functie vaak uit om batterij te

Nadere informatie

RGB licht Les 2 Leerkrachthandleiding. Basis. Materialen

RGB licht Les 2 Leerkrachthandleiding. Basis. Materialen RGB licht Les 2 Leerkrachthandleiding Basis Inleiding In deze les ontdekken leerlingen wat de CloudProfessor (CPF) kan. Daarnaast ontdekken ze de functies van verschillende onderdelen van deze CPF. Aan

Nadere informatie

PROS1E1 Handleiding ( ) Kf/Dd/Bd

PROS1E1 Handleiding ( ) Kf/Dd/Bd 1 Inleiding De eerste oefening In deze eerste oefening wordt het voorbeeld 2-1 van bladzijde 11 uit het boek De taal C van PSD tot C-programma (enigszins aangepast) ingevoerd in de computer. Tevens wordt

Nadere informatie

ES1 Project 1: Microcontrollers

ES1 Project 1: Microcontrollers ES1 Project 1: Microcontrollers Les 3: Eenvoudige externe hardware & hardware programmeren in C Hardware programmeren in C Inmiddels ben je al aardig op gang gekomen met het programmeren van microcontrollers.

Nadere informatie

Over Betuwe College. Lego Mindstorm project

Over Betuwe College. Lego Mindstorm project Inhoudsopgave 1 Het aansluiten van onderdelen.... 3 2 De lego software.... 4 2.1 Het programeerscherm.... 5 2.2 Programma naar NXT... 6 3 Introductie tot programmeren.... 7 3.1 De druksensor.... 7 3.2

Nadere informatie

Handleiding Teknatool houtdraaibank Nova DVRxp Nederlands bij gebruik van de originele Engelse handleiding

Handleiding Teknatool houtdraaibank Nova DVRxp Nederlands bij gebruik van de originele Engelse handleiding Teknatool houtdraaibank Nova DVRxp Artikelnummer: 24207 Besturingssysteem software versie: 4.54x Interface software versie: s03 Teknatool International, 13 juli 2006 1.0 Introductie 1.1 Algemeen Deze handleiding

Nadere informatie

WORKSHOP ORANGE PI & PYTHON v september 2017

WORKSHOP ORANGE PI & PYTHON v september 2017 WORKSHOP ORANGE PI & PYTHON v1.1 21 september 2017 In deze workshop maak je kennis met een zogenaamde bord-computer ter grootte van een bankpas. Een bord-computer kan gebruikt worden als een normale computer

Nadere informatie

Workshop Engino. 1 Aanvang workshop. 2 Bouwen. 1.1 Wat kan ik voor de workshop doen?

Workshop Engino. 1 Aanvang workshop. 2 Bouwen. 1.1 Wat kan ik voor de workshop doen? Workshop Engino 1 Aanvang workshop 1.1 Wat kan ik voor de workshop doen? Zorg dat je voldoende opgeladen batterijen hebt voor de ERP s (6 per ERP). Zorg dat de zes engino dozen aanwezig zijn in het lokaal.

Nadere informatie

Aansluitles Les 1 Overzicht van de Componenten. Basis

Aansluitles Les 1 Overzicht van de Componenten. Basis Overzicht van de Componenten Lichtsensor Lichtsensoren worden gebruikt om licht te meten. Straatverlichting, sommige fietslampjes of tuinlampjes gebruiken een lichtsensor. Zo gaan ze pas aan als het donker

Nadere informatie

bug fixen F. Vonk versie

bug fixen F. Vonk versie 2017 bug fixen F. Vonk versie 1 24-7-2017 inhoudsopgave 1. inleiding... - 3-2. bug fixen... - 4-3. Sokoban... - 5-4. Breakout... - 7-5. Pac-Man... - 8-6. Asteroids... - 9-7. Snake... - 10-8. Super Mario...

Nadere informatie

Meet the Arduino FAMILY

Meet the Arduino FAMILY www.arduino.cc Arduino is HARDWARE Meet the Arduino FAMILY Mega Lilypad Ethernet Mini En meer... Gemeenschappelijke kenmerken Printkaartje met een ATMEL microcontroller Digitale en analoge in- en/of uitgangen

Nadere informatie

Antwoorden Systeembord 25012010. Fysische informatica voor de onderbouw havo/vwo

Antwoorden Systeembord 25012010. Fysische informatica voor de onderbouw havo/vwo Fysische informatica voor de onderbouw havo/vwo 1 Inhoud: Antwoorden Systeembord 25012010 2. De invoer- en uitvoercomponenten...3 2.1 De drukschakelaar....3 2.2 Geluidsensor...3 2.3 Variabele spanning....3

Nadere informatie

Netwerk Interfacing Data Logging.

Netwerk Interfacing Data Logging. Handleiding Netwerk Interfacing Data Logging. EduTechSoft.nl 2009-2010 H.O.Boorsma. Pagina - 2 - Netwerk Interfacing Data Logging Pagina - 3 - Inhoud Inleiding.... 4 Beschrijving van het programma....

Nadere informatie

Deel 8: stappenmotoren en interrupts

Deel 8: stappenmotoren en interrupts Deel 8: stappenmotoren en interrupts Stappenmotor Kan hoek van as instellen zonder een gesloten feedbacksysteem. Het is een simpel en precies open loop systeem. Werkt met discrete stappen, dus schokkerig

Nadere informatie

Een stop-motion film maken

Een stop-motion film maken Naam: Een stop-motion film maken 1. Wat is een stop-motion? Voor je een stop-motion film kan maken, moet je weten wat een stop-motion film is. Dit is immers geen gewone film. Hoe maak je een (gewone) film?

Nadere informatie

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. 1 Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python. Voordat je leert programmeren, moet je jouw pc zo instellen dat

Nadere informatie

Workshop IOT. Handleiding V5 Vincent Verheggen 6 november Taal: Nederlands.

Workshop IOT. Handleiding V5 Vincent Verheggen 6 november Taal: Nederlands. Workshop IOT Handleiding V5 Vincent Verheggen 6 november 2017 Taal: Nederlands Meer informatie: Contact: www.vincentverheggen.nl/workshop vincent@vincentverheggen.nl Woord vooraf Voor je ligt de handleiding

Nadere informatie

Weerstation. Weerstation met Arduino C.G.N. van Veen. HiSPARC. 1 Weerstation. 2 Arduino. 2.1 Werking van Arduino

Weerstation. Weerstation met Arduino C.G.N. van Veen. HiSPARC. 1 Weerstation. 2 Arduino. 2.1 Werking van Arduino Weerstation HiSPARC Weerstation met Arduino C.G.N. van Veen 1 Weerstation Inleiding Naast het meten aan kosmische straling met het HiSPARC meetstation kunnen leerlingen het HiSPARC station uitbreiden met

Nadere informatie

Bouw een deel van het JeeNode schema zoals beschreven op pagina 5 in de JeeNode handleiding in de handout, maar dan op het breadboard.

Bouw een deel van het JeeNode schema zoals beschreven op pagina 5 in de JeeNode handleiding in de handout, maar dan op het breadboard. Domoticaforum Arduino Workshop 28 november 2010 Lennart Herlaar & Robert Hekkers v1.0 Programma van de workshop 1. Uitdelen workshop kits en handouts. 2. Uitpakken workshop kits en controleren inhoud.

Nadere informatie

Inleiding Tijdens deze les programmeren de leerlingen hun eigen verkeerslicht. Lesdoelen. Materiaal

Inleiding Tijdens deze les programmeren de leerlingen hun eigen verkeerslicht. Lesdoelen. Materiaal Leerkrachtenhandleiding Inleiding Tijdens deze les programmeren de leerlingen hun eigen verkeerslicht. Lesdoelen De leerlingen zijn in staat om: zelf een verkeerslicht te programmeren; te herkennen wat

Nadere informatie

Docentenhandleiding Arduino. Handleiding voor bij de module Arduino UNO kit

Docentenhandleiding Arduino. Handleiding voor bij de module Arduino UNO kit Docentenhandleiding Arduino Handleiding voor bij de module Arduino UNO kit Beste collega, voor u ligt de docentenhandleiding voor het vak Inleiding Robotica. In deze handleiding vindt u meer informatie

Nadere informatie

algoritmiek - antwoorden

algoritmiek - antwoorden 2016 algoritmiek - antwoorden F. Vonk versie 1 28-8-2016 inhoudsopgave eenvoudige algoritmes... - 3 - complexe algoritmes... - 7 - zoeken (vwo)... - 10 - sorteren (vwo)... - 12 - Dit werk is gelicenseerd

Nadere informatie

by Jody Culkin Bronnen die gratis gebruikt, verspreid of aangepast kunnen worden. meesta software of hardware.

by Jody Culkin Bronnen die gratis gebruikt, verspreid of aangepast kunnen worden. meesta software of hardware. Wat is een Arduino??? Vertaling naar NL: Johan Korten by Jody Culkin Arduino is een open source elektronica prototype platform. Wat houdt dat in? Open Source Bronnen die gratis gebruikt, verspreid of aangepast

Nadere informatie

//enable de interne pull-up weerstand. //variabele sensorval. //naar de seriële monitor

//enable de interne pull-up weerstand. //variabele sensorval. //naar de seriële monitor Keuzestructuren void setup() { Serial.begin(9600); pinmode(0, INPUT_PULLUP); pinmode(2, OUTPUT); pinmode(3, OUTPUT); void loop() { int sensorval = digitalread(0); Serial.println(sensorVal); //start seriële

Nadere informatie

Project 7 Pratende plant Docent Project 7 - Pratende Plant Docent

Project 7 Pratende plant Docent Project 7 - Pratende Plant Docent Project 7 Pratende plant Docent Project 7 - Pratende Plant Docent Titel Pratende Plant 2 lessen Doel De leerlingen leren in deze twee lessen een opdracht namaken en een nieuw prototype maken met behulp

Nadere informatie

TECHNOLOGIE TECHNIEK. Vervangende opdracht voor produceer de sleutelhanger. H.O. Boorsma.

TECHNOLOGIE TECHNIEK. Vervangende opdracht voor produceer de sleutelhanger. H.O. Boorsma. TECHNOLOGIE TECHNIEK Vervangende opdracht voor produceer de sleutelhanger. H.O. Boorsma. A r d u I n o N a n o Woord vooraf.. In het vierde leerjaar GL/GT Technologie werken de leerlingen die techniek

Nadere informatie

Neem een signaal-kabel en sluit hiermee het input-onderdeel aan, aan de kant van het Easyboard waar input bij staat.

Neem een signaal-kabel en sluit hiermee het input-onderdeel aan, aan de kant van het Easyboard waar input bij staat. Solly Systems Even voorstellen... Easyboard Input-onderdelen (Blauw) Output-onderdelen (Groen) Signaal-kabels (jack) Powerbank Power-kabel (USB-DC) USB-laadkabel (USB-micro-USB) Motor-opzetstukjes 3 Quickstart

Nadere informatie

Vang de stippen. Inleiding. Scratch. In dit project leer je een spel te maken waarin je met een controller de juiste kleur van stippen moet aantikken.

Vang de stippen. Inleiding. Scratch. In dit project leer je een spel te maken waarin je met een controller de juiste kleur van stippen moet aantikken. Scratch 2 Vang de stippen All Code Clubs must be registered. By registering your club we can measure our impact, and we can continue to provide free resources that help children learn to code. You can

Nadere informatie

PROJECT 5: PLANT MONITOR

PROJECT 5: PLANT MONITOR PROJECT 5: PLANT MONITOR IN DIT PROJECT ZAL IK EEN NIEUW TYPE ANALOGE SENSOR INTRODUCEREN DIE DE VOCHTIGHEIDSGRAAD MEET. JE GAAT EEN ALARMSYSTEEM MET LICHT EN GELUID BOUWEN DAT JE VERTELT WANNEER JE PLANT

Nadere informatie

Bouw het schema zoals beschreven in de RBBB handleiding in de handout, maar dan op het breadboard.

Bouw het schema zoals beschreven in de RBBB handleiding in de handout, maar dan op het breadboard. Physical Computing Workshop 20, 21 en 28 mei 2010, 13.00 17.00 uur Lennart Herlaar V1.1 (relaisschakeling aangepast) Programma van de workshop 1. Uitdelen workshop kits en handouts, aftekenen lijst. 2.

Nadere informatie

Arduino. C.F.J. Pols.

Arduino. C.F.J. Pols. Arduino C.F.J. Pols freek@boswell-beta.nl 2 Inhoudsopgave Introductie 4 Programmeren deel 1 7 Programmeren deel 2 9 Elektronica deel 1 11 Programmeren deel 3 13 Elektronica deel 2 16 Programmeren deel

Nadere informatie

Level ① Van A naar B Je leert...

Level ① Van A naar B Je leert... Robot Programming Class Level 2 Van A naar B Je leert... Hoe je een auto maakt met DC-motoren en je het kunt programmeren door de tijd, snelheid en afstand te meten! Naam Wat heb je nodig Studuino x Batterijhouder

Nadere informatie

intro informatica F. Vonk versie

intro informatica F. Vonk versie 2017 intro informatica F. Vonk versie 2 7-8-2017 inhoudsopgave 1. inleiding... - 4-2. ELO... - 4-3. opzet... - 5-4. plagiaat en eigen inbreng... - 5-5. leerlijnen... - 6-6. soorten opdrachten en beoordeling...

Nadere informatie

De RCX voor beginners De intelligente steen van LEGO. I. De RCX zonder computer

De RCX voor beginners De intelligente steen van LEGO. I. De RCX zonder computer De RCX voor beginners De intelligente steen van LEGO I. De RCX zonder computer September 2001 Stichting CMA / AMSTEL Instituut Universiteit van Amsterdam Kruislaan 404 1098 SM Amsterdam Teksten: Marion

Nadere informatie

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders. Spirograaf in Python Een kunstwerk maken Met programmeren kun je alles maken! Ook een kunstwerk! In deze les maken we zelf een kunstwerk met Python. Hiervoor zal je werken met herhalingen en variabelen.

Nadere informatie

Milight 3.0 App installeren en configureren

Milight 3.0 App installeren en configureren Milight 3.0 App installeren en configureren Milight App instellen voor Wifi lampen Wanneer u Wifi lampen, spots of led strips heeft aangeschaft met een Wifi module is het zaak de ledverlichting in te stellen

Nadere informatie

Lessen in Elektriciteit

Lessen in Elektriciteit Lessen in Elektriciteit Door: Gaby Sondagh en Isabel Duin Eckartcollege Tegenwoordig kunnen we niet zonder elektriciteit. Het licht in de klas, de computers waar je op werkt en allerlei andere apparaten

Nadere informatie

Handleiding Alma Rally & Alma Rally Off-road

Handleiding Alma Rally & Alma Rally Off-road Handleiding Alma Rally & Alma Rally Off-road Versie 1.2.1 Korsmit Rally Elektronics 16-7-2017 Inhoud Inhoud... 2 Samenvatting... 3 1. informatie... 4 Achtergrond... 4 Weergaven:... 4 2. Werking... 5 3.1:

Nadere informatie

Infographic De infographic geeft in grove lijnen het overkoepelend concept weer Your home remotely controlled Zie de infographic hier naast.

Infographic De infographic geeft in grove lijnen het overkoepelend concept weer Your home remotely controlled Zie de infographic hier naast. Situatie Hoe mooi zou het zijn als je alles in je eigen huis onder controle hebt op afstand. Even het rolluik laten zakken als de zon schijnt, de tv uitzetten die je bent vergeten uit te doen en zelfs

Nadere informatie

INHOUD. dankbetuiging inleiding DE ARDUINO REVOLUTIE...16 OVER DIT BOEK...17 OPZET VAN DIT BOEK...18

INHOUD. dankbetuiging inleiding DE ARDUINO REVOLUTIE...16 OVER DIT BOEK...17 OPZET VAN DIT BOEK...18 INHOUD dankbetuiging... 13 inleiding... 15 DE ARDUINO REVOLUTIE...16 OVER DIT BOEK...17 OPZET VAN DIT BOEK...18 PROJECT 0: AAN DE SLAG...22 HARDWARE... 23 DE ARDUINO UNO... 23 STROOM... 23 BREADBOARDS...

Nadere informatie