Skip to main content

Controller: Tank Drive Exploration - C++

Icoon Toolbox voor docenten Toolbox voor leerkrachten - Het doel van deze activiteit

Met behulp van het voorbeeldproject Tank Control kunnen de studenten de Clawbot besturen met de Controller. Studenten moeten de parameters in de instructiesLeftMotor.setVelocity(), RightMotor.setVelocity(), LeftMotor.spin(), RightMotor.spin(), leftMotorSpeed = Controller1.Axis3.position(),enrightMotorSpeed = Controller1.Axis2.position()om de snelheid van elk van de motoren van de Clawbot te regelen en de Controller in staat te stellen de motorfuncties te regelen.

Voor meer informatie over een van de instructies kunt u de help raadplegen in de sectieC++in VEXcode V5.

Hieronder volgt een overzicht van wat de studenten in deze activiteit zullen doen:

  • Ontdek het voorbeeldproject Tank Control.

  • Begrijp het gebruik van dewhile Trueoneindige lusstructuur.

  • Voltooi de Robo-Slalom-uitdaging!

Tips voor leraren-pictogram Tips voor leraren

Als dit de eerste keer is dat de student VEXcode V5 gebruikt, heeft hij of zij toegang tot veel nuttigeartikelenin de VEX Knowledge Base.

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

Voorbeeldproject Tankbesturing

2 of meer

Klaslokaalartikelen die als obstakels kunnen worden gebruikt

Tips voor leraren-pictogram Tips voor docenten - Automatisch aanvullen gebruiken

Autocomplete is een functie in VEXcode V5 die de rest van de opdracht die u typt voorspelt. Terwijl studenten met VEXcode V5 werken, moedig je ze aan om de functie Automatisch aanvullen te gebruiken als hulp bij desyntaxis. In het artikelAutocompleteleest u hoe u de functie Autocomplete gebruikt.

VEXcode V5 met het Drivetrain-gedeelte van een opdracht getypt aan de linkerkant. Aan de rechterkant wordt een scrollende lijst met autoaanvulopties voor die opdracht weergegeven.

 

Deze activiteit geeft u de tools om uw Controller te programmeren.

Stap 1: Laten we beginnen met het programmeren van de Controller.

  • Open het voorbeeldproject Tank Control.
  • Voorbeeld Projectpictogram van een tank gepositioneerd boven een gamecontroller, met het label 'Tank Control' eronder.

    Doe het volgende in je technische notitieboekje:

    Voorspel wat de Clawbot voor dit project zal doen. Leg meer uit dan alleen het feit dat het project gebruikmaakt van de controller.
    bewegen de joysticks de robot? Wat doet de Clawbot?

    int main() {
      //Robotconfiguratie initialiseren. NIET VERWIJDEREN!
      vexcodeInit();
      // Begin projectcode.
      
      // Hoofdbesturingslus om motoren in te stellen op posities van besturingsassen
      terwijl (true) {
        LeftMotor.setVelocity (Controller1.Axis3.position (), percent);
        RightMotor.setVelocity (Controller1.Axis2.position (), percent);
        LeftMotor.spin (forward);
        RightMotor.spin (forward);
    
        wait(5, msec);
      }
    
      return 0;
    }

 

Icoon Toolbox voor docenten Toolbox voor leraren - antwoorden

  1. Bij dit project wordt gebruikgemaakt van de oneindige lusstructuur while True om voortdurend te controleren waar de linker- en rechterjoystick zich bevinden. Wanneer de linker (of rechter) joystick omhoog wordt geduwd, wordt de snelheid bepaald voor hoe ver de joystick naar voren wordt geduwd. 
  2. Hoe verder u de joystick naar voren duwt, hoe hoger de snelheid wordt ingesteld en hoe sneller de motoren zullen draaien. Hetzelfde idee geldt voor het naar achteren duwen van de joystick. Hoe verder u de joystick naar achteren duwt, hoe sneller de motoren achteruit zullen draaien.
  • Sla het Tank Controlvoorbeeldproject op, download het en voer het uit (C++).
  • Voor hulp kunt u de VEX-bibliotheeksecties opC++raadplegen of de tutorial in VEXcode V5 bekijken waarin wordt uitgelegd hoe u een project downloadt en uitvoert.

    Werkbalk in VEXcode V5 met tutorials, rechts, gemarkeerd met een rood vak. Aan de linkerkant toont de werkbalk een V5-logo, een wereldbolpictogram en vervolgens Bestand, Bewerken en Tutorials.

     

  • Controleer uw uitleg van het project in uw technische notitieblok en voeg notities toe om ze indien nodig te corrigeren.

Stap 2: Controller: Tankregeling

Icoon Toolbox voor docenten Toolbox voor docenten - De while True Infinite Loop Structures

In deze stap wordt het belang van de oneindige lusstructuur while True besproken. U moet de informatie als klas doornemen. U kunt het gedrag modelleren met uw Clawbot en Controller. Als de tijd het toelaat, kunt u de studenten het programma laten uitvoeren zonder de oneindige lusstructuur while True .

​Wat zijn de voordelen van het gebruik van de while True oneindige lusstructuur?

Hier is ons project zonder de while True oneindige lusstructuur:

int main() {
  //Robotconfiguratie initialiseren. NIET VERWIJDEREN!
  vexcodeInit();
  // Begin projectcode.
  //Lus hoofdcontroller om motoren in te stellen op de asposities van
  
  de controller LeftMotor.setVelocity(Controller1.Axis3.position (), percent)
  ; RightMotor.setVelocity (Controller1.Axis2.position (), percent)
  ;LeftMotor.spin (forward);
  RightMotor.spin(forward);

}

Wat denk je dat er zou gebeuren als dit programma werd uitgevoerd? Bespreek als groep. Noteer je voorspelling in het engineering notebook.

Icoon Toolbox voor docenten Toolbox voor docenten - De structuur begrijpen

Zonder de oneindige lus while True wordt de snelheidswaarde voor elke motor ingesteld zodra het project wordt uitgevoerd, en die waarde blijft constant totdat het project wordt gestopt. Met andere woorden: als u het project uitvoert zonder een van de joysticks te bewegen, blijft de snelheid van beide motoren 0, ook als u de joystick beweegt. De standaardpositie van de joystick op zijn as is namelijk 0.

Stel dat u de linker joystick zo ver mogelijk omhoog beweegt langs as 3 en hem daar vasthoudt. Als u het bovenstaande project uitvoert, zal de linkermotor op volle snelheid draaien en deze snelheid behouden, zelfs als u de joystick langs as 3 omlaag beweegt. Dit komt doordat Clawbot de initiële instructie van de Controller ontvangt zodra het project wordt uitgevoerd. Zonder een Loop kan die initiële waarde echter niet worden bijgewerkt.

De oneindige lus while True vertelt Clawbot om de snelheid voortdurend bij te werken en door te draaien gedurende de duur van het project. Met andere woorden, de oneindige lus while True in dit project maakt het mogelijk om de snelheid van elke motor te veranderen door een van de joysticks langs as 2 of 3 te bewegen. De Clawbot zal hierop reageren totdat u het project stopt of de Clawbot uitschakelt.

Stap 3: Navigeer door een slalomcursus!

Icoon Toolbox voor docenten Toolbox voor leerkrachten - De activiteit instellen

Verdeel de studenten in kleine groepjes van 2 of 4 studenten. Één student moet worden aangewezen als de bestuurder. Dit is de persoon die de controller gebruikt om de Clawbot te besturen.

Laat de leerlingen deze slalom voltooien door de Controller te gebruiken om de Clawbot langs de buitenkant van elke 'vlag' te bewegen. De route van de Clawbot moet ervoor zorgen dat hij geen enkele vlag raakt en dat hij de finishlijn passeert. Vlaggen kunnen alle materialen/voorwerpen zijn die u in de klas bij de hand hebt (gum, rol plakband, doos tissues) en kunnen op een plek worden neergelegd voordat u de Clawbot bedient.

Als de tijd het toelaat, laat de leerlingen dan van rol wisselen, zodat anderen de kans krijgen om de Clawbot te besturen. Je kunt er zelfs een wedstrijd van maken binnen of tussen groepen door te kijken hoe snel elke bestuurder de slalom kan afleggen.

Een snowboarder racet bergafwaarts op een besneeuwde helling en navigeert door een reeks rode en blauwe poorten in een zigzagpatroon.

Slaloms zijn banen waar de deelnemer rond de ingestelde vlaggen of markeringen moet navigeren. Skislaloms zijn een populaire wintersport en zijn opgenomen in de Olympische Winterspelen.

Nu deController is gekoppeld aanen hetC++project is gedownload, bent u klaar om uw Clawbot te verplaatsen met de Controller!

  • Verzamel de vier klaslokaalitems die je als vlaggen in je slalom gaat gebruiken bij de leraar.
  • Werk samen om de vlaggen op hun plaats te zetten voor de chauffeur om met de Clawbot te navigeren, volgens het slalomdiagram.
  • Download het voorbeeldproject Tankbesturing. Als er vragen zijn over het downloaden van een project, bekijk dan de tutorial Download and Run a Project.

Stap 4: Robo-Slalom

Een illustratie van een slalomparcours op sneeuw, met bovenaan een 'Start' -label en onderaan een finishlijn. Tussenin weeft een gestippeld zigzagpad tussen afwisselende blauwe en rode vlaggen.

Gebruik de Controller om uw Clawbot langs de buitenkant van elke "vlag" te verplaatsen. Het pad van de robot moet voorkomen dat hij een vlag raakt en hem de finishlijn laten passeren.

  • Voer het project uit en rijd de Clawbot vooruit en achteruit, en draai links en rechts met beide Joysticks.
  • Tijd hoe lang het duurt voordat de Clawbot de cursus heeft voltooid. Noteer de tijden in het engineeringsnotitieblok.
  • Hoe snel kun je Clawbot door de Slalom-cursus krijgen?

Motiveer discussie-icoon Motiveren Discussie - Reflecteren op de activiteit

V:Reageerde de Clawbot op de Controller zoals u verwachtte?

A:De antwoorden zullen variëren. Het doel van deze vraag is echter om het cognitieve denken te bevorderen. Studenten begonnen met het voorspellen van gedrag voordat ze dat gingen testen. Vervolgens documenteerden ze de resultaten en reflecteerden ze erop.

V:Wat is de grootste uitdaging bij het vooruit of achteruit bewegen van de Clawbot in een rechte lijn?

A:Hoewel de antwoorden kunnen verschillen, zou een veelvoorkomend antwoord moeten zijn dat beide joysticks synchroon met elkaar moeten bewegen om ervoor te zorgen dat de motoren van de Clawbot in dezelfde richting en met dezelfde snelheid bewegen

V:Hoe zorgt de oneindige luswhile Trueervoor dat je de Controller continu kunt gebruiken om de Clawbot te verplaatsen?

A:Zonder de oneindige luswhile Truezou de Clawbot het gedrag zoals bepaald door de instructies in het project slechts eenmaal uitvoeren. De oneindige luswhile Truevertelt Clawbot om de snelheid voortdurend bij te werken en door te draaien gedurende de duur van het project. Met andere woorden: dankzij de oneindige luswhile Truekunt u de Controller gebruiken om de Clawbot onbeperkt te bewegen, of totdat de batterij leeg is.