Använda VEX IQ (1:a generationen) avståndssensor

Beskrivning

Denna sensor rapporterar avståndet mellan den och närmaste fasta föremål (50 mm - 1 m räckvidd). Den beräknar avstånd genom att använda den tid det tar för ultraljudsvågor att studsa från ett objekt och återvända till sensorn.

VEX IQ (1:a generationen) Avståndssensor.


Så här fungerar avståndssensorn: Lyssna efter avstånd

Diagram över avståndssensorn som skickar ut ultraljud för att träffa en grön kub och sedan tar emot det reflekterade ljudet.

Avståndssensorn använder samma principer som ekolodsenheter för att mäta ljud. Den skickar ut en liten ultraljudspuls med sin emitter på ena sidan av sensorn, och multiplicerar sedan hur lång tid det tar att höra ljudet reflekteras tillbaka till mottagaren på andra sidan av sensorn. Sensorn beräknar avståndet baserat på hur lång tid det tog för ljudpulsen att göra tur och retur. Avståndssensorn gör sedan en beräkning baserad på ljudets hastighet för att tala om för robotens hjärna hur långt det närmaste objektet är. 

Om ytan inte är plan som en böjd vägg eller en boll, studsar inte ultraljudsvågen lika eller samtidigt från alla delar. Den närmaste ytan som är tillräckligt stor för att reflektera tillbaka en detekterbar mängd av vågen avgör objektets detekterade avstånd.


Vanliga användningsområden för avståndssensorn:

VEXcode IQ Objekt hittat block som läser Avstånd hittat ett objekt?

Två diagram. Ovan pekar avståndssensorn mot en närliggande grön kub och är märkt med en bock. Nedan pekar avståndssensorn inte mot något i närheten och den är märkt med ett X-symbol.

Denna sensor kan upptäcka om det finns ett föremål framför den.

VEXcode IQ Avstånd från block som läser Avstånd i mm.

Denna sensor kan mäta avståndet mellan den och ett objekt.

  • En robot kan använda den här sensorn för att köra ett visst avstånd från ett objekt. Se animationen nedan för att se avståndsvärdet ändras medan roboten kör tills avståndet är under 160 mm.

  • En robot kan använda den här sensorn för att köra fram till ett objekt utan att röra det. Titta på den här animationen för att se två robotar som använder avståndssensorer för att koordinera sin körning.

  • Värdena som tillhandahålls av denna sensor kan användas för att justera robotens hastighet beroende på om den är nära eller långt ifrån ett föremål eller en yta. Se den här animationen för att se en robot justera sig baserat på avståndet till en vägg.


Användning av avståndssensorn på en tävlingsrobot

  • Roboten kan använda avståndssensorn för att initiera en sekvens av beteenden när den är på rätt plats för att göra det. Till exempel kan roboten köra framåt tills den upptäcker att den är 150 mm från en vägg, sedan vända sig 90 grader och släppa ett föremål in i en poängzon.  
  • Avståndssensorn kan användas för att utlösa robotåtgärder, som att plocka upp en spelpjäs, när ett föremål detekteras inom räckhåll.
  • Roboten kan använda avståndssensorn för att köra mot ett objekt eller en yta tills den är inom ett visst avstånd, utan att vidröra den. Detta kan användas för att se till att roboten inte välter spelpjäser.
  • En robot kan använda avståndssensorn för att köra bort från ett föremål eller en yta tills den har nått ett visst avstånd. Detta kan användas för att undvika kollisioner med andra robotar på fältet.

Använda avståndssensorn i VEXcode IQ

Lägga till avståndssensorn som en enhet i VEXcode IQ

VEXcode IQ-enheter-menyn efter att knappen Lägg till en enhet har valts. Alternativet Avstånd (1:a generationen) är markerat.

För att koda avståndssensorn i VEXcode IQ måste du först konfigurera avståndssensorn. Läs den här artikeln för att lära dig mer om att konfigurera en sensor i VEXcode IQ.

När sensorn är konfigurerad visas kommandon i verktygslådan som du kan använda i ditt projekt.

Kodning av avståndssensorn i block

VEXcode IQ Objekt hittat block som läser Distance7 hittade ett objekt?

<Object found> blocket är ett booleskt reporterblock som rapporterar ett villkor som antingen sant eller falskt. Booleska block, som <Object found> blocket, passar inuti block med hexagonala (sexsidiga) indata för andra block.

Det booleska blocket <Object found> rapporterar 'sant' om sensorn detekterar ett objekt och 'falskt' om sensorn inte gör det. För att lära dig mer om booleska block, besök artikeln Hjälp eller Blockformer och betydelse.

 

VEXcode IQ blockerar ett projekt som använder en avståndssensor för att köra framåt tills den hittar ett objekt. Projektet lyder När den startas, kör framåt, vänta tills Distance7 hittat ett objekt och sluta sedan köra.

I det här exemplet används <Object found> -blocket med ett [Vänta tills]-block för att få roboten att köra framåt tills avståndssensorn detekterar ett objekt. När sensorn detekterar ett föremål slutar roboten att köra, som visas på bilden ovan. 

VEXcode IQ Avstånd från block som visar Distance7 avstånd i mm.

Blocket (Avstånd från) rapporterar avståndet till det närmaste objektet från avståndssensorn. Den rapporterar ett intervall frånmm till 1000 mm, eller 1 tum till 40 tum. Blocket (Avstånd från) är ett reporterblock som används inuti block med cirkulära mellanrum

 

VEXcode IQ blockerar ett projekt som använder en avståndssensor för att köra framåt tills avståndet är mindre än 50 mm. Projektet lyder När du startat, kör framåt, skriv ut avståndet Distance7 i mm på Brain, vänta tills avståndet Distance7 i mm är mindre än 50 och sluta sedan köra.

I det här exemplet används blocket (Avstånd från) tillsammans med ett [Skriv ut]-block för att visa avståndet mellan avståndssensorn och ett objekt på hjärnskärmen. Blocket (Avstånd från) visas också inuti ett <Less than> block som ligger inuti ett {Wait until} block. Detta gör att roboten kör tills avståndssensorn detekterar ett objekt mindre än 50 millimeter bort, och sedan slutar köra. Detta visas i den första videon ovan.

Kodning av avståndssensorn i Python

Obs:För att koda en VEX IQ (1:a generationen) avståndssensor i Python måste den vara ansluten till en VEX IQ (2:a generationen) Brain. VEX IQ (1:a generationen) Brain stöder inte Python.

distance_7.is_object_detekted()

Kommandot distance.is_object_detected rapporterar 'sant' om ett objekt detekteras och 'falskt' om inget objekt detekteras.

Obs:Namnet på avståndssensorn som visas i kommandot motsvarar det namn den har fått i konfigurationen. 

drivetrain.drive(FRAMÅT)
medan inte distance_7.is_object_detekted()
wait(20, MSEC)
drivetrain.stop()
I detexemplet används enWhile -slinga med ett not villkor med kommandot för att få roboten att köra framåt tills avståndssensorn detekterar ett objekt När sensorn detekterar ett objekt slutar roboten att köra, som visas i Python-koden ovan.
distance_7.distance(MM)

Kommandot distance.distance rapporterar avståndet till det närmaste objektet från avståndssensorn. Den rapporterar ett intervall frånmm till 1000 mm, eller 1 tum till 40 tum

drivetrain.drive(FRAMÅT)
brain.screen.print(distance_7.distance(MM)
medan inte distance_7.distance(MM) < 50:
wait(20, MSEC)
drivetrain.stop()

I detexemplet används en While -slinga med ett not villkor med kommandot för att få roboten att köra framåt tills avståndssensorn detekterar ett objekt När sensorn detekterar ett föremål slutar roboten att köra.

I det här exemplet används kommandot distance.distance tillsammans med kommandot brain.screen.print för att visa avståndet mellan avståndssensorn och ett objekt på hjärnskärmen. Kommandot distance.distance visas också inuti en While -slinga med ett not -villkor. Detta gör att roboten kör tills avståndssensorn detekterar ett objekt mindre än 50 millimeter bort, och sedan slutar köra. Detta visas i den första videon ovan.

För att lära dig mer om att koda en avståndssensor i Python, kolla in enhet 5 i datavetenskap nivå 1 - Python-kursen. 

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

Last Updated: