Skip to main content

Programmeerlussen - Python

Icoon Toolbox voor docenten Activiteitenoverzicht de Toolbox voor leerkrachten

  • In dit onderzoek maken leerlingen kennis met het programmeren van repetitieve gedragingen door gebruik te maken van herhaal- of eeuwigdurende lussen.

  • Door te leren programmeren met behulp van herhalende en eeuwige lussen, kunnen leerlingen tijd besparen bij het bouwen van een project waarin steeds dezelfde acties worden herhaald. Voor meer informatie over de instructies die in een tekstproject worden gebruikt, gaat u naar dehelpinformatie.

De Clawbot V5 is klaar voor gebruik!

Deze verkenning geeft je de tools om te beginnen met het maken van een aantal coole projecten die loops gebruiken.

  • VEXcode V5 Python-instructies die in deze verkenning zullen worden gebruikt:
    • aandrijflijn.drive_for(VOORUIT, 300, MM)
    • aandrijflijn.turn_for(RECHTS, 90, GRADEN)
    • claw_motor.spin_for(ACHTERUIT, 70, GRADEN)
    • arm_motor.spin_for(VOORUIT, 360, GRADEN)
    • bumper_b.pressing()
    • terwijl True: 
    • voor repeat_count in bereik(4): 
    • wacht(5, SECONDEN)

U kunt de Help-informatie in VEXcode V5 gebruiken om meer te weten te komen overPython-opdrachten. 

Afbeelding met de VEXcode V5-werkruimte met de helpnotities voor de Drive-opdracht geopend

Tips voor leraren-pictogram Tips voor leraren

Als dit de eerste keer is dat de student VEXcode V5 gebruikt, kan hij/zij diverse artikelen lezen in de-bibliotheek.

Afbeelding van de VEXcode V5-sectie van de VEX-bibliotheek

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 hulpmiddel bij de Python-syntaxis. Zodra u begint met typen, ziet u mogelijk een functie voor automatisch aanvullen. Gebruik de toetsen ‘Omhoog’ en ‘Omlaag’ om de gewenste naam te selecteren en druk vervolgens op ‘Tab’ of (Enter/Return) op uw toetsenbord om uw selectie te maken. Voor meer informatie over het gebruik van Autocomplete kunt u het artikel Pythonraadplegen.

Afbeelding van de autocomplete-functie in een Python-project

Zorg ervoor dat u de benodigde hardware, uw technische notebook en VEXcode V5 hebt gedownload en gereed 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

Voorbeeldproject Clawbot Template (Drivetrain 2-motor, No Gyro)

Stap 1: Laten we beginnen met programmeren met lussen

  • Voordat u aan uw project begint, selecteert u het juiste sjabloonproject. Het voorbeeldproject Clawbot Template (Drivetrain 2-motor, No Gyro) bevat de motorconfiguratie van de Clawbot. Als de sjabloon niet wordt gebruikt, zal uw robot het project niet correct uitvoeren.
  • SelecteerBestandenOpen Voorbeelden.

    Afbeelding met het menu Bestand geopend in VEXcode V5 met de optie Voorbeelden openen

     

  • Blader door de verschillendeVoorbeeldprojecten. Deze projecten laten een verscheidenheid aan acties zien die je Clawbot kan uitvoeren. Selecteer en open het voorbeeldprojectClawbot Template (Drivetrain 2-motor, No Gyro).

    Afbeelding met de voorbeeldprojecten met een rood vak rond het Speedbot (Drivetrain 2-motor, No Gyro) -sjabloonproject

     

  • Geef het project een naam HerhalendeActies.

    Afbeelding met de projectnaam voor herhalende acties in VEXcode V5

  • Typ de volgende code:

    # Bibliotheekimporten
    van VEX-import *
    
    # Begin projectcode
    # Rijdt vooruit 300 mm draait 90 graden gedurende 4 iteraties
    
    voor repeat_count in bereik(4): driveetrain.drive_for
        (VOORUIT, 300, MM) driveetrain.turn_for
        (RECHTS, 90, GRADEN)
        wacht(5, SECONDEN)

Bekijk het project en doe dan het volgende in je technische notitieblok.

  1. Voorspel wat het project de Clawbot zal laten doen. Leg meer uit dan dat het project zich herhaalt.

    Wat herhaalt het? Wat doet de Clawbot?

  2. Schrijf je voorspelling, maar breek het korte project niet op in meer dan twee delen.

Icoon Toolbox voor docenten Toolbox voor leraren - antwoorden

  1. Bij dit project moet de robot 300 millimeter vooruit rijden, 90 graden naar rechts draaien en vervolgens 4 keer 5 seconden wachten om een vierkant af te maken. In plaats van dezelfde 3 instructies 4 keer te gebruiken, beperkt de herhaalinstructie dit tot slechts 1 keer. Met de herhaalinstructie worden de handelingen van vooruit rijden en vervolgens draaien herhaald.

  2. De voorspelling zou simpelweg kunnen zijn: "De Clawbot beweegt in een vierkant." Dit zou een bondige manier zijn om de herhaalde bewegingen van de Clawbot vast te leggen, zonder enige context.

Studenten kunnen hun technische notitieboekjes bijhouden en individueel of als team,ofscoren. De voorgaande links bieden een andere rubriek voor elke aanpak. Wanneer een rubriek wordt opgenomen in de onderwijsplanning, is het een goed idee om de rubriek uit te leggen of in ieder geval kopieën aan de studenten te geven voordat de activiteit begint.

Stap 2: Voer het project uit en observeer de robot

Een vergelijking van twee Python-codefragmenten voor VEX-robots. Het bovenste fragment gebruikt sensorinvoer om te bepalen wanneer moet worden gedraaid, waarbij een tijdje wordt gecontroleerd of de bumperschakelaar is ingedrukt; indien ingedrukt, draait de robot 90 graden naar rechts, anders rijdt hij vooruit. Het onderste fragment gebruikt een vaste afstand om te bepalen wanneer moet worden gedraaid, met een for-lus die de robot 300 mm naar voren drijft, 90 graden naar rechts draait en 5 seconden wacht, waarbij deze reeks vier keer wordt herhaald

Kijk nog eens naar het project Herhalende acties (het tweede project). Dit project zal het voorwaartse en vervolgens het gedrag vier keer herhalen. Een "herhaal"-lusstructuur (met eenvoorlus) wordt gebruikt als u een reeks gedragingen een bepaald aantal keren wilt gebruiken.

Als de herhaalstructuur wordt vervangen door een while lusstructuur, herhaalt de robot het vooruit- en vervolgens draaigedrag "terwijl" aan de voorwaarde wordt voldaan. U kunt de voorwaarde ook op "true" zetten, zodat dewhile lus oneindig doorloopt.

In het eerste project wordt de invoer van een sensor gebruikt om te bepalen wanneer er moet worden begonnen met draaien. Het project aan de rechterkant gebruikt een vaste aandrijflijn-afstand om te bepalen wanneer er moet worden begonnen met draaien.

Om de invoer van een sensor voortdurend te controleren, wordt een if else instructie gebruikt in combinatie met een while lus. In het project aan de linkerkant draait de robot naar rechts wanneer de "bumper_b" -sensor wordt ingedrukt, anders rijdt de robot voor altijd vooruit als de "bumper_b" -sensor niet wordt ingedrukt. Om de waarde van de bumper_b-sensor continu te controleren, bevindt de instructie if zich in een

. Het eerste project is een praktisch gebruiksvoorbeeld van een structuur die voor altijd wordt herhaald, waarbijwhilelussen enifinstructies samen worden gebruikt. Stel je een zelfrijdende veegmachine voor die vooruit blijft rijden totdat hij tegen een muur of voorwerp aanloopt en vervolgens draait voordat hij verder rijdt.

Breid uw leerproces uit-pictogram Breid uw leerproces uit

Om verder te onderzoeken hoe je lussen kunt gebruiken met voorwaarden, laat je de leerlingen een Floor Sweeper-project bouwen in VEXcode V5.

Als de studenten hulp nodig hebben met een van de instructies, verwijs ze dan naar deHelpinformatie.

Vraag de studenten omhet project te downloaden en uit te voerenom te observeren hoe de robot beweegt. Begin vervolgens een discussie in de klas en vraag de studenten uit te leggen waarom er voor de forever-structuur is gekozen in plaats van de repeat-structuur.

De studenten moeten opmerken dat er voor de forever-structuur is gekozen omdat in dit project voortdurend wordt gecontroleerd of de bumperschakelaar is ingedrukt.

Stap 3: De Squared Loops Challenge!

Een diagram met een groen vierkant pad met pijlen die de bewegingsrichting rond het vierkant aangeven. Extra oranje pijlen buiten het vierkant wijzen in verschillende richtingen, overeenkomend met de bochten en bewegingen die nodig zijn om het pad te volgen

  • Laat je Clawbot in een vierkant rijden.
  • Vóór elke bocht moet de klauw worden geopend en gesloten en moet de arm worden opgeheven en neergelaten.
  • De Clawbot kan niet meer dan één keer langs een kant van het plein rijden.
  • U kunt het bovenstaande project RepeatingActions als uitgangspunt gebruiken, maar sla het op alsSquaredLoopsvoordat u wijzigingen aanbrengt.

Afbeelding met de projectnaam van Squared Loops in de werkbalk in VEXcode V5

Plan het volgende in uw technische notitieblok:

  • Plan uw oplossing en voorspel wat elke instructie in uw project de Clawbot zal laten doen.
  • Download en voeruw project uit om het te testen voordat u het indient.
  • Breng indien nodig wijzigingen aan in het project en maak aantekeningen over wat er tijdens het testen is gewijzigd.

Icoon Toolbox voor docenten Teacher Toolbox - Oplossing

Hieronder vindt u een mogelijke oplossing voor de Squared Loops Challenge:

# Bibliotheek importeert
van vex import *

# Begin projectcode
voor repeat_count in range(4):
    drivetrain.drive_for(FORWARD, 300, MM)
    claw_motor.spin_for(REVERSE, 70, GRADEN)
    arm_motor.spin_for(FORWARD, 360, GRADEN)
    claw_motor.spin_for(FORWARD, 70, GRADEN)
    arm_motor.spin_for(REVERSE, 360, GRADEN)
    drivetrain.turn_for(RIGHT, 90, GRADEN)
    wait(5, MSEC)

U kunt studenten eengeven voor het beoordelen van hun projecten met een programmeerrubriek
Studenten kunnen hun technische notitieboekjes bijhouden en beoordelen metindividueelof als team.