O4. Robot
Je gaat je robot programmeren!
Opdrachtbeschrijving
De opdracht in het kort is: programmeer een apparaat naar keuze met behulp van een toestandsdiagram.
Je schrijft je in via het onderstaande formulier dat de docent aanlevert (login met je google account van school voor toegang).
Je teamnaam is de voornamen van iedereen die in je groepje zit.
Je bent vrij om zelf te kiezen voor welk van de aangeboden apparaten je een programma gaat maken. Je docent moet je keuze goedkeuren. De apparaten die je kunt programmeren zijn:
Stoplichtenplein (havo)
De opdracht voor dit apparaat
Maak een programma waarmee de stoplichten zo op groen, oranje en rood springen dat auto’s en voetgangers zo efficient mogelijk over de kruising kunnen.
Het stoplichtenplein
Je mag het plein uitbreiden met sensoren die auto’s waarnemen.Arcade game box (havo en vwo)
De opdracht voor dit apparaat
Maak een game die zo boeiend mogelijk is.
De arcade box
Je mag gebruik maken van alle mogelijkheden die de hardware in de arcadebox biedt. Dit zijn 4 knoppen met dimbare verlichting, een speaker en een display met twee regels van zestien karakters en de mogelijkheid om zelf een beperkt aantal karakters te ontwerpen.Alphabot2 rijdende robot (havo en vwo)
De opdracht voor dit apparaat
Maak een programma dat de alphabot zo snel mogelijk de uitgang van een doolhof laat vinden.
De alphabot
Je moet mimimaal de beide motoren en één type afstandssensor van de alphabot2 gebruiken. De afstandssensoren waar je uit kunt kiezen zijn de ultrasone afstandssensor voorop, de twee infrarode aftandssensoren schuin links- en rechtsvoor en de lijnvolgsensoren onderop. Je kunt je oplossing uitbreiden door meerdere sensortypen te gebruiken. Je kunt je programma ook uitbreiden door het display, de speaker of de RGB-leds onderop te gebruiken om te laten merken wat de alphabot aan het doen is.
Het doolhof
Het doolhof bestaat uit en pad met doodlopende vertakkingen. In het doolhof zitten geen rondjes. De paden worden gevormd door vierkanten van ongeveer 30x30 cm. Aan de randen van de paden staan muren. De muren bestaan uit stukken van ongeveer 30 centimeter lang. De stukken muur sluiten recht op elkaar aan of maken een hoek van ongeveer 90 graden. In de midden van het pad is er een strook zwart tape op de vloer gemaakt. Dit tape bevat vertakkingen en is steeds ongeveer 15 cm van een muur verwijderd.Drone (experimenteel voor vwo in 22/23, vwo vanaf 23/24)
De opdracht voor dit apparaat
Laat de drone zo snel mogelijk van de startplek naar de finish plek vliegen. Onderweg staan opstakels.
De drone
Je gebruikt commando’s om de drone te laten opstijgen en landen en om de drone in een bepaalde richting te laten vliegen. Je gebruikt de afstandssensor voor op de drone om de afstand tot opstakels te meten.
Het parcours
Het parkcours wordt telkens opgebouwd en afgebroken in de gang. De drone mag niet buiten het parcours vliegen, geen obstakels of muren raken en tijdens het vliegen mogen er geen personen binnen de grenzen van het parcours aanwezig zijn. Er is een vast punt waar de drone start en een zone waar de drone eindigt. De drone vliegt op vaste afstand van de grond (ongeveer 1 meter). De obstakels bevinden zich op de hoogte waar de drone vliegt. Tijdens de opdracht werk je in overleg met de docent het parcours verder uit.In overleg met je docent mag je ook een eigen apparaat kiezen of een bestaand apparaat uitbreiden.
- Je maakt deze opdracht in een team van twee personen. De docent geeft aan hoe de teams gemaakt worden. Je bepaalt zelf hoe je het werk binnen je team verdeelt, zolang iedereen een gelijkwaardige bijdrage levert. Je krijgt één cijfer per team, maar de docent kan hiervan afwijken als teamleden geen gelijkwaardige bijdrage hebben geleverd.
- Je krijgt van de docent startcode voor deze opdracht. Deze staat klaar in een repo op GitHub. Er is één repo per team.
- Je maakt code in de Arduino IDE. Je zorgt dat alle teamleden even veel coderen.
- Elke les sla je je tussentijdse werk op in de repo op GitHub. Dat doe je door de nieuwe versies van je bestanden met de hand te uploaden in de webpagina, want de Arduino IDE heeft geen automatische koppeling met GitHub.
- Deze opdracht maak je alsof het een echt project is. Je maakt eerst een planning. Daarna kijk je wekelijks of je nog volgens plan loopt. Als je niet volgens plan loopt, dan stuur je bij. In de les word je hiermee geholpen, maar uiteindelijk moet jij zorgen dat je op tijd klaar bent en een goed resultaat oplevert.
Het cijfer dat je voor je PO krijgt wordt vanuit vier invalshoeken bepaald:
- minimale eisen
- uiterlijk
- techniek
- inzet, planning en samenwerking
Minimale eisen
Voordat je een cijfer krijgt voor je PO, wordt gekeken of je werk voldoet aan de minimale eisen. Werk dat niet voldoet aan de minimale eisen krijgt het cijfer 1,0. De minimale eisen zijn:
- De inhoud van je opdracht is moreel verantwoord: het is niet beledigend, visueel gewelddadig of op andere manieren onfatsoenlijk.
- Natuurlijk mag je overleggen met klasgenoten en mag je op internet kijken hoe je bepaalde dingen kunt maken. Let wel op dat je geen plagiaat pleegt. Je mag maximaal 5 regels code overnemen van andere leerlingen of internet en je schrijft in het commentaar erbij waar je het voorbeeld vandaan hebt. Dat geldt ook voor code die je zelf vertaalt naar het Nederlands. Overtypen van code uit een Youtube-video of een tutorial van internet volgen en dat resultaat inleveren is niet toegestaan.
- Je gebruikt de startcode die je krijgt.
- Je gebruikt het stappenplan dat bij deze opdracht gegeven is.
- Een download in zip-formaat van je opdracht mag maximaal 50 MB groot zijn.
Werking en aantrekkelijkheid
- Je apparaat start op
- Je apparaat reageert op de omgeving
- De bediening van je apparaat is eenvoudig en logisch
- Het nut/doel van je apparaat is duidelijk
- Het apparaat bevat diverse functionaliteiten / mogelijkheden
- Je hebt uitbreidingen op het apparaat gemaakt
- …
Techniek
- De code volgt de lijn van de startcode
- De code is netjes en duidelijk leesbaar
- De code bevat geen dubbele stukken code
- Je hebt de technieken gebruikt die in de lessen zijn aangeboden.
- Je hebt dingen toegevoegd waarvan je zelf hebt uitgezocht hoe ze werken
- …
Inzet, planning en samenwerking
- Je toont inzet tijdens de lessen
- De planning is vooraf gemaakt, gevolgd en als nodig bijgesteld.
- De taakverdeling is duidelijk en alle teamleden dragen in gelijke mate bij.
- Het werk is verdeeld over de weken waarin aan de opdracht kon worden gewerkt.
- De deadline voor inleveren vind je in de lesplanner.
- Je kunt vragen stellen tot de laatste les voor de deadline.
- Je zorgt dat alle bestanden in die nodig zijn om je spel te spelen in GitHub staan, dit zijn ten minste:
- het .ino bestand met de code,
- een bestand met het toestandsdiagram (.excalidraw, .drawio, .pptx, .jpeg, .png of .pdf) en
- een link naar de video op youtube (.txt) of de video zelf (.mp4 of .mov).
- Als je libraries gebruikt, dan staan die er ook bij.
- Uit de versie historie in GitHub blijkt wanneer je wat gedaan hebt.
- De laatste versie van je PO die op het moment van de deadline in GitHub staat, wordt gebruikt voor de beoordeling.
Hulpmiddelen
We gebruiken in deze opdracht de volgende tools:
- GitHub om je werk op te slaan.
- Arduino IDE om je code voor de arduino te bewerken en in je apparaat te laden.
Er is geen automatische koppeling tussen Arduino IDE en GitHub. Dat betekent dat je je bestanden via de webinterface van GitHub moet downloaden en uploaden.
Startcode
Als je van je docent je een kopie van de startcode hebt ontvangen, dan kun je aan de slag met de stappen uit het README.md bestand.
Stappenplan
Werk de planning af van boven naar beneden.
- Je hebt je GitHub-inlognaam aan de docent doorgegeven, zodat die een Github-repo kan aanmaken.
- Je hebt gekozen wat je gaat maken en dat aan de docent doorgegeven, bij een eigen idee moet de docent het goedkeuren.
- Je hebt thuis een computer of laptop (Arduino werkt niet op een iPad) waarop je de gratis Arduino software hebt geïnstalleerd, of je hebt er rekening mee gehouden dat je een paar uur per week op school op een computer kan werken.
- Je hebt de startcode voor je project uitgeprobeerd. Je vindt de startcode in het .ino bestand in de map die hoort bij wat je gaat maken.
- Je hebt een toestandsdiagram gemaakt. Dit sla je op in GitHub.
- Je hebt je docent gevraagd om feedback over je toestandsdiagram. De feedback heb je verwerkt. Het uiteindelijke resultaat sla je weer op in GitHub.
- Je hebt aangegeven welke sensoren en actuatoren je gaat gebruiken, dit kan in een kort lijstje op hetzelfde blad als je toestandsdiagram.
Je kunt een toestandsdiagram bijvoorbeeld als volgt maken
- op https://excalidraw.com/ (snel en eenvoudig) of op https://draw.io (meer mogelijkheden)
- in Powerpoint
- op papier en dan fotograferen (het is dan wel lastig om het netjes te doen)
- Je hebt het toestandsdiagram in code omgezet, zodat alle toestanden doorlopen kunnen worden met jouw circuit. Daarbij heb je het door de docent aangeleverde projectcode als startpunt gebruikt. Nog niet alle sensoren of actuatoren van je apparaat hoeven het te doen, zolang alle toestanden maar doorlopen kunnen worden. De laatste versie van je code sla je steeds op op GitHub.
- Je hebt de code van je toestandsdiagram uitgebreid, zodat alle sensoren en actuatoren van je project het doen. Je apparaat werkt nu volledig en zoals beschreven in het toestandsdiagram. De laatste versie van je code sla je steeds op op GitHub.
- Je hebt je ontwerp uitgebreid met extra ideeën en deze heb je verwerkt in je toestandsdiagram en in je code. De laatste versie van je toestandsdiagram en code sla je steeds op op GitHub.
- Maak een video die de werking van je project demonstreert.
Het is een video met geluid (uitleg tijdens de demonstratie) in .mp4 of .mov formaat van maximaal 20MB of .txt bestand met link naar youtube. De video duurt maximaal 2 minuten.
Uitlegvideo’s
Er zijn op dit moment (nog) geen uitlegvideo’s bij deze opdracht.