Monday, October 8, 2012

Choosing Your Microcontroller (Part 1)

When it comes to choosing your microcontroller, you've got plenty of options.

     For the beginners, there is the always popular Arduino. The Arduino is an 8-bit AVR microcontroller with several different flavors, depending on your needs. There is the Arduino Uno, which is the most basic Arduino, and probably the most popular. The Arduino Mega, which is about twice the size of the Uno, offering twice the GPIOs, ADC's and serial ports. Finally, the Arduino Leonardo, which is the same size and form factor as the Uno, but also offers the ability to emulate various USB devices, such as keyboards and mouses.
     With the Arduino, you get a large following of people, willing to help and share ideas to keep you moving. There are plenty of shields, adding extra functionality to the basic board, which all have people who are working along side you. And, the language to program the Arduino is fairly simple and easy to get started in with plenty of example files for almost anything.
     While I mentioned earlier that the Arduino is well suited for beginners, it is not solely relegated to the land of novice. The board includes an ICSP header, which allows for reprogramming with AVR programmers, and for C and Assembly based programming. Thus also providing excellent room to move on to more challenging forms of microcontroller.

     Next you have the .net framework based microcontrollers. My first microcontroller, I bought at Maker Faire 2010, was the Netduino, one of the first .net framework microcontrollers. Since then there have been plenty of others to join the fray. Another such set of microcontollers, is the Fez line of devices. There are of course others, but these are the ones I know best. These devices have been gaining popularity over the past few years, being more powerful than the Arduino's AVR based system, most of the .net boards being built around ARM microcontrollers. ARM is much more powerful than AVR, having a higher clock frequency and multiple cores.
     Again with the growing community, you're going to find more and more people who can help and offer advice. Like the Arduino, there are even expansions that can be added onto your board. Some can even share shields that the Arduino uses, because they're built to the same template. Some are entirely built around expansions such as the .net Gadgeteer Project. The programming has to be done in Microsoft Visual Studio, meaning such languages as C++ and C#. Libraries can be a bit of a pain to find, but you could always write your own.
     This is a iOS vs. Android situation. Arduino is iOS. All of their hardware is standardized along with their software. Everything is made very simple and easy. .Net is more of the Android in this situation. Everyone wants to make their own hardware, and everyone has a different standard for syntax.

No comments:

Post a Comment