Informaticaweb
It's Learning
Onedrive
PO Robotica
Rooster
Kadaza
Magister

Opdracht

We maken in de klas groepen van 2 personen of kiezen voor 1 persoon. De samenstelling van de groep moet door de docent worden goedgekeurd. Deze praktische opdracht bestaat uit het programmeren van een robot uit de doos 'Lego Mindstorms NXT'.

Het programma moet in de programmeertaal NXC (Not eXactly C) worden geschreven. De beginselen van deze taal hebben jullie leren gebruiken in de afgelopen periode.
Jullie moeten in deze opdracht gebruik maken van het robotontwerp waar we ook in het leerlingenboek mee hebben gewerkt. Jullie mogen alleen de sensoren en een extra motor op andere plaatsen aan brengen of vervangen voor andere sensoren.

Elk groep mag zelf een keuze maken op welke manier zij de robot opdrachten uit willen laat voeren.

In je programma laat je jullie robot diversen taken uitvoeren die elkaar niet storen en op het juiste moment worden uitgevoerd. In je programma laat je de robot diversen taken uitvoeren die elkaar niet storen en op het juiste moment worden uitgevoerd.
Je maakt gebruik van minimaal 3 sensoren van minimaal 2 verschillende type. Je hebt een hoofdtaak en per type sensor (of motorarm) minimaal 1 aparte taak. Het gebruik van semaforen is daarbij vanzelfsprekend. Je controleert apart naast de hoofdtaak minimaal 2 andere taken met semaforen. Meer mag uiteraard ook. Maar werk taak voor taak af.
Subroutines, inline functies en macro's waarmee je de code kunt vereenvoudigen dien je in je code zeker te gebruiken.
Het is van belang dat je diversen mogelijkheden van je sensoren laat zien. Dit kan bijvoorbeeld het volgen van een lijn zijn of het achteruitrijden en draaien bij het bereiken van de tafelrand.

Een ander mogelijkheid kan zijn dat je robot op een beperkte oppervlakte met verschillende obstakels zijn bewegingen uitvoert. Deze beperkte oppervlakte kan bijvoorbeeld een tafelblad zijn of een groot wit vel papier met een zwarte rand. Je mag ook van hout een verhoogde rand toepassen, zodat de robot zich in een bak kan bewegen zonder te botsen. In plaats van obstakels kun je ook denken aan gekleurde stippen op de grond.

Er moet voorkomen worden dat de robot bij onverwacht situaties stil valt of vastloopt. Je moet er voor zorgen dat er dan telkens op één moment één geschikte taak de robot de juiste beweging laat maken.

In een Word-verslag moet je je robot beschrijven. Dit houdt onder andere in dat je aangeeft waar en met welke functie je je sensoren hebt geplaatst. Het verslag moet ook duidelijke foto's bevatten waaruit de verschillende functies van de sensoren blijken. De voor- en nadelen van je robot moeten ook uitgebreid worden beschreven.

In de programmacode code is elke aparte taak voorzien van de nodige commentaarregels. Bij de omschrijving van een taak geef je ook duidelijk het doel aan wat je met de programmeercode wilt bereiken.

De werking van je robot presenteer je tot slot in een mpeg-film van minimaal 4 minuten. Neem in je planning voldoende tijd op om deze film te maken. Je legt in de film uit welke keuzes (met welke voor- en nadelen) je hebt moeten maken tijdens het programmeren. Verder vertel je waarom je robot er met zijn sensoren zo uitziet. Dit doe je aan de hand van een demonstratie van de mogelijkheden. Er moet minstens een scene zijn zonder beeldonderbrekingen waarin je laat zien dat alle taken foutloos achter elkaar uitgevoerd worden. Bij het programmeren zal je vast bepaalde keuzes hebben moeten maken om je robot zo optimaal mogelijk zijn weg te laten vervolgen. Plaats de film op YouTube en in de werkmap op It's Learning een kopie van de video-file.

Ieder lid van de groep speelt een evenredige actieve rol bij het werken aan deze webquest.