To enhance the understanding of our subscribers in the field of robotics, Ruobo Studio has specially launched a brand new series column in 2021 – “The First Lesson”! This season’s column will revolve around content related to the robotics engineering major (history of robotics, introduction to development boards, mainstream programming languages, mainstream robotics technologies, etc.), aiming to create a series of enlightenment textbooks. Let’s learn together! Come on!
Episode Four: Understanding 51 Microcontroller/Arduino/ESP32/STM32/Raspberry Pi
Before introducing the above four, let’s first take a look at some pictures to get a feel for how some experts play with them:






After seeing these, don’t you want to get started? Such interesting experiments, don’t you feel excited to learn about them? If so, let’s get to know them together.
51 Microcontroller
The 51 microcontroller is a general term for all microcontrollers compatible with the Intel 8051 instruction set. The ancestor of this series of microcontrollers is the Intel 8004 microcontroller, which has made great progress with the development of Flash ROM technology, becoming one of the most widely used 8-bit microcontrollers, represented by the ATMEL AT89 series, which is widely used in industrial measurement and control systems. It mainly implements functions such as running lights, digital tubes, matrix keyboards, clocks, buzzer, etc.
ESP32
ESP32 is a microcontroller designed and developed by the Chinese company Espressif, which can run applications as an independent system or as a slave device to a host MCU. It provides Wi-Fi and Bluetooth capabilities through SPI/SDIO or I2C/UART interfaces. The chip is designed for mobile devices, wearable electronics, and IoT applications, with industry-leading low-power performance, including fine-grained clock gating, power-saving modes, and dynamic voltage adjustment. Additionally, the ESP32 integrates antenna switches, RF baluns, power amplifiers, low-noise amplifiers, filters, and power management modules into one, allowing it to achieve powerful processing performance, reliable security performance, and Wi-Fi & Bluetooth functionality with minimal external components. At the same time, the ESP32 has extremely stable performance, with an operating temperature range of -40°C to +125°C. The integrated self-calibration circuit achieves dynamic voltage adjustment, eliminating external circuit defects and adapting to changes in external conditions.
STM32
STM32 is a 32-bit microcontroller based on the ARM Cortex-M3 core, designed by STMicroelectronics specifically for high-performance, low-cost, and low-power embedded applications. It is also the most widely used microcontroller in the industry, easy to get started, and the chips are inexpensive. Unlike the von Neumann architecture, the Harvard architecture of STM32 has higher execution efficiency, where program instructions and data instructions are organized and stored separately. During execution, the next instruction can be pre-read. It can also adopt different packages to maintain consistent pin arrangements. Of course, developers can choose to re-optimize the product to meet various personalized application requirements with minimal component changes.
Arduino
As the “brother” of the 51 microcontroller, Arduino is a microcontroller application development board mainly based on the AVR microcontroller; it mainly consists of two parts (hardware and software): the hardware part is the Arduino circuit board used for circuit connections; the other is the Arduino IDE, the development environment on the computer. You only need to write program code in the IDE, upload the program to the Arduino circuit board, and the program will tell the circuit board what to do. Programming for Arduino uses a specialized language, unlike general microcontrollers that directly use C language. It has a dedicated programming language (Arduino programming language) and a specialized development environment similar to Java and C language called Processing/Wiring.
Raspberry Pi
Raspberry Pi (Chinese name: “树莓派”, abbreviated as RPi (RasPi / RPI)) is a microcomputer designed for learning computer programming education, only the size of a credit card. It is a microcomputer motherboard based on ARM, using SD/MicroSD cards as memory hard drives, with 1/2/4 USB interfaces and a 10/100 Ethernet interface (the A type does not have a network port) around the card motherboard, which can connect keyboard, mouse, and network cable, while having video analog signal TV output interface and HDMI high-definition video output interface, all integrated on a motherboard slightly larger than a credit card, with all the basic functions of a PC. Just connect the TV and keyboard, and you can perform many functions such as spreadsheets, word processing, gaming, and playing high-definition videos.
Differences and Connections
Arduino is designed based on a microcontroller, but Arduino is also an open-source platform with its own dedicated development tools and languages, different from general microcontrollers, but its core is still a microcontroller. Raspberry Pi is based on ARM design, considered a type of microcomputer motherboard, and can also be understood as a platform (a platform for learning computer programming), but both have their advantages. Raspberry Pi can run mainstream operating systems like Linux and Windows, while Arduino cannot.
STM32 is not a specific microcontroller model but a general term for one or more series of microcontrollers based on the ARM core. ESP32 is relatively less known. However, from the name, both are 32-bit microcontrollers, but ESP32 uses a dual-core system chip composed of two Harvard architecture Xtensa LX6 CPUs. ESP32 leans towards small size, high speed, and powerful functions, designed specifically for the Internet of Things; while STM32 leans towards rich pins and comprehensive functions. Although it does not have Wi-Fi and Bluetooth and is not as fast as ESP32, it can connect to the network via Ethernet and control more peripherals, designed for consumer electronics and industrial control.
A microcontroller is an MCU (microcontroller), while Raspberry Pi is a card computer. The essence of both is the same, but microcontrollers do not have the Linux system support that Raspberry Pi has for quick operations. If you want to use a microcontroller to drive a mouse and keyboard, it will be more complicated, while Raspberry Pi has these functions built into its system, making it very convenient. However, the development cycle of microcontrollers is relatively short, usually based on specific tasks and coding, always used in development fields, engineering, etc. Raspberry Pi is a microcomputer that can connect to the Internet, attach cameras, mice, and keyboards, and once you learn Linux, you can do many things with it.
Previous Recommendations

Graphics and Text | He Yuanhao, Yang Jinyuan, Huang Ziming Editor | Song Chaofan Review | Pan Hao
