Friday, July 5, 2013

Microcontroller - Which microcontroller to choose

For a long time I was thinking about building a robot, but never started to build one, until recently. A week ago me, my wife an my kids visited the Robocup2013 event in Eindhoven, the Netherlands. It was great to taste the enthusiasm during the event. So many young kids have built their little robots challenging other robots. 40 countries participated to the event but unfortunately Morocco was not one of the participants.

So I thought if I build a robot with very cheap components and share the result and knowledge with students from Morocco (and the rest of the world of course), maybe the schools and universities in Morocco will think about to participating to such events as the Robocup2013. We live in an era where knowledge is shared with the rest of the world over the internet. So the Moroccans have no excuse that they can't gain knowledge because it's expensive. Nowadays, knowledge is free and available on the internet.

To build at least an intelligent robot, I need a microcontroller to start with. But which microcontroller is suitable? Some criteria should be met, tom my opinion are I think:
  • it must be cheap, as cheap as possible
  • great community to ask for help and lots of tutorials
  • good development environment, like IDE, compiler, debugger (very important)
  • cheap microcontroller programmer
Since I already have some experience in mircocontroller programming, I found that ARM based microcontrollers are a bit overkill. I mean, just to use for controlling DC/Servo/Stepper motor and read some input pins is a waste to use an ARM based microcontroller. I have also worked with TI microcontrollers a long time ago, but you need to buy an IDE, I've used an IDE at college time that was free. However, the TI microcontroller was a nice one, it looks good, works good, nothing to complain about it. It's just that the compiler is not free. A PIC microcontroller is a popular one too, but it lacks of a good C compiler for free, it does provide a free Assembler . However, I want to realize a project and don't want to waste time in studying assembly, so PIC, no matter how nice this thing is, is no option to me.

After some time I found some projects based on Arduino. Arduino's are openhardware systems based on Atmel's AVR microcontroller, which also has a simple to use IDE including C compiler. The code can be flashed to an Arduino device through usb cable. There is no need for a special JTAG interface or self-built serialport loader. It supports also C++ and it's really easy to write code for it, to me it feels like writing code in Java. The builder of Arduino's really managed to create a microcontroller platform that is accessible to a large audience with no experience of microcontrollers. They really did a tremendous job to achieve that.

Another great advantage of Arduino is they are cheap comparing to others, people with low budget that want to learn or build a microcontroller project, are able to buy one. To program the controller, one just has to download the software for free and need an appropriate usb cable.
If you want to have more control over the AVR microcontroller, there is also a free compiler for it, free IDE and so on. So Arduino is a great way to jump to AVR, because Arduino is based on AVR.

Because as a father, husband and employee I have little free time, my choice is to start with Arduino and next AVR.That's my choice b.t.w. ;-)

No comments:

Post a Comment

NSNotification example