A microcontroller is a compact microcomputer, often with all components printed on the same circuit board (CPU, RAM, and programmed input/output busses). In essence, it is an entire system on a chip. Microcontrollers are used in a variety of everday electronics -- video players, appliances, automobiles, toys.
Microcontrollers are all-in-one, and whereas microprocessors don't have built-in RAM (at least, non-cache RAM) and are often mounted onto a motherboard which allows them to be adaptively paired with combinations of large amounts of RAM, bus, and hardwired peripheral options. Microprocessors often have more extensive features such as an intelligent cache and an intended systematic architecture platform, where as again, microcontrollers are more self-contained.
In essence, the Arduino is a microcontroller motherboard -- microcontroller is a simple-function control board. The Raspberry Pi is a general-purpose computer, usually pre-loaded with a Unix-style operating system such as Raspian, Noob, or Ubuntu Mate (however, dozens of different OS's are available for the Raspberry Pi). The Raspberry Pi has the ability to run multiple processes simultaneously. It is more complicated to use than an Arduino. The Raspberry Pi has the functionality to operate as an entire micro-computer, whereas the Arduino can only function in terms of one program or process running at a time - it is a true single-threaded platform.
Arduino and Raspberry Pi are similar in shape and structure. They are about the size of a deck of cards, both have easily accessible and documented I/O pins -- in the Raspberry Pi they are referred to as GPIO General Purpose Input/Output pins. They both have similar power (usually about 5VDC that be powered through a micro-sd port). They are very popular with experimentors and hobbyists. They both interface through USB ports and both have many types of shields (electronic circuit boards that connect to the main board and append the functionality of the base microcontroller).
A majority of PC-style Intel-based processors through the 80's and 90's were CICS (Complex Instruction Set Computing). They have higher power requirements and the memory architecture at the time precluded the size necessary for such cheap, small devices. However, with the advent of RISC architecture (Restricted Instruction Set Computing) and the advent of cheaper and smaller memory (and efficiencies in chip manufacturing) the cost of personal electronics plummetted drastically. The use of the ARM (RISC-based) processors allow more powerful processors to work on less power (hence their use almost exclusively in tablets and smart phones). ARM architecture is becoming the new norm, as the speed of current processors allows them to execute the many additional instructions required with RISC processing with little overhead -- the cost is really in code.
Shields are another major innovation in microcontroller devices. Because of the exposed pin set on the boards (although they can be spanned with ribbon connectors, when required) it is possible to "plug" other circuit boards onto the main circuit board (hence the name shield, since it plugs onto the device and shields the original board from view. Originally, these sort of modules to computers were called "daughterboards" (they plugged into and took direction from the "motherboard"). However, the term shields is far more popular -- my assumption is the popularity of Captain America in the MCU, but hey, just my theory. Shields can provide a number of plug-on options, such as GPS, sensors, Ethernet connectivity, relay, Bluetooth and even home transmission for remote control (X-Bee shields). And yes, it is possible to "stack" shields, with the limitation of power draw and pin compatibility (there's only so many ways to talk to the serial port before you confuse the poor little Arduino's mind or the Pi's OS).
Raspberry Pi Shield |
---|
Arduino Shield |
Comparison of Various Microcontroller Devices |
|||||||
---|---|---|---|---|---|---|---|
Device |
Cost |
Processor Speed |
Memory |
Connectivity |
Ports |
Power |
Features |
Raspberry Pi 3 Model B |
$35 | Quad Core 1.2 GHz (ARM) | 1 Gb | 10/100 Mbps Ethernet, USB (4), RJ45, HDMI, 3.5 Analog Audio, 40-pin GPIO | USB (4), RJ45, HDMI, 3.5 Analog Audio, 40-pin GPIO | 5VDC, 330mA | 40-pin GPIO, Shields, Many Retail Shield Options |
Raspberry Pi 2 Model B+ |
$35 | Quad Core 1.2 GHz (ARM) | 1 Gb | 10/100 Mbps Ethernet | USB (4), RJ45, HDMI, 3.5 Analog Audio, 40-pin GPIO | 5VDC, 400mA | 40-pin GPIO, Shields, Many Retail Shield Options |
Banana Pi M3 |
$80 | Octa-Core 2 GHz (ARM), On-Board eMMC | 2 Gb | 10/100 Mbps Ethernet, 802.11 Wireless LAN, Bluetooth, On-Board IR Receiver | USB (4), RJ45, 1 USB OTG, HDMI, 3.5 Analog Audio, 40-pin GPIO | 5VDC, 2A | 40-pin GPIO, Shields, On Board Camera I/F and IR Interface |
Beaglebone Black |
$55 | 1 GHz (ARM) | 4 Gb eMMC Flash | 10/100 Mbps Ethernet , 802.11 Wireless LAN, Bluetooth | USB (1), Mini-USB (1), RJ45, Micro-HDMI, 65-pin GPIO | 5VDC, 400 mAh | 512 On-Board DDR3 SDRAM, More Interface Capabilities |
Arduino Uno R3 |
$25 | 16 MHz | 32 Kb Flash RAM, 2 Kb SRAM | USB, 14 Pins | USB Connection Cord | 5VDC, 300 mAh | Single-Threaded Instruction, Variety of Standardized Shields and Feature Add-Ons |
Arduino Mega 2560 R3 |
$45 | 16 MHz | 256 Kb Flash RAM, 8 Kb SRAM | USB, 54 Pins | USB Connection Cord | 5VDC, 300 mAh | Single-Threaded Instruction, Variety of Standardized Shields and Feature Add-Ons |
Arduino Mega 2560 R3 |
$45 | 16 MHz | 256 Kb Flash RAM, 8 Kb SRAM | USB, 54 Pins | USB Connection Cord | 5VDC, 300 mAh | Single-Threaded Instruction, Variety of Standardized Shields and Feature Add-Ons |
Arduino Micro |
$25 | 16 MHz | 32 Kb Flash RAM, 2.5 Kb SRAM | USB, 20 Pins | USB Connection Cord | 5VDC, 300 mAh | Single-Threaded Instruction, Small Size Makes Use In Variety of Applications Effective |
Arduino Zero |
$25 | 48 MHz | 32 Kb SRAM, 256 Kb Flash | Micro USB (2) | USB Connection Cord, 14 I/O Pin | 5VDC | 32-bit extension on Arduino, Higher Clock Speed, Mdbug Chip, Shields Must Be Limited to 3.3V Pin Voltage |