Log in

View Full Version : What is Easy C good for?


SoD
25-01-2007, 10:40
It seem to be quite useless =S

dcbrown
25-01-2007, 11:20
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.

Ben Piecuch
25-01-2007, 11:35
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

artdutra04
25-01-2007, 11:47
It seem to be quite useless =SI'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. ;)

EHaskins
25-01-2007, 12:01
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.

Binome
25-01-2007, 12:02
i use it for simple joystick to pwm mappings, and for relay mapping. anything more complicated I start to dig into mplab.

Dave Flowerday
25-01-2007, 12:05
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.
...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. :confused:

esquared
25-01-2007, 12:15
...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. :confused:

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 :cool:

artdutra04
25-01-2007, 18:29
...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. :confused: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 <R76>.

Basically the code I wrote in the fall was "prototype" code that was completely rewritten during the build season. :)

JamesBrown
25-01-2007, 18:44
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.

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

intellec7
25-01-2007, 18:59
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.

JamesBrown
25-01-2007, 19:18
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

Doug Leppard
25-01-2007, 21:11
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.

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.

Kingofl337
25-01-2007, 22:41
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.

Tom Bottiglieri
25-01-2007, 22:44
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.

Doug Leppard
26-01-2007, 07:15
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.

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.

d.courtney
08-02-2007, 19:57
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).

Stuart
08-02-2007, 20:19
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!

Astronouth7303
09-02-2007, 00:42
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 "\r\n"
#define PID_VARS(prefix) int prefix##_pid_p, prefix##_pid_d; static int prefix##_pid_i
#define MSG(fmt) #__FILE__ ":" #__LINE__ ": " #fmt "\r\n"
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

Shinigami2057
09-02-2007, 00:56
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). 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 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 "\r\n"
#define PID_VARS(prefix) int prefix##_pid_p, prefix##_pid_d; static int prefix##_pid_i
#define MSG(fmt) #__FILE__ ":" #__LINE__ ": " #fmt "\r\n"
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 :cool:).

Astronouth7303
09-02-2007, 01:26
And yes, I believe MCC18 should support them, as it uses the GNU cpp (look for the source code, it comes with every install :cool:).

I'm not sure it's actually GNU cpp (wouldn't that be under GPL?), and I'm pretty sure mcc18 doesn't call cpp18 to do the preprocessing. (Although it might be the source to the preprocessor used internally in mcc18.)

Dave Scheck
09-02-2007, 09:25
(btw with EasyC you could plug your servos in to the camera board and not have to run 2 more wires to the RC)You could do that last year, but they changed that this year
http://forums.usfirst.org/showthread.php?t=1747&highlight=servo
Servos can only be controlled by the provided IFI Robot Controller.

BradAMiller
09-02-2007, 10:06
Here is a different point of view on the usefulness of easyC.

This is not a binary decision: easyC should/shouldn't exist, or easyC is better/worse than eclipse. For some people who are very comfortable writing lots and lots of C code with a good development environment then eclipse makes sense. For those without that experience then I've seen easyC enable them to do things with robots that they would never be able to do without it.

In classes, we used to use MPLab. For the last two years we've introduced easyC. What I found was that on 3-4 person teams, with MPLab and C only 1 or maybe 2 students on a team understood the program they wrote. With easyC, all the team members could participate in programming. easyC lowered the "barrier to entry" for new programmers significantly. Mentors are always telling me that easyC enables the students to write the code instead of the adults.

We did a beta test of easyC last year when it was released. About 10 FRC teams brought their 2005 robots with cameras for a day before the start of the 2006 season. Almost all the teams got the camera working and doing something. Some had it following them while they walked around the room with tetras. The interesting result was that many said that they got further in that one day than in the entire 6 weeks the previous year.

So, Jamie and others, if you're writing code with stuff like this:

#define LINE(txt) #txt "\r\n"
#define PID_VARS(prefix) int prefix##_pid_p, prefix##_pid_d; static int prefix##_pid_i
#define MSG(fmt) #__FILE__ ":" #__LINE__ ": " #fmt "\r\n"

then you should stick with eclipse, and we all aplaud you for the work you're doing making it such a good development environment for FIRST teams.

If you're a team with less programming experience, then I'd argue that easyC can be a huge help and let you realize your goals.

By the way, another model is teams with mixed very skilled programmers and others with less experience. The experienced members might write complex C algorithms and low level code. Then the up-and-coming programmers could use easyC, importing the C code either as a library or source, then write (and understand) the high level operation of the robot using blocks.

65_Xero_Huskie
09-02-2007, 10:20
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

Vex is a good enough statement to say that EasyC is not useless.

Jon236
09-02-2007, 10:24
Brad,

Great answer. As our team's programming mentor, I can certainly verify everything you've said. We have all new programmers this year, and I actually haven't had to write a line of code! Our programmer told me last night how comfortable he feels with EasyC.

Jon Mittelman

yongkimleng
09-02-2007, 11:32
I'd personally used EasyC for vex and must say that its definitely much easier for my role (to teach programming) to the kids! I cleared the basics in <= 1 day.. never could I have done the same with traditional teaching lines of C code and syntax. Not only that, they start coding very fast and must say that I am amazed at the simplicity of basic C building blocks :ahh:

But besides that, not sure if the kids will end up learning proper C syntax or get interested in typing-based coding in future.

Personally prefer MPLAB and Eclipse, typing is faster for me. MPLAB is a terrible GUI IDE, but not complaining too much as Eclipse is quite well developed by the masses. MPLAB is like the basic so I'm not complaining of lack of frills. EasyC has been developed a lot to have templates in the form of boxes, and much integration to ensure that it will work with the processor it is bundled with. Going a level higher to other microcontrollers, one cannot avoid going towards mplab / raw C / ASM programming, unless another takes effort to do the neccessary template legwork to make it easy for the massses to program that particular controller.

I hope there will not be any quarrels/war due to easyc/mplab, its just like mac/PC or C++/java. Both have their advantages and cater to different purposes. Both are useful tools and different learning curves.. different interfaces, different methods of working with your algo... being well versed with both tools would be the best :)

Dave Flowerday
09-02-2007, 11:42
MPLAB is some of the worst software I have had to the misfortune of working with (along with MCC18, CoreChart, and IFI Loader).
The IFI Loader is some of the worst software you've had to work with? Seriously? Trust me, there's a ton of software out there that's worse than it. Personally, I think the IFI Loader is simple, effective, and reliable. Just what I like to see. The only complaint I have about it is that it's built-in terminal window can't seem to keep up with 115200 serial (it has lag, as I'm sure others have noticed).
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!).
Heh, this is definitely a case of "to each his own", because I consider Eclipse to be one of the worst development environments I've had to work with. It's huge and bloated, painfully slow, complicated, and has so many features and gadgets that finding the simple stuff is nearly impossible. Just give me Vim and a command prompt with Make and I'm happy ;)

Donut
09-02-2007, 13:40
I was in the camp of EasyC is a waste, and I'm still partially there because I have no exeprience using EasyC Pro. My main complaint with EasyC was that you couldn't write your own program in it, and since it didn't have support for many non-Vex sensors (I've only used it for Vex) it wasn't useful for working with them.

Now that EasyC Pro has come out and given me most of the things that I wanted to do in the original EasyC but couldn't, I probably wouldn't mind using it. This year's choice was a no brainer as I know MPLAB well and hadn't even seen the features EasyC Pro had, so I didn't bother looking at it.

I believe there's some value in doing coding by hand, but when speed is a necessity EasyC Pro certainly seems a good option.

Tom Bottiglieri
09-02-2007, 14:47
I believe there's some value in doing coding by hand, but when speed is a necessity EasyC Pro certainly seems a good option.
Eh, be careful with that.. EasyC is GREAT at what it does: facilitating robot programming for non experienced programmers. It is also pretty good to throw some quick debugging code up on the robot, to check sensors and such. But for the most part, I have to agree with Jamie. Writing the code by hand will be much faster and much more efficient.

The reason why easyC programs are so fast and easy to set up is not because of its graphical nature, but rather the framework the programs you make sit on top of. WPILib takes a pretty high level approach to programming the robot, and thats where the speed in development comes from. Because you dont have to spend time meddling with interrupts, fast/slow loops, low-level output variables, etc, you can just jump right in and start programming for functions of your robot. If you like what you're seeing with WPILib, keep in mind that you can have the best (or at least what I think is the best) of both worlds. You can import the library into your C projects in your IDE of choice (I use code::blocks), and have it cranking out hex files for the robot in less than 10 minutes.

If you're interested, keep checking back over the next few days.. I will be putting up a default workspace for code::blocks that works right out of the box with WPILib and MCC18. With this you have the ability to use an awesome, middle weight IDE, and select ON THE SPOT which controller you want to use (FRC07, FRC05, VEX) without changing any of your source code.

Donut
09-02-2007, 16:15
Eh, be careful with that.. EasyC is GREAT at what it does: facilitating robot programming for non experienced programmers. It is also pretty good to throw some quick debugging code up on the robot, to check sensors and such. But for the most part, I have to agree with Jamie. Writing the code by hand will be much faster and much more efficient.

When I meant speed I meant as in speed of developing the code; I completely agree that using MPLAB you have more ability to customize your code so that it runs faster and doesn't have any extraneous code as a result of pre-made functions.

Gary Dillard
09-02-2007, 16:25
EasyC (including the WPI Library) has been an invaluable tool for our young team.

At the end of build week 3 we had zero lines of code, which is when I discovered that our software team (all students) had zero experience programming in any language, and had no clue what to do. There are really 2 separate things that need to be taught - programming logic and syntax. My programming experience involves FORTRAN and punch cards, so I had to come up to speed fast and bring them along with me. With EasyC I didn't have to learn syntax (much less teach it) - the program takes care of all of that for me. I could focus on the logic required, drag and drop the functions, and get some working code. I can show them logic, explain it, use it to debug, etc. without having to sweat where the stupid semicolons go.

We got the drive train running in about 2 hours the first day, and code for the entire robot in about another 3 hours a day later. So far everything has worked either the first time or after one debug change. We would be sunk without EasyC.

amateurrobotguy
09-02-2007, 20:08
I just want to get a gauge of what everone else thinks about easyC. I personally can't stand visual drag and drop because of the lack of control that comes with it(same with LabView). Sure, it may be nice for basic conceptual prototyping, but when I need to desensitize the joysticks and install compressor toggle flags, where will easyC place me vs. MPLAB? Please vote if you agree with me....or disagree with me.

Is there any legitimate reason for me to even install easyC that I could not do in MPLAB?

And for the love of God, don't give me a bad rep for being "distasteful"--it has happened to me before and last I checked...America still has a moderate ammount of freedom of speech. Hell, I got a bad rep once with the comment "test".

MikeDubreuil
09-02-2007, 20:40
I think EasyC is a great tool for people who don't want to be embedded software engineers. I helped a Vex team with it this Fall. I plan to use it with my sophomore FRC team, 1973, this season. My team, #125, does not use it.

On the con side... I hate the licensing. One license is not enough for FRC teams. Buying additional licenses seems very difficult and quite frankly expensive. I understand they are pushing this robot curriculum and I think that's great. However, this mentor is having a hard time getting a license.

Kingofl337
09-02-2007, 21:37
Why install easyC?

You could install easyC for just the on-line window alone it allows you to run motors and relays, look at your inputs without one line of code.

Also, it allows experienced programmers to work with students with near zero ability. The can drag blocks while learning C and experienced users can write C code in easyC, Notepad, Eclipse, MPLAB anything and import the .c and .h files into your project.

Also, as I keep saying easyC now has a full C editor. So, if you hate to drag blocks then you don't have to. You can write a program based on WPILIB without ever dragging a single block. Plus you get all features of WPILIB complete with a help file with 14 great tutorials to get you started. Also you can drag blocks from the tree into your C source code and just fill out the config screen and easyC will format the function.

LightWaves1636
09-02-2007, 22:28
For experienced programmers, most likely their preference would be MPLab or something else. For rookies and people who are just beginning to learn C, I think EasyC would be a great way to teach them(especially since the people who do know C are graduating and no else on the team knows how to). Our programmer was teaching it to some of our team mates but it's hard because they just don't get it(it's just who they are). He's way of teaching is to have everyone to have a laptop and learn, but I don't think he gets it that our high school is the school where the "poor" kids go and even beginning to become an even poorer school(student self-discipline, growth of druggies, lack of motivation, etc. It dissappoints me.). The only people who really own laptops are the seniors who are graduating and going onto college. I think our team, especially after the seniors graduate, will get along with EasyC easier then trying to mess with MPLab on their first try on programming, but we'll see.

tdlrali
10-02-2007, 01:11
I agree with most people, EasyC is a great tool for beginners, as it allows them to program the robot without much prior experience.

For anything beyond the basics, however, I want to be able to type my own code with full control over the bot.

kitscuzz
10-02-2007, 02:09
EasyC has it's pluses and minuses. Like most of the more basic languages, its gift, that you don't need to understand everything under the hood to make it work, is also its curse. If you really want to know what you're doing, you can't. It hides what's under the hood to keep it simple.

If you decide to continue with coding in the future, you'll need to understand the complexities of what you're actually doing in order to apply it to other machines. Sure, it's easier, and sometimes it's faster, but you won't always be able to use it. It's something that will help you code this robot, but it's a crutch because it only exists for the robot.

Though I should say that I wholeheartedly support it (though I don't use it myself), all I'm saying is that everyone should remember to look at what you're doing in plain C as well, because C you can take with you. It's a great way to get into the code, and into coding in general, and I love to hear about people getting into the mindset for programming through it. I don't really think there's much benefit in terms of the competition for using either MPLAB or EasyC.

amateurrobotguy
10-02-2007, 02:36
Someone deleted my thread starter info here.... but man, I sure did create a fiery thread :)

"Also, it allows experienced programmers to work with students with near zero ability. The can drag blocks while learning C and experienced users can write C code in easyC, Notepad, Eclipse, MPLAB anything and import the .c and .h files into your project."

I disagree fully with this statement. Our experienced programmer IS a student...me. And why would I use easyC for a file editor when I have Multi-Edit v.9.1...the greatest file editor ever made (undisputed champion). Alls I have to do is click save, go to MPLAB, and click build. And I can guarantee that students with "zero ability" will never be able to do any coding that is meaningful. They would have to have ability, just not knowledge.

I would easily challenge any easyC diehard fan to a coding contest and would probably win too. To prove you don't need to be a CS III nerd to learn MPLAB, here is my background...

I am only in CS I (Visual Basic)... and think it is extremely easy...I picked up MPLAB one Saturday morning and decided I wanted to see what it could do :) I started programming QBASIC when I was 8 because it seemed fun to make games.

This task will give any easyC fan a run for his money...modify the camera tracking routines to a new search pattern, correct for offset issues, auto face the light, compressor toggling, solenoid toggling, desensitize joysticks, and do all this in autonomous as well. Oh yeah, this requires about 15 new variables and dozens of lines of code.

amateurrobotguy
10-02-2007, 02:44
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!

Why should I meet with easyC on ITS terms...my coding package has to be on MY terms. You remind me of one of those ppl who has a bowling ball in the entrance to their room and would rather jump over it every single day then move it. You can give me a bad rep on that...I don't particularly care...but you don't even sound like you are the team programmer (perhaps the backup?) and I GUARANTEE that when something goes wrong or your team asks you to do something off the beaten path, you will be placing a loudspeaker annoncement asking for MPLAB help. Yeah, you couldn't beat me with MPLAB on even a medium task...and I am only in CS I !!!

amateurrobotguy
10-02-2007, 02:50
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

And why don't you just pay someone to write all your code for you...it would be easier...I value my time as well, and it is better spent understanding why my code runs instead of your mentality of "I push this magic lever forward and it moves"

Tom Bottiglieri
10-02-2007, 03:20
I would easily challenge any easyC diehard fan to a coding contest and would probably win too. To prove you don't need to be a CS III nerd to learn MPLAB, here is my background...


I'll bite on that one. So, Mr. professional programmer, what are we writing?

Ar3a51
10-02-2007, 18:05
Our team started with easyC our rookie year (Aim High). We transitioned from easyC to MPLAB for the current game. In my opinion, working with MPLAB seems easier to me than easyC, granted, easyC is a bit more user friendly. It all depends on the person I guess, everyone is different.

Beth Sweet
11-02-2007, 19:03
Amateurrobotguy,

I think that what the other folks are trying to say is, that it may be a bit intimidating for people who are not already experienced and confident programmers like yourself, yet who are interested in learning programming, to jump straight into a complex and difficult program like MPLab. They need a little stepping stone, like the quit smoking patches, it's much easier to get it in steps. This way you can learn things from a basic level, learn the concepts, then learn all the technicalities and how to manipulate them.

For example, if I were to need to code the robot, I would have no idea where to start. Granted, there are MPLab tutorials out there, but a totally new person to programming like myself, probably wouldn't even understand those directions, we need an "Intro Course" shall we say. For some of us, that's what EasyC can do.

So if you are able to go straight to MPLab, that's fantastic! I'm sure that your team (btw, which team is it, you don't mention on your profile which you're from!) is very lucky to have you, and that your skills are a valuable resource for your surrounding region! But for those of us who are just starting out, EasyC is an effective "Intro Class" to programming!

Doug Leppard
16-03-2007, 22:18
I thought I would get this going again since now we have regionals under our belt.

We used easyc pro for our bot and were finalists at Florida. Our autonomous mode worked 13 out of 16 times in competition putting the ringer on the spider.

To me the fact we produced a great bot and auto mode shows what easyc pro can do for a team. We didn't need to waist time.

Again we had professional programmers using it and liked it. Bottom line it produced for us with little problems where the professional and new team member alike can use it.

Bomberofdoom
17-03-2007, 05:49
Gah, slight problem. You've gave us the same option of "I have EasyC installed only" and no "I only use MPLab", because that's what true about our team. We saw EasyC and we haven't really went throughly into the design of the IDE, but it's seemed too complex to be easy. It was in our opinion that it would take more time to create/ fix a code on MPLab than doing it on EasyC. In addition, we're used to using raw code, so that's why it's more faster for us.
Therefor, my selection is "I only use MPLab."

Doug Leppard
17-03-2007, 08:50
All I am saying is that we were a heavy MPLab team years before, switched to easyc pro this year and got a lot of work done.

Using mplab is great, but don't down play teams that use easyc pro. The orignal question was "What is Easyc good for?" We had the camera, gyro, quad encoders and IRs all working with easyc and felt we could develop faster using it and more important pass it on to our new team members.

Often what is a "best" is one of preference. All I am saying is easyc pro helped gives us a winning bot. Could we have done it in MPlab, YES!

But we decided easyc pro not only does not hold us back (one of our fears when we started), but made it easier for us.

Stvn
17-03-2007, 09:54
For me, I found EasyC annoying for more advanced programming because the block icons were too large, you had to drag in every single line of code, and I couldn't easily search my code. On the other hand, I've been using WPILib in MPLab, and I'm able to easily call functions to take care of reading sensors for me.

efoote868
17-03-2007, 21:26
<bit of background>
I started coding in middle school with BlitzBasic, a pretty funky language geared towards making small games.
I'm in CS AP AB right now, so I know some java
I started coding last year, with the edubot, this year I'm one of the main programmers

I got my first taste of easyC when our team's mentor bought a copy of the vex programming kit, and it was easyC. I didn't have a good time with it, and now I don't like vex too much, either :(
</bit of background>

To me, MPLAB is one of the worst IDEs. Quite frankly, it makes programming in C a pain, especially for robotics. That idea alone is enough to get some to switch over to easyC.

However, as bad as MPLAB is, to me, easyC is worse. I took the program, installed the free copy on my laptop, and tried opening it, and tried to mess around with it (the way I learned MPLAB). Although I could view the source code, I couldn't find a way to get it copied over to a plain text, that I could edit elsewhere.

As a true computer nerd, I prefer the keyboard as input to the mouse. Clicking in excess is annoying to me, and the thing just doesn't flow right. Thats a personal opinion, I understand everyone is entitled to theirs (and I respect your opinions).

The final straw was when we learned how much a set of easyC cost, and combined, it drove us away from it.

As far as bragging about whipping up code in easyC in 1/10th the time it takes for me to hard code it, good luck in the real world. If you're that fast at easyC, perhaps you should take the time to type it yourself, you'll learn better (and if you do know C that well, then you're obviously entitled to an opinion :p ).

best of luck coding!

meatmanek
17-03-2007, 21:39
Where's the option for "vim, make, and mcc18 running in wine"? Bah. You folks always forget us Linux people.

Shout out to Adambots and John Dong for making it possible.

JamesBrown
18-03-2007, 00:42
<bit of background>
I started coding in middle school with BlitzBasic, a pretty funky language geared towards making small games.
I'm in CS AP AB right now, so I know some java
I started coding last year, with the edubot, this year I'm one of the main programmers

I got my first taste of easyC when our team's mentor bought a copy of the vex programming kit, and it was easyC. I didn't have a good time with it, and now I don't like vex too much, either :(
</bit of background>

To me, MPLAB is one of the worst IDEs. Quite frankly, it makes programming in C a pain, especially for robotics. That idea alone is enough to get some to switch over to easyC.

However, as bad as MPLAB is, to me, easyC is worse. I took the program, installed the free copy on my laptop, and tried opening it, and tried to mess around with it (the way I learned MPLAB). Although I could view the source code, I couldn't find a way to get it copied over to a plain text, that I could edit elsewhere.

As a true computer nerd, I prefer the keyboard as input to the mouse. Clicking in excess is annoying to me, and the thing just doesn't flow right. Thats a personal opinion, I understand everyone is entitled to theirs (and I respect your opinions).

The final straw was when we learned how much a set of easyC cost, and combined, it drove us away from it.

As far as bragging about whipping up code in easyC in 1/10th the time it takes for me to hard code it, good luck in the real world. If you're that fast at easyC, perhaps you should take the time to type it yourself, you'll learn better (and if you do know C that well, then you're obviously entitled to an opinion :p ).

best of luck coding!

First of all Easy C is free to FRC teams, Intellitek donates licenses for the teams.

I agree about MPLAB being terrible, there are other ide's that you can use and still hard code.

While saying it takes 1/10th of the time to use easy c may be an exaggeration it is allot faster, and trust me I do more than enough other work in c/c++ to not be losing a chance for learning more (and I am sure that all of the professional engineers who use it do way more programming than I do) by typing every thing out, once you reach the point where you understand what Easy C is doing there is no reason not to let it do it for you. I could also machine robot parts by hand but why bother if I have a CNC that can do it easier faster and better, FIRST is handing us a tool, why not use it?

Astronouth7303
18-03-2007, 14:31
So is EasyC great because of the drag&drop (something you can't readily get other ways) or because of WPILib (which is available no matter what you use)?

Like for this year, I used something I decided to call JAS (Jamie's Autonomous Scripting -- real creative, I know). It was inspired by Kevin's Navigation code (in concept). After you create the underlying mechanism support (Something that has to be done, and can be used in driver mode if done right), writing autonomous modes is very easy. And because of the way it is structured, you don't need to worry about loops and state machines in much of the code.

Now, how does that compare to EasyC and WPILib? I can't say I have used EasyC enough to say. None of them, though, really help you develop robust, modular code (at least the way I would like to see it -- centered around mechanisms and that driver mode/autonomous mode are just 2 users of this mechanism API).

Another discussion is how to implement features like Kevin's camera and tracking menus & EEPROM values. Stuff like that is very easy to work with on the user side, and I would like to see more stuff like it in some form.

Bottom lines: Almost anything is better than MPLAB. There's other stuff out there other than WPILib. Try writing something yourself.

JohnC
19-03-2007, 01:40
why not use it?

Maybe for newbies, but it seems the general consensus is that c programmers have a hard time making easyC work just the way they want it to. After all, it should be called "code" for a reason.

One of my complaints is that if I have to change some big structural part of my code, it takes forever in easyC.