Kodning av V5-avståndssensorn med hjälp av matematiska olikheter

Genom att använda V5-avståndssensorn på din robot under en VEX Robotics Competition (VRC)-match kan din robot få fler poäng med hjälp av autonoma rörelser.

Spelet som används som exempel i den här artikeln är VRC-spelet Tipping Point från 2021–2022. Se den här sidan för mer information om spelet och hur det spelas. För speldefinitioner som används i den här artikeln, en översikt över spelreglerna och poängsättning se spelmanualen för Tipping Point.


V5-avståndssensorn

Vinklad vy av V5-avståndssensorn.

-avståndssensorn är en av de kraftfulla V5-sensorerna som är utformad för fullständig integration med V5-robotplattformen.

  • Den här sensorn använder en puls av klassrumssäkert laserljus för att mäta avståndet från sensorns framsida till ett objekt.
  • V5-avståndssensorn kan användas för att detektera ett objekt och bestämma objektets relativa storlek. Den ungefärliga storleken på ett objekt rapporteras som liten, medelstor eller stor.
  • Sensorn kan också användas för att beräkna en robots inflygningshastighet. Närmandeshastighet mäter robotens/sensorns hastighet när den rör sig mot objektet.

För mer detaljerad information om V5-avståndssensorn, hur den fungerar och hur man använder den med VEXcode V5, vse den här artikeln från VEX-biblioteket


Exempel på V5-avståndssensor

Målet med det här projektet är att roboten ska plocka upp och flytta ett mobilt mål med hjälp av V5-avståndssensorn för att detektera hur långt bort målet är.

VEXcode V5 Blockerar ett projekt som kör framåt tills det upptäcker ett mobilt mål, plockar upp det och sedan flyttar det. Projektet läser När det startas, kör framåt, vänta tills avståndet till objektet DistanceCenter i mm är mindre än 139 och sluta sedan köra. Snurra sedan upp gaffelmotorerna i 600 grader och sväng sedan vänster i 90 grader. Kör sedan framåt i 600 mm, snurra ned gaffelmotorerna i 600 grader och kör sedan bakåt i 300 mm.

Detta är kodexemplet som kommer att behandlas i den här artikeln.

En beskrivning av beteendena i exemplet, och hur man erhåller parametrarna som används för att koda V5-avståndssensorn, kommer att behandlas.

Du kan bygga projektet i VEXcode V5 allt eftersom du följer artikeln, eller så kan du bara läsa artikeln för inspiration som ett exempel på hur du inkluderar V5-avståndssensorn när du kodar din egen anpassade robot.

Den här videon visar koden ovan när den körs och roboten plockar upp och flyttar ett mobilt mål.

VEXcode V5-enheternas meny öppnas för att visa enhetskonfigurationen i detta exempel. Menyn listar först en avståndssensor med titeln DistanceCenter vid port 19. Nästa finns en drivlina med motorer på portarna 1 och 10 och en tröghetssensor på port 3. Slutligen finns det en motorgrupp som heter ForkMotors på portarna 2 och 9.

Här är robotkonfigurationen som används i VEXcode V5 för att lägga till roboten och avståndssensorn till konfigurationen för det här exemplet, om du vill prova exemplet själv.

Robot som används i detta exempel

Vy över Moby Hero Bot ovanifrån och med en extra V5-avståndssensor markerad. Avståndssensorn är placerad bakom och under robotens gaffel, vänd framåt.

Roboten som används i det här exemplet är 2021-2022 VRC Hero Bot, Moby. Mobys design har inga sensorer, V5-avståndssensorn lades till i Moby för detta exempel.

I det här exemplet är V5-avståndssensorn monterad nära mitten av Mobys gafflar.

För mer information om Moby, se den här artikeln från VEX-biblioteket

Du behöver inte använda Moby för att koda V5 Distance Sensor eller för att tävla i årets tävling. Du kan montera sensorn på din specialbyggda robot var du vill.

Obs: Se till att ingen struktur på roboten är framför det lilla laserfönstret på sensorns framsida. Det måste finnas en fri väg framför sensorn mellan målet och sensorn.

Fördelning av beteenden för att poängsätta

För att plocka upp och flytta ett mobilt mål med hjälp av feedback från V5-avståndssensorn, bryt först ner hur roboten ska röra sig.

Moby-roboten placeras på en plan med ett mobilt mål placerat några meter framför den.

Först bör roboten placeras så att den är vänd mot det mobila målet.

Moby-roboten visas efter att ha kört framåt för att känna av det mobila målet. Det mobila målet är nu inuti robotens gaffelarmar.

Sedan ska roboten köra framåt tills avståndssensorn detekterar att det mobila målet är innanför gafflarna och nära sensorn.

Moby-roboten visas efter att ha upptäckt det mobila målet och höjt armarna för att plocka upp det.

När sensorn detekterar att det mobila målet är inuti gafflarna eller nära sensorn, slutar roboten att köra och höjer gafflarna för att plocka upp det mobila målet.

Moby-roboten som bär det mobila målet och har vridit 90 grader åt vänster.

När det mobila målet har plockats upp svänger roboten vänster i 90 grader och kör framåt i 600 millimeter (mm).

Moby-roboten som har sänkt sin gaffel för att placera det mobila målet och sedan kört bakåt.

Roboten sänker sedan gafflarna för att placera det mobila målet och kör baklänges bort från det mobila målet så att den inte av misstag välter det under nästa drag.


Förstå parametrar

För att kunna utföra ovanstående beteenden är det viktigt att förstå hur långt det mobila målet är från V5-avståndssensorn.

Parameter för att plocka upp det mobila målet med hjälp av V5-avståndssensorn

Moby-roboten på ett fält med ett mobilt mål placerat mellan gafflarna så att det ideala avståndet kan bestämmas.

För att roboten ska kunna köra framåt tills avståndssensorn detekterar att det mobila målet är innanför gafflarna och nära sensorn, måste värdena från sensorn registreras från V5-hjärnan.

Placera det mobila målet mellan robotens gafflar.

V5 Brain-skärmen visas i hemmenyn med alternativet Enheter markerat.Hjärnskärmen visas i menyn Enhetsinfo som har en lista över alla Hjärnans Smart Ports och anslutna enheter. Avståndssensorikonen i Enhetsinfo-menyn är markerad för att indikera att objekt kan väljas för att öppna deras informationsmenyer.

Välj sedan "Enheter" på hjärnans skärm och sedan ikonen för avståndssensorn.

Hjärnskärmen visas i avståndssensormenyn som listar sensorns data. Menyn rapporterar data om ett objekts storlek, hastighet och avstånd. Menyn har också ett diagram som visualiserar avståndet och hur det förändras över tid. I den här skärmdumpen är objektets storlek liten, dess hastighet är 0 meter per sekund och dess avstånd är 139 mm.

Avståndet i millimeter (mm) som det mobila målet är från sensorn visas på hjärnans skärm.

Samma VEXcode V5 Blocks-projekt från tidigare som kör framåt tills det upptäcker ett mobilt mål, plockar upp det och sedan flyttar det. Värdet som avståndssensorns objektavstånd jämförs med i projektet är 139 och det är markerat.

Detta är värdet som kommer att användas i projektet när det mobila målet hämtas med hjälp av avståndssensorn.

Parameter för att höja och sänka gafflarna

Moby-robot på ett fält med ett mobilt mål placerat mellan dess gafflar.

Placera det mobila målet inuti gafflarna igen.

Hjärnskärmen visas i menyn Enhetsinfo som har en lista över alla Hjärnans Smart Ports och anslutna enheter. En motorikon i menyn Enhetsinfo är markerad för att indikera att objekt kan väljas för att öppna deras informationsmenyer.

Välj sedan "Enheter" på hjärnans skärm och sedan ikonen för Motor 2. Motor 2 styr den vänstra gaffeln.

Moby-roboten på ett fält med ett mobilt mål placerat mellan dess upphöjda gafflar för att plocka upp det.

Lyft gafflarna manuellt tills den nedre delen av det mobila målet inte blockerar sikten för avståndssensorn.

När du lyfter gafflarna manuellt, se till att lyfta varje gaffel på vänster och höger sida av Moby samtidigt, eftersom varje gaffel styrs av sin egen motor.

Obs: undvik klämpunkter när du lyfter gafflarna manuellt.

Hjärnskärmen visas i Smart Motor-menyn som listar enhetens data. Menyn har avläsningar och grafer som rapporterar enhetens data. I den här skärmdumpen är motorns gradervärde markerat och visar 604.

Antalet grader som gafflarna har höjts rapporteras på hjärnans skärm.

Samma VEXcode V5 Blocks-projekt från tidigare som kör framåt tills det upptäcker ett mobilt mål, plockar upp det och sedan flyttar det. Antalet grader som gaffelmotorgruppen snurrar i projektet är 600 och det är markerat.

Detta är värdet som kommer att användas i projektet när gafflarna höjs och sänks för att plocka upp och placera det mobila målet.

Använda operatorblock

VEXcode V5 Operatorblocket Mindre än visas. Detta block används för att jämföra två värden och rapportera om det första värdet är lägre än det andra.

I det här projektet används operatorblocket <Less than> för att koda avståndssensorn.

Hjärnskärmen visas i avståndssensormenyn som listar sensorns data. Menyn rapporterar data om ett objekts storlek, hastighet och avstånd. Menyn har också ett diagram som visualiserar avståndet och hur det förändras över tid. I den här skärmdumpen är objektets storlek liten, dess hastighet är 0 meter per sekund och dess avstånd är 139 mm.

Detta beror på att allt eftersom avståndssensorn kommer närmare och närmare ett objekt, minskar avståndet i millimeter mellan sensorn och objektet.

Samma VEXcode V5 Blocks-projekt från tidigare som kör framåt tills det upptäcker ett mobilt mål, plockar upp det och sedan flyttar det. Värdet som avståndssensorns objektavstånd jämförs med i projektet är 139 och det är markerat.

Tröskelvärden kan väljas för att utlösa robotens beteenden när avståndet är mindre än ett förutbestämt värde.

Till exempel, när roboten kör mot det mobila målet, använd operatorblocket <Less than> för att utlösa robotens stoppbeteende när avståndet är mindre än , ungefär 139 millimeter (mm).

Moby-robot på ett fält med ett mobilt mål inuti gafflarna. Avståndet från avståndssensorn till det mobila målet är markerat med en röd pil.

Om det värdet ändrades till exempel 10 millimeter (mm), skulle roboten faktiskt köra in i det mobila målet och potentiellt skada sig själv, eftersom 10 millimeter (mm) från sensorn inte är tillräckligt långt för att förhindra att robotens gafflar vidrör det mobila målet.

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

Last Updated: