Machine Learning on Arduino

Arduino is on a mission to make Artificial Intelligence (AI) and Machine Learning (ML) simple enough for anyone to use.

We’ve put together resources for you to get started straight away and will be adding more from expert partners every month.

What is Machine Learning?

Normally you tell a computer (including the microcontroller on your Arduino board) what to do by programming it explicitly. ML is different because the Arduino board is trained through examples it is shown. These examples can be images, sounds, or any other type of sensor data. After some training, the Arduino can make decisions about whether it hears a keyword, detects a movement, sees a person, or many other applications.

There are privacy and efficiency benefits to running ML on a microcontroller (where the sensors are) rather than sending all data to the cloud. ML is getting easier on Arduino boards thanks to more tools, techniques and examples. The trend of running ML on small devices is sometimes called Embedded ML or Tiny ML.

Algorithms

Machine learning algorithms come in all shapes and forms, each with their own trade-offs. There’s lots of interest in neural networks due to recent successes of deep-learning techniques. But there exist classical ML algorithms that are simple to understand, works well with less data and suitable for embedded devices.

Deep Learning is a more powerful ML approach modelled on the function of brain cells (neurons). It has the ability to extract hidden features and work with more complex data. You can get started with deep learning on Arduino by following the practical TensorFlow Lite tutorial for gesture recognition here. To understand some of the principles behind neural networks that make this possible take a look at the Arduino Perceptron library introduction.

Recommended hardware

Arduino Nano 33 BLE Sense is a great board to get started with Arduino machine learning.

The board combines a powerful Arm Cortex-M4 microcontroller with onboard sensors including a microphone, color, proximity and movement - which means you can address many use cases without additional hardware or wiring. The board is also small enough to be used in end applications like wearables and the BLE Sense board over BLE or USB is an easy way to capture sensor data for your ML projects on larger computers.

Quick start tutorials

Jump into these tutorials and apply ML in your Arduino projects today:


Edge Impulse Tutorial

Gesture recognition Arduino_TensorFlowLite

Voice recognition Arduino_TensorFlowLite

Partner resources

Arduino machine learning partners

Machine Learning for Microcontroller Projects

Further reading