Felsökning av IQ-sensorer (1:a generationen)

När din robot inte beter sig som avsett när den använder sensoråterkoppling kan du följa en steg-för-steg-felsökningsprocedur för att hitta och åtgärda dina problem. Den här artikeln förklarar stegen i en felsökningsprocess och ger tips om hur du använder dessa steg. 

Stegen i denna process är:

  • Identifiera problemet
  • Kontrollera hårdvaran
  • Kontrollera programvaran
  • Analysera och tillämpa data

Identifiera problemet

Det första steget i felsökning av din sensor är att identifiera vilken sensor som orsakar problemet. Jämför det observerade robotbeteendet med det avsedda robotbeteendet. Orsakas det problematiska beteendet av en sensor? Om så är fallet, vilken sensor? Om du behöver mer information för att avgöra vilken sensor som kan vara problemet, läs artiklarna nedan som rör sensorerna på din robot.

VEX IQ (1:a generationen) Sensorer:

När du har identifierat vilken sensor som orsakar det oavsiktliga beteendet kan du gå vidare i processen.


Kontrollera hårdvaran

Det andra steget är att kontrollera hårdvaran på roboten för att vara säker på att sensorn kan fungera som avsett. Var och en av följande hårdvaruöverväganden kan påverka sensorns funktionalitet.

Kontrollera sensorplaceringen

Clawbot IQ-bygget kör på ett fält, med en pil som pekar från en ansluten färgsensor till en grön kub framför roboten.

Börja med att titta på var sensorn är placerad på din robot. Blockeras sensorn av något, till exempel av en annan del av din robot? Se till att sensorn har tillräckligt med utrymme för att fungera som avsett.

Som visas här har färgsensorn en tydlig siktlinje till det objekt den är avsedd att detektera.

Kontrollera sensoranslutningen

Hjärnskärmen visas i inställningsmenyn med alternativet Enhetsinformation valt. Enhetsinformation är det andra alternativet i listan, under Systeminformation.

Testa sensorns funktionalitet genom att titta på data som rapporteras i enhetsmenyn på VEX IQ (1:a generationen) Brain. Detta kan hjälpa dig att bekräfta att sensorn är inkopplad och fungerar.

För att komma åt enhetsmenyn, följ stegen i den här artikeln.

Diagram över en (1:a generationens) hjärna ansluten till en smart motor och en stötfångarbrytare. Stötfångarbrytaren anges med en pil och är märkt Sensor.

När enhetsskärmen är öppen, se om sensorn rapporterar data.

Om inte, se till att dina sensorer är korrekt inkopplade. När du ansluter sensorer bör du höra ett snäpp när sensorns låsflik är helt inlåst i en port.

Du kan också prova att byta ut sensorn du använder mot en annan för att se om det löser problemet.

Om du ändrade något med sensorplaceringen eller sensoranslutningen, testa projektet igen för att se om det löste problemet. Om din sensorplacering och anslutning inte ändrades, gå vidare till nästa steg för att fortsätta felsökningsprocessen.


Kontrollera programvaran

När du har identifierat att sensorn är korrekt placerad och ansluten till roboten kan du titta på VEXcode IQ-projektet härnäst. Att iterera i ett projekt kan hjälpa dig att säkerställa att data från sensorn används effektivt i ditt projekt. Följande strategier kan hjälpa dig med kodningen av din sensor.

Om du tillämpar någon av dessa strategier på ditt VEXcode IQ-projekt, testa projektet igen för att se om detta löste problemet.

Kontrollera firmware och konfiguration

VEXcode IQ-enheternas meny med en lång lista över anslutna enheter. Den här menyn kan användas för att säkerställa att varje sensor är korrekt ansluten och för att kontrollera dess specifika port på hjärnan.

Nu när du är säker på att alla enheter är korrekt anslutna till Brain, kontrollera enhetskonfigurationen i VEXcode IQ.

Kontrollera att alla sensorer finns i konfigurationen. Kontrollera sedan att var och en är ansluten till rätt port.

Ändra eventuella felaktiga enhetskonfigurationer.

Kör ett exempelprojekt

VEXcode Blocks exempelprojektmeny med en mängd olika projekt i olika kategorier att välja mellan. Kategorin Avkänning är markerad.

Öppna ett exempelprojekt som använder den sensor du felsöker. Du kan välja kategorin "Avkänning" för att filtrera exempelprojekt.

För mer information om exempelprojekt och mallar för IQ Blocks, se den här artikeln.

För mer information om IQ C++ exempelprojekt och mallar, se den här artikeln.

VEXcode IQ med ett exempelprojekt öppnat från kategorin Avkänning, inklusive en stapel kodblock och en anteckning med en beskrivning av projektet. Anteckningen är markerad.

När den är öppen, läs anmärkningen för att avgöra om funktionaliteten i exempelprojektet överensstämmer med vad du försöker göra med sensorn.

I exempelprojektet som visas här anger noteringen att det här projektet ger ett exempel på hur alla tillgängliga avståndssensorkommandon kan användas med roboten.

Kör exempelprojektet och observera robotens beteende. Titta sedan på projektet för att se hur sensordata används för att orsaka de observerade beteendena. Du kanske vill köra exempelprojektet flera gånger för att underlätta detta.

Du kanske också vill försöka skapa ditt eget förenklade projekt för att tillämpa det du har lärt dig från exempelprojektet på din uppgift.

Använd andra VEXcode IQ-verktyg

Det finns också verktyg och strategier som du kan använda för att hjälpa dig när du lär dig mer om att koda din sensor i VEXcode IQ. Du kan lära dig mer om blocken eller kommandona i verktygslådan individuellt genom att använda hjälpen. Du kan också visa sensordata medan ett projekt körs för att lära dig mer om vad sensorn rapporterar.

VEXcode IQ med hjälpmenyn öppen och rubrikblocket Drive valt. Beskrivningar av blocket och hur det kan användas visas tillsammans med bilder på exempel på användningsområden.

Hjälpen

Läs hjälpen för blocken eller kommandona i exempelprojektet, eller i ditt projekt, för att lära dig mer om de data som används, vilka värden kommandot rapporterar och exempel på hur du använder kommandot i ett projekt.

Läs den här artikeln för att lära dig mer om hur du får åtkomst till hjälp i VEXcode IQ Blocks.

Läs den här artikeln för att lära dig mer om hur du får åtkomst till hjälp i VEXcode IQ C++.

Utskriftsdata

Du kan också skriva ut data från sensorn medan exempelprojektet eller ditt projekt körs, för att bättre förstå vad sensorn rapporterar i realtid. Detta kan hjälpa dig att avgöra vilka rapporterade värden från sensorn som ska användas som parametrar i ditt projekt. 

Observera att i ett Blocks-projekt kan ett separat {When started} hat-block användas för att hålla alla utskriftskommandon organiserade i en egen stack.

VEXcode IQ-block

VEXcode IQ-blockprojekt som använder ett When started-hat-block för att skriva ut sensordata live medan projektet körs. Projektet har ett When started-block följt av fyra block i en Forever-loop. I loopen finns först ett kommentarsblock som lyder Skriv ut avståndet till ett objekt på hjärnan. Därefter läser ett Print-block avståndet Distance7 i mm på Brain och placerar markören på nästa rad. Därefter visas ett kommentarblock med texten Vänta med att skriva ut värdet och upprepa sedan loopen. Slutligen läser ett Wait-block vänta 0,1 sekunder.

Välj bilden ovan för att förstora den.

VEXcode IQ C++

int main() {
// Starta projektkod
// Ändra teckenstorleken så att den passar IQ (2:a generationen) Brains skärm
Brain.Screen.setFont(mono12);

// Loopa för att skriva ut alla avståndsmätningsvärden till skärmen
while (true) {
// Rensa skärmen och placera markören i skärmens övre vänstra hörn
Brain.Screen.clearScreen();
Brain.Screen.setCursor(1, 1);
Brain.Screen.print("Found Object: %s", Distance.foundObject() ? "SANT" : "FALSKT");
Brain.Screen.newLine();

Brain.Screen.print("Avstånd - mm: %.0f", Avstånd.distance(mm));
Brain.Screen.newLine();

Brain.Screen.print("Avstånd - tum: %.0f", Avstånd.distance(tum));
Brain.Screen.newLine();

// En kort fördröjning för att texten ska kunna skrivas ut utan förvrängning eller rivning
wait(0.2, sekunder);
}
}

Utskrift till IQ Brain är praktiskt när du vill se värdena ändras medan ett VEXcode IQ-projekt körs. Detta kan hjälpa dig att avgöra vilka rapporterade värden från sensorn som ska användas som parametrar i ditt projekt. Dessa utskriftskommandon kan byggas in i VEXcode IQ-projektet som du redan har skapat så att du kan se sensorvärdena ändras vid specifika tidpunkter medan roboten rör sig. 

Dessa exempelprojekt ovan visar hur man skriver ut värden från avståndssensorn till IQ Brain. Kommentarerna i varje projekt förklarar projektets flöde och användningen av varje kommando.

Att använda enhetsmenyn på IQ Brain är praktiskt när du vill visa sensorvärden medan du manuellt manipulerar roboten. Du kan komma åt enhetsmenyn utan att köra ett VEXcode IQ-projekt och se värdena som detekterats av en sensor. 

Hjärnskärmen visas i inställningsmenyn med alternativet Enhetsinformation valt. Enhetsinformation är det andra alternativet i listan, under Systeminformation.

Välj X-knappen för att komma åt hjärninställningarna, bläddra ner till Enhetsinformation och tryck på bockmarkeringsknappen för att öppna Enhetsmenyn.

Hjärnskärmen visas i enhetsmenyn. I det här exemplet visas port 3-färgsensorn, med läge 3 för färg, färgvärde Grönt och avståndsvärde Nära. Nedanför ett meddelande som lyder "Tryck på knappen Kontrollera ändrar läge". Längst ner på skärmen indikerar ikoner att pilknapparna kan användas för att bläddra och X-knappen kan användas för att lämna enhetsmenyn.

I enhetsmenyn använder du pilknapparna för att välja den enhet du vill visa mer information om. Färgsensorn är vald i den här bilden. För mer information om att visa enhetsinformation på (1:a generationens) hjärna, se den här artikeln.


Analysera och tillämpa data

Använd sedan det du har lärt dig i föregående steg för att justera ditt ursprungliga projekt. Du kan fortsätta använda verktyg som hjälpen och utskriftsdata för att använda sensorn effektivt och uppnå ditt mål.

Du kan också ställa frågor om ditt projekt för att hjälpa dig att gå vidare. Tänk på saker som:

  • Använder du större än < eller mindre än > i ditt projekt? Är symbolen vänd åt rätt håll? Om du använder lika med =, försök att ersätta det med större än eller mindre än för att använda ett värdeintervall.
  • Är dina parametrar korrekta? Använder du data från sensorn för att ställa in dina parametrar? Valde du det rullgardinsmenyalternativ du behöver?
  • Kontrollerar du villkoren mer än en gång? Försök att lägga till en Forever-loop i ditt projekt, så att villkoret kontrolleras upprepade gånger när projektet körs.
  • Kör ditt projekt fast? Är dina villkor korrekt inställda? Om du använder kapslade loopar kan du försöka förenkla ditt projekt för att isolera enskilda beteenden.
  • Påverkar dina miljöförhållanden sensorn? Är det för ljust eller för mörkt? Finns det föremål eller människor i vägen? Försök att köra projektet på en annan plats för att se om det hjälper.
  • Kör du den senaste versionen av ditt projekt? Har du laddat ner ditt uppdaterade projekt till Brain? Se till att ladda ner projektet igen varje gång du gör en ändring.
  • Upptäcker du rätt färg? Rapporterar sensorn en annan färg än den du har i ditt projekt? Försök att ändra färgparametern.
  • Upptäcker du ett objekt inom sensorns synfält? Kom ihåg att synfältet rör sig i samband med robotens rörelse.
  • Använder du ett vänteblock när du kontrollerar ett villkor? Se till att använda block som inte är vänteblock i ett projekt när du kontrollerar ett villkor. Läs den här artikeln för att lära dig mer om vänteblock kontra icke-vänteblock i VEXcode IQ.
  • Om du kodar i block, är hela din stack kopplad till {When started} hatt-blocket? Block körs bara när de är sammankopplade. Du kan lyssna efter ett klickljud när du drar block och kopplar ihop dem.

När du besvarar dessa frågor, se till att ändra en sak i ditt projekt i taget, testa det och utvärdera sedan om förändringen var effektiv. Att testa ditt projekt ofta kan hjälpa dig att lättare se hur din kod är kopplad till robotens beteenden.  Du kan behöva upprepa stegen i felsökningsprocessen flera gånger för att lösa problemet, och det är okej. Varje iteration hjälper dig att lära dig mer om sensorn du använder och hur du kodar den i VEXcode IQ.

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

Last Updated: