Problemen oplossen met VEX V5-sensoren

Wanneer uw robot zich niet gedraagt ​​zoals bedoeld tijdens het gebruik van sensorfeedback, kunt u een stapsgewijze probleemoplossingsprocedure volgen om uw problemen op te sporen en op te lossen. In dit artikel worden de stappen in een probleemoplossingsproces uitgelegd en worden tips gegeven voor het gebruik van deze stappen.

De stappen van dit proces zijn:

  1. Identificeer het probleem
  2. Controleer de hardware
  3. Software controleren
  4. Gegevens analyseren en toepassen

Identificeer het probleem

De eerste stap bij het oplossen van problemen met uw sensor is vaststellen welke sensor het probleem veroorzaakt. Vergelijk het waargenomen robotgedrag met het beoogde robotgedrag. Wordt het problematische gedrag veroorzaakt door een sensor? Zo ja, welke sensor? Als u meer informatie nodig heeft om te bepalen welke sensor het probleem kan zijn, lees dan de onderstaande artikelen over de sensoren op uw robot.

VEX V5-sensoren:

Zodra u heeft vastgesteld welke sensor het onbedoelde gedrag veroorzaakt, kunt u verder gaan in het proces.


Controleer de hardware

De tweede stap is het controleren van de hardware op de robot om er zeker van te zijn dat de sensor kan functioneren zoals bedoeld. Elk van de volgende hardwareoverwegingen kan van invloed zijn op de functionaliteit van uw sensor.

Controleer de plaatsing van de sensor.

V5 Clawbot-model rijdt over een veld. De robot heeft een optische sensor die oplicht en gericht is op een rode buckybal die zich voor hem bevindt.

Kijk eerst waar de sensor zich op uw robot bevindt. Wordt de sensor door iets geblokkeerd, zoals een ander onderdeel van uw robot? Zorg ervoor dat de sensor voldoende ruimte heeft om te functioneren zoals bedoeld.

Zoals hier weergegeven, heeft de optische sensor een duidelijke zichtlijn naar het object dat hij moet detecteren.

Controleer de sensoraansluiting

Het Brain-scherm wordt weergegeven in het menu Apparaatinfo, waar een lijst staat van alle Smart Ports en aangesloten apparaten van de Brain. Het pictogram van de optische sensor in het menu 'Apparaatinfo' is gemarkeerd om aan te geven dat u erop kunt klikken om het bijbehorende informatiemenu te openen.

Test de functionaliteit van de sensor door te kijken naar de gegevens die worden gerapporteerd in het scherm Apparaten op de VEX V5 Brain. Dit kan u helpen te valideren dat de sensor is aangesloten en werkt. 

Om toegang te krijgen tot het scherm 'Apparaten', volg de stappen in dit artikel. Zodra het Apparatenscherm geopend is, kijk of de sensor zichtbaar is op de juiste poortlocatie en rapporteer gegevens. Hier wordt de optische sensor gedetecteerd in Smart Port 11.

De V5 Brain is aangesloten op een V5-batterij en een V5 Smart Motor-apparaat. De kabel van de Smart Motor is aangesloten op een van de Smart Ports van de Brain.V5 Brain met een 3-draads apparaat aangesloten op een van de 3-draads poorten.

Als de sensor geen gegevens rapporteert, zorg er dan voor dat uw sensoren correct zijn aangesloten. Wanneer u sensoren op een Smart Port aansluit, hoort u een klik wanneer het vergrendelingslipje van de sensor volledig in een poort zit.

Wanneer u sensoren op een 3-draads poort aansluit, moet de kabel volledig in de juiste richting worden ingebracht, met de witte draad het dichtst bij het hersenscherm. 

U kunt ook proberen de sensor die u gebruikt te vervangen door een andere om te zien of dit uw probleem oplost.

Als u iets heeft gewijzigd aan de plaatsing van uw sensor of de sensorverbinding, test dan uw project opnieuw om te zien of het probleem hiermee is opgelost. Als de plaatsing en aansluiting van uw sensor niet zijn gewijzigd, gaat u verder met de volgende stap om door te gaan met het probleemoplossingsproces.


Controleer software

Zodra je hebt vastgesteld dat de sensor correct op de robot is geplaatst en aangesloten, kun je verdergaan met het VEXcode V5-project. Door een project te herhalen, kunt u ervoor zorgen dat de gegevens van de sensor effectief in uw project worden gebruikt. De volgende strategieën kunnen u helpen bij het coderen van uw sensor.

Als u een van deze strategieën op uw VEXcode V5-project toepast, test u uw project opnieuw om te zien of het probleem hiermee is opgelost.

Controleer firmware en configuratie

VEXcode V5 met een aangesloten Brain en het Brain-dropdownmenu geopend, wat aangeeft dat het gebruikt kan worden om de firmware van de Brain te controleren. De VEXos-versie wordt weergegeven en er is alleen een knop 'Geforceerde update' zichtbaar.

Zorg er eerst voor dat de firmware van uw V5 Brain up-to-date is.

Zie dit artikel voor meer informatie over het updaten van de firmware op de V5 Brain.

Het VEXcode V5-apparatenmenu toont een lange lijst met aangesloten apparaten. Dit menu kan worden gebruikt om te controleren of elke sensor correct is aangesloten en om de specifieke poort op de Brain te controleren.

Nu u er zeker van bent dat alle apparaten correct op de Brain zijn aangesloten, controleert u de apparaatconfiguratie in VEXcode V5.

Controleer of alle sensoren aanwezig zijn in de configuratie. Controleer vervolgens of ze allemaal op de juiste poort zijn aangesloten.

Wijzig eventuele onjuiste apparaatconfiguraties.

Voer een voorbeeldproject uit

Het menu 'VEXcode Blocks Example Projects' biedt een verscheidenheid aan projecten in verschillende categorieën waaruit u kunt kiezen. De categorie 'Waarneming' is gemarkeerd.

Open een voorbeeldproject dat gebruikmaakt van de sensor waarvoor u problemen oplost. Om voorbeeldprojecten te filteren kunt u de categorie 'Sensing' selecteren.

Voor meer informatie over V5 Blocks voorbeeldprojecten en sjablonen, dit artikel.

Voor meer informatie over V5 Python-voorbeeldprojecten en -sjablonen, dit artikel.

Voor meer informatie over V5 C++ voorbeeldprojecten en sjablonen, dit.

VEXcode V5 met een voorbeeldproject geopend vanuit de categorie 'Sensing', inclusief een stapel codeblokken en een notitie met een beschrijving van het project. De notitie is gemarkeerd.

Eenmaal geopend, leest u de opmerking om te bepalen of de functionaliteit in het voorbeeldproject overeenkomt met wat u met de sensor probeert te doen.

In het hier getoonde voorbeeldproject geeft de opmerking aan dat de status van de bumperschakelaar of eindschakelaar die wordt ingedrukt, op het hersenscherm wordt afgedrukt. In dit geval geeft True aan dat deze is ingedrukt en False dat deze niet is ingedrukt. 

Voer het voorbeeldproject uit en observeer het robotgedrag. Kijk vervolgens naar het project om te zien hoe de sensorgegevens worden gebruikt om het waargenomen gedrag te veroorzaken. Mogelijk wilt u het voorbeeldproject meerdere keren uitvoeren om hierbij te helpen.

Misschien wilt u proberen uw eigen vereenvoudigde project te maken, zodat u op uw taak kunt toepassen wat u uit het voorbeeldproject hebt geleerd.

Gebruik andere VEXcode V5-tools

Er zijn ook tools en strategieën die u kunt gebruiken om u te helpen terwijl u meer leert over het coderen van uw sensor in VEXcode V5. U kunt afzonderlijk meer te weten komen over de blokken of opdrachten in de Toolbox door de Help te gebruiken. U kunt ook sensorgegevens bekijken terwijl een project loopt, om meer te weten te komen over wat de sensor rapporteert.

VEXcode V5 met het Help-menu geopend en het blok 'Pressing Bumper' geselecteerd. Beschrijvingen van het blok en hoe het gebruikt kan worden, worden getoond, samen met afbeeldingen van voorbeelden.

De hulp

Lees de Help voor de blokken of opdrachten in het voorbeeldproject of in uw project om meer te weten te komen over de gegevens die worden gebruikt, welke waarden de opdracht zal rapporteren en voorbeelden van hoe u de opdracht in een project kunt gebruiken.

Bekijk dit artikel voor meer informatie over toegang tot Help in VEXcode V5-blokken.

Bekijk dit artikel voor meer informatie over toegang tot Help in VEXcode V5 Python.

Bekijk dit artikel voor meer informatie over toegang tot Help in VEXcode V5 C++.

Gegevens afdrukken

U kunt ook gegevens van de sensor afdrukken terwijl het voorbeeldproject of uw project loopt, zodat u beter begrijpt wat de sensor in realtime rapporteert. Dit kan u helpen bepalen welke gerapporteerde waarden van de sensor u als parameters in uw project moet gebruiken. 

Merk op dat in een Blocks-project een afzonderlijk {When started} hatblok kan worden gebruikt om alle afdrukopdrachten in hun eigen stapel te organiseren.

VEXcode V5-blokken
Een VEXcode V5 Blocks-project dat een oneindige lus gebruikt om sensorgegevens naar de Brain te sturen terwijl het project draait. Het eerste deel van het project luidt: Stel bij het opstarten het lettertype in op Mono Extra Large op Brain. Vervolgens is er een oneindige lus met 5 blokken erin. De blokken in de lus lezen: wis alle rijen op Brain, plaats de cursor op rij 1 kolom 1 op Brain en print vervolgens Afstand (mm): op Brain. Print vervolgens de objectafstand van Distance19 in mm op Brain, plaats de cursor op de volgende regel en wacht 0,5 seconden.
VEXcode V5 Python
# Begin projectcode

# Vergroot de lettergrootte voor betere leesbaarheid op het Brain-scherm
brain.screen.set_font(FontType.MONO40)

while True:
  # Elke iteratie van de lus wist het scherm
  brain.screen.clear_screen()
    
  # Na het wissen van het scherm, zet de printcursor terug naar de linkerbovenhoek
  brain.screen.set_cursor(1, 1)
  
  # Print een label en de waarde van de afstand tot het object op dezelfde regel
  brain.screen.print("Afstand (mm): ")
  brain.screen.print(distance_19.object_distance(MM))
  brain.screen.next_row()
  wait(0.5, SECONDS)
VEXcode V5 C++
int main() {

  // Vergroot de lettergrootte voor betere leesbaarheid op het Brain-scherm
  Brain.Screen.setFont(mono40);
  
  while (true) {
  
    // Elke iteratie van de lus wist het scherm
    Brain.Screen.clearScreen();
    
    // Na het wissen van het scherm, zet de printcursor terug naar de linkerbovenhoek
    Brain.Screen.setCursor(1, 1);
    
    // Print een label en de waarde van de afstand tot het object op dezelfde regel
    Brain.Screen.print("Afstand (mm): %.2f", Distance19.objectDistance(mm));
    Brain.Screen.newLine();
    wait(0.5, seconds);
    
  }
  
}

Afdrukken naar de V5 Brain handig als u de waarden wilt zien veranderen terwijl een VEXcode V5-project wordt uitgevoerd. Dit kan u helpen bepalen welke gerapporteerde waarden van de sensor u als parameters in uw project moet gebruiken. Deze printopdrachten kunnen worden ingebouwd in het VEXcode V5-project dat u al hebt gemaakt, zodat u de sensorwaarden op specifieke tijdstippen kunt zien veranderen terwijl de robot beweegt. 

Deze voorbeeldprojecten hierboven laten zien hoe waarden van de afstandssensor naar de V5 Brain kunnen worden afgedrukt. In de opmerkingen bij elk project wordt de voortgang van het project en het gebruik van elke opdracht uitgelegd.

VEXcode V5-blokken
Een VEXcode V5 Blocks-project dat een oneindige lus gebruikt om sensorgegevens naar de console te printen terwijl het project draait. Het eerste deel van het project luidt: Stel bij het opstarten de positie van Rotation15 in op 0 graden. Vervolgens is er een oneindige lus met 3 blokken erin. De codeblokken in de lus lezen de volgende commando's: `print Position (degrees):` op de console, `print Rotation15 position in degrees` op de console en de cursor naar de volgende regel verplaatsen, en wachten tot slot 0,5 seconden.
VEXcode V5 Python
# Begin projectcode

# Reset de rotatiesensor naar 0 aan het begin van het project
rotation_15.set_position(0, DEGREES)

while True:
  # Print een label en de waarde van de afstand tot het object op dezelfde regel
  print("Positie (graden): ", end="")
  print(rotation_15.position(DEGREES))
  
  # Wacht tot de waarde is afgedrukt en herhaal de lus
  wait(0.5, SECONDS)
VEXcode V5 C++
int main() {

  // Reset de rotatiesensor naar 0 aan het begin van het project
  Rotation15.setPosition(0.0, degrees);
  
  while(true) {
  
    // Print een label en de waarde van de afstand tot het object op dezelfde regel
    printf("Positie (graden): %.2f\n", Rotation15.position(degrees));
    
    // Wacht tot de waarde is afgedrukt en herhaal de lus
    wait(0.5, seconds);
    
  }
  
}

afdrukken naar de printconsole in VEXcode V5 wordt aanbevolen wanneer u een VEXcode V5-project uitvoert waarbij de robot NIET beweegt. De V5 Brain moet tijdens de uitvoering van het project aangesloten blijven om naar de Print Console te kunnen afdrukken. Dit is gunstig omdat u de waarden uit het VEXcode V5-venster kunt lezen in plaats van te proberen gegevens uit het Brain-scherm te lezen.

Deze voorbeelden tonen een project dat gegevens afdrukt van de rotatiesensor naar de console in VEXcode V5. 

Zie dit artikel voor meer informatie over het gebruik van de Print Console in VEXcode V5-blokken.


Analyseer en pas gegevens toe

Gebruik vervolgens wat u in de voorgaande stappen hebt geleerd om uw oorspronkelijke project aan te passen. U kunt hulpmiddelen zoals de Help en afdrukgegevens blijven gebruiken, zodat u de sensor effectief kunt gebruiken om uw doel te bereiken.

U kunt ook vragen stellen over uw project om u verder te helpen. Denk aan zaken als:

  • Gebruikt u meer dan < of minder dan > in uw project? Staat het symbool in de goede richting? Als u 'gelijk aan =' gebruikt, probeer het dan te vervangen door groter dan of kleiner dan, om een ​​reeks waarden te gebruiken.
  • Zijn uw parameters correct? Gebruikt u de gegevens van de sensor om uw parameters in te stellen? Heeft u de vervolgkeuzelijst gekozen die u nodig heeft?
  • Controleert u de voorwaarden vaker? Probeer een Forever-lus aan uw project toe te voegen, zodat de voorwaarde herhaaldelijk wordt gecontroleerd wanneer het project wordt uitgevoerd.
  • Loopt uw ​​project vast? Zijn uw voorwaarden goed ingesteld? Als u geneste lussen gebruikt, probeer dan uw project te vereenvoudigen om individueel gedrag te isoleren.
  • Beïnvloeden uw omgevingsomstandigheden de sensor? Is het te licht of te donker? Staan er voorwerpen of mensen in de weg? Probeer uw project op een andere locatie uit te voeren om te zien of dat helpt.
  • Gebruikt u de meest recente versie van uw project? Heeft u uw bijgewerkte project naar de Brain gedownload? Zorg ervoor dat u het project elke keer dat u een wijziging aanbrengt, opnieuw downloadt.
  • Ontdekt u de juiste kleur? Rapporteert de sensor een andere kleur dan de kleur die u in uw project heeft? Probeer de kleurparameter te wijzigen of gebruik een reeks tintwaarden om te zien of dat helpt.
  • Detecteer je een object binnen het gezichtsveld van de sensor? Bedenk dat het gezichtsveld meebeweegt met de beweging van de robot.
  • Maakt u gebruik van een wachtblok terwijl u een voorwaarde controleert? Zorg ervoor dat u niet-wachtende blokken in een project gebruikt bij het controleren op een voorwaarde. Lees dit artikel voor meer informatie over wachtende versus niet-wachtende blokken in VEXcode V5.
  • Als u in blokken codeert, is uw hele stapel dan aan het blok met {When started} hoed gekoppeld? Blokken werken alleen als ze verbonden zijn. Je kunt luisteren naar een klikgeluid wanneer je blokken sleept en ze met elkaar verbindt.

Terwijl u deze vragen beantwoordt, moet u één ding tegelijk in uw project veranderen, het testen en vervolgens evalueren of die verandering effectief was. Door uw project regelmatig te testen, kunt u gemakkelijker zien hoe uw code verband houdt met het gedrag van de robot.  Mogelijk moet u de stappen in het probleemoplossingsproces meerdere keren herhalen om uw probleem op te lossen, en dat is prima. Elke iteratie zal u helpen meer te leren over de sensor die u gebruikt en hoe u deze codeert in VEXcode V5.

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

Last Updated: