Problemen oplossen met VEX EXP-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 EXP-sensoren:

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


Controleer 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

EXP Clawbot bouwt een voertuig dat over een veld rijdt. Aan de robot is een optische sensor bevestigd die oplicht en naar een rode Buckyball voor zich wijst.

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 hersenscherm wordt weergegeven in het menu Apparaten, waarbij een optische sensor is geselecteerd.

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

de stappen in dit artikel om toegang te krijgen tot het scherm Apparaten. Zodra het Apparatenscherm geopend is, kijk of de sensor gegevens rapporteert.

Schema van een EXP Brain aangesloten op een EXP optische sensor.

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 u heeft vastgesteld dat de sensor met succes op de robot is geplaatst en aangesloten, kunt u vervolgens naar het VEXcode EXP-project kijken. 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 EXP-project toepast, test u uw project opnieuw om te zien of het probleem hiermee is opgelost.

Controleer firmware en configuratie

VEXcode EXP Devices-menu met een lange lijst met aangesloten apparaten. Met behulp van dit menu kunt u controleren of elke sensor goed is aangesloten en welke specifieke poort deze op de Brain heeft.

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

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

VEXcode Blocks Voorbeeldprojectenmenu met een verscheidenheid aan projecten in verschillende categorieën om uit te kiezen. De categorie 'Sensing' 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 EXP Blocks, voorbeeldprojecten en sjablonen, dit artikel.

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

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

VEXcode EXP 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 bumperschakelaar wordt gebruikt om te detecteren wanneer de schakelaar wordt ingedrukt, zodat de robot kan stoppen met rijden wanneer deze in contact komt met een object.

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 EXP-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 EXP. 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 EXP met het Help-menu geopend en het blok 'Bumper indrukken' geselecteerd. Er worden beschrijvingen van het blok en hoe het gebruikt kan worden getoond, samen met afbeeldingen van voorbeeldgebruiken.

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 EXP-blokken.

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

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. Zie hieronder een voorbeeld van het afdrukken naar de EXP Brain en vervolgens naar de Print Console.

VEXcode EXP-blokken
VEXcode EXP blokkeert projecten die een When started-blok gebruiken om sensorgegevens live af te drukken terwijl het project draait. Het project heeft een When started-blok gevolgd door 4 blokken in een Forever-lus. In de lus is er eerst een opmerkingenblok met de tekst 'Druk de rolwaarde van de traagheidssensor af op de hersenen', en ga vervolgens naar de volgende rij. Vervolgens leest een Print-blok de print BrainInertial-oriëntatie van de rol op Brain en plaatst de cursor op de volgende rij. Vervolgens verschijnt een opmerkingenblok met de tekst Wacht tot de waarde is afgedrukt en herhaal de lus. Ten slotte is er een Wait-blok met de tekst wait 0,1 seconden.
VEXcode EXP Python
while True:
# Vergroot de lettergrootte voor leesbaarheid op het Brain Screen.
brain.screen.set_font(FontType.MONO40)

# Druk de rolwaarde van de traagheidssensor af op het Brain Screen en ga dan naar de volgende rij.
brain.screen.print(brain_inertial.orientation(ROLL, DEGREES), precision=6 if vexcode_brain_precision is None else vexcode_brain_precision))
brain.screen.next_row()

# Wacht tot de waarde is afgedrukt en herhaal de lus.
wait(0.1, SECONDS)
wait(20, MSEC)
VEXcode EXP C++
int main() {
while(true) {

// Vergroot de lettergrootte voor leesbaarheid op het Brain Screen.
Brain.Screen.setFont(mono40);

// Druk de rolwaarde van de traagheidssensor af op het Brain Screen en ga vervolgens naar de volgende rij.
Brain.Screen.print(BrainInertial.orientation(roll, degrees));
Brain.Screen.newLine();

// Wacht tot de waarde is afgedrukt en herhaal de lus.
wait(0.1, seconds);
} }

Afdrukken naar de EXP Brain is handig als u de waarden wilt zien veranderen terwijl een VEXcode EXP-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 EXP-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 traagheidssensor naar de EXP Brain kunnen worden afgedrukt. In de opmerkingen bij elk project wordt de voortgang van het project en het gebruik van elke opdracht uitgelegd.

VEXcode EXP-blokken
VEXcode EXP blokkeert projecten die een When started-blok gebruiken om sensorgegevens live af te drukken terwijl het project draait. Het project heeft een When started-blok gevolgd door 4 blokken in een Forever-lus. In de lus staat eerst een opmerkingenblok met de tekst 'Druk de waarde van de afstandssensor af op de console' en ga vervolgens naar de volgende rij. Vervolgens leest een Print-blok de objectafstand in mm op de console en plaatst de cursor op de volgende rij. Vervolgens verschijnt een opmerkingenblok met de tekst Wacht tot de waarde is afgedrukt en herhaal de lus. Ten slotte is er een Wait-blok met de tekst wait 0,1 seconden.
VEXcode EXP Python
while True:
# Druk de waarde van de afstandssensor af op de console en ga vervolgens naar de volgende rij.
print(print_to_console_number_format().format(distance_5.object_distance(MM)))

# Wacht tot de waarde is afgedrukt en herhaal de lus.
wait(0.1, SECONDS)
wait(20, MSEC)
VEXcode EXP C++
int main() {
while (true) {
// Druk de rolwaarde van de traagheidssensor af op de Brain en ga vervolgens naar de volgende rij.
printf(printToConsole_numberFormat(),(Distance5.objectDistance(mm)));
printf("\n");

// Wacht tot de waarde is afgedrukt en herhaal de lus.
wait(0.1, seconds);
} }

Afdrukken naar Print Console in VEXcode EXP wordt aanbevolen als u een VEXcode EXP-project uitvoert waarbij de robot NIET beweegt. De EXP Brain moet tijdens de uitvoering van het project aangesloten blijven om naar de Print Console te kunnen afdrukken. Dit is handig omdat u de waarden uit het VEXcode EXP-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 afstandssensor naar de console in VEXcode EXP. 

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

Zie dit artikel voor meer informatie over het gebruik van de Print Console in VEXcode EXP Python.


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. Bekijk dit artikel voor meer informatie over wachtende versus niet-wachtende blokken in VEXcode EXP.
  • 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 helpt u meer te leren over de sensor die u gebruikt en hoe u deze codeert in VEXcode EXP.

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

Last Updated: