The VEX Cortex is a nice platform made by VEX Robotics. It is supported in two programming environments, one of which is ROBOTC. Much to my dismay, the master firmware does not support I2C, which is why ROBOTC does not support it. I don’t really like it when someone tells me I can’t do something, so I went ahead and remedied the situation.
I spent a few evenings writing and tinkering in ROBOTC to write my own bit-banged I2C implementation, which much to my surprise, worked very well. First I tested it with the Mindsensors Magic Wand (above left) and later also with the Holit Data Systems Motor MUX and Mindsensors NXT Servo Controller (above right). Jesse Flot from Robotics Academy was kind enough to send me some old VEX cables so I could splice two of them into an NXT cable for I2C. I will post a HOWTO for that at a later date.
As you can see in the right picture, I was already contemplating controlling the omniwheeled robot with the Motor MUX and so I did.
The robot is remote controlled via VEXnet over Wifi (which is a totally awesome feature which I wish the NXT had). The short video was taken at the RobotMC meeting of 19 March 2011, which happened to coincide with an information day for the technical university where we hold our meetings.
The coolest part about it is that my driver suite is almost completely transparently portable to the VEX Cortex platform once you switch out the NXT I2C subsystem functions for the Cortex specific ones. Some NXT dependencies do need to be removed and made more generic. I intend to work on that in the next few weeks. That would make a very wide range of new sensors available to the VEX Cortex platform.
[…] Original article: [LINK] […]
Can you get that to work with the NXTBees?
The NXTBees work with RS485, this is I2C. The VEX has two perfectly fine UARTs, so you could use those instead.
So using UART you can have two Vex microcontrollers talking to each other?
I guess you could, I’ve never tried it 🙂
Really nice work, Xander.
Thanks! It’s a lot of fun to make a platform do stuff it wasn’t designed for 🙂
Very nice. =)
What program did you use for control?
I have built a drive similar to yours using all VEX parts (cortex), but I am having trouble programming the drive.
I have found lots of information on how to program similar 4-wheeled drive, but none for controlling a 3-wheeled drive via joystick like you have.
Could I get a copy of the code that you used?
Thanks,
Jordan
I am not sure I understand what you mean by “what program did you use for control?”. I used ROBOTC 🙂
You can download a program that does something similar to the one in the video. The function you’re going to find useful is getMotorSpeeds();
You can download the file here: http://dl.dropbox.com/u/13282461/blog/Omni-object-track.c