De klauw programmeren - C++
Activiteitenoverzicht
de Toolbox voor leerkrachten
-
Tijdens dit onderzoek maken leerlingen kennis met de basisprogrammering van de klauwmotor van de V5 Clawbot.
-
Door te leren programmeren met de Claw Motor kunnen leerlingen goed bepalen hoe de V5 Clawbot objecten in zijn omgeving vastpakt.
De V5 Clawbot is klaar om te grijpen!
Met deze verkenning kunt u een aantal coole projecten maken waarbij u de klauw van de V5 Clawbot gebruikt om objecten vast te pakken.
- VEXcode V5-instructies die in deze verkenning worden gebruikt, zijn onder andere:
- ClawMotor.setPosition(0, graden);
- ClawMotor.spinFor(vooruit, 90, graden);
- ClawMotor.setTimeout (2, seconden);
-
Voor meer informatie over de instructie selecteert u Help en vervolgens het vraagtekenpictogram naast een opdracht om meer informatie te bekijken.

- Zorg ervoor dat u de vereiste hardware, uw engineering notebook en VEXcode V5 gedownload en gereed hebt.
| Hoeveelheid | Benodigde materialen |
|---|---|
| 1 |
VEX V5 Classroom Starter Kit (met up-to-date firmware) |
| 1 |
VEXcode V5 |
| 1 |
Technisch notitieboekje |
| 1 |
Clawbot en Advanced TrainingBot (aandrijflijn 2-motor, geen gyro) voorbeeldproject |
| 1 |
Aluminium blikje |
Stap 1: Voorbereiding op de verkenning
Zorgt u ervoor dat de volgende items klaarliggen voordat u met de activiteit begint? Controleer elk van de volgende punten:
-
Zijn de motoren op de juiste poorten aangesloten?
-
Zijn de slimme kabelsvolledig in alle motorengestoken?
-
Staat Brainop?
-
Is de batterijopgeladen?
Tips voor leraren
Geef de studenten een voorbeeld van elke stap in het probleemoplossen.
Stap 2: Start een nieuw project
Selecteer het juiste sjabloonproject voordat u met uw project begint. Het voorbeeldproject Clawbot en Advanced TrainingBot (aandrijflijn 2 motoren, geen gyro) bevat de motorconfiguratie van Clawbot. Als de sjabloon niet wordt gebruikt, kan uw robot het project niet correct uitvoeren.
Volg de volgende stappen:
- Open het menu Bestand.
- SelecteerOpenVoorbeelden.
- Selecteer en open het voorbeeldproject Clawbot en Advanced TrainingBot (aandrijflijn 2-motor, geen gyro).
- Omdat we de klauw gaan programmeren, hernoem je je projectClawControl.
- Slaproject op.
- Controleer of de projectnaam ClawControl nu in het venster in het midden van de werkbalk staat.
Tips voor leraren
- Omdat dit een beginnersactiviteit is met programmeren, moet de docent de stappen modelleren en vervolgens de leerlingen vragen dezelfde handelingen uit te voeren. Vervolgens moet de docent toezicht houden op de leerlingen om er zeker van te zijn dat zij de stappen correct volgen.
- Zorg ervoor dat de studenten 'Voorbeelden openen' hebben geselecteerd in het menu 'Bestand'.
- Zorg ervoor dat de studenten het voorbeeldproject Clawbot en Advanced TrainingBot (aandrijflijn 2 motoren, geen gyro) hebben geselecteerd.
U kunt de studenten erop wijzen dat er op de paginaVoorbeeldenverschillende opties zijn waaruit ze kunnen kiezen. Naarmate ze andere robots bouwen en gebruiken, krijgen ze de kans om verschillende sjablonen te gebruiken. - U kunt leerlingen vragen hun initialen of de naam van hun groep aan de projectnaam toe te voegen. Hiermee kunt u de projecten differentiëren als u de studenten vraagt deze in te leveren.
Toolbox voor leerkrachten
-
Stop en bespreek
Dit is een goed moment om even stil te staan en de studentengroepen de stappen te laten doornemen die zojuist zijn voltooid bij het starten van een nieuw project in VEXcode V5.
Stap 3: Programmeer de V5-klauw om te openen
We gaan nu beginnen met het programmeren van de klauw om te openen!
int main() {
// Robotconfiguratie initialiseren. NIET VERWIJDEREN!
vexcodeInit();
ClawMotor.setPosition(0, graden);
}- Schrijf de instructieClawMotor.setPosition();zoals hierboven weergegeven in het programmeergebied om de startpositie voor de klauw in te stellen.
ClawMotor.setPosition(0, graden);
ClawMotor.setTimeout(2, seconden);- Voeg de instructieClawMotor.setTimeout();toe zoals hierboven weergegeven.
- Merk op dat deze instructie vóór de instructieClawMotor.spinFor();verschijnt. Het doel hiervan is om in te stellen hoe lang de klauwmotor mag draaien en deze na die tijd te stoppen. Zelfs als de motor niet de volledige 60 graden draait, stopt het project de klauwmotor na twee seconden.
- Zorg ervoor dat de Set Timeout is ingesprongen, zodat deze overeenkomt met de Set Position -opdracht en dat alle opdrachten tussen de accolades staan.
ClawMotor.setPosition(0, graden);
ClawMotor.setTimeout(2, seconden);
ClawMotor.spinFor(omgekeerd, 60, graden);- Schrijf de instructieClawMotor.spinFor();zoals hierboven weergegeven om de klauw 60 graden te openen.
- Selecteer de sleuf waarnaar het project gedownload moet worden op de V5 Robot Brain door op het vakje 1-icoon te klikken. Zo worden alle beschikbare projectslots geopend en kunt u de gewenste sleuf selecteren.
- Sluit de robot aan op uw computer of tablet. Het Brein-icoontje in de werkbalkwordt groenzodra er een succesvolle verbinding tot stand is gebracht.
- Klik op het Download-pictogram naast het pictogram Apparaatinfo om het project te downloaden naar V5 Robot Brain.

- Controleer of het ClawControl-project is gedownload naar de hersenen in het door u gekozen slot.
Toolbox voor docenten
-
Optie om eerst te modelleren
Laat het project eerst aan de klas zien voordat je het aan alle studenten tegelijk laat proberen. Verzamel de studenten op één plek en plaats de Clawbot zo dat iedereen de klauw ervan kan zien. Als u van plan bent om de demonstratie meer dan één keer uit te voeren, kunt u de Klauw voorzichtig sluiten tussen de uitvoeringen door.
Vertel de leerlingen dat zij nu aan de beurt zijn om hun projecten uit te voeren.
- Voer (inC++ofPython) het project uit op de Clawbot. Zorg ervoor dat het project is geselecteerd en druk vervolgens op de knop Uitvoeren. Gefeliciteerd met het maken van je eerste project voor het verplaatsen van de Claw!
Stap 4: Probeer dit: sluit de V5-klauw
Nu u de klauw zo geprogrammeerd hebt dat deze opengaat, kunt u hem ook programmeren om te sluiten.

Nu u de klauw kunt openen, wilt u hem waarschijnlijk ook sluiten.
- Ga terug naar je ClawControl-project en voeg een extraClawMotor.spinFor();instructietoe om de Claw Motor 30 graden gesloten te laten draaien. De klauw zou halverwege moeten sluiten, omdat hij oorspronkelijk 60 graden open is gedraaid.
- Test of uw herziene project de klauw 60 graden open heeft en vervolgens 30 graden dicht heeft door uw ClawControl-project te downloaden en uit te voeren.
Teacher Toolbox
-
Oplossing
Voorheen opende de Claw 60 graden. In dat project was een instructie voor het instellen van een time-out voor de motor opgenomen, omdat het belangrijk is om een time-out in te stellen bij het aanzetten van een manipulator waarvan de beweging op een of andere manier beperkt kan worden. Door een time-out in te stellen voorkomt u onnodige slijtage van de motor.
Hieronder volgt de oplossing voor deze stap:
int main() {
// Robotconfiguratie initialiseren. NIET VERWIJDEREN!
vexcodeInit();
ClawMotor.setPosition(0, graden);
ClawMotor.setTimeout(2, seconden);
ClawMotor.spinFor(achteruit, 60, graden);
ClawMotor.spinFor(vooruit, 30, graden);
}
Stap 5: Probeer dit: Meerdere bewegingen achter elkaar uitvoeren

Niet alles wat je met de klauw oppakt, zal even groot zijn. Probeer de klauw in verschillende posities binnen het bewegingsbereik te openen.
- Laat de motor draaien om:
- Open voor 70 graden
- 20 graden dicht
- Open voor 10 graden
- Sluiten voor 30 graden
- Dicht voor 25 graden
- Als de klauwmotor op 0 graden start, hoeveel graden staat de klauwmotor dan open aan het einde van het project?
- Begin met de klauwmotor gesloten.
Teacher Toolbox
-
Oplossing
De oplossing voor deze stap wordt hieronder weergegeven.
De klauwmotor staat aan het einde van het project nog steeds open op 5 graden: 70 - 20 = 50 --> 50 + 10 = 60 --> 60 - 30 = 30 --> 30 - 25 = 5 graden.
int main() {
// Robotconfiguratie initialiseren. NIET VERWIJDEREN!
vexcodeInit();
// Neem de huidige positie van de Claw als nul
ClawMotor.setPosition(0, graden);
// Stel de time-out van de Claw
ClawMotor.setTimeout(2, seconden);
ClawMotor.spinFor(reverse, 70, graden);
ClawMotor.spinFor(forward, 20, graden);
ClawMotor.spinFor(reverse, 10, graden);
ClawMotor.spinFor(forward, 30, graden);
ClawMotor.spinFor(forward, 25, graden);
}
Stap 6: De Lock Tight Challenge voltooien

De Lock Tight-uitdaging
- Programmeer de Clawbot om de klauw stevig op een leeg aluminium blikje van 355 ml te sluiten, zonder de zijkanten te pletten.
- Laat de Clawbot het blikje vasthouden terwijl hij zijn arm 45 graden omhoog en omlaag beweegt.
- De Clawbot moet het blikje vervolgens loslaten en er afstand van nemen.
- Begin de uitdaging met een geopende klauw en een leeg blikje erin.
Tips voor leraren
-
Laat de leerlingen de uitdaging beginnen met een geopende klauw en een leeg blikje erin.
-
Als het blik geplet wordt of uit de klauw valt, moet de uitdaging opnieuw worden gestart nadat het project is aangepast.
Teacher Toolbox
-
Oplossing
Hier is een voorbeeldoplossing:
int main() {
// Robotconfiguratie initialiseren. NIET VERWIJDEREN!
vexcodeInit();
// Neem de huidige positie van de klauw als nul
ClawMotor.setPosition(0, graden);
// Stel de time-out van de klauw
ClawMotor.setTimeout(2, seconden);
ClawMotor.spinFor(vooruit, 170, graden);
ArmMotor.spinFor(vooruit, 45, graden);
ArmMotor.spinFor(achteruit, 45, graden);
ClawMotor.spinFor(achteruit, 150, graden);
Drivetrain.driveFor(achteruit, 150, mm);
}- Het project stelt de time-out in, sluit de klauw om het blik, tilt het blik op en laat het zakken, laat het los en rijdt vervolgens achteruit.
- Programmeerrubriek(Google Doc / .docx / .pdf)