Artificial Intelligence and Machine Learning are being popularly deployed in numerous applications these days. Face Recognition, Speed Recognition, Text Recognition, or specific ML Models are common technologies that are used to solve traditional engineering problems. But how can you run these technologies on an embedded microcontroller running on low power supplies???
You can use a Raspberry Pi or a Jetson Nano but it will be overkill for simple applications and not power efficient. The product may work, but you will not be able to scale up during production using these hardware platforms. The solution is to use hardware that is dedicated to running AI and ML frameworks.The Sipeed Maix Boards are the most popular platforms for these applications now.
What is Sipeed MAix M1w dock ???
The Sipeed M1 Dock Suit is a very powerful development board capable of doing image processing and also a very powerful RISC-V-based board. The board has a Sipeed M1 module, which contains a powerful Kendryte K210 SoC (System on Chip) inside and 16 MB of flash memory.
Additionally, the K210 contains a Neural Network Processor (KPU) . suitable for the development of artificial intelligence applications. You can read more details about the KPU in the device datasheet.This enables the development of applications in the field of computer vision, such as image classification and face detection.You can watch here a video with a short demo illustrating a face detection application running on a Sipeed M1 board.
Check out our website www.probots.co.in to find all the parts for your projects! We have 2000+ Electronic Modules, Sensors, and Components for all your electronics projects.
- You can buy this Sipeed Module here – Buy Now
Which Development Environment to use???
The K210 supports several programming environments:
- The most basic cmake command line development environment
- IDE development environment
- Python scripted development environment.
1) Command line development environment
The K210’s official SDK supports two development modes: FreeRTOS and Standalone. You can download SDK Programming Guide here.
2) IDE development environment
For people who want to develop under Windows, they can use the officially provided IDE, which is my most common open method.Specially after they released Grove AI HAT based on K210, They released new software: ArduinoCore-k210. For installing ARDUINO IDE for Maix Dock follow here. help users run Arduino libraries on K210 based boards such as Grove AI HAT.
3) MicroPython development environment
The two development environments described above are all about writing code, then compiling and downloading. In the environment of MicroPython, you only need to download the firmware once, then you can use the serial port to interact with Python, or you can put the script in the SD card and boot it.
What is MicroPython???
MicroPython is a tiny open source Python programming language interpreter that runs on small embedded development boards. With MicroPython you can write clean and simple Python code to control hardware instead of having to use complex low-level languages like C or C++ (what Arduino uses for programming). Refer here for more info.
Maxi Py IDE used for Micropython you can download it from here.
Which Firmware is used for Maix???
MaixPy is to port Micropython to K210 (a 64-bit dual-core RISC-V CPU with hardware FPU, convolution accelerator, FFT, Sha256) is a project that supports the normal operation of the MCU and integrates hardware acceleration,machine vision and microphone array.
How to upgrade the Firmware???
NOTE – Don’t upgrade the firmware for the default firmware built-in if you do so LCD display won’t configure with the newer versions of firmware.
Solution– Use PLATFORM IO for higher firmware versions to resolve display issues.
- Download firmware–
Download the firmware from https://github.com/sipeed/MaixPy/releases
- Download the burner-
Download it from here: https://github.com/sipeed/kflash_gui/releases
- Burn the Firmware-
Follow the instruction from here: https://github.com/sipeed/kflash_gui
What type of Models can Maix run???
If you intend to use a trained model with K210 chip and Micropython firmware, due to memory limitations you can choose between MobileNet(2_5, 5_0 and 7_5) and TinyYolo, but I’ve found MobileNet gives better detection accuracy.
Models– Full Yolo – Tiny Yolo – MobileNet1_0 – MobileNet7_5 – MobileNet5_0 – MobileNet2_5 – SqueezeNet – VGG16 – ResNet50
What are the Applications of MAIX DOCK ???
- Face Detection.
- Speech Recognition.
- Frame Differencing.
- Color Tracking.
- Eye Tracking
- Person Detection
- QR Code Detection/Decoding
- Template Matching
- AprilTag Tracking
- Object Detection
Sample Projects Links –