Programmeringscomplexiteit
Robots kunnen worden ontworpen om een breed scala aan taken uit te voeren. Sommige van deze taken zijn heel eenvoudig, zoals het openen van een automatische deur. Anderen kunnen veel complexer zijn, zoals een autonome auto die door een stedelijke omgeving navigeert. Hoe complex de taak ook is, deze kan worden opgesplitst in eenvoudigere taken. Deze taken staan bekend als gedrag en vormen de bouwstenen van robotica-programmering.
Gedrag is de manier waarop een robot handelt, en kan in complexiteit variëren, afhankelijk van hoe de robot is gebouwd of geprogrammeerd. Een eenvoudige mobiele robot zoals de VEX V5 Speedbot heeft slechts twee motoren, terwijl de Clawbot vier motoren heeft, waaronder twee extra motoren voor de arm en de klauw. Het gedrag van beide robots omvat het draaien van die motoren om gestelde doelen te bereiken. Met meer ontwerp en programmering kunt u uitgaan van dit eenvoudige gedrag en complexere gedragingen uitvoeren.
Hieronder vindt u een lijst met robotgedragingen, oplopend van eenvoudig tot complex, voor zowel de Speedbot als de Clawbot. Tussen haakjes ziet u de eenvoudigere gedragingen waaruit elk gedrag bestaat.
-
Draai een motor die aan een bepaalde poort is toegewezen
-
Rijd vooruit (draai zowel de linker- als de rechtermotor met behulp van de aandrijflijn)
-
Rijd 5 meter (vooruit rijden en dan stoppen)
-
Grijp een voorwerp op afstand (reis 2 meter, draai de klauwmotor om het te pakken)
-
Een voorwerp ophalen en op een hoge plank plaatsen (pak een voorwerp op afstand, draai je om, reis 2 meter, gebruik de arm- en klauwmotoren om het voorwerp op te tillen en los te laten)
U kunt zien hoe u het complexere gedrag kunt deconstrueren tot eenvoudiger gedrag. Deze worden de bouwstenen van elke complexe taak.
Tips voor docenten
-
Instrueer de leerlingen om het complexe robotgedrag op te splitsen in kleinere, eenvoudige stappen. Dit proces staat bekend als ontbinding.
-
Leg de leerlingen uit dat het ontbinden (opbreken) van complex gedrag in eenvoudiger taken een belangrijk onderdeel is van planning en programmeren.
-
Laat leerlingen hun autonome projecten uitvoeren als er voldoende lestijd is.
Breid uw leerproces uit
Om deze activiteit te verbinden met computationeel denken en ontleden, vraagt u de leerlingen de gedragsstappen in kaart te brengen of op te sommen die een robot zou uitvoeren om de onderstaande activiteiten te voltooien:
-
Activiteit één: Reis 1 meter en keer terug naar de startplek.
-
Activiteit twee: Draai een doos om die zich 60 cm voor de robot bevindt.
-
Activiteit drie: Pak een voorwerp op, schud het, reis 30 cm, plaats het voorwerp op de grond en keer terug naar het startpunt.
Motiveer discussie
Leerlingen moeten de gedragsstappen delen die ze hebben genoemd voor de activiteiten uit Extend Your Learning hierboven. Elk van de volgende vragen kan na een of alle activiteiten worden gesteld.
Vraag: Welke stappen of gedragingen heeft elke groep genoemd om deze activiteit succesvol te voltooien?
A: Leerlingen moeten rekening houden met de lengte die de robot moet afleggen en met de beweging en snelheid van de arm, naast het opsommen van het eenvoudige robotgedrag dat nodig is om de activiteit of taak te voltooien (vooruit rijden, achteruit rijden, naar links draaien of rechts). Leerlingen moeten hun lijst met gedragingen zo opstellen dat elke stap wordt weergegeven.
Vraag: Wat waren de overeenkomsten en verschillen tussen de oplossingen (stappenlijsten) voor deze activiteit?
A: De leerlingen maken vergelijkingen op basis van hun oplossingen. Een Venn-diagram kan een goede manier zijn om de stappen die leerlingen delen te ordenen. Als de meerderheid van de leerlingen een bepaalde stap noemt, voeg deze dan toe aan het midden waar de cirkels elkaar overlappen. Als slechts één of enkele leerlingen een bepaalde stap noemen, voeg deze dan toe aan de ene of de andere cirkel. Als ze klaar zijn, moeten de stappen in het midden betrouwbaar eenvoudig zijn en niet verder kunnen worden opgesplitst, terwijl de stappen die in slechts één van de cirkels zijn vermeld waarschijnlijk niet zo eenvoudig zijn als ze zouden kunnen zijn. Dit patroon kan echter omgekeerd zijn, afhankelijk van de ervaring van de klas met het opsplitsen van complex gedrag in de eenvoudigste stappen.
Vraag: Waren er overeenkomsten met de succesvolle oplossingen? Zo ja, welke waren dat?
A: De meest succesvolle oplossingen waren de oplossingen die de meeste details en specificiteit bevatten. De robot is geprogrammeerd in een taal met zeer specifiek gedrag dat is opgesplitst in de kleinste componenten. Het kan bijvoorbeeld gebruikelijk zijn om te zeggen dat een robot "1 meter aflegt en terugkeert naar de startplek", maar die beschrijving op hoog niveau vertaalt zich niet gemakkelijk bij het programmeren. Je moet het verder opsplitsen: rijdt 1 meter vooruit, draait 180 graden en rijdt 1 meter vooruit. Maar zelfs dat is misschien niet precies genoeg en je hebt dit detailniveau nodig om klaar te zijn voor programmeren: stel de rij- en draaisnelheden in op 40%, rijd 1 meter vooruit, wacht 3 seconden, draai 180 graden naar links, wacht 1 seconde en rijd 1 meter vooruit. Hoe verder we complex gedrag afbreken om er programmeerklaar robotgedrag van te maken, hoe beter we voorbereid zijn om een project te voltooien.