Developing Embedded Applications that for the most part deal with machine learning as detailed from the following books and tutorials:
As Gian details Tiny machine learning is broadly defined as a fast growing field of machine learning technologies and applications including hardware (dedicated integrated circuits), algorithms and software capable of performing on-device sensor (vision, audio, IMU, biomedical, etc.) data analytics at extremely low power, typically in the mW range and below, and hence enabling a variety of always-on use-cases and targeting battery operated devices.1
This Branch contains the most updated code and hardware designs. The branch old_documentation contains older code/designs and applications that do not fit with the main repo.
Arduino Nano 33 BLE Sense Rev2
Description | |
---|---|
CPU | Arm Cortex-M4 64MHz |
FLASH | 1MB |
RAM | 256KB |
SIZE | 45x18mm |
As bought and documented here
Rasperry Pi Pico W RP2040 MicroController
Description | |
---|---|
CPU | Dual core Arm Cortex-M0+ 133MHz |
FLASH | 2MB |
RAM | 264KB |
Wifi | 2.4GHz single band, 802.11n |
SIZE | 51x21mm |
As bought and documented here
Implementation of Get Started With Machine Learning on Arduino by Sandeep Mistry and Dominic Pajak. A gesture classifier is created to play Street Fighter as detailed by Charlie Gerard in Play Street Fighter with body movements using Arduino and Tensorflow.js. Full implementation can be found here
The x-axis represents the num of samples and the y-axis represents g-force from the accelerometer and degrees per second from the gyroscope.
Jab Data
Acceleration Graph:
Angular velocity Graph:
Raw data can be found here
Upper Cut Data
Acceleration Graph:
Angular velocity Graph:
Raw data can be found here
The learning curves after 300 epochs of training mixed with validation as seen below:
with the following model and trainable paramaters:
Layer (type) | Output Shape | Param # |
---|---|---|
Dense | 50 | 35,750 |
Dense | 15 | 765 |
Dense | 2 | 32 |
Ino Code can be found here
C-Byte Model can be found here
Implementation of the person detection example as detailed by the ArduCam Team
WARNING!!! THIS PROJECT IS AN OPEN SOURCE HARDWARE PROJECT TAKE ALL PRECATIONS BEFORE ASSEMBLY SUCH AS MASK, GLOVES AND FIRE EXTINGUISHER. IN THAT REGARD READ THE MIT LICENSE ALSO BEFORE USING!!!!
This version of the schematic comes from the book Teach an Arduino to Fly by David McGriffy in the book David uses the Teensy 3.1 board and the add-in for the Arduino IDE to program the flight controller, I just switched the board and removed the components that are not necessary for the Nano BLE 33 Rev 2. This design uses only one 3.7V 650mAh battery rather then the two that I used in the previous two designs. This should help with the weight issues I was having. To make this design work you need to buy a voltage regulator/booster (similar to the one I designed in Old Version 1) except in this design I bought a tried and tested booster (rather than design my own like I did in Old Version 1); in particular I bought Matek VB2A5V 3-4.2V to 5V Voltage Booster . Basically, the genius of David's design is that a 3.7v battery can be used to power the Arduino, motors, and other components. The battery's 3.7-4.2 variable discharge rate will power the motors, while the regulated 5v output will power the Arduino through its vin pin and the auxiliary components (i.e a camera). The Arduino's 3v3 pin is configured to power the Lemon RX reciever to be controlled by the Blade MLP4DSM 4Ch Controller. However, I first need to understand how the Serial 1 hardware library works with the Nano (which to one of ordinary skill will take some additional time); so to save time, I will be building a joystick control system as detailed by paulsb through the Nano's Bluetooth BLE. And I decided to add a FPV camera manufactured by Wolfwhoop to capture video images.The drone frame is a Syma X5C Frame and I modified David's code as found at The visible drone to work for the Nano 33 BLE 33 Rev2 and Nano 33 BLE. Get David's book to fully understand this Drone/flight control game, G!!! (highly recommended).
Schematic
Gerber file and 3D Gerber CAD VIEW
PCB Fabrication and assembly was done by EasyEda.