When your robot is not behaving as intended while using sensor feedback, you can follow a step-by-step troubleshooting procedure to find and fix your issues. This article will explain the steps in a troubleshooting process, and provide tips for how to use these steps.
The steps of this process are:
- Identify the problem
- Check hardware
- Check software
- Analyze and apply data
Identify the Problem
The first step to troubleshooting your sensor is to identify which sensor is causing the problem. Compare the observed robot behavior with the intended robot behavior. Is the problematic behavior caused by a sensor? If so, which sensor? If you need more information to determine which sensor may be the problem, read the article(s) below related to the sensors on your robot.
VEX GO Sensors:
- Coding with the VEX GO Eye Sensor
- Coding with the VEX GO LED Bumper
- Coding with the VEX GO Brain
- Coding with the VEX GO Electromagnet
Once you have identified which sensor is causing the unintended behavior, you can move forward in the process.
Check Hardware
The second step is to check the hardware on the robot to be sure that the sensor can function as intended. Each of the following hardware considerations could be affecting the functionality of your sensor.
Check Sensor Placement
Begin by looking at where the sensor is located on your robot. Is the sensor being blocked by anything, like another part of your robot? Ensure that the sensor has the space needed to operate as intended.
As shown here, the Eye Sensor has a clear line of vision to the object it is meant to detect.
Check Sensor Connection
Test the sensor’s functionality by looking at the data reported in the VEX Classroom App. Once you have selected the VEX GO Brain you are troubleshooting, select 'Show Device Info' to view the data for sensors connected to that Brain. This can help you validate that the sensor is plugged in and working.
To learn more about the device info shown in the VEX Classroom App view this article.
Once you have the Device Info displayed in the Classroom App, see if the sensor is reporting data.
If not, ensure your sensors are plugged in correctly. When plugging in sensors, you should hear a snap when the sensor’s locking tab is fully engaged in a port. Be sure the port that the sensor is connected to matches what is shown in the Classroom App as well. View this article to learn more about how each of the sensors connects to the GO Brain.
You can also try swapping out the sensor you are using with another to see if that resolves your issue.
If you changed something with your sensor placement or sensor connection, test your project again to see if this resolved the issue. If your sensor placement and connection did not change, move onto the next step to continue the troubleshooting process.
Check Software
Once you have identified that the sensor is placed on and connected to the robot successfully, you can look to the VEXcode GO project next. Iterating on a project can help you to ensure that the data from the sensor is being used effectively in your project. The following strategies can help you with coding your sensor.
If you apply any of these strategies to your VEXcode GO project, test your project again to see if this resolved the issue.
Check Firmware and Configuration
Begin by ensuring that your GO Brain’s firmware is up to date.
The Brain will automatically update when connected to VEXcode GO, as shown in this image.
You can also check and update your GO Brain’s firmware using the VEX Classroom App.
View this article to learn more about updating the GO Brain firmware with the VEX Classroom App.
Now that you are sure all devices are correctly connected to the Brain, check the Device Configuration in VEXcode GO. View the articles in this section to learn more about configuring your robot in VEXcode GO.
Check to be sure all of the sensors are present in the configuration. Then, check to be sure each one is connected to the correct port.
Change any incorrect device configurations.
Run an Example Project
Open an Example Project that uses the sensor you are troubleshooting. Select 'File' then 'Open Examples' to view the Example Projects in VEXcode GO.
Open an Example Project that uses the sensor you are troubleshooting. You can select the ‘Sensing’ category to filter example projects.
Once open, read the Note to determine if the functionality in the example project aligns with what you are trying to do with the sensor.
In the example project shown here, the note indicates that the Eye Sensor is being used to detect an object so that the robot can stop driving and turn when an obstacle is detected.
Run the example project and observe the robot behavior. Then look at the project to see how the sensor data is being used in order to cause the observed behaviors. You may want to run the example project multiple times to help with this.
You may also want to try to create your own simplified project to apply what you have learned from the example project to your task.
Use Other VEXcode GO Tools
There are also tools and strategies that you can use to help you as you learn more about coding your sensor in VEXcode GO. You can learn about the blocks or commands in the Toolbox individually by using the Help. You can also view sensor data as a project is running to learn more about what the sensor is reporting.
The Help
Read the Help for the blocks or commands in the example project, or in your project to learn about the data that is used, what values the command will report and how to view those values, and examples of how to use the command in a project.
View this article to learn more about accessing Help in VEXcode GO.
Tutorials
View a Tutorial video about the sensor you are using. Select the 'Tutorials' icon in the Toolbar to view the Tutorials in VEXcode GO.
Open the Tutorial that uses the sensor or behavior you are troubleshooting. The Tutorial will then open in VEXcode GO for you to view.
View this article to learn more about viewing Tutorial videos in VEXcode GO.
Monitoring and Printing Data
You can also view data from the sensor as the example project or your project is running, to help you better understand what the sensor is reporting in real time. This can help you determine what reported values from the sensor to use as parameters in your project.
Viewing sensor data in the Monitor Console is helpful when you want to see the values changing as a VEXcode GO project is running. This can help you determine what reported values from the sensor to use as parameters in your project. Blocks in the Sensing category of the Toolbox can be added to the Monitor Console by selecting and dragging the block to the Monitor Console icon in the Workspace.
View this article to learn more about viewing sensor values in the Monitor Console in VEXcode GO.
Printing to the Print Console in VEXcode GO be used to display information as a project is running, to help provide visual cues to help see what is happening in a VEXcode GO project at a specific moment in a project. This can help make the visual connection between the project and the actions of the VEX GO Robot easier to see.
In the image shown here, data about the robot's heading at various times while the project is run is being printed. Blocks from the 'Looks' category of the Toolbox are used to print to the Print Console in VEXcode GO.
View this article for more information about using the Print Console in VEXcode GO.
Analyze and Apply Data
Next, use what you have learned in the previous steps to adjust your original project. You can continue to use tools like the Help and monitoring or printing data to enable you to use the sensor effectively to accomplish your goal.
You can also ask questions about your project to help you move forward. Think about things like:
- Is your whole stack attached to the {When started} hat block? Blocks will only run when they are connected. You can listen for a click sound when you drag blocks and connect them together.
- Did you try stepping through your project? Use the 'Step' button to run your project one block at a time. This can slow down the project execution to make it easier to see where your project is having a problem, or where issues with the project flow might be. View this article to learn more about how to step through a VEXcode GO project.
- Is your project getting stuck? Are your conditions set correctly? If you are using nested loops, try simplifying your project to isolate individual behaviors.
- Are your parameters correct? Are you using the data from the sensor to set your parameters? Did you choose the dropdown option that you need?
- Are your environmental conditions influencing the sensor? Is it too bright or too dark? Are there objects or people in the way? Try running your project in a different location to see if that helps.
- Are you using greater than < or less than > in your project? Is the symbol facing the right direction? If you are using equal to = try replacing it with a greater than or less than, to use a range of values.
- Are you checking the conditions more than once? Try adding a Forever loop to your project, so that the condition is checked repeatedly when the project is run.
- Are you detecting the correct color? Is the sensor reporting a different color than the one you have in your project? Try changing the color parameter, or using a range of hue values, to see if that helps.
- Are you detecting an object within the sensor’s field of view? Remember that the field of view moves in conjunction with the movement of the robot.
- Are you using a waiting block while checking a condition? Be sure to use non-waiting blocks in a project when checking for a condition. View this article to learn more about waiting vs. non-waiting blocks in VEXcode GO.
As you answer these questions, be sure to change one thing in your project at a time, test it, then evaluate whether that change was effective. Testing your project frequently can help you to more easily see how your code is connected to the robot’s behaviors. You may need to repeat steps in the troubleshooting process multiple times to solve your problem, and that is ok. Each iteration will help you learn more about the sensor you are using and how to code it in VEXcode GO.