Development Tools Overview: Raspberry Pi, Arduino and MCUFollow article
How do you feel about this article? Help us to provide better content for you.
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
What do you think of this article?
As for electronics enthusiasts, I believe everyone is familiar with Raspberry Pi, Arduino and MCU (microcontroller unit). Raspberry Pi is a kind of circuit board. It uses ARM microcontroller chip and runs Linux operating system or Windows operating system, in addition, plus external equipment, it can be used as a tiny computer. Arduino is an open-source development tool, not a chip, nor a circuit board. It can support the development of many kinds of processor chips, and there are many libraries inside. The single-chip microcomputer refers to the central processing unit core with some peripheral circuits, which is also called the MCU, or SOC(system-on-chip). So for beginners, how should they choose?
Raspberry Pi 3
1 Development Board For People
A few decades ago, electronic enthusiasts liked soldering irons, breadboards and radios the most. More than a decade ago, single-chip computers appeared, so toys became soldering irons, breadboards and single-chip microcomputers. By 2015, the continuous popularization of patch technology has made breadboards less useful, and technique development has also reduced the price of ready-made boards to a reasonable range. It has become a trend to buy ready-made circuit boards or even sample circuit boards for use. Now, the choices in front of us are unprecedentedly rich. On the one hand, it is the open-source hardware camp led by Arduino and Raspberry Pi; on the other hand, it is the traditional MCU development board camp led by STM32, 51 single chip (Intel 8051) and S3C2440. According to the user's experience, here briefly talks about the difference between them in developing applications. Hope this will help you.
No matter which camp they belong to, the CPUs they use are scored into two categories: MCU (microcontroller, or single-chip microcomputer) and MPU (microprocessor). Their essential difference lies in MMU (memory management unit), that is, memory space support. Raspberry Pi and S3C2440 belong to the MPU category, while Arduino and STM32 belong to the MCU category. They have a huge gap in computing power. In fact, the computing performance of the Raspberry Pi can reach 100 times that of the Arduino.
Next, I will talk about the difference between the two classification methods above.
In terms of the gap in performance, you may always have a question, that is, the choice of Raspberry Pi and MCU or Arduino, which is actually the choice of MPU and MCU. There are two situations discussed here. One is for those who have not learned anything and want to get started with Raspberry Pi directly, and the other is for those who want to play with a higher-end platform after playing with Arduino or Intel 8051.
Let me talk about the first camp. For the first type of player, if you already have a programming foundation, you can directly try to play with the Raspberry Pi. If you just use it as a small PC or low-power server, there is no problem at all. For a person with a good programming level, I would recommend CubieBoard CC80 or Jetson TK1, because their performance will be much more powerful and it will be more comfortable to play. If you don't have a programming foundation or want to play with a combination of software and hardware, it is recommended to start learning from PC programming or Arduino and MCU.
For the second camp, the choice is fewer. First of all, we must know that in the past (in fact, aside from open-source hardware, it is the same now), MPU is a very complicated thing. Generally, you have to master the microcontroller before you can get in touch with the MPU. Moreover, MPU usually involves the modification of the Linux kernel, the development of Linux drivers, and the writing of Linux software. It requires a lot of knowledge. For the average enthusiast, playing MPU is completely hard. But MPU is so attractive, with a clock speed of hundreds of megabytes and storage space of tens of megabytes. MPU is like a real PC, and MCU can only be regarded as a toy.
STM32 Nucleo Board
3 Raspberry Pi vs STM32
Most open-source hardware giants have naturally seen this, so products such as the Raspberry Pi are available. It is a product that combines the ease of use of open-source hardware and the powerful functions of MPU. Now, for enthusiasts who want to play high-end platforms, the main choices are Raspberry Pi and STM32 (although they are not an order of magnitude at all, 2440 is too difficult to develop).
So let's compare what the Raspberry Pi and STM32 can do, and what is the difference between the development of the things that can be done.
1) Only the Raspberry Pi can do: machine vision, video decoding, 3D games, etc.
2) Both STM32 and Raspberry Pi can do: flight control, 3D printing control, audio decoding, network monitoring, IoT sensors, etc.
3) Only STM32 can do: Basically nothing.
Summary: What STM32 can do, you can do with Raspberry Pi. The opposite is not necessarily true.
3.2 Example Analysis
Let's take a look at the difference between the development of the two for things that can be done. Take network video surveillance as an example.
The development process of STM32 is as follows: hardware selection → PCB design → welding → hardware debugging → writing DCMI and RMII drivers → transplanting TCP/IP protocol stack → adjusting camera driver → writing web server program → complete. The amount of code involved is very large, but fortunately, they are relatively basic, and enthusiasts can handle it.
The Raspberry Pi development process is completely different: buy a Raspberry Pi and a camera → connect the camera to the Raspberry Pi → install monitoring software on the Raspberry Pi → complete. It’s just like playing, and it can be done in hours. For enthusiasts, the Raspberry Pi is indeed a weapon. It does not take a long time to achieve great results. Writing your own programs is not too complicated. Just refer to the Linux programming tutorial on the PC. Because of the network protocol, these graphics libraries are readily available, saving a lot of trouble. However, there are pros and cons. Raspberry Pi is a highly encapsulated thing. If you want to learn the basic development of ARM Linux, start with 2440. Because the Raspberry Pi is open-source hardware, but in fact, its underlying Bootloader and core data manual are closed source, which has no effect on application development, but the learning principle is much more complicated.
Another point is cost. If you want to mass-produce this thing, then the cost becomes very important. The STM32-based network monitoring solution can be more than half the cost of the Raspberry Pi-based solution, which is very attractive. Of course, I just give an example. In fact, the current network monitoring on the market is neither STM32 nor Raspberry Pi, but a specially customized ARM9.
So for enthusiasts, what is the significance of STM32? It seems that the two drawbacks mentioned above are irrelevant. The advantage of STM32 is that it is more basic. This reason is similar to the above point of view on 51 single-chip microcomputers. You can learn more basic knowledge by playing with the STM32. It is a very interesting thing. Or, if you want to work as an electronic engineer, this knowledge and experience will be very useful, because the work is also dealing with basic things, whether it is an MCU or MPU, and what you will face is pure schematics and source code, not apt-get install.
To sum up, I don't know if you have a general understanding of the difference between these things. This article is not intended to explain the views of "STM32 is good" and "Raspberry Pi is super awesome", but hope that everyone can choose the right product according to their hobbies and needs, rather than blindly follow the trend.