A microcontroller is effectively a small, low-cost computer designed to perform a small number of specific tasks. Unlike a common desktop computer, a microcontroller will often run a single program, compared to the thousands of programs a computer can run. They are often low-power devices as well, able to be run off of standard battery power, and thus can be used in portable devices.
The basic task of a microcontroller is to receive input from the device it is controlling, then using a programmable processing chip it reads its program from the small memory storage, and then controls the device by sending signals to different components within the device. For example, the microcontroller inside a TV takes input from the remote control and displays output on the TV screen, controlling the channel selector, the speaker system and certain adjustments on the picture such as tint and brightness.
Microcontrollers are often "embedded" inside some other device so that they can control the features or actions of the product, thus they are also referred to as an "embedded controller."
Most microcontrollers fall into one of four main architectures:
- 8051 - An 8-bit microcontroller with 4kb of ROM (on-chip programmable space) and 128 bytes of RAM space which is inbuilt. (From Electronics Hub)
- PIC - A family of 8-bit microcontrollers with additional peripherals which are able to be programmed via serial communication. (From Electronics Hub)
- AVR - a customized Harvard architecture 8-bit RISC solitary chip micro-controller, capable of utilizing on-board flash memory storage. (From Electronics Hub)
- ARM - a 32 bit genuine RISC architecture which is particularly designed for micro-controller devices, it is simple to be trained and make use of however powerful enough for the most challenging embedded devices. It is the common choice for development boards like the Arduino. (From Electronics Hub)
Common Types of Microcontrollers
Individual, low-cost chips built on the PIC framework, which can be programmed in a very simple to learn BASIC language or via graphical flowcharts.
Cost: from $3 to $12, the popular 08M2 is normally around $3.
More info at http://www.picaxe.com/.
A family of credit card-size controllers which can be directly programmed from a computer using a number of programming languages, the most common model being the Arduino UNO. The Arduino can be used as a stand-alone system or as a means to communicate with other computers. Multiple "shields" are also used in conjunction with Arduino for providing specific abilities. The fact that its design is open source has created a huge community for sharing projects and helping with problems in their forum.
Cost: from $10 to $75, versions of the UNO are normally around $20,
More info at https://www.arduino.cc/
An actual working Linux computer with built-in video and audio output, ethernet connection, and USB controllers. The Raspberry Pi is often programmed for specific tasks using the Python language, and can be programmed to boot immediately to individual projects by simply replacing an SD memory card. It is most often used for projects which require audio and video output, such as controlling projectors and televisions.
Cost: from $35 to $50, the popular model B+ is normally around $40. Although it should be noted that the peripherals that are often necessary to use the Raspberry Pi (monitor, keyboard, mouse, HDMI cable, SD cards) can often run the cost significantly higher, at least for the first project.
More info at https://www.raspberrypi.org/
Cost: from $55 to $150, the popular BeagleBone Black model is normally around $55.
More info at http://beagleboard.org/bone
Cost: the current Gen 2 Galileo is generally around $75.
Cost: from $35 to $50.
More info at http://www.linksprite.com/?page_id=782
Cost: from $0.75 to $3, although programming the chip will likely require another (simple) circuit or additional connection components.
Cost: $50, although a (low cost) breakout board will likely be necessary to utilize the controller.
More info at http://www.adafruit.com/products/659