Gebruik van de VEX IQ (1e generatie) afstandssensor

Beschrijving

Deze sensor rapporteert de afstand tussen hem en het dichtstbijzijnde vaste object (bereik 50 mm - 1 m). Het berekent de afstand door gebruik te maken van de tijd die ultrasone golven nodig hebben om van een object te weerkaatsen en terug te keren naar de sensor.

VEX IQ (1e generatie) afstandssensoronderdeel.


Hoe de afstandssensor werkt: luisteren naar afstand

Schema van de afstandssensor die ultrageluid uitzendt om een groene kubus te raken en vervolgens het weerkaatste geluid ontvangt.

De afstandssensor gebruikt dezelfde principes als sonarapparaten om geluid te meten. Het zendt een kleine ultrageluidpuls uit met de zender aan de ene kant van de sensor, en vermenigvuldigt vervolgens hoe lang het duurt voordat het geluid wordt teruggekaatst naar de ontvanger aan de andere kant van de sensor. De sensor berekent de afstand op basis van hoe lang de geluidspuls duurde om de heen- en terugreis te maken. De afstandssensor maakt vervolgens een berekening op basis van de geluidssnelheid om het robotbrein te vertellen hoe ver het dichtstbijzijnde object is. 

Als het oppervlak niet vlak is, zoals een gebogen muur of een bal, stuitert de ultrasone golf niet op alle delen gelijkmatig of tegelijkertijd terug. Het dichtstbijzijnde oppervlak dat groot genoeg is om een ​​detecteerbare hoeveelheid van de golf terug te reflecteren, bepaalt de gedetecteerde afstand van het object.


Algemeen gebruik van de afstandssensor:

VEXcode IQ Object gevonden blok met de tekst Afstand object gevonden?

Twee diagrammen. Hierboven is de afstandssensor gericht naar een nabijgelegen groene kubus en is gemarkeerd met een vinkje. Hieronder is de afstandssensor niet naar iets in de buurt gericht en wordt deze aangegeven met een X-symbool.

Deze sensor kan detecteren of er een object voor zich staat.

VEXcode IQ Afstand vanaf blok met Afstand in mm.

Deze sensor kan de afstand tussen hem en een object meten.

  • Met deze sensor kan een robot een bepaalde afstand van een object afrijden. Bekijk de onderstaande animatie om te zien hoe de afstand verandert terwijl de robot rijdt, totdat de afstand kleiner is dan 160 mm.

  • Met deze sensor kan een robot naar een object toe rijden zonder het aan te raken. Bekijk deze animatie om te zien hoe twee robots afstandssensoren gebruiken om hun rijgedrag te coördineren.

  • De waarden van deze sensor kunnen worden gebruikt om de snelheid van de robot aan te passen, afhankelijk van of deze zich dichtbij of ver weg van een object of oppervlak bevindt. Bekijk deze animatie om te zien hoe de robot zich aanpast op basis van de afstand tot een muur.


Gebruik van de afstandssensor op een wedstrijdrobot

  • De robot kan de afstandssensor gebruiken om een ​​reeks gedragingen te initiëren wanneer hij zich op de juiste plaats bevindt om dat te doen. De robot kan bijvoorbeeld vooruit rijden totdat hij detecteert dat hij 150 mm van een muur verwijderd is, vervolgens 90 graden draaien en een object in een scorezone loslaten.  
  • De afstandssensor kan worden gebruikt om robotacties te activeren, zoals het oppakken van een spelstuk, wanneer een object binnen bereik wordt gedetecteerd.
  • De robot kan de afstandssensor gebruiken om naar een object of oppervlak te rijden totdat dit zich binnen een bepaalde afstand bevindt, zonder het aan te raken. Dit kan worden gebruikt om ervoor te zorgen dat de robot de spelstukken niet omver gooit.
  • Een robot kan de Afstandssensor gebruiken om weg te rijden van een object of oppervlak totdat deze een bepaalde afstand heeft bereikt. Dit kan worden gebruikt om botsingen met andere robots op het veld te voorkomen.

Gebruik van de afstandssensor in VEXcode IQ

De afstandssensor toevoegen als apparaat in VEXcode IQ

Menu VEXcode IQ-apparaten nadat de knop Apparaat toevoegen is geselecteerd. De optie Afstand (1e generatie) is gemarkeerd.

Om de afstandssensor in VEXcode IQ te coderen, moet u eerst de afstandssensor configureren. Bekijk dit artikel voor meer informatie over het configureren van een sensor in VEXcode IQ.

Zodra de sensor is geconfigureerd, verschijnen er opdrachten in de Toolbox die u in uw project kunt gebruiken.

Codering van de afstandssensor in blokken

VEXcode IQ Object gevonden blok met de tekst Distance7 heeft een object gevonden?

Het <Object found> blok is een Booleaans reporterblok dat een voorwaarde rapporteert als waar of onwaar. Booleaanse blokken, zoals het <Object found> blok, passen in blokken met zeshoekige (zeszijdige) ingangen voor andere blokken.

Het <Object found> Booleaanse blok rapporteert 'true' als de sensor een object detecteert, en 'false' als de sensor dat niet doet. Voor meer informatie over Booleaanse blokken gaat u naar het artikel Help of het artikel Blokvormen en betekenis.

 

VEXcode IQ blokkeert projecten die een afstandssensor gebruiken om vooruit te rijden totdat het een object vindt. Het project luidt als volgt: Wanneer u begint, rijd vooruit, wacht tot Distance7 een object heeft gevonden en stop dan met rijden.

In dit voorbeeld wordt het <Object found> blok gebruikt met een [Wacht tot]-blok om de robot vooruit te laten rijden totdat de afstandssensor een object detecteert. Wanneer de sensor een object detecteert, stopt de robot met rijden, zoals weergegeven in de afbeelding hierboven. 

VEXcode IQ Afstand vanaf blok met Distance7 afstand in mm.

Het blok (Afstand vanaf) rapporteert de afstand van het dichtstbijzijnde object tot de afstandssensor. Het rapporteert een bereik vanmm tot 1000 mm, of 1 inch tot 40 inch. Het (Afstand van) blok is een reporterblok dat wordt gebruikt binnen blokken met cirkelvormige ruimtes.

 

VEXcode IQ blokkeert projecten die een afstandssensor gebruiken om vooruit te rijden totdat de afstand kleiner is dan 50 mm. Het project luidt als volgt: Wanneer gestart, rijd vooruit, print Afstand7 afstand in mm op Brain, wacht tot Afstand7 afstand in mm minder dan 50 is en stop dan met rijden.

In dit voorbeeld wordt het blok (Afstand vanaf) gebruikt met een blok [Afdrukken] om op het hersenscherm de afstand tussen de afstandssensor en een object weer te geven. Het blok (Afstand vanaf) wordt ook weergegeven binnen een <Less than> blok dat zich binnen een {Wait until} blok bevindt. Hierdoor zal de robot rijden totdat de afstandssensor een object op minder dan 50 millimeter afstand detecteert, en dan stoppen met rijden. Dit is te zien in de eerste video hierboven.

Codering van de afstandssensor in Python

Opmerking:Om een ​​VEX IQ (1e generatie) afstandssensor in Python te coderen, moet deze worden aangesloten op een VEX IQ (2e generatie) Brain. De VEX IQ (1e generatie) Brain ondersteunt geen Python.

distance_7.is_object_detected()

Het commando distance.is_object_detected rapporteert 'true' als een object wordt gedetecteerd, en 'false' als een object niet wordt gedetecteerd.

Opmerking:De naam van de afstandssensor die in het commando verschijnt, komt overeen met de naam die deze in de configuratie krijgt. 

drivetrain.drive(FORWARD)
terwijl distance_7.is_object_detected() niet is gedetecteerd
wait(20, MSEC)
drivetrain.stop()
In dit voorbeeld wordt eenWhile lus met een en niet voorwaarde gebruikt met de opdracht distance.is_object_detected om de robot vooruit te laten rijden totdat de afstandssensor een object detecteert. Wanneer de sensor een object detecteert, stopt de robot met rijden, zoals weergegeven in de Python-code hierboven.
afstand_7.afstand(MM)

Het commando distance.distance rapporteert de afstand van het dichtstbijzijnde object tot de afstandssensor. Het rapporteert een bereik van24 mm tot 1000 mm, of 1 inch tot 40 inch.

drivetrain.drive(FORWARD)
brain.screen.print(distance_7.distance(MM)
while not distance_7.distance(MM) < 50:
wait(20, MSEC)
drivetrain.stop()

In dit voorbeeld wordt een While -lus met een voorwaarde en niet gebruikt met de opdracht distance.is_object_detected om de robot vooruit te laten rijden totdat de afstandssensor een object detecteert. Wanneer de sensor een object detecteert, stopt de robot met rijden.

In dit voorbeeld wordt het commando distance.distance gebruikt met het commando brain.screen.print om op het Brain-scherm de afstand tussen de afstandssensor en een object weer te geven. Het commando distance.distance wordt ook weergegeven in een While lus met een en niet voorwaarde. Hierdoor zal de robot rijden totdat de afstandssensor een object op minder dan 50 millimeter afstand detecteert, en dan stoppen met rijden. Dit is te zien in de eerste video hierboven.

Voor meer informatie over het coderen van een afstandssensor in Python, bekijk Unit 5 van de cursus Computerwetenschappen Niveau 1 - Python. 

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: