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:
- Använda VEX IQ (1:a generationen) gyrosensor
- Använda VEX IQ (1:a generationen) avståndssensor
- Använda VEX IQ (1:a generationen) färgsensor
- Använda VEX IQ-stötfångarbrytaren
- Använda VEX IQ Touch LED
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
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
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.
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
Börja med att se till att din IQ Brains firmware är uppdaterad.
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
Ö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.
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.
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
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.
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.
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.