This is the 'brains' of the Arduino. The thing that you program when you program! It's what runs the code, the CPU (Central Processing Unit). Kinda like the processor that runs in your computer but much much much simpler and smaller.
The chip has legs! In this case, the legs are plugged into a socket. If you took it out of the socket (not recommended because its easy to accidentally damage it!) you'd see something like this:
Each of those little legs is a pin (they're sharp like pins too, so don't step on one of these by accident, its incredibly painful - don't ask how I know). If you look carefully you will be able to read ATMEGA328P on the top.
Sometimes an Arduino has a different shape or form of microcontroller. Like the Metro:
This chip is a more compact version, but its functionally identical for use. It doesn't go into a socket, instead it is attached directly to the Arduino. It also has pins but the pins are much smaller and they sit on the surface of the circuit board, rather than go through holes in it. The main trade off is the bigger through hole version is user-replaceable (with care) whereas this surface mount version is less expensive but cannot be replaced.
The '328 microcontroller has:
- 28 Pins
- Powered by 3 or 5 Volts
- Requires about 0.1 Watts of power
- Runs at 16 MHz
- 32 KB of flash storage
- 2 KB of RAM
- Costs about $5 per
Compare this to, at the time of writing, a common computer chip, the Intel i5-6400
- 1151 Pins
- Powered by 1.35 Volts
- Requires about 35 Watts of power
- Runs at 2800 MHz
- No internal Flash storage, but most computers have at least 250 GB = 250,000 MB = 250,000,000 KB* of storage
- No internal RAM but most computers have at least 4 GB = 4,000 MB = 4,000,000* KB of RAM
- Costs about $200
(* yes I know its not exactly 1000)
So, clearly if you want an ultra powerful computer processor that can play the latest games, an i5 is the way to go. But its expensive, and requires a ton of power, and you need to have a full motherboard to run it so it's kinda big. If you just want to do some simple tasks, a microcontroller like the '328 is peachy. Also, its quite handy that it has the RAM and storage inside of it - its not a lot but that means you don't need to hook up a hard drive to this chip, its very compact and complete.
What's cool about the microcontroller is that unlike your computer which requires an operating system (Mac OS X or Windows) and booting up, the microcontroller is 'barebones'. When you plug it in, it immediately runs whatever you asked it to do.
And, you don't have to worry about a diskette or hard drive or cd-rom getting scratched or damaged. The storage inside of the chip lasts for a really long time. You could program your Arduino, leave it alone for decades, & come back and power it up with a post-apocalyptic-cyber-battery and it would work just as new.