Skip to main content

Teacher Toolbox-pictogram Teacher Toolbox - Het doel van deze activiteit

Deze activiteit zal studenten kennis laten maken met het gebruik van while and if dan uitspraken om de robot vooruit te laten rijden, tenzij het scherm wordt ingedrukt.

  • Deze activiteit zal studenten kennis laten maken met conditionals en de instructies die de robot naar voren laten rijden, tenzij het scherm wordt ingedrukt.

  • Voor meer informatie over of dan en zo dan anders uitspraken of anderen die in deze activiteit worden gebruikt, gaat u naar de Help-informatie in VEXcode V5. Voor meer informatie over deze ingebouwde help-tool, bekijk deze artikelen over hulp in C++ .

Teacher Toolbox-pictogram Teacher Toolbox

Voor suggesties over onderwijsstrategieën voor deze sectie, raadpleeg de kolom Levering van de To Do or Not to Do Pacing Guide! (Google Doc / .docx / .pdf)

De Clawbot is klaar om beslissingen te nemen!

Deze verkenning geeft je de tools om te beginnen met het maken van een aantal coole projecten die de if then else-statement gebruiken.

  • VEXcode V5 C++ -opdrachten die in deze verkenning zullen worden gebruikt: 
    • Drivetrain.drive(vooruit);
    • Brain.Screen.pressing()
    • Drivetrain.stop();
    • if (conditie){}
    • waitUntil();
    • while (conditie){}  
    • wacht(1, seconden);

U kunt de Help-informatie in VEXcode V5 gebruiken om meer te weten te komen over de C++ -instructies.

VEXcode V5 met een station voor commando ingetypt in de werkruimte aan de linkerkant en de Help-informatie geopend aan de rechterkant. De Help toont een definitie van de opdracht en informatie over hoe deze wordt gebruikt.

Zorg ervoor dat je de benodigde hardware, je technische notebook en VEXcode V5 bij de hand hebt.

Benodigde materialen:
Aantal Benodigde materialen
1

VEX V5 Classroom Starter Kit (met up-to-date firmware)

1

VEXcode V5 (nieuwste versie, Windows, macOS)

1

Technisch notitieboekje

1

Clawbot (Aandrijving 2-motor, Geen Gyro) Sjabloon

Teacher Tips-pictogram Tips voor docenten

Als dit de eerste keer is dat de student VEXcode V5 gebruikt, kan hij op elk moment tijdens deze verkenning naar de tutorials verwijzen. De tutorials bevinden zich in de werkbalk.

VEXcode V5-werkbalk met het zelfstudiepictogram gemarkeerd in een rood vak. Aan de linkerkant toont de werkbalk het V5-pictogram, een wereldbolpictogram, Bestand en vervolgens Tutorials. Aan de rechterkant staan extra pictogrammen en functionaliteit.

Stap 1: Laten we beginnen met een goed begrip van voorwaardelijke verklaringen 

Lees voordat u begint met programmeren met conditionals het VEX Library-artikel met uitleg over If Then Else-statements. Het artikel is hier te vinden.

Screenshot van de VEX-BIBLIOTHEEK, met een artikel met de titel Using if-else statements in VEXcode V5.Lees het VEX Library-artikel waarin Booleans wordt uitgelegd voor een lijst met operators die moeten worden gebruikt in de If Then Else-verklaringen. Dit artikel is hier te vinden.Screenshot van de VEX-BIBLIOTHEEK, met een artikel met de titel Booleans gebruiken in VEXcode V5.

Stap 2: Laten we beginnen met programmeren met voorwaardelijke verklaringen.

  • Open het voorbeeldproject Clawbot (Drivetrain 2-motor, No Gyro).

    Voorbeeld projectselectie in VEXcode V5 met een rood vak rond het sjablonenfilter bovenaan en de Clawbot-aandrijflijn 2 motor geen gyroproject, wat aangeeft welk sjabloon moet worden geopend.

     

  • Bouw het onderstaande project.
// Begin met projectcode
int main() {
  // Initialiseren van robotconfiguratie. NIET VERWIJDEREN!
  vexcodeInit();

  while (true) {
    Drivetrain.drive(forward);
    if (Brain.Screen.pressing()) {
      Drivetrain.stop();
      waitUntil(!Brain.Screen.pressing());
    }    
  }  
}  

Doe het volgende in je technische notitieblok:

  • Leg uit wat het project de Clawbot laat doen. Je zult meer moeten uitleggen dan dat er een stopknop ontstaat. Leg uit welke instructies de Clawbot wat laten doen.
  • Schrijf een samenvatting van één zin die vastlegt wat het project doet.
  • Test om te zien of je voorspelling van wat het project de Clawbot laat doen correct is.

Het dialoogvenster Projectnaam in de VEXcode V5-werkbalk leest Een stopknop maken en toont dat sleuf 1 is geselecteerd.

  • Sla het project op en download het als CreatingAStopButton naar sleuf 1 op de Clawbot en voer het vervolgens uit.
  • Zie voor hulp bij het downloaden van een project de zelfstudie in VEXcode V5 waarin wordt uitgelegd hoe u een project kunt downloaden en uitvoeren (C++).
  • Controleer uw uitleg van het project en voeg opmerkingen toe om ze indien nodig te corrigeren.

Teacher Toolbox-pictogram Teacher Toolbox - Antwoorden

Dit project laat de robot continu vooruit rijden, maar stopt als het scherm wordt ingedrukt. Het doet dit door een forever statement te gebruiken om continu te rijden en te controleren. Als het scherm wordt ingedrukt (TRUE), stopt de Clawbot met rijden.Het maken van een stopknopproject wordt weergegeven met opdrachten gelabeld met hun doel. Het if commando is rood omcirkeld en gelabeld Checks if condition is True - het scherm wordt ingedrukt. De Drivetrain dot stop opdracht is gelabeld Runs the block if true. Het wachten tot het commando is gelabeld regelt de verwerkingssnelheid.

Van studenten wordt niet verwacht dat ze begrijpen waarom de instructie waitUntil () wordt gebruikt. Leg uit dat de instructie waitUntil () nodig is vanwege de snelheid van de programmastroom van de robot. Als het er niet was, zouden de motoren van de Clawbot zich gedragen alsof de gebruiker steeds opnieuw op het scherm drukt terwijl het door het project loopt. In plaats daarvan stopt de waitUntil() instructie de programmastroom en laat het project de forever loop niet opnieuw starten totdat de gebruiker stopt met het indrukken van het scherm.

De regel pseudocode kan zo simpel zijn als: Rij vooruit totdat het scherm wordt ingedrukt.

De technische notitieblokken van studenten kunnen individueel (Google Doc / .docx / .pdf) of als team (Google Doc / .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.

Stap 3: Inzicht in de wait until() -verklaring.

Merk op dat als het scherm van de hersenen wordt ingedrukt, de stroom van het project snel verloopt en het project naar de volgende instructie gaat, de  instructieDrivetrain.stop ().

Het project heeft dus een waitUntil() -instructie nodig die de robot vertelt om gestopt te blijven totdat het scherm van de hersenen wordt vrijgegeven. Anders zou de forever statement ervoor zorgen dat het project opnieuw begint.

waitUntil(!Brain.Screen.pressing());

De waitUntil() instructie is nodig vanwege de snelheid van de doorstroming van het project. Als het er niet was, zou het project naar de volgende instructie gaan voordat de robot ooit tijd had om te reageren.

Stap 4: Wijzig het project.

Onze volgende stap is het veranderen van de if then statement naar een if then else statement.

Het dialoogvenster Projectnaam in de VEXcode V5-werkbalk leest Stop of Drive en toont dat sleuf 1 is geselecteerd.

  • Begin met het opslaan van CreatingAStopButton als het nieuwe project, StopOrDrive.
  • Als je hulp nodig hebt bij het opslaan van een project, klik dan hier voor C++.
  • Bouw vervolgens het StopOrDrive-project dat hieronder wordt weergegeven.
// Begin met projectcode
int main() {
  // Initialiseren van robotconfiguratie. NIET VERWIJDEREN!
  vexcodeInit();

  while (true) {
    Drivetrain.drive(forward);
    if (Brain.Screen.pressing()) {
      Drivetrain.stop();
      waitUntil(!Brain.Screen.pressing());
    } 
    else {
      Drivetrain.drive(forward);
    }   
  }  
}  
  • Download StopOrDrive naar sleuf 2 op je Clawbot.

De sleufselectie in de VEXcode V5-werkbalk is geopend en sleuf 2 is geselecteerd en gemarkeerd met een rood vak. De projectnaam luidt Stop or Drive.

  • Zie voor hulp bij het downloaden van een project de zelfstudie in VEXcode V5 waarin wordt uitgelegd hoe u een project kunt downloaden en uitvoeren (C++).
  • Test CreatingAStopButton (sleuf 1) en test vervolgens StopOrDrive  (sleuf 2) en vergelijk ze om te zien of er een verschil is in het gedrag van de robot. Let op eventuele verschillen in je technische notebook

Teacher Toolbox-pictogram Teacher Toolbox - Antwoord

Met betrekking tot het gedrag van de robot mag er geen verschil zijn tussen de CreatingAStopButton- en StopOrDrive-projecten.

Als de studenten meer hulp nodig hebben bij het begrijpen van If-Else-verklaringen, klik dan hier.

De twee projecten laten de Clawbot zich op dezelfde manier gedragen. Het enige verschil is het gebruik van de if then else-statement in  het StopOrDrive-project.

Met behulp van de  if then else-instructie kunt u extra knoppen aan het scherm toevoegen bij aankomende activiteiten.

Uw leerpictogram uitbreiden Breid je leerproces uit

Naarmate dit STEM-LAB vordert, zullen studenten projecten ontwikkelen waarmee het scherm van de Clawbot als gebruikersinterface kan functioneren. Als voorbereiding daarop daag je studenten uit om uit te zoeken hoe ze een gekleurde rechthoek op het scherm kunnen tekenen die als een knop werkt. Omdat ergens op het scherm drukken momenteel de voorwaarde is, moet de knop het hele scherm in beslag nemen. Studenten moeten het project een evenement laten uitzenden om de knop te tekenen wanneer ze beginnen.
Leid studenten om eerst te leren hoe het scherm van de hersenen is georganiseerd in een coördinatensysteem. Ze moeten dit begrijpen om parameters in te stellen binnen de instructies die ze zullen gebruiken. De gebruikte coördinaten komen overeen met het aantal pixels, niet met het nummer van de kolom of rij. Hier is de lay-out van het scherm:

Pixelraster van het scherm V5 Brain toont 12 genummerde rijen langs de linkerkant, met de bovenste rij met het label Row 1 en de onderste met het label Row 12. Bovenaan staan 48 genummerde kolommen, met uiterst links kolom 1 en uiterst rechts kolom 48. De totale pixelmetingen zijn 480px breed bij 240 px hoog.

Studenten moeten deze wijzigingen in het project plannen, testen en verfijnen terwijl ze het documenteren in hun technische notitieblokken. Klik voor de afzonderlijke rubriek voor technische notitieblokken op een van de volgende links (Google Doc / .docx / .pdf) of klik op een van de volgende links voor teamnotitieblokken (Google Doc / .docx / .pdf).

Hier is een voorbeeldoplossing:

// Begin projectcode
event draw = event();

void drawButton () {Brain.Screen.setFillColor
  (rood); Brain.Screen.drawRectangle
  (0, 0, 480, 240);
  wait(1, seconds);
}

int main() {
  // Initializing Robot Configuration. NIET VERWIJDEREN!
  vexcodeInit();

  draw(drawButton);

  while (true) {
    draw.broadcast();
    Drivetrain.drive(forward);
    if (Brain.Screen.pressing()) {
      waitUntil(!Brain.Screen.pressing());
    } 
    else {
      Drivetrain.drive(forward);
    }   
  }  
}  

Zoals je kunt zien, is de knop getekend om het hele scherm op te nemen vanaf de (0, 0) oorsprong en alle 480 horizontale (x-as) pixels en 240 verticale (y-as) pixels te vullen.