10.01.2018 Views

boek 100118-2

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!