This introductory web page explains the difference between:
- a single board computer (SBC), like the Raspberry Pi shown top left, that has an operating system that provides a graphical user interface (GUI) and allows different users to run different applications at the same time, versus
- a much simpler microcontroller, like the Raspberry Pi Pico, shown top right, or a BBC micro:bit or any of the wide range of Arduino or Arduino IDE compatible boards, that can usually only run a single 'program' at a time and this program must typically be 'loaded' into the microcontroller by another computer.
The additional images below from left to right show:
- a Raspberry Pi3 fitted inside a pi-topCEED screen that also has a keyboard and mouse connected. This set up provides a complete stand-alone computer that can run a range of applications using a feature-rich graphical user interface, as well as allowing a wide range of physical computing arrangements to be explored by connecting components to the Raspberry Pi's GPIO pins, USB ports, etc.
- a BBC micro:bit connected to a test breadboard, and as it is a microcontroller it must use a USB cable to connect to another computer to allow individual programs to be developed and downloaded into its memory;
- an Arduino-compatible UNO microcontroller, which also has to be connected with a USB cable to another computer running the Arduino IDE, in order to develop and 'load' individual programs into its memory;
- an ESP8266 microcontroller packaged as the NodeMCU v1.0 development board, which can use the Arduino IDE to not only develop its code but it can also manage the 'loading' of the code into its memory; and finally
- an ESP32 packaged as a 38 pin development board, which is a much more versatile and powerful 'big brother' microcontroller to the ESP8266 and can also be managed through the Arduino IDE.
For all the microcontrollers, they do have the limitation of only being able to run a single program and must generally use another computer to both develop and load the code into their memory. However once an individual program has been loaded into a microcontroller's memory, the 'managing' computer can be disconnected and the microcontroller will run this code whenever it is powered. This makes the use of microcontrollers very useful for 'one use' systems, and as they typically demand less power they are especially useful for mobile/wearable applications.
All the currently available maker project information: