It seem to be quite useless =S
Opinions vary.
Many teams are able to teach enough programming skills using EasyC to allow students to program their whole robot including reasonable autonomous modes.
Our students used the VEX program in the fall the learn about robotics, mechanisms, and specifically, EasyC programming. The EasyC software allows you to write your code using drag-and-drop type commands, similar to what the students learned way back during LEGO League. One of the great things about EasyC is that it comes preloaded with modules for the camera, gear tooth sensors, wheel encoders, and a slew of other sensors. Also, you’re able to use the same interface for both FVC and FRC. The same program can even be used to run both robots, as EasyC is able to switch back and forth between the two.
If you can’t find a use for EasyC, then you probably aren’t using it correctly, or to it’s full potential. If you have more questions about it, ask anyone from Team 40. They have a little more insight into the software, seeing as how they wrote it…
BEN
It seem to be quite useless =S
I’m sorry, but I have to completely disagree with that statement. EasyC PRO, just like MPLAB, is just a tool that helps you write code. And from my experiences, EasyC PRO just makes that process a lot more efficient.
Every season prior to the current season, we programmed our robot in MPLAB. We usually had a robot that worked, and we usually had some sort of a simple dead reckoning autonomous mode. It worked, but it was clearly quite time consuming to develop amazing code in MPLAB.
This fall, as a beta tester for EasyC PRO, I decided to take out some of the many sensors that our team never used on our FRC robot, like gyros and accelerometers and start programming them in EasyC PRO. Literally within hours, I had PID Control for the gyro perfected. I know for a fact that if I tried that in MPLAB it would have taken much longer!
The amazing thing I love in EasyC is the speed at which you can get code done. Deep down inside I’m not an uber-programmer geek. I’m not one of those people who incessantly insists that they develop 100% of their code in a text editor in Linux. I honestly don’t care how the code is developed, all I care about is the end result. And if I spend 1 hour in EasyC PRO and accomplish twice as much, then you better bet that’s what I going to use to program the robot!
Even the main programming mentor on our team - a college student pursuing a degree in computer science - has realized how useful and amazing EasyC PRO is, especially their built in color-syntax text editor. I gave him the PID control code I developed in the fall and already we have the basis for an amazing closed-loop feedback and control system for our robot’s tele-operated and autonomous modes, at a degree light years ahead of the sophistication we could have achieved in MPLAB.
So in the end it’s up to your team to decide. But just like the Mac vs. PC vs. Linux debate, choose your opinion only after you’ve extensively used each product. For everyone that does not like EasyC, open your mind and take EasyC PRO for a test run for at least a few days.
I think its not good for use by experienced programmers. I actually hate using it I can write something in MPLab in less than 1/4 the time it takes in easyC, but I also like DOS.
EasyC is GREAT for rookies and people who don’t know C. I have used it as a training aid because it still uses C syntax, but it is so simple.
EasyC has its uses, but I will never run it on our robot.
i use it for simple joystick to pwm mappings, and for relay mapping. anything more complicated I start to dig into mplab.
…but he didn’t reuse that PID code, right?
I’ve seen a lot of different comments here on CD lately that give me the impression that people are either conveniently ignoring R76 (not necessarily saying you are) or else they’re reading it differently than I am.
I’m reading R76 the same way you are Dave. We started this year’s repository by checking in the default code from IFI, then re-writing the elements we could use from last year. Despite how silly it is to re-write the same joystick PWM curves to give our drivers the same response they loved last year, C code is no different from a CAD drawing of a wheel you want to re-use from previous designs. I don’t necessarily agree with R76, but you’re not alone in your interpretation.
Sorry for the thread hijack
Don’t worry, we are in full compliance with <R76>.
I developed the code to run on the Vex controller in EasyC PRO. To use it on a FRC Controller it would have to be retyped up, and several changes (most notably the joystick mapping) would have to be made for it to run on the FRC controller. It was not until after the Kickoff event in which I gave the code to our programming mentor. By retyping up the code, we now satisify the requirements for .
Basically the code I wrote in the fall was “prototype” code that was completely rewritten during the build season.
Have you used Easy C Pro?
There is no way you can write something in MPLAB faster. I admit that I have made the same statement about never running easy c on my teams robot but I can no longer stand by that, If I was on another team where I was primarily doing programming, I would use EasyC Pro, just because I have too much to do in a day to spend an in necessary amount of time on coding for the team. It has nothing to do with my programming abilities, it has every thing to do with the fact that I value my time. I spend atleast a couple of hours a day writing code for schoo, research, robotics, and personal use. I saw limitations in original easy c but they are gone. Now if only Intellitek could write EasyC++, EasyJava, EasyPython, and EasyVisualC# I could cut my time spent writing code down significantly.
James
There are certain things that, from what I have seen, can not be accomplished in EasyC, but again, these are things that an experienced programmer would feel the need to do.
Things like custom control of the 2nd serial port, I think you can’t do. Also, the limit of only one gyro, and the limit of only the TRACK camera command.
When I code, I like to know exactly what is going on. The WPIlib source code is not available, so I don’t know what is happening behind the scenes.
I think EasyC is a great tool for those not accustomed to syntax languages. It helps in visualizing what is happening in the code. It is very far from useless.
Easy C pro allows you to edit and write your own code in C. As I understand it, if you can do it in MPLAB then you can do it in EasyC PRO
Last year we did everything in MPLab and had a killer autonomous mode. This year we have two professional programmers, one with Lockheed Martin and one with Electronic Arts.
This year we are using EasyC Pro. The programmers are amazed what they can do and it makes it easier for the kids to program too.
We are getting ready to release an update to easyC PRO that allows you to select which gyro your are using 80, 150, or 300. Also allows for adjusting the dead band.
Also, you can send anything you want to the camera. If you look in API.h you will see WriteSerialPortTwo(unsigned char). You can send any message you want to the camera. Brad also added a feature to WPILIB to make that even easier. Namely the ability to create virtual blinders for the camera to shut off sections of the CCD to ignore a items from the field of view.
I honestly don’t believe that there is anything you can’t do in easyC that is applicable to FIRST other than a “Because I Can” type item.
Let’s look at training wheels for a bicycle.
Not very useful for someone who knows how to ride well.
Indispensable for people who are just starting.
EasyC parallels this train of thought.
Fantastic, we look forward to seeing the updates. We have a strong programming team of professional adult programmers, college programmers and high school programmers.
They are all liking easyc pro because we can do such fast development. In one Saturday we developed robots driving up to the light, wall following and top secret thing to allow us to place the ring on the spider leg. We are using it to develop the tools we need to when we put the final product together.
So keep up the good work, team 1902 congratulates you. Tell this thread when the updates are ready.
I am one of those programmers that “switched” so to speak, last year I was really skeptical of it and in fact I swore I would never touch the thing. This year I really don’t know what prompted me to try it but I did, and the speed at which I could do what I did last year was phenomenal. I do miss the joy of coding on MPLAB, but I think that joy has been outweighed by the sheer quickness of easyC pro… and its not just for rookies, you can do just as much with easyC as MPLAB (name one thing you can’t and I’ll give my best shot at it).
ok here is the thing. any thing you can do in MP lab I can do in easyC . . and Ill do in in 1/10 the time. its also alot easier to show some one easyC flowcharts than to try to explain 100+ lines of C.
I dont use easyC because Im not an experienced coder(3rd year CS/EE student) I use easy C because I want it done now, and not 2 days from now. yes I could deal with all the stress of getting gyro bias or messing with kevins camera code(btw with EasyC you could plug your servos in to the camera board and not have to run 2 more wires to the RC), then trying to get the gyro code and the camera code and the gear tooth sensor code working together. Or I can just drop in a camera block, a gyro block and a geartooth block, and have it all up and running in 5 min.
the real thing here is easyC is different than what youve been doing before. but if you give it half a chance(on its own terms, that means not wishing it had this or that, but accepting it for what it does have ) youll find that its not only good its GREAT!
I have to weigh in on the con side, here.
I have, in fact, used EasyC. I can see its usefulness at a high level. But as you start drilling down, it becomes more cumbersome.
Examples:
Math - Everything has to be in temporary variables or you inline C code.
Preprocessing - I didn’t look much into this, but I’m not sure about EasyC’s preprocessor support. I use it extensively, and, frankly, I’m not sure I could do in EasyC what I do in text editors (again, inline C doesn’t count).
Inline Assembly - I have, in fact, briefly considered this for real robot code from time to time. I somehow doubt that EasyC supports it.
Now, comparing EasyC to MPLAB is not really a fair assessment. MPLAB is some of the worst software I have had to the misfortune of working with (along with MCC18, CoreChart, and IFI Loader). Comparing EasyC to, say, a well-equipped copy of Eclipse (or some of the other IDE) would probably be fair (maybe even unfair against EasyC!). I doubt EasyC could handle Subversion, compiling for multiple controllers, concurrently open projects, or the search capabilities (Where is this thing declared and defined? Where do I reference it?). That’s not even getting into the multiple languages Eclipse can support (I have used python in my FIRST code, and not for the Makefile).
The only way I saw myself using EasyC was to write the high-level code and writing the actual hardware “drivers” in a separate library in C.
Of course, this is also with 3 years of code behind me. I don’t have a “library”, per se, but I do have a set of macros, functions, etc. that I reuse, plus a “standard” code layout. I mean, how many different ways can you implement a PID loop?
As for the “EasyC challenge”, there’s a difference between “can do in EasyC”, “can do easily in EasyC”, and “have to use inline C code to do it”. eg, You can do some sick stuff in the preprocessor:
#define LINE(txt) #txt "
"
#define PID_VARS(prefix) int prefix##_pid_p, prefix##_pid_d; static int prefix##_pid_i
#define MSG(fmt) #__FILE__ ":" #__LINE__ ": " #fmt "
"
I have considered using all of these in FIRST code (except the last one, but I really should). (OT: Does MCC18 support variadic macros?)
Please correct me if I’m wrong, here.
My $.02
Great points.
And yes, I believe MCC18 should support them, as it uses the GNU cpp (look for the source code, it comes with every install ).