I’m looking for the most straightforward way to wirelessly send data from a PC to a robot with a VEX Cortex, while the robot is running. My use-case is I want to send external sensor data (e.g., simulated GPS position, waypoints) to the Cortex. Bidirectional communication is not critical, but it would be a plus. This is for an academic project and is not associated with competition.
I’ve seen some similar discussion here on these forums [1][2], but no definitive solution. To recap, the methods I’ve seen suggested are:
[INDENT]Using the VEXNet v1, connect the PC to the programming port of the joystick–which in theory is said to function as a wireless serial link.
Use the I2C or UART port on the Cortex, together with some external radio equipment (Xbee, Bluetooth, etc.) and use a custom library/protocol for communicating with the Cortex.[/INDENT]
My questions are:
Has this been done before, and is this a solved problem? Since VEX offers such a versatile hardware platform, I was surprised not to find more documented examples of interfacing it with higher-power computing for either robotics research or university-level education.
Is there an option that would let me work in a standard environment like RobotC/Easy-C, or will I have to use alternative firmware? As my goal here is just to add additional (virtual) sensor inputs for students to work with, I’d rather not pull the rug out from under their existing VEX experience, if I don’t have to.
Which approach is recommended? I haven’t worked with VEX much since the initial product launch, quite a number of years ago now. I’d appreciate any intuition that more up-to-date users can offer.
Last season we used a VEX wireless programming cable to do this. You’d plug it into the program port on the controller, then use VEXNet to link the controller to the Cortex. It worked the same as having the Cortex plugged straight in to the controller.
When connected in this way, how does the Cortex present on the PC for establishing communication via a program other than an IDE? For example, does it show up as a virtual COM port?