I’ve played around with the Vex a few years ago, but would like to get into the programming aspect of it. I’m familiar with Java and C++, and would prefer to simply write the code myself, and not have to use the GUI. Can I do with with EasyC? And if so, How? (I’m using the trial version)
Thank you for your info. Yes, I’m looking to program without the GUI. I havea trial of easyC Pro, but can’t seem to figure out how to edit the main.c in the text editor. It isn’t listed under source files, just as a block diagram.
Perhaps you can tell me how to get the main block diagram into c?
You might want to look at using RobotC. I made the move from MPLabs/EditPlus editor to it without a lot of problems. I look at the RobotC framework as less of a GUI and more of a fancy editor.
It works well on low power machines. We have a stack of older Dell laptops ( 800mhz) running XP and it does well.
Actually, I just set up the MPLAB from the link above, and it looks to be exactly what I want, however you say you moved from MPLAB to ROBOTC?
May I ask what the differences are?
Also, where can I find documentation in regards to programming the robots? As in, all the available commands, built in methods, etc.
And one last question…the Microcontroller I have is probably 3-4 years old. (Maybe more) Will it still work? do I need to update it’s firmware? Will I need to buy an updated one?
Let me back up a little and say that I used MPLabs and the WPILibrary code for programming. The WPILibrary is a set of routines that you can call that manages the ports. So rather than doing the timers and pushing stuff into ports you can make more human friendly calls.
The WPILibrary is at the heart of EasyC, so the functions you see in EasyC are functions that you can call directly.
RobotC has a series of functions that you can call that manage the interface to the robot. It understands how to get data from the transmitter channels and get to the motors. There is also calls to get data from the sensors.
The editor is easy to use and it is context sensitive and will guess at what you are trying to enter, when it’s right just hit enter and it fills in the rest for you. For new programmers its great since it helps them along.
To be honest I’ve had a running “discussion” with my robot team partner. He is a EasyC guru. I’ve seen him take a robot without code, a student that has never programmed and within 30 mins have the robot up and running with the student doing 99% of the work. The drag and drop ability is very cool.
On the other hand I’ve been banging C code out since the 70’s so I want full control of what I’m doing. RobotC is the best of both worlds. I can hand craft C code, he can use the 100’s of sample programs and autocomplete to allow a student to build robot code. A few days ago he had one of his students program a protobot clone from scratch. 20 minutes of effort and the robot was done.
As far as firmware goes, yes you will need to use the RobotC firmware. It comes with the package and is easy to do. Note RobotC will NOT work if you don’t use the firmware that comes with the compiler and it appears to be version sensitive. When in doubt download the firmware.
There is a 30 day free version of RobotC and it comes with all the documentation, sample programs, etc.
My robot is now four years old at this point, so your controller should be good for awhile also.
Thank you for the great info! I went ahead and purchased the ROBOTC + Hardware kit.
Did you look at the documetation and other information first? In any case I think you will be happy with it.
*May I ask, what are some of the more advanced things you’ve been able to accomplish with the Vex System?
*
We’ve built some interesting projects. I’ve been able to get a GPS attached to the controller and some rough direction location control of the robot.
But I have to say the biggest thing I’ve accomplished in the the last three years is get about 100 new roboteers interested in robots.
*Just to give me a few ideas on some challenges I can try.
*
There is no limit to the challenges. Build a Clean Sweep robot. Build a robot that runs around your building without leaving the sidewalk and stops when it runs into people. Build a robot that climbs stairs. Build a robot that brushes the cat. Build a robot that folds shirts. Build a robot that decorates hard boiled eggs. Build a robot that plays a video game. Build a robot that does research like the Mars Rover. Build a robot that can travel a figure 8 road course without crashing. Build a second one and race them.
Limitless things to build. Take pictures and post them all.
I have not been able to actively pursue my hobbies for quite a while. Now I find a little time to play and am having to start over learning the tools from scratch. RobotC looks interesting, but the question I have is, does it allow you direct access to the hardware (ie interrupt handlers, ports and other registers?)
If there is Library Support, you do have “access”…
This term comes to mind, “Metacode”, but I can not find much “firm support” of the term as I remember it…
RobotC is not a Meta Compiler, but definitely generates a type of Meta Code, in the sense that the RobotC Compiler does not generate Machine Code for the PIC Microprocessor, but generates Code that the RobotC Virtual Machine executes.
This makes programing the Vex (or Lego NXT) a Two Step Process, after downloading the Master Code (on the Vex, I don’t think the Lego NXT has Master Code).
Just for a contrast, EasyC and MPLAB both use the MCC18 compiler to generate Machine Code for the PIC 18F8520 in the Vex Controller.
After updating the Vex Master Code (RobotC calls this a “IFI Master Firmware File”), you then need to Update the RobotC Virtual Machine (called the “IFI Firmware File”). Then you can “compile” the “RobotC Program” and download it to the Vex Controller.
This makes the “program” downloads very quick, because only little amounts of “code” are actually downloaded… But you are limited to what functions the Vex Virtual Machine supports…
OTOH, a License for RobotC is only $30.00 (USD), so you might want to get it just so that you can experiment with it…
Download the latest RobotC, install it and take a look through the Include Directory