Twee knoppen programmeren
Teacher Toolbox
-
Het doel van deze activiteit
Op de vorige pagina programmeerde de student de arm om omhoog te draaien met behulp van de Brain Up-knop. Deze pagina bouwt voort op het vorige project om ook de arm te programmeren om naar beneden te draaien met behulp van de knop Brain Down.

Deze activiteit zal studenten kennis laten maken met programmeren met [If then else] -blokken en met behulp van detectie- en bedieningsblokken om de robot te laten controleren of de Brain Up- of Down-knoppen worden ingedrukt. Als de Brain Up-knop wordt ingedrukt, gaat de arm van de Clawbot omhoog. Als de Brain Down-knop wordt ingedrukt, zal de arm van de Clawbot zakken. Dit bouwt voort op de vorige activiteit en zal ook de basis vormen voor de User Interface Challenge in het gedeelte Rethink.
Voor de User Interface Challenge moeten de leerlingen hun Clawbot programmeren om de arm op te tillen, de arm te laten zakken, de klauw te openen en de klauw te sluiten met behulp van knoppen op de IQ Robot Brain.
Ga voor meer informatie over de [If then], [If <then else]>, Brain-knop ingedrukt of de [Spin] -blokken naar de Help-informatie in VEXcode IQ. Klik hier voor meer informatie over deze ingebouwde help-tool.
Het volgende is een overzicht van wat uw studenten in deze activiteit zullen doen:
- Gebruik de bestaande ArmUp2 om het geleverde ArmUpDown-project te bouwen en te voorspellen wat het project zal doen.
- Bekijk een stroomdiagram om de stroom van de blokken in het project uit te leggen.
- Verfijn hun uitleg van wat het ArmUpDown-project doet.
- Bekijk de tutorialvideo If Then Else Blocks.
- Bewerk hun project met behulp van [If then else] -blokken.
- Stoppen en bespreken: studenten zullen reflecteren op hun voorspellingen over wat het project de Clawbot zal laten doen in vergelijking met hun werkelijke observaties.
- Programmeer de klauw met dezelfde projectomtrek als bij het programmeren van de arm.
| Aantal | Benodigde materialen |
|---|---|
| 1 |
VEX IQ Super Kit |
| 1 |
VEXcode IQ |
| 1 |
Technisch notitieboekje |
| 1 |
Clawbot (aandrijflijn) sjabloon |
De Clawbot-arm is klaar om op en neer te gaan!
Deze activiteit geeft je de tools om je robot met voorwaardelijk gedrag te programmeren.
Het blok [If then else] is de belangrijkste focus binnen de activiteit, maar er worden ook andere Sensing-, Control- en Operator-blokken gebruikt.

U kunt de Help-informatie in VEXcode IQ gebruiken om meer te weten te komen over de blokken. Raadpleeg de zelfstudie Help gebruiken voor hulp bij het gebruik van de Help-functie.

Stap 1: Programmeren om de arm naar beneden te bewegen.
Op de vorige pagina heb je de arm van de Clawbot geprogrammeerd om te draaien wanneer de Brain Up-knop werd ingedrukt. Maar hoe zit het met het laten zakken van de arm? Laten we eerst het vorige ArmUp2-project opnieuw bekijken.

Zou het mogelijk zijn om hetzelfde [If then] blok te gebruiken om de arm omhoog te draaien om ook de arm naar beneden te draaien? Laten we het proberen! Bouw het onderstaande project door uw reeds bestaande ArmUp2-project te bewerken.

-
Sla het project op als ArmUpDown. Als studenten hulp nodig hebben bij het opslaan van het project, raadpleeg dan de handleiding Benoemen en opslaan.

- Controleer of de projectnaam ArmUpDown nu in het venster in het midden van de werkbalk staat.
- Voorspel wat het project de Clawbot zal laten doen in je engineering notebook. Leg het gedrag van zowel de gebruiker als de Clawbot uit.
- Test om te zien of je voorspelling van wat het project de Clawbot laat doen correct is.
- Download het project naar sleuf 3 op de Clawbot en voer het vervolgens uit.
- Zie voor hulp bij het downloaden en uitvoeren van een project de zelfstudie in VEXcode IQ waarin wordt uitgelegd hoe u een project kunt downloaden en uitvoeren.

- Controleer uw uitleg van het project en voeg opmerkingen toe om ze indien nodig te corrigeren.
Tips voor docenten
Als dit de eerste keer is dat de student VEXcode IQ gebruikt, kunnen ze ook de tutorials in de werkbalk zien om andere basisvaardigheden te leren.

Teacher Toolbox
Het project dat de studenten hierboven bouwen, zal werken. Wanneer de Brain Up-knop wordt ingedrukt, zal de arm omhoog draaien en wanneer de Brain Down-knop wordt ingedrukt, zal de arm omlaag draaien. Hoewel het project werkt zoals het is, is het niet optimaal geschreven. Er kan een geval zijn waarin beide voorwaarden tegelijkertijd waar kunnen zijn. Merk ook op dat aangezien de toestand van de Brain Up-knop eerst wordt ingedrukt, als de Brain Up-knop wordt ingedrukt en vervolgens ook de Brain Down wordt ingedrukt, de arm blijft draaien. Die actie stopt niet totdat de Brain Up-knop wordt losgelaten. Het project zal dus in de volgende stap worden herschreven met een [If then else] -blok om deze potentiële problemen te voorkomen.
Teacher Toolbox
-
Stop en bespreek
Nu de studenten het project hebben getest, kun je ze vragen hoe hun voorspellingen zich verhouden tot hun observaties. Faciliteer de discussie door de volgende vragen te stellen:
-
Was uw voorspelling hetzelfde als uw observatie?
-
Wat lijkt er in het project te gebeuren?
-
Worden de voorwaarden van de knoppen Omhoog en Omlaag slechts één keer gecontroleerd?
-
Denkt u dat het project kan worden gereorganiseerd om efficiënter te werken?
Stap 2: De projectstroom begrijpen.
In de vorige stap bracht het project de arm omhoog en omlaag. Aangezien de toestand van de Brain Up-knop eerst wordt ingedrukt, als de Brain Up-knop wordt ingedrukt en vervolgens ook de Brain Down-knop wordt ingedrukt, blijft de arm draaien, omdat die actie niet stopt totdat de Brain Up-knop wordt losgelaten. Bekijk het volgende stroomdiagram dat de projectstroom uitlegt.

Zo kan het project de [If then] -blokken vervangen door [If then else] -blokken, zodat er op elk moment slechts één exemplaar waar kan zijn.
Bekijk de volgende instructievideo over [If then else] -blokken:
Begin met het bekijken van de If-Then-Else Tutorial-video in VEXcode IQ.

Het gebruik van [If then else] -blokken zal ook de noodzaak van de [Wait until] -blokken wegnemen, omdat de arm blijft draaien totdat de Brain Up-knop wordt losgelaten. Dit gebeurt omdat het "anders" -gedeelte van de [If then else] nooit wordt bereikt totdat de toestand van de Brain Up-knop onwaar is (vrijgegeven).
Met het blok [Forever] kan de eerste voorwaarde continu worden gecontroleerd.

Laten we eens kijken hoe we het project kunnen wijzigen door [If then else] -blokken toe te voegen. De armmotor blijft nu draaien totdat de Brain Up-knop niet langer wordt ingedrukt (losgelaten). Vanwege het [Forever] -blok wordt deze voorwaarde verder gecontroleerd totdat deze onwaar is.
Zodra de toestand van de Brain Up-knop onwaar is, gaat het project door naar het volgende blok, dat is om de toestand te controleren als de Brain Down-knop wordt ingedrukt. Als de toestand van de Brain Down-knop die wordt ingedrukt waar is, dan zal de arm omhoog draaien. Nogmaals, vanwege het [Forever] -blok blijft deze voorwaarde gecontroleerd totdat deze onwaar is.
Zodra de toestand van de Brain Up-knop onwaar is, gaat het project door naar het volgende blok, het blok [Stop motor]. De armmotor stopt dus alleen wanneer beide voorwaarden vals zijn (geen van beide knoppen wordt ingedrukt).

Motiveer discussie
V: Wat is de voortgang van de projectstroom als de toestand van de Brain Up-knop die wordt ingedrukt ONWAAR is (vrijgegeven)?
A: Als de voorwaarde onwaar is, zal de projectstroom doorgaan met het controleren van de toestand van de Brain Down-knop die wordt ingedrukt.
V: Wat is het doel van de [If then else] -blokken in het bovenstaande project?
A: Door de blokken [If then else] te gebruiken, kan slechts één exemplaar tegelijk waar zijn. De Brain Up-knop en de Brain Down-knoppen kunnen dus niet tegelijkertijd waar zijn met behulp van de [If then else] -blokken, omdat de tweede voorwaarde van de Brain Down-knop die wordt ingedrukt niet eens een optie zou zijn, tenzij de eerste voorwaarde van de Brain Up-knop die wordt ingedrukt onwaar was. Het andere doel is om de programmeerefficiëntie te verbeteren.
V: Wat is de voortgang van de projectstroom als beide voorwaarden van de knoppen Omhoog en Omlaag die worden ingedrukt vals zijn?
A: Als beide voorwaarden onwaar zijn, gaat de projectstroom verder naar het blok [Stop motor] voordat deze voor altijd terugkeert naar de bovenkant van de stapel.
Stap 3: Programmeren met [If then else] blokken.
Laten we de blokken [If then else] gebruiken:
-
Voeg de blokken [If then else] toe aan uw ArmUpDown-project, zodat uw project er als volgt uitziet:

-
Sla het project op als ArmUpDown2. Als studenten hulp nodig hebben bij het opslaan van het project, raadpleeg dan de handleiding Benoemen en opslaan.

- Download het project naar sleuf 4 op de Clawbot en voer het vervolgens uit.
- Zie voor hulp bij het downloaden en uitvoeren van een project de zelfstudie in VEXcode IQ waarin wordt uitgelegd hoe u een project kunt downloaden en uitvoeren.

- Test om te zien of de arm nu omhoog zal draaien wanneer de Brain Up-knop wordt ingedrukt en omlaag wanneer de Brain Down-knop wordt ingedrukt.
- Controleer of de armmotor stopt wanneer de knoppen Brain Up en Down niet worden ingedrukt (losgelaten).
- Schrijf uw observaties van hoe de Clawbot zich gedroeg voor en na het toevoegen van de if then else-blokken aan uw project in uw technische notitieblok.
Teacher Toolbox
-
Stop en bespreek
Nadat studenten het project voor en en na het toevoegen van het blok [If then else] hebben getest, bespreek je met studenten hoe hierdoor de arm kan blijven draaien totdat de Brain Up-knop wordt losgelaten. Vraag studenten om hun observaties uit hun technische notitieblokken te delen. Faciliteer een discussie door de volgende vragen te stellen:
-
Ziet u dat de Clawbot zich anders gedraagt tussen het gebruik van de [If then else] -blokken in vergelijking met alleen de [If then] -blokken?
-
Waarom denk je dat programma-efficiëntie belangrijk is?
-
Wordt de toestand van de Brain Up-knop slechts één keer in het project gecontroleerd?
De technische notitieblokken van studenten kunnen individueel (Google / .docx / .pdf) of als team (Google / .docx / .pdf) worden onderhouden en gescoord. De vorige links geven voor elke aanpak een andere rubriek. Wanneer een rubriek wordt opgenomen in de onderwijsplanning, is het een goede gewoonte om de rubriek uit te leggen of op zijn minst kopieën aan studenten te geven voordat de activiteit begint.
Teacher Toolbox
Studenten zien mogelijk niet veel verschil in hoe hun Clawbot zich gedraagt tussen het gebruik van de [If then else] -blokken in vergelijking met de [If then] -blokken. Als de studenten fysiek niet veel verschil kunnen zien, faciliteer dan een discussie over programmeerefficiëntie en hoe het vereenvoudigen van een project kan leiden tot het gebruik van minder blokken. Het gebruik van minder blokken in een project kan het aantal potentiële fouten verminderen.
Stap 4: Programmeren van de Klauw.
In de vorige stap werd het project geoptimaliseerd om efficiënter te werken door [If then else] -blokken te gebruiken. In het vorige voorbeeld werd de arm gemanipuleerd met de knoppen Brain Up en Down.
Met exact dezelfde projectomtrek kan de Klauw ook worden gemanipuleerd.
-
Bekijk het ArmUpDown2-project en verander de [Spin] -blokken in ClawMotor in plaats van ArmMotor met behulp van het vervolgkeuzemenu.
Zorg ervoor dat de knop Hersenen omhoog de Klauw "open" draait en dat de knop Hersenen omlaag de Klauw "dicht" draait met behulp van de vervolgkeuzemenu's.
-
Sla het project op als ClawUpDown. Als studenten hulp nodig hebben bij het opslaan van het project, raadpleeg dan de handleiding Benoemen en opslaan.

- Download het project naar sleuf 1 op de Clawbot en voer het vervolgens uit.
- Zie voor hulp bij het downloaden en uitvoeren van een project de zelfstudie in VEXcode IQ waarin wordt uitgelegd hoe u een project kunt downloaden en uitvoeren.

- Test om te zien of de Claw nu open draait wanneer de Brain Up-knop wordt ingedrukt en dicht draait wanneer de Brain Down-knop wordt ingedrukt.
- Controleer of de klauwmotor stopt wanneer de knoppen Brain Up en Down niet worden ingedrukt (losgelaten).
- Schrijf uw observaties van hoe de Clawbot zich gedroeg voor en na het toevoegen van de if then else-blokken aan uw project in uw technische notitieblok.
Teacher Toolbox
Nu studenten de vaardigheden hebben om de arm en klauw te manipuleren met behulp van knoppen, vraag je studenten om te brainstormen over hoe ze alle vier de acties in hetzelfde project kunnen uitvoeren (arm omhoog, arm omlaag, klauw open en klauw dicht).
Studenten zullen een ander [if then else] blok gebruiken in het gedeelte heroverwegen om hun robot alle vier acties te laten uitvoeren.
Breid je leerproces uit
-
stel een motorstoppingsblok in
Als leerlingen hun robot programmeren om de arm omhoog en omlaag te brengen, kan het gewicht van de Klauw ervoor zorgen dat de arm naar beneden drijft.
In dit geval kan het blok [Set motor stopping] worden gebruikt, zodat de arm niet valt door de zwaartekracht en het gewicht van de klauw. Dit blok kan worden gebruikt aan het begin van het project en zal worden toegepast op alle toekomstige motorblokken voor de rest van het project.

Het ingestelde motorstopblok heeft drie standen:
- De rem zorgt ervoor dat de motor onmiddellijk tot stilstand komt.
- Coast laat de Motor geleidelijk tot stilstand komen.
- Hold zorgt ervoor dat de motor onmiddellijk stopt en terugkeert naar de stoppositie als deze wordt verplaatst.