Society of Robots - Robot Forum

Software => Software => Topic started by: monsta on January 14, 2006, 05:54:20 AM

Title: Softrware
Post by: monsta on January 14, 2006, 05:54:20 AM
Any1 no where i can get a full free version program to program my robot/s.
A program you dont have to pay for or is a trial ;D
Title: Re: Softrware
Post by: Admin on January 14, 2006, 05:17:32 PM
It actually depends on the microcontroller you use:
Different controllers require different programs.

ALL microcontrollers have free software available online or as a CD when you buy it, although the pay-for software is usually better . . . .
Title: Re: Softrware
Post by: monsta on January 16, 2006, 01:45:38 AM
Got my microcontroller in da mail  ;D as a free sample but had no free software so where can i get some that i dont have to buy.
Title: Re: Softrware
Post by: Admin on January 17, 2006, 07:58:52 AM
Which microcontroller do you have?
Title: Re: Softrware
Post by: monsta on January 22, 2006, 02:31:03 AM
got it as a chip not as a board i have to put it all together myself so thats why i had no software any ideas?
Title: Re: Softrware
Post by: Admin on January 22, 2006, 11:31:20 AM
which chip?
Title: Re: Softrware
Post by: monsta on January 24, 2006, 11:05:00 AM
 ;D Some 8bit and a 16bit chip
Title: Re: Softrware
Post by: Admin on January 24, 2006, 11:32:49 AM
For future forum posting etiquette, if you are going to post a question, do not ask something vague like 'how do i build a robot?' or 'what software do i use for my chip?'

Instead, ask more specifically, 'what compiler do I use for my PIC16F877 microcontroller.'

No one will answer you if your questions are consistently vague and you refuse to give any useful information.

You should also consider searching google first so that you may ask more educated questions.
Title: Re: Softrware
Post by: Ig-88 on April 30, 2006, 10:19:28 PM
I have a question relating to software.....

I've never built or programmed a robot before, but I've looked into it and I couldn't really find a clear answer to this. I program in c++ and have basic electronic knowledge (logic gates, etc), and so I was wondering if there was a microcontroller that I could program in c++, and if I could use Microsoft Visual Studio as the environment? I was also wondering if there was a good book on programming robots in c or c++. I don't want a kit- I prefer to do everything myself, only using basic guidelines.

Also, how much programming knowledge would one need? I'm a computer sci major, but have only gotten as far as abstract data structures (not discrete data structures...but only things like vectors, strings, stacks, and queues/deques) and recursion (next year is discrete data structures and other such fancy things). Do you need to know about "Hashing" and specific techniques to program a robot?

Again, I've looked into the matter before, but could never really find an answer.


Title: Re: Softrware
Post by: JesseWelling on May 01, 2006, 03:23:07 AM
My advice is to start simple and check out (,
It's what I did and my first robot came out ok (despite the fact that I had to program in pic assembly)
A good C like (pic really is kindof an odity in the processing world) compiler should only cost you about $100 or so.
There are free versions available but those generaly have a 2k limit on programs (I used up one K just for setup of my motors and serial ports when I wrote it in pic assembly, not to mention a look up table for my sensors) If you don't like that check out OOPic at ( . It's much simpler solution but remember the further you get away from your hardware the less controll you have (just think about all the necesities a OS would do and think about how much you don't need all that in the begining).

Disclaimer: I am a noob myself.  ;D

and no you don't need hash tables to start out with..... ;)
Title: Re: Softrware
Post by: dunk on May 01, 2006, 06:13:34 AM
i'd agree with the previous poster on all points.
i too started programing a PIC microcontroller in assembly language.
the PIC assembly language isn't as scary as it sounds for small projects. for simple program structures it's fairly straight forward.
if you decide to start with PICs i'd play arround with assembly before you splash out on a C compiler. compilers are very usefull once you start working with more complex data structures.
this book is what i used to get started. (i'm not saying there's not a better book out there but it tells you everything you need to know to get started.): "PIC in Practice"
the down side with pic microcontrollers is you need a dedicated programmer to program them. this is a piece of hardware that plugs into your PC to upload the program to the PIC. (anywhere between $50 - $200).
on the plus side there is *lots* of information and sample code on the internet. (when it comes to sample code, there are also *lots* of different programing languages for them so it can take a bit of digging before you find what you are looking for.)

i'm currently in the process of learning about ATMEL AVRs. they have a few distinct advantages over the PICs.
you don't need any expensive programmer or compiler. the programmer is a simple cable that plugs into your PC parallel port that can be made at home (although there are more expensive variates for sale). a C compiler for windows is available from ATMEL free of charge. (if you don't have windows there is defiantly a Linux version that i think can be ported to BSD and the mac.)
like i say, i'm just getting started with these but they look good. i'd be tempted to recommend you skip the PIC step and go straight for the AVR.
the AVR seems to be a steeper learning curve though.
i haven't found a good book for AVRs yet (recommendations please....) and on the whole there is not nearly as much information on the internet as for the PICs.
the one (very good) site i have found for AVRs is here:

either way, choosing a PIC or an AVR is, as you requested, not a kit. (there are lots of development boards out there with everything pre built you don't really need one.)
you get a chip (2$ upwards, depending on the model). to get it to work you will need a crystal and a few capacitors.
to get your first "hello world" running you will attach some LEDs to the pins.
it's a good way to learn about microcontrollers and practical electronics. so grab yourself a breadboard and start plugging in stuff!

happy building,

Title: Re: Softrware
Post by: Admin on May 01, 2006, 06:50:52 AM
Computer Sci major? Im a mechanical engineer and I can program PICs and Atmel's - you have nothing to worry about  :P

I program by stealing code and reverse engineering it to figure it out. In the future I will add a place for people to upload their code for others to use on this site.

For PICs I use the somewhat expensive CCSC compiler. Its really nice, comes with a good programming reference manual and everything.

For Atmel as dunk said the compiler software is free and the programmer is cheap. However because it is free I would say it lacks in quality. Previous WinAVR versions were REALLY buggy and super frustrating, although I hear the newest WinAVR version has fixed all those issues. There is also a much smaller community, and like no sample code anywhere online. The avr manual also is very not user friendly. It's a shame though, because the avr chips come with so many better features than the PICs do . . . I got my avr to do stuff, but it took 10x longer to get things to work, so in the end I just quit and went back to PIC.  :-\
Title: Re: Softrware
Post by: Ig-88 on May 01, 2006, 11:35:47 AM
Thanks! I'll definately look into those options.

Title: Re: Softrware,
Post by: JesseWelling on October 12, 2006, 12:59:57 AM
I think you are discounting the avr-gcc, makefiles can be scary but you will definitely gain a better understanding of AVR's by using avr-gcc. And if you want to figure out stuff on an avr go look at Pascal Stang's AVRLIB here:
The AVRLIB has code for just about any thing you need and is usable with very few tweaks (config files).
Another thing to mention that is somewhat related to AVRs is . If you are getting into more complex robotics it helps to start with a premade Operating System instead of building your own scheduler. But beware, depending on the microC that you are coding for you might need to do some porting (but for the most part all the real leg work is done for you).

As a side note you might want to mention Real Time Operating Systems in a strictly introductory capacity in your tutorial section to get intermediate people thinking about it. I see it as an integral part of building greater functionality....although some may disagree. :P

*EDIT* wow I didnt realize I brought this one back from the dead.......sorry :-\

Title: Re: Softrware
Post by: Admin on October 12, 2006, 08:47:06 AM
Well, WinAVR uses avr-gcc, so I got to use it. But I think the bugs I was having was actually from the gcc and not WinAVR. I never fully investigated. I plan to go back to avr's by the end of this year for another project, Ill report my findings then.

As for operating systems, I know almost nothing about how they function . . . Maybe one day Ill take an OS class . . .
Title: Re: Softrware
Post by: JesseWelling on October 12, 2006, 12:26:02 PM
Given the robots you've made I think you could handle the light introduction that gives.
I've already seen the benifit and I'm still in the design phase.