I'm a new comer to the Arduino scene and thinking of starting a project. I've been reading a bunch for a few days now but I'm not 100% sure, so here I am. I just want to validate something about Arduino Uno.
Arduino Uno is simply a hub that can turn shields on/off, receive information from them, and do simple IFs. Now, if i want to do something more complex or receive commands from an external device, I'd have to have a PC/Galileo to receive the commands and tell Uno what to. Is my understanding correct?
In general, you can do surprisingly complex things with the Arduino (evenmoreso with the mega). As for interfacing, it depends on the sort of external device you're talking about.
Some things that one might call "external devices" are things like sensors and relays, the kind of stuff that's often available on shields. These can be interfaced to directly, with or without a shield. (Not everyone uses shields, but they're very convenient if you're new to Arduino). Monitoring ambient conditions via sensors, spoofing the IR remote control to turn your TV on, turning things on and off, and driving piles of individually addressable LEDs is real easy.
If you need to interact with anything else connected to a home network, you can do that using the Ethernet shield. Sadly, it's rather pricey. Also, there's the new Yun, which has connectivity built-in - also pricey. There's also a really exciting new WiFi chip out, the ESP8266 - but it's brand new and designed in china, so the firmware and library support is in a truly primitive state. When that advances to a usable state, it'll be great, cause they're super cheap.
If you need to interact with something that requires major computation, well, that you'd involve a computer for, likely communicating over serial.
The Uno has a full-fledged CPU in it. It can execute any C program you can dream up, if it fits in Flash and RAM (32KB and 2KB). It's just slower (8-16MHz) than the RasPi (700MHz ARM) and Galileo (400MHz x86).