Im interested in doing a computer science project with vex, since I’m very familiar with vex (competed in FVC for two years) and my school already has the resources. However, we currently use easyC, which is extremely limited and wont allow for advanced algorithms (arrays, arraylists, matrixes, math functions, etc.)
As of now i only know Java, but C cant be too hard to learn to program specific algorithms/tasks for vex…I’m wondering though, before I buy the MPLABS software, if it has the ability to do object-oriented programs (creating multiple instances and classess) as well as the ability to make arrays and do math functions such as sin, cos, etc. Is it a true compiler with the latest C version that has all the class functions?
MPLAB supports PIC18 C and C30 C compilers, which are ANSI C compatible. These C compilers do support trigonometric and floating point functions (IEEE Floats), but Microchip unfortunately does not support object oriented C++. The MPLAB IDE is an excellent tool that also allows you to run your application using a simulator before you flash it to the PIC MCU.
In addition it provides in-circuit-debugging using the ICD2, which lets you set break points, single step, and watch variables.
The problem is that PIC18F and dsPIC30 MCUs don’t have enough SRAM and Flash to handle Object Oriented languages such as C++ and JAVA. The Parallax JSTAMP or the Javelin MCUs or 32-Bit ARM boards such as the Stellaris ARM do have the resources and memory and do support the JAVA and C++ compilers.
Another option which I am currently exploring is to use a Laptop as the host that runs Microsoft Visual C++ Vex applications and communicate with the Vex robot via a wireless UART (XBEE) or a WiFi board.
I used the Stellaris in the Circuit Cellar Stellaris contest. They provided me a single board, which is very low cost for a 50 MHz 32-Bit ARM core. The board used the USB interface for programming/debugging its flash. In addition, it provided a brilliant AMBER OLED display with three push buttons. Some high end ARM based boards from TI and Philips even run an embedded Linux operating system.
Another board you can program in C++ is the 16-Bit Renessas M16C board. Renessas will send you a complete development kit if you qualify for their sampling criteria. Any of these boards will allow you to control your Vex projects because they also have PWM, QEI and UARTS.