3 ms·
Knowing the terminology will help you to find resources. Devices like this "Pocket Beagle" (and the BeagleBone, Raspberry Pi, and others) all use something cal
by cr0sh 9y ago
Knowing the terminology will help you to find resources.
Devices like this "Pocket Beagle" (and the BeagleBone, Raspberry Pi, and others) all use something called an "SoC" - otherwise known as "System on Chip".
This is where all the essential components of an entire computer are put on a single chip - cpu, ram, peripheral controllers, etc; generally, the cpu and ram are large enough to implement a full OS on (like Linux). Smartphones and tablets use similar (if not the same in many cases) SoC devices; by putting everything on one chip, size is shrunk dramatically (at the cost of upgradability and other things).
The Arduino (Uno, Mega) is something different - it is what's known as a "carrier" or "development" board; what it serves is an easy way to gain access to the pins and functionality of a device known as a "microcontroller". Microcontrollers are somewhat different than an SoC - although there can be and is overlap (particularly as you move into the 32 bit microcontrollers - some have enough functionality to almost be an SoC in all but name).
The biggest difference tends to be in CPU power and amount of memory; usually you have much, much less CPU available (sub-100 MHz and 8/16 bit is common), and much less RAM (some microcontrollers have under 1K of memory!). They also tend to be very inexpensive compared to SoC devices, and in many cases come in thru-hole versions as well as 5V TTL compatibility (though both of these are rapidly becoming less of an option).
The Arduino Uno and the Arduino Mega use two different, but compatible (in the same family) of microcontroller chips. For the Uno it uses the venerable ATMega328, while the Mega uses the ATMega2560. The difference between the two is great - 32K vs 256K of flash RAM, 2K vs 8K of SRAM, number of pins, number of hardware serial ports, number of PWM pins available, etc. Don't worry about all this now, just know there are differences. Which you select will of course depend on the needs of your project.
The ATMega family of microcontrollers is made by a company named Atmel; which is now a subsidiary (I may be wrong here) of what used to be their competitor, Microchip Technology Inc, which also manufacturers their own line of microcontrollers known as PIC microcontrollers (they are not compatible with each other, but who knows what the future holds now that they are owned by the same company).
There is another company I should mention here, called Parallax. They are really the ones that got this whole "maker thing" ball rolling, when they introduced what could arguably be called the first hobbyist-level microcontroller, called the BASIC Stamp. It was based on a particular PIC microcontroller (from Microchip), with a small amount of extra EEPROM flash memory tacked on, which would load in an interpreter for BASIC, and could be loaded with compiled (tokenized) BASIC code to run. It essentially made the PIC line easier to program for hobbyists (that isn't to say there weren't hobbyists hacking on PICs - it was a big thing back in the early 90s). Introducing the BASIC Stamp, though, opened up a new world for a lot of people, and made microcontrollers for electronics interfacing much easier. Before, you either had to hack in assembler on a PIC, or you had to have access to some form of the 8051 microcontroller/processor line plus toolchain ($$), which was the other big hobbyist platform at the time.
Anyhow - back to Parallax: While they continued with the BASIC Stamp lineup (and IIRC, they still offer it, but it isn't as popular any longer) - they eventually went on to develop their own microcontroller in-house, called the Propeller. It is actually an interesting device, and works in a way unlike virtually every other microcontroller; it can almost be thought of as 7 individual small microcontrollers, each with access to a common memory area, working in a "round robin" fashion (in essence, multi-processing in a manner of speaking). At any rate, it's another option.
Finally, one of the other options you are likely to run into in the wild is known as the ESP8266 (which itself comes in a variety of configurations). This device is closer to an SoC than it is to a microcontroller - but there is a lot of overlap. It was originally developed, IIRC, somewhere in China (probably Shenzhen) and has been cloned out the wazoo all over (hence the vast number of configs available). Originally it was meant as a very simple means to give 802.11 WiFi capability to microcontrollers and other similar devices using a serial port and a modified AT command set. You essentially interacted with it over its serial port, and could send/receive data via WiFi - very simply.
Initially, it was very undocumented, and the little documentation that did exist was in Chinese. Eventually, much of this was translated, and almost overnight it became a hardware hacker's sensation. It was cheap ($5.00 USD or less in even small quantities - still is very inexpensive), it did it's stated job very well, and it was small - it kinda boosted the whole IoT buzz. But there was a ton of power lurking under the hood, and people sought to exploit that.
...and they did! One of the first things to come out of it was something called the "NodeMCU", which was essentially an ESP8266 running Python (hence why it seems to have an overlap between a microcontroller and an SoC) - which made working with it much easier.
Ok - so this is getting kinda long, but hopefully my explanations will help you out. For googling this stuff, use keywords of "microcontrollers", "embedded development", "system on chip", etc. Be sure to check out the official forums for the Arduino and for the Raspberry Pi (and check out the various sub-Reddits and blogs).
For starting out, you've already been given some good advice; just start with an Uno (I would caution about going with a Chinese clone on first time out - please, purchase one of the official boards, to help support the Arduino community and company, then look into the clones - and learn the difference between what a clone is and what a counterfeit is - and go from there). Starting small may seem boring, but it is very easy to be overwhelmed in the embedded and microcontroller space. With only the board, there's only so much you can do with it, so after get your first LED blinking (on pin 13), look into getting a cheap parts and sensors kit (so you can get a breadboard, LEDs, resistors, and other parts to play and learn with).
Good luck!
- komali2 9y agoWoah, thanks for the detailed response and mini-history! Out of curiosity, is there something special about pin13 that everyone recommends using it specifically for blinking a light (assuming other pins can do the same thing?) I ask because on the dev boards I've stolen from my company there's only "pin 2" and "pin 5" for uh, "doing stuff" on (like all our example code is based off that, and they got grove connectors stuck on them).
- kens 9y agoThe Arduino board comes with an LED attached to pin 13. So you can play around with blinking it without wiring up an external LED.