Skip to main content

Concurrentieverbinding: keerpunt - Python

Turning Point VEX Robotics Competitieveld met spelelementen en scoregebieden in de startposities voor het begin van de wedstrijd. Langs de achterwand bevindt zich een net met daarvoor een reeks omkeerbare vlaggen.
VRC 2018-2019 Turning Point Veld

Robotmogelijkheden

In de VEX Robotics Competition van 2018-2019, het spel Turning Point, moesten spelers onder andere vlaggen omwisselen. In totaal waren er negen vlaggen: drie onderste vlaggen die door de robot konden worden verplaatst, en de zes hoge vlaggen die alleen konden worden verplaatst door er met wedstrijdbalstukken op te slaan. Wedstrijdteams moesten een manier bedenken om de hogere vlaggen te raken met behulp van een balwerper. Stel je voor dat het programmeren van de robot om de vlaggen te slaan met behulp van balspelstukken door middel van meting niet altijd nauwkeurig is. Als de robot tijdens de autonome periode één verkeerde afslag maakt, bestaat de kans dat geen van de vlaggen wordt geraakt, omdat de berekeningen niet kloppen. Ook bij de Driving Skills-uitdaging kan het lastig zijn voor teams om de robot handmatig goed uit te lijnen om de bal goed te kunnen lanceren. Zo zouden deskundige teams de robot programmeren met behulp van de Vision Sensor om vlaggen te detecteren en vervolgens de robot correct uit te lijnen om nauwkeurige schoten te kunnen lossen.

Breid uw leerproces uit-pictogram Breid uw leerproces uit

Om deze activiteit uit te breiden, kunt u uw leerlingen vragen een project te ontwerpen en te schetsen waarin de robot naar gedetecteerde gele objecten beweegt die ze mogelijk kunnen gebruiken voor dit wedstrijdspel!
Vraag uw leerlingen het volgende te doen:

  • Open het voorbeeldprojectsjabloon Clawbot (aandrijflijn, 2 motoren, geen gyro).

    Selectie van een VEXcode V5-voorbeeldproject met het filter Sjabloon bovenaan geselecteerd en het projectpictogram Clawbot Drivetrain 2-motor zonder gyro gemarkeerd in een rood vak.

  • Gebruik het voorbeeldproject Detecting Objects (Vision) als referentie bij het programmeren van de Vision Sensor.Gebruik het voorbeeldproject Detecting Objects (Vision) als referentie bij het programmeren van de Vision Sensor (Google Doc / .v5python).
  • Voeg de Vision Sensor toe aan de Clawbot-configuratie (aandrijflijn, 2 motoren, geen gyro) en configureer de Vision Sensor vervolgens om rode en blauwe objecten te detecteren. Raadpleeg artikel Configuratie van de Vision Sensore voor meer informatie.

    Het venster VEXcode V5-apparaten wordt geopend met de opties voor het toevoegen van een apparaat. In het venster staat Selecteer een apparaat en de optie Zicht wordt gemarkeerd met een rood vak. Andere opties zijn onder meer een controller, aandrijflijn, motor en 3-draads.

  • Programmeer de Clawbot om naar het gedetecteerde object toe te bewegen. De Clawbot kan zelfs zo geprogrammeerd worden dat hij zijn arm optilt, alsof hij een vlag omdraait!
  • Download en voer het project uit om te zien of de Vision Sensor gele objecten kan detecteren, zoals de gele ballen in het VRC Turning Point-spel. Als de Vision Sensor objecten kan detecteren, beweegt de robot dan op basis van de gedetecteerde objecten? Voor hulp bij het downloaden en uitvoeren van een project,bekijk dit artikel.
  • Als de tijd het toelaat, richt dan een speelveld in dat lijkt op het Turning Point-veld. Oefen met het gebruik van de Vision Sensor, zodat de robot punten kan scoren!

Bekijk hieronder de voorbeeldoplossing:

# Bibliotheek importeert
van vex import *

# Begin projectcode

check_yellow = Event()

def check_yellow_callback():
    brain.screen.set_font(FontType.MONO40)
    brain.screen.clear_row(3)
    brain.screen.set_cursor(3, 1)
    vision_5_objects = vision_5.take_snapshot(vision_5__YELLOWBOX)

    if (vision_5_objects):
        arm_motor.spin_for(VOORUIT, 300, GRADEN)
        claw_motor.spin_for(VOORUIT, 100, GRADEN)
        drivetrain.drive_for(VOORUIT, 12, INCHES)
        arm_motor.spin_for(ACHTERUIT, 300, GRADEN)
        claw_motor.spin_for(ACHTERUIT, 100, GRADEN)
    
    anders:
        brain.screen.print("Geen geel object")

# systeemgebeurtenis-handlers
check_yellow(check_yellow_callback)

# kleine vertraging om te garanderen dat de gebeurtenis-handlers klaar zijn voor gebruik
wait(15, MSEC)

# wordt constant uitgevoerd om te controleren op nieuwe sensorgegevens
while True:
    check_blue.broadcast_and_wait()
    wait(105, MSEC)