Ftrace Open Course is Hotly Recruiting: Ftrace Open Course: Learn Optimization, Learn Kernel (Limited to 50 people). The first session has closed registration and has started, please consult customer service for the second session (Xiaoyue WeChat: linuxer2016).
Author Introduction
Cheng Chen, technology writer, maker evangelist. He has authored and translated dozens of books related to artificial intelligence, Internet of Things, HarmonyOS applications,3D printing, and robotics, including the “Mastering Python” series of books, the “Minecraft” series of books, and is a special contributor to “Radio” and “Loving Robots” magazines. He has published the first domestic book on Arduino, the first book on Intel Edison, and the first book on Mixly.
-
2015 Intel Software Innovation Ambassador
-
2017 ELF Global Outstanding Education Leader
-
2019 Arduino Official Certified Promotion Ambassador.
-
Deputy Leader of the CIE Youth Robotics Technology Level Examination Standard Working Group, Deputy Leader of the CIE Youth Software Programming Level Examination Standard Working Group, main drafter of multiple group standards in programming and robotics.
-
Expert of the Practical and Innovative Engineering Expert Committee of the China Next Generation Education Foundation.
-
Co-founder of China’s largest Python teacher community.
The earliest form of programming should be considered punched paper tape, followed by the emergence of assembly language with the central processing unit. Assembly language is still one of the main programming languages in computer courses at universities. Assembly language is simply a simple compilation of machine code, so the code written in assembly language is not too complex, and promotion and porting are very difficult. With the emergence and development of operating systems,C language has become widely popular. The introduction of POSIX api and various libraries has greatly improved the popularity of C language and Linux operating systems. The cross-platform features of the Java virtual machine decouple object-oriented programming ideas from computers, and software engineering officially enters a glorious moment. The popularity of cloud computing and containers greatly simplifies the delivery of applications and services, go language has also become popular. The development model has continuously advanced to a higher level with the development of information technology and the emergence of new programming languages; cloud-native and low-code have become hot new directions. I have been thinking about a question: in an upcoming era of cloud integration and the Internet of Everything, will application development present a new form, a more convenient and user-friendly form?
Figure 1: Evolution of Development Languages and Models
With the development of Internet technology and embedded technology (including artificial intelligence and edge computing technology), we are creating a world of interconnected devices, the biggest feature of this world is the realization of information exchange between people and machines or machines and machines.
As the world’s most famous open-source hardware, Arduino has always been laying out for such a world. Many people may know Arduino starting from its most classic Arduino Uno. Although this control board based on AVR 8-bit microcontroller is simple and easy to use, it is obvious that this level of control board cannot carry the entire IoT application scenarios. Therefore, a few years ago, Arduino launched the relatively independent brand Arduino Pro (the meaning of Pro is professional, currently there is no clear division in terms of products, this brand is more like different application fields). Arduino hopes to quickly and securely connect remote sensors and actuators to its business logic system under a simple IoT framework through Arduino Pro, achieving IoT application development platform with minimal code, further allowing enterprises to achieve digital transformation through simple, realistic, and quantifiable steps.
Figure 2: Arduino Pro
Specifically, Arduino Pro is divided into three levels: IoT cloud, powerful core control boards, and terminal control boards with IoT characteristics (generally corresponding to the application layer, network layer, and terminal layer of IoT). Arduino’s cloud service Arduino IoT Cloud is a visual platform for creating cloud and device software, which can set network trigger events. The open-source Arduino platform provides many example codes to connect your device directly to Amazon Web Services (AWS), Google Cloud Platform (GCP) or Microsoft Azure‘s IoT services. In addition, for customized needs, users can also use Arduino libraries including HTTP, MQTT, X.509, and JSON to connect devices to their preferred network services.
Terminal control boards with IoT characteristics actually leverage Arduino‘s own advantages by adding Arduino expansion boards with RS-485, CAN bus, Bluetooth, or Ethernet functions, allowing for easy transformation of control boards like Arduino Uno into IoT terminals (also relying on a wealth of example codes). These terminals have rich sensors and code libraries. Meanwhile, for terminal control boards, Arduino has also successively launched 32-bit ARM processors in the Nano series, as well as the MKR series specifically for IoT. These products significantly outperform Arduino Uno and can even run artificial intelligence algorithms on the control board (TinyML). The MKR series fully considers networking and low-power issues, from WiFi to GSM, from LoRA to narrowband IoT, etc. It also provides LiPO battery charging circuits and software libraries for putting processors into “low-power” mode.
Figure 3: Arduino MKR WiFi 1010
For the powerful core control boards, Arduino has launched the Portenta series, specifically designed for professional users who wish to build industrial-grade projects. At CES 2020, Arduino introduced the first member of this family, the Arduino Portenta H7 control board, which is equipped with a dual-core processor, one running at 480MHz of Arm Cortex-M7 and one running at 240MHz of Arm Cortex-M4. Portenta H7 can run Arduino code, Python, and JavaScript, allowing for the execution of more complex software, including computer vision and other tasks requiring long-term and high computational power from microcontrollers. Portenta H7 can easily run processes created with TensorFlow Lite; we can have one core dynamically calculate computer vision algorithms while the other core handles low-level operations such as controlling motors or displaying user interfaces.
Figure 4: Arduino Portenta H7
Just a few days ago, Arduino launched a new product in the Portenta series, the 9 core Arduino Portenta X8, another revolutionary control board that may change the form of development in the Internet of Everything scenarios. Arduino Portenta X8 is a plug-and-play industrial-grade SOM with a quad-core NXP i.MX 8M Mini Cortex -A53, each core up to 1.8GHz, one Cortex -M4, up to 400MHz, plus a dual-core STM32H747AII6 Cortex -M7/M4, one Cortex -M7, up to 480MHz, and one Cortex -M4, up to 240MHz. Due to its modular container architecture, it can run software independently of the device. Pre-installed with Linux operating system (the Arduino Portenta H7 is pre-installed with Arm Mbed operating system) and docker containers, docker has a higher utilization of system resources, whether in terms of application execution speed, memory consumption, or file storage speed, all are more efficient than traditional virtual machine technology. At the same time, docker container applications can achieve second-level or even millisecond-level startup times, as they run directly on the host kernel without needing to boot a full operating system. This is much faster than traditional virtual machine methods. Arduino Portenta X8 has very powerful performance, with edge AI and ML capabilities, allowing us to quickly complete prototype development for applications such as industrial 4.0, smart agriculture, smart home, and smart buildings.
Figure 5: Arduino Portenta X8
Arduino Portenta X8 can be seen as a microcomputer plus an Arduino Portenta H7. The microcomputer comes pre-installed with a Linux operating system that also has Python installed, allowing it to run Python directly in the modular docker container architecture. On the other hand, the Arduino program runs on the STM32H747 microcontroller, so in fact, the Python program and the Arduino program run independently, and their communication is achieved through the SPI bus, as shown in Figure 5.
Figure 6: Communication between Python programs and Arduino programs on Arduino Portenta X8
Additionally, for the Portenta series, Arduino has also launched a Carrier (function board) – Portenta Max Carrier. This function board has various connectors, including two USB A ports, one network port, one FD-CAN bus RJ11 port, one mini-PCI Express (mPCIe) slot, one RJ12 port with RS232/433/485 bus, stereo audio input and output, a dedicated microphone input, external speaker connector, and a microSD slot for storage expansion. For debugging, there is an onboard JLink OB/Blackmagic probe. In terms of power supply, Max Carrier can be powered by an external power source (6-36V) or an onboard 18650 lithium battery. In addition, it is pre-installed with two wireless communication modules: the provided LoRa connection Murata CMWX1ZZABZ-078, and the u-blox SARA-R412M-02B for handling Cat M.1 and NB-IoT cellular connections.
Figure 7:Portenta Max Carrier
Through this function board, it should be possible to quickly apply Arduino Portenta H7 or Arduino Portenta X8 to your projects.
With the widespread application of cloud, machine learning, and containers in cloud computing, we can see a new development model emerging, which integrates various software and hardware through the cloud, leveraging tinyML and lightweight containers to quickly deploy robotic applications in various edge computing scenarios. Arduino and open-source hardware like Raspberry Pi are continuously advancing the evolution of development models. I believe it won’t be long before we can quickly develop robotic applications based on such open-source hardware.
Previous Highlights: 【Highlights】Summary of Original Highlights Articles from the Reading Code Field
Reading Code Field Paid Membership Professional Group
Membership Recruitment: The membership fee for each professional group is 88 yuan/quarter, and the rights include asking questions in the group, 20% off offline activities, and irregular group technical sharing (ordinary users can watch live for free, after sharing each on-demand price is 19 yuan/time). If you want to join, please privately message customer service Xiaoyue (Xiaoyue WeChat: linuxer2016)
Professional Group Introduction:
Zhen Jianyong – Performance Optimization and Architecture
This group focuses on technical exchanges of Perf, cache, and CPU architecture, covering senior users in cloud/network/car/machine/chip fields, hosted by senior instructor of Reading Code Field Zhen Jianyong.
Li Chunliang – Xenomai and Real-time Optimization
This group focuses on technical exchanges of Xenomai and real-time optimization, covering senior users in cloud/network/car/machine/chip fields, co-hosted by senior instructors Li Chunliang and Peng Weilin.
Zhou Hehe – Tee and ARM Architecture
This group focuses on technical exchanges of Tee and ARM architecture, covering senior users in cloud/network/car/machine/chip fields, hosted by senior instructor of Reading Code Field Zhou Hehe.
Xie Huan – Linux Tracers
This group focuses on technical exchanges of Linux tracers, covering senior users in cloud/network/car/machine/chip fields, hosted by senior instructor of Reading Code Field Xie Huan.
✦
✦
Leave a Comment
Your email address will not be published. Required fields are marked *