You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Programmeer<br />
je eigen robot<br />
Deel 1: MARVIN<br />
Groep 7 en 8<br />
Het aansluiten van MARVIN<br />
De eerste programma’s maken
INHOUD<br />
1. Hallo, ik ben MARVIN 3<br />
1.1. Technische specifi caties<br />
1.2. Wat kan ik allemaal<br />
2. Wat is een robot? 4<br />
2.1. Defi nitie van een robot 4<br />
2.2. Waarom de naam robot? 5<br />
3. Beschrijving van de MARVIN 6<br />
3.1 Belangrijkste onderdelen<br />
3.2 Het starten van de MARVIN<br />
3.3. De MARVIN website<br />
4. We gaan programmeren! 3<br />
4.1. Programmeren met IRP functieblokken 3<br />
4.2. Programmeren met fl owcharts<br />
4.3. Oefeningen<br />
3
HALLO, IK BEN MARVIN<br />
1
Hallo!<br />
Ik ben Marvin en ik ga jou leren hoe je helemaal zelf een echte robot kunt<br />
programmeren, hoe tof is dat?! Stap voor stap ga ik je alles leren over robots,<br />
nou ja alles... ? Bijna alles ;-)<br />
In dit eerste deel leer ik je hoe je mij 1.020 cm kunt laten rijden met een<br />
snelheid van 5 km p/uur!<br />
We gaan snel aan de slag, ik heb er zin in!<br />
5
1.1 Technische specificaties<br />
Het belangrijkste aan MARVIN is de microprocessor. Een microprocessor in een robot, maar<br />
ook die van een computer, kun je zien als de hersenen van een mens. net als bij de mens,<br />
moeten de hersenen alle informatie verwerken en op basis van de informatie die binnenkomt<br />
actie gaan ondernemen. Bij de mens hebben we ogen om te zien, oren om te luisteren en<br />
daarnaast kan de mens ook nog ruiken en voelen. Hele geavanceerde robots kunnen dat ook.<br />
MARVIN kun je bijvoorbeeld laten kijken met zijn proxisensoren. Dit zijn afstandssensoren<br />
waarmee hij kan meten op welke afstand zich een object bevindt. Daarnaast heeft MARVIN<br />
een 9D gyrosensor. Hiermee voelt hij in welke richting en hoe hij staat (of hij bijvoorbeeld<br />
gekanteld is of niet). Met de odometriesensor kan MARVIN controleren hoe vaak (en snel) de<br />
motor ronddraait.<br />
Net als wij allerlei dingen kunnen doen, kan ook<br />
MARVIN dingen doen en uitvoeren. Zo kan hij rijden,<br />
lichten aan- en uitdoen en met behulp van zijn WiFi<br />
verbinding kan hij communiceren met een laptop of<br />
PC.<br />
Voor al deze taken heeft MARVIN natuurlijk energie<br />
nodig. Die haalt hij niet zoals de mens uit eten,<br />
maar uit batterijen. MARVIN kan werken met twee<br />
soorten batterijen: de reguliere 1,5V batterijen die<br />
lekker lang meegaan. Maar als ze leeg zijn, moet je ze<br />
weggooien. Handiger zijn de oplaadbare batterijen<br />
van 1,2V. Deze batterijen kun je steeds opnieuw opladen<br />
als ze leeg zijn. Voor het opladen heeft MAR-<br />
VIN aan de achterkant een speciale connector, waar<br />
je de lader op kunt aansluiten.<br />
Je hebt al gelezen dat MARVIN via WiFi contact kan<br />
maken met een PC of laptop. Het is ook mogelijk<br />
om MARVIN via een USB-kabel direct op te sluiten<br />
op de PC of laptop. Op deze manier kun je MARVIN<br />
voorzien van een update als dat nodig mocht zijn.<br />
Een belangrijk onderdeel van MARVIN is de SDkaart.<br />
Op deze SD-kaart staat niet alleen de website<br />
van MARVIN, maar ook alle handleidingen, hulpprogramma’s<br />
en voorbeeldprogramma’s. Je kunt er zelfs je<br />
eigen programma opslaan.<br />
MARVIN heeft twee kleine supersnelle en sterke<br />
motoren. Direct op deze motoren zit de odometriesensor<br />
gemonteerd. Die meet niet alleen hoe<br />
snel de motoren ronddraaien, maar hij meet ook<br />
hoe hard de MARVIN rijdt en welke afstand MAR-<br />
VIN heeft afgelegd.<br />
Op de achterkant bevindt zich naast de voedingsconnector<br />
die we al hebben besproken, een drukknop<br />
die straks vrij te gebruiken is bij het programmeren<br />
en de belangrijke aan-/uitschakelaar. Het is<br />
zelfs mogelijk om op de achterkant drie proxisensoren<br />
te monteren. Op die manier kan MARVIN kijken<br />
als hij achteruit rijdt.<br />
MARVIN heeft bovendien een klok. Deze klok heeft<br />
zijn eigen kleine batterijtje, zodat hij altijd doorloopt<br />
ook al heb je MARVIN uitgeschakeld.<br />
Tot slot heeft MARVIN nog een heleboel LED’s. Twee<br />
witte ervan worden gebruikt als koplampen en twee<br />
roodgekleurde als achterlampen. Er zijn ook nog<br />
status LED’s, die je zelf in allerlei kleuren kunt laten<br />
oplichten. Er is geen luidspreker, maar MARVIN kan<br />
wel geluid afspelen via de PC door middel van de<br />
WiFi verbinding.<br />
6
1.2 Wat kan ik allemaal?<br />
Ik ben niet zo maar een robot maar een robotplatvorm. Er zijn diverse sensoren op mij gebouwd, zodat ik van<br />
nature al erg slim ben. Ik heb een grote connector waar je een standaard ARDUINO shield op kunt zetten.<br />
Bovendien krijg ik straks nog een shovel met lijnvolger en een robotarm, zodat ik supercoole dingen kan doen.<br />
Naast de sensoren heb ik nog indicatoren die iets aan kunnen geven.<br />
Eerst wat meer over mijn standaard sensoren:<br />
• De drie proxisensoren zorgen ervoor dat ik kan zien of ik ergens tegenaan rijdt.<br />
• Ik heb ook een klok, zodat ik altijd weet hoe laat het is.<br />
• Daarnaast heb ik een kompas, waardoor ik precies weet waar het Noorden is.<br />
Je kunt me daarmee alle windrichtingen opsturen.<br />
• Met mijn gyrosensoren weet ik of ik tegen een helling oprijdt of er juist vanaf rijdt. Ik voel dus of mijn<br />
neus omhoog of omlaag staat. Ik kan ook voelen of mijn linker of rechter rupsband omhoog staat of<br />
misschien draai ik wel rond.<br />
• Ik kan met mijn versnellingsmeter voelen hoe snel ik beweeg.<br />
• Met mijn indicatoren kan ik laten zien wat mijn toestand is of hoe ik mij voel.<br />
Stap voor stap gaan we nu uitleggen wat het allemaal is en hoe het allemaal werkt.<br />
7
WAT IS EEN ROBOT?<br />
2
2.1 Definitie van een robot<br />
Robots zijn alom bekend in de hedendaagse wereld.<br />
Ze spelen een rol op diverse gebieden, maar we<br />
kennen ze vooral uit de industriële sector. Maar op<br />
de vraag wat robots eigenlijk zijn, is het antwoord<br />
niet zo eenvoudig te geven. Het woorden<strong>boek</strong> zal<br />
de volgende omschrijvingen geven:<br />
1) Een door de mens gemaakte pop werkend via<br />
allerlei gecompliceerde technieken, een<br />
kunstmatige mens.<br />
2) Machines die d.m.v. de bovengenoemde<br />
technieken zelfstandig kunnen werken zonder<br />
tussenkomst van de mens.<br />
Deze beschrijvingen geven nog geen volledig<br />
antwoord op onze vraag wat robots zijn.<br />
Nog maar sinds kort wordt de robot gezien als een<br />
automatisch systeem zoals je vaak ziet in industriële<br />
toepassingen en bij diepzee- en ruimteproeven.<br />
Langere tijd geleden had een robot een menselijk<br />
gedaante. Ze werden gezien als een automaat die<br />
dezelfde handelingen als de mens kon verrichten.<br />
Dit soort robots zie je vaak terug in stripverhalen<br />
en in Science Fiction series.<br />
Ze worden kunstmatige mensen genoemd, omdat<br />
ze op onnatuurlijke wijze ontstaan. Maar omdat<br />
ze eruit zien als mensen, worden ze daar-<br />
Een Lasrobot in een fabriek<br />
9
2.2 Waarom de naam robot?<br />
Het woord robot is van oorsprong afkomstig uit het toneelstuk “Rur” uit 1920, dat werd geschreven<br />
door de Tsjechische toneelschrijver Karel Capek. In dit toneelstuk wordt een aantal kunstmatige mensen<br />
gefabriceerd, die echte mensen in een werkplaats vervangen. Dit was de eerste keer dat het woord<br />
robot werd gebruikt in de betekenis van kunstmatige mens.<br />
Het woord robot is hier afgeleid van het woord “robota” uit de Tsjechische taal. Het betekent zoiets als<br />
“gedwongen arbeid”. Vanuit dit gezichtspunt is het woord nauw verbonden met de hedentendaagse robot in<br />
de industriële toepassingen.<br />
De robot in het toneelstuk is echter niet mechanisch, maar een combinatie van organische onderdelen.<br />
Quick scan<br />
Tegen woordig komen we overal robots tegen<br />
• Industrierobot lassen, verven, inpakken en sorteren<br />
• Ruimtevaart de robot auto’s die op Mars rondrijden<br />
• Thuis en op school de stofzuigrobot maar er zijn ook al lesrobots<br />
• Defensie de robots die bommen kunnen opruimen<br />
10
BESCHRIJVING VAN<br />
DE MARVIN<br />
3
3.1 Belangrijkste onderdelen<br />
Proxisensoren<br />
Niet gemonteerd<br />
Proxisensoren<br />
Niet gemonteerd<br />
Drukknop<br />
Drukknop<br />
Drukknop<br />
Drukknop<br />
Drukknop<br />
Drukknop<br />
Drukknop<br />
Proxisensoren<br />
Niet gemonteerd<br />
Proxisensoren<br />
Niet gemonteerd<br />
Proxisensoren<br />
Niet gemonteerd<br />
Proxisensoren<br />
Niet gemonteerd<br />
• Hoofd processor dit zijn de hersenen van de marvin hier doet hij al het denkwerk<br />
•<br />
• Proxisensoren heimee meet hij de lichtsterkte en afstand<br />
• 9D sensoren dit is een kompas bewegingsmeter en versnellingsmeter<br />
•<br />
• odometer die meet de snelheid en de afstand die je rijd<br />
•<br />
•<br />
Arduino shield header hier kun je extra modules plaatsen bijvoorbeeld een robot arm of een gezicht<br />
SD-kaart hier staat de hele website (iRP) van de Marvin op en je kunt er je eigen programma opslaan<br />
met de voedingsconnector kun je de batterijen van Marvin opladen en kan hij werken zonder batterijen<br />
Drukknop die kun je vrij gebruiken bijvoorbeeld Marvin starten als je dat opneemt in je programma<br />
12
3.2 Het starten van DE MARVIN<br />
A. Het plaatsen van de batterijen<br />
Leg 6 stuks AA (1,5 Volt alkaline of 1,2 Volt oplaadbare) batterijen klaar.<br />
Deze batterijen worden niet standaard meegeleverd.<br />
* Gebruik nieuwe batterijen, gebruik geen verschillende batterijtypes of een mix van volle en halfvolle.<br />
Maak de Tie Wrap (zie Marvin onderdelen op de vorige bladzijde) open om de batterijhouder los, dat<br />
doe je door het lipje aan de onderkant in te drukken.<br />
B. De eerste test<br />
Als we de batterijen geplaatst hebben kunnen we de batterijhouder weer vastzetten met de Tie Rap.<br />
Controleer of de SD kaart in de Marvin zit, zet de Marvin aan:<br />
De blauwe en de groene LED moeten nu oplichten.<br />
C. Verbinding maken met Marvin<br />
We gaan nu via de WiFi verbinding maken met de Marvin.<br />
Zet de PC met Wifi of laptop aan en ga naar de WiFi verbindingen.<br />
Selecteer in de WiFilijst "Marvin"<br />
Voer het wachtwoord van de Marvin in: "IoT-Robot"<br />
Open een webbrowser gebruik voor Windows Chrome of Firefox en voor MAC0 Safari of Chrome.<br />
Het komt namelijk voor dat Marvin niet goed met Internet Explorer en Edge werkt.<br />
Typ 192.168.1.1 in de adresbalk van de webbrowser en geef een enter.<br />
Als het goed is zie je nu dit scherm:<br />
13
3.3 De MARVIN website<br />
Het iRP symbool zal even laden, iRP is de website van Marvin waar je marvin kunt besturen en bedienen,<br />
iRP = Intuitief Robot Programeren. Er wordt nu via WiFi contact gemaakt met de Marvin en de<br />
website van de Marvin, die op de SD kaart staat, wordt geopend.<br />
Je ziet nu het volgende welkomsscherm:<br />
Hier klik je op PROBEER en dan zie je het hoofdscherm:<br />
We gaan natuurlijk direct iets uitproberen:<br />
Open het tabblad Afstandsbediening & Display<br />
14
Je ziet nu het volgende scherm:<br />
Groene LED =<br />
verbonden met de PC<br />
----> Schermkeuze<br />
Snelheids<br />
regelaar<br />
Stuurpaneel<br />
Informatiescherm sensoren Afstandsbediening Noodstop Sensor grafiek<br />
aan<br />
Bedienings knoppen<br />
keuzeknoppen<br />
Vrij programmeerbaar<br />
Controleer aan de hand van de groend LED naast de taalkeuze of de Marvin nog verbonden is met de PC.<br />
Zet met de bedieningsknop rechtsonder de lichten van de Marvin aan (en uit). Als dat goed werkt, is het<br />
tijd om eens te gaan rijden.<br />
Zet de Marvin daarvoor op de grond. Klik op de knop “Schakel RC in” en zet de snelheidsregelaar in<br />
het midden. Met de punt in het blauwe vlak kun je nu de Marvin besturen. Gaat er iets fout klik dan op<br />
neutraal (dat is de noodstop).<br />
Dit was een eerste ontdekkingsreis van wat de Marvin kan.<br />
We gaan nu eerst wat uitleggen over wat je op je scherm ziet:<br />
Het bovenste blauwe display geeft belangrijke informatie weer<br />
over de Marvin. Het onderste blauwe display kun je bij zelfgeschreven<br />
programma's gebruiken om bepaalde waardes uit<br />
te lezen.<br />
Andere begrippen die je op het scherm ziet zijn:<br />
Tijd De tijd van de Marvin kun je gelijk laten lopen met de computertijd.<br />
Dit doe je met het commandoblok: Synchroniseer de RTC met de systeemtijd.<br />
RTC = Real Time Clock dat betekend dat de werkelijke tijd wordt aangegeven<br />
Batterij De batterij geeft de batterijspanning weer de spanning kun je ook uitlezen op het witte<br />
plotscherm rechts ( Een plotscherm geeft een grafiek weer).<br />
Oriëntatie H = Heading: geeft de kompashoek (kompasrichting) weer<br />
P = Pitch: geeft de hellingshoek weer, van voor naar achter (koprol)<br />
R = Roll: geeft de hellingshoek weer, van de zijkanten (rollen)<br />
Proxi voor Proxi geeft de afstandsmeting weer van de voorste afstandssensoren<br />
(links, midden en rechts)<br />
ALS ALS geeft de lichtsterkte weer die ook gemeten wordt door de drie proxisensoren,<br />
(links, midden en rechts) Proxi = Proximity = Afstandssensor<br />
Gyro Gyro geeft de gyroscopische bewegingsacceleratie weer, omhoog/omlaag en links/rechts.<br />
(De Gyro geeft aan hoe snel beweegt Marvin in een bepaalde richting).<br />
15
Zelf proberen:<br />
Rij nu eens rond en bekijk de kompasgegevens.<br />
Kun je het Noorden vinden?<br />
Zoek de richting van 0 of 360 graden op dat is het Noorden.<br />
En de Pitch, rij eens met de Marvin over een obstakel, bijv. een <strong>boek</strong>.<br />
Zie je de hoek veranderen?<br />
Hoe hoger het obstakel hoe groter de pitch zal worden.<br />
Ook de Roll is eenvoudig te testen. Rij met één rupsband over het obstakel,.<br />
Wat zie je bij de Roll?<br />
ook hier geld weer hoe hoger het obstakel hoe groter de Roll zal worden.<br />
Later vertellen we nog veel meer over het display- en het plotscherm.<br />
16
WE GAAN PROGRAMMEREN!<br />
4
4.1 Programmeren met iRP functieblokken<br />
We kunnen de Marvin eeenvoudig programmeren met de iRP functieblokken.<br />
iRP betekent intuïtief Robot Programmeren.<br />
Klik op het tabblad “programma”, je ziet dan het volgende scherm:<br />
Quick scan<br />
Intuïtief = op je gevoel<br />
Intruïtief programmeren wil zeggen dat je op je gevoel kunt programmeren,<br />
ook al weet je er nog niet zoveel vanaf.<br />
Het zit allemaal zo logisch in elkaar dat je het vaak wel snapt. Aan de<br />
zijkant zie je een vraagteken. Als je een<br />
programmeerblokje kiest, kun je met het ? nog extra informatie opvragen<br />
over wat je in het programmeerblokje moet invullen.<br />
18
iRP functieblokinstellingen<br />
Controleer nog even of je wel het iRP-blokken beginner gaat gebruiken<br />
Je kunt dat controleren als je klikt op het <strong>boek</strong>je icoon: “programma editeren”, (zie hieronder).<br />
19
Een eerste programmeertest<br />
Open het tabblad Actie, je ziet nu een lijst met functieblokken.<br />
Sleep het functieblok Rijden (afstand) naar start en maak het vast zoals op de tekening hieronder.<br />
Voer nu de snelheid in (bijvoorbeeld 5) en de afstand die de robot moet rijden (bijvoorbeeld 15).<br />
Zorg dat Marvin vrij op de grond staat en klik nu op het driehoekje (programma start) rechtsonder in<br />
het scherm. Nu gebeurt er achter de schermen van alles, maar je gaat daar maar weinig van merken.<br />
Het iRP programma wordt namelijk omgezet naar een voor Marvin begrijpelijke code.<br />
Die code wordt via WiFi naar de Marvin gestuurd. Daarna wordt het programma direct gestart en zal<br />
de Marvin 15 mm (dat is maar 1,5 cm) vooruit gaan rijden.<br />
Dit alles gaat razendsnel, je kunt het een beetje volgen boven in uitvoerregel van het programmascherm.<br />
In de bovenste regel komt nu compileren en gestart te staan.<br />
Uitvoerregel programma<br />
20
4.2 Programmeren met flowcharts<br />
Nu zou je kunnen starten met het programmeren van de Marvin, maar..... wacht nog even.....<br />
Bij programmeren levert haastwerk vaak foutjes op.<br />
We beginnen daarom met het opschrijven van onze programmeerdoelen in een flowchart.<br />
Een flowchart wordt ook wel een stroomdiagram genoemd.<br />
Programmeren en stroomschema<br />
Als programmeurs een programma schrijven, beginnen ze meestal met een flowchart, het Engelse woord<br />
voor stroomschema.<br />
Waarom gebruiken we flowcharts?<br />
Het kost veel tijd en je kunt ook zonder flowchart programmeren. Dat klopt, we zijn sneller als we direct<br />
beginnen met het invoeren van de programmeercommando's.<br />
Een flowchart is zoiets als een Tomtom, die je bij het programmeren de weg wijst. Zie het als een schema<br />
met de stappen die het programma moet volgen. Met behulp van dit schema kunnen we eventuele fouten<br />
opsporen.<br />
In de flowchart noteren we wat we willen bereiken. We bedenken de tussenstappen en de deelopdrachten<br />
om daar te komen.<br />
We gebruiken daarbij de onderstaande symbolen, die we verderop in dit <strong>boek</strong> ook weer terug vinden.<br />
Wat is een<br />
Flowchart<br />
... Label: het begin-/eindpunt van een programma<br />
... Proces: een werkvolgorde van opdrachten<br />
... Keuzeblok: kiest een pad uit diverse paden<br />
... Knooppunt: hier komen diverse paden bijeen<br />
... Verlooppijl: dit soort pijlen beschrijft de volgorde<br />
van een programma<br />
Bij het maken van een flowchart plaatsen we de bovenstaande<br />
symbolen in de correcte volgorde, zoals het programma moet doorlopen.<br />
21
Voorbeeld<br />
Als voorbeeld gaan we een flowchart maken over Nancy en waar Nancy na school haar tijd aan besteedt.<br />
Beschrijving van de dagindeling in tekstvorm<br />
Nancy gaat naar huis. Zodra zij thuis aankomt, gaat zij gamen en daarna aan<br />
tafel voor het avondeten. Na het avondeten moet ze nog vaak haar huiswerk<br />
maken. Als ze geen huiswerk hoeft te maken, of dit al heel snel af heeft, gaat<br />
ze TV kijken of lezen. Rond 9 uur gaat zij naar bed.<br />
Beschrijving van de dagindeling in een flowchart<br />
A<br />
B<br />
Start<br />
A<br />
B<br />
Naar huis<br />
TV kijken/<br />
Lezen<br />
Huiswerk<br />
maken<br />
Gamen<br />
Avondeten<br />
Nee<br />
Negen<br />
uur?<br />
Ja<br />
Huiswerk<br />
Nee<br />
Ja<br />
Slapen<br />
A<br />
B<br />
Einde<br />
22
Zoals je in het voorbeeld ziet, is een flowchart veel overzichtelijker dan de tekstvorm.<br />
Met de flowchart voorkom je programmeerfouten en kun je het programma van begin af aan zonder<br />
ontwerpfouten opbouwen.<br />
Een programmeerfout heet in vaktaal een "bug"*. Het verwijderen van programmeerfouten<br />
noemen we "debuggen". In het ideale geval ontwerp je foutloze software, maar iedereen maakt<br />
wel eens een foutje. Met behulp van een flowchart zijn fouten eenvoudiger op te sporen en soms<br />
zelfs te voorkomen.<br />
Quick scan<br />
Voordelen van een flowchart:<br />
* Je kunt de stap-voor-stap processen in een programma goed<br />
identificeren<br />
* De flowchart geeft een duidelijk totaaloverzicht van het programma<br />
* Je kunt de afloop van het programma perfect controleren en de<br />
eventuele fouten in het programma gemakkelijker vinden en<br />
corrigeren.<br />
* Engelse woord voor "kever" of "plaagdier"<br />
23
4.3 Oefeningen<br />
Oefening 1: Rijden<br />
We gaan een programma maken aan de hand van een flowchart en deze invoeren in de Marvin.<br />
Eerst zoals afgesproken dus het programma in woorden:<br />
We gaan Marvin 20 cm vooruit laten rijden met een snelheid van 0,6 m/s en daarna 18,5 cm achteruit met<br />
met een snelheid van -0,4 m/s.<br />
Zet deze tekst in een flowchart:<br />
24
Vervolgens is het Marvin programma aan de beurt. De flowchart zet je dan om in een programma.<br />
We gaan Marvin 20 cm vooruit laten rijden met een snelheid van 0,6m/s en daarna 18,5 cm achteruit met<br />
met een snelheid van -0,4m/s.<br />
Uitleg Marvin programma:<br />
Snelheid:<br />
De snelheid van de Marvin robot kan worden opgegeven in m/s, meter per seconde.<br />
1 m/s is ongeveer 3,6 km per uur.<br />
De snelheid van Marvin kan worden opgegeven als waarde van -280 tot 280.<br />
Daarbij is:<br />
0: stil staan<br />
-280: hard achteruit rijden<br />
280: hard vooruit rijden<br />
Afstand:<br />
20 cm vooruit laten rijden is niet zo moeilijk, maar je moet er rekening houden dat je de afstand<br />
in mm opgeeft dus 200 mm.<br />
Synchroon:<br />
Het is belangrijk dat synchroon aan staat. Dat betekent dat Marvin eers de ene opdracht afmaakt<br />
(20 cm vooruit rijden), voordat hij aan de tweede opdracht begint (18,5 cm achteruit rijden)!<br />
25<br />
Quick scan<br />
A;s je op een een programmeerblokje in de iRP klikt<br />
(bijvoorbeeld rijden) en daarna op het vraagteken,<br />
dan krijg je de helpfunctie te zien van dat blokje.<br />
In ons voorbeeld (rijden) zie je wat je allemaal bij<br />
rijden kunt invoeren.
Oefening 2: Een bocht maken<br />
We beginnen weer met het programma in woorden:<br />
We gaan Marvin recht vooruit laten rijden met een snelheid van 0,5 m/s, stoppen. Dan gaan we een bocht<br />
maken van 90 graden met een snelheid van 0,2 m/s, stoppen. Tot slot nog 15 cm vooruit rijden met een<br />
sneleheid van 0,7 m/s..<br />
26
Vervolgens is het Marvin programma weer aan de beurt:<br />
We gaan Marvin vooruit laten rijden en met een snelheid van 0,5 m/s, stoppen. Dan gaan we een bocht<br />
maken van 90 graden met een snelheid van 0,2 m/s, stoppen. Tot slot nog 15 cm vooruit rijden met een<br />
snelheid van 0,7 m/s..<br />
Uitleg Marvin programma:<br />
Rem:<br />
Hiermee laat je Marvin direct stoppen.<br />
Rotatie:<br />
Hiermee kun je een bocht maken, de hoek wordt aangegeven in graden.<br />
Quick scan<br />
Rotatieblok: De robot maakt een hoek groter dan 90° als<br />
de snelheid te hoog is. Bij een lagere snelheid, bijvoorbeeld<br />
0.2 m/s, wordt de hoek al beter maar vaak nog<br />
steeds iets groter dan 90°.<br />
We kunnen later een nauwkeurige hoek maken als we<br />
gebruik maken van het kompas.<br />
27
Oefening 3: Marvin als politierobot door het maken van een herhaallus<br />
We gaan nu een nieuw programma maken met een oneidige herhaallus dat is in het engels een “While<br />
loop” maar eers maken we met behulp van de flowchart een werktekening voordat we de code gaan schijven<br />
voor de Marvin.<br />
We beginnen weer met het programma in woorden:<br />
We gaan van Marvin een politierobot maken met knipperende lichten. De voorlichten gaan 200 milli- seconden<br />
aan en uit. De achterlichten gaan 200 millisecoden aan en uit. De LED knippert om de<br />
120 milliseconden blauw/rood. We herhalen dit bovenstaande oneindig met een loop.<br />
Zoals je al weet moet je bij een fl owchart de pijltjes volgen. Bij deze oefening gaat de pijl bij het laatste blokje<br />
weer terug naar het begin. Dit noemen we een loop.<br />
De flowchart ziet er dan als volgt uit:<br />
28
En vervolgens weer het Marvin programma:<br />
De voorlichten gaan 200 milli- seconden aan en uit. De achterlichten gaan 200 millisecoden aan en uit.<br />
De LED knippert om de 120 milliseconden blauw/rood. We herhalen dit bovenstaande oneindig met<br />
een loop.<br />
29<br />
Quick scan<br />
Herhaal oneindig: In deze opdracht maken we gebruik<br />
van de functie ”Herhaal oneindig”,<br />
in het Engels ook wel een while loop genoemd.<br />
Het programma blijft zich oneindig<br />
herhalen. Ideaal voor een politierobot. In de flowchart<br />
wordt dit aangegeven door een pijl van eindpunt naar<br />
beginpunt.
Oefening 4: Marvin de politierobot een rondje laten rijden met knipperende lichten<br />
We beginnen weer met het programma in woorden:<br />
Marvin rijdt een rondje, doordat we hem links met een snelheid van 0,2 m/s en rechts met een smelheid<br />
van 0,1 m/s laten rijden. Tevens gaan de voorlichten 200 milliseconden aan en uit. De achterlichten gaan<br />
200 millisecoden aan en uit en de LED knippert om de 120 miliseconden blauw/rood.<br />
We herhalen dit weer oneindig.<br />
Zelf proberen:<br />
Probeer nu zelf eens de eerste blokken<br />
van de flowchart in te vullen.<br />
30
En nu weer het Marvin programma:<br />
Marvin rijdt een rondje, doordat we hem links met een snelheid van 0,2 m/s en rechts met een smelheid<br />
van 0,1 m/s laten rijden. Tevens gaan de voorlichten 200 milliseconden aan en uit. De achterlichten gaan<br />
200 millisecoden aan en uit en de LED knippert om de 120 miliseconden blauw/rood.<br />
We herhalen dit weer oneindig.<br />
31
Oefening 5: Een programma met de functie “ALS-DAN”<br />
We gaan nu leren hoe je de functie “als” kunt gebruiken. In het Engels noem je dit een “IF-THEN”<br />
statement”. De functie “ALS” controleert een voorwaarde en als die voorwaarde waar is DAN wordt de<br />
code in het blok uitgevoerd.<br />
In deze oefening controleert Marvin of de druktoets wordt ingedrukt. ALS dit zo is, DAN wordt de LED<br />
rood.<br />
Wil je meer informatie over de functie “ALS”, klik dan op de helpknop in de Marvin iRP IDE omgeving.<br />
32
In het Marvin programma:<br />
In deze oefening controleert Marvin of de druktoets wordt ingedrukt. ALS dat zo is, DAN wordt de LED<br />
rood. Dit moet oneindig herhaald worden.<br />
Quick scan<br />
ALS: Wanneer er een ALS functie uitgevoerd wordt, dan<br />
gaat de robot eerst kijken of iets waar is of al gedaan is,<br />
voordat hij de volgende stap gaat uitvoeren.<br />
Het is net alsof je moeder zegt ALS je kamer is opgeruimd,<br />
DAN pas mag je gaan gamen.<br />
33
Oefening 6: Een programma met de functie “ALS - DAN - ANDERS”<br />
We gaan nu leren hoe je de functie “ALS - DAN - ANDERS” kunt gebruiken. In het Engels noem je dat een<br />
“IF - THEN - ELSE statement”. De functie “ALS” controleert een voorwaarde en als die voorwaarde waar is<br />
DAN wordt de code in het blok uitgevoerd. Wordt niet aan de voorwaarde voldaan (ANDERS), dan gaat<br />
hij iets anders doen.<br />
In deze oefening controleert Marvin of de druktoets wordt ingedrukt. ALS dit waar is, DAN wordt de LED<br />
rood. ANDERS (als de druktoets niet ingedrukt is) gaat de groene LED branden.<br />
Wil je meer informatie over de functie “ALS-DAN-ANDERS”, klik dan op de helpknop in de Marvin iRP<br />
IDE omgeving.<br />
Zelf proberen:<br />
Probeer nu zelf eens de eerste blokken<br />
van de flowchart in te vullen.<br />
34
In Het Marvin programma:<br />
Als de drukknop ingedrukt wordt, moet de LED rood gaan branden.<br />
Anders moet de LED groen worden. Herhaal dit oneindig.<br />
35
Oefening 7: Een programma met de functie “ALS - DAN”<br />
We gaan nu een groter programma maken met twee “ALS - DAN ” functies. In het Engels noem je dat een<br />
“IF - THEN statement”. De functie “ALS” controleert een voorwaarde en als die voorwaarde waar is DAN<br />
wordt de code in het blok uitgevoerd ANDERS (als het niet waar is) gaat hij iets anders doen.<br />
De eerst ALS controleeert of de druktoets wordt ingedrukt, als dit is gebeurd DAN gaat de Marvin rijden<br />
en wordt de LED groen, ANDERS (als de druktoets niet ingedrukt is) doorloopt hij het programma<br />
opnieuw via de herhaallus. De tweede ALS kijkt of de afstand groter is dan 13 cm. ALS dit waar is, remt<br />
Marvin en gaat de rode LED branden. Is het niet waar, dan loopt hij door de herhaallus.<br />
Zelf proberen:<br />
Probeer nu zelf eens de eerste blokken<br />
van de flowchart in te vullen.<br />
36
En nu in het Marvin programma:<br />
De eerst ALS controleeert of de druktoets wordt ingedrukt, als dit is gebeurd DAN gaat de Marvin rijden<br />
en wordt de LED groen, ANDERS (als de druktoets niet ingedrukt is) doorloopt hij het programma<br />
opnieuw via de herhaallus. De tweede ALS kijkt of de afstand groter is dan 13 cm. ALS dit waar is, remt<br />
Marvin en gaat de rode LED branden. Is het niet waar, dan loopt hij door de herhaallus.<br />
Ook deze actie dient oneindig te worden herhaald.<br />
37