Difference between revisions of "Motion recognition for the Arduino"
Line 24: | Line 24: | ||
=== Connecting your mobile phone === | === Connecting your mobile phone === | ||
− | We will be using our mobile phones to collect accelerometer (gesture) data. That means we need a way to record data and send it over to Edge Impulse. To connect your phone within Edge Impulse, click on the tab 'Devices'. While on the new page click on the 'Connect new device' button in the top right corner, followed by 'Show QR code'. Now is the time to grab your mobile phone and use your camera or a QR code scanner app (e.g. Google Lens) and scan the QR shown on the screen. When done successfully you should see a green ✅ check mark ✅. After seeing the check mark, click on [Collecting motion?] to collect accelerometer data. Now we have to <strong>''label''</strong> the gesture we are going to collect. I'll start with a basic up and down movement so my label will be 'updown'. For the <strong>''length''</strong> it's recommended to pick 10 seconds because when we will record the up and down movement in a continuous motion (you don't want to do this for minutes, trust me). As for the <strong>''category''</strong> we will pick 'Training'. When all these options are set, we're ready to | + | We will be using our mobile phones to collect accelerometer (gesture) data. That means we need a way to record data and send it over to Edge Impulse. To connect your phone within Edge Impulse, click on the tab 'Devices'. While on the new page click on the 'Connect new device' button in the top right corner, followed by 'Show QR code'. Now is the time to grab your mobile phone and use your camera or a QR code scanner app (e.g. Google Lens) and scan the QR shown on the screen. When done successfully you should see a green ✅ check mark ✅. After seeing the check mark, click on [Collecting motion?] to collect accelerometer data. Now we have to <strong>''label''</strong> the gesture we are going to collect. I'll start with a basic up and down movement so my label will be 'updown'. For the <strong>''length''</strong> it's recommended to pick 10 seconds because when we will record the up and down movement in a continuous motion (you don't want to do this for minutes, trust me). As for the <strong>''category''</strong> we will pick 'Training'. When all these options are set, we're ready to collect data! |
<gallery heights="300px"> | <gallery heights="300px"> |
Revision as of 13:16, 24 March 2022
Intro
Edge Impulse is an free online service where you can build machine learning models to recognize certain patterns using sensor data. Think of audio, images and in case of this tutorial, motion (accelerometer). Machine learning (ML) is a way of writing computer programs. Specifically, it's a way of writing programs that process raw data and turn it into information that is useful for a specific purpose. Unlike normal computer programs, the rules of ML programs are not determined by a human programmer. Instead, ML uses specialized algorithms (sequence of instructions) to learn from data in a process known as training.
In this tutorial we will be using Edge Impulse to train a ML program to recognize gestures that you will define using the accelerometer in your mobile phone. After successfully training the ML program on your gestures, we can then generate code for the Arduino Nano 33 BLE Sense. This will allow you to perform your trained gestures with the Arduino while, at the same time, the ML program on the Arduino tries to detect what gesture is performed.
Getting Started
To train a ML program on your gestures you'll need:
- Computer with access to the internet (Firefox or Google Chrome)
- Mobile phone with an accelerometer sensor and an app to scan a QR code
- An account on Edge Impulse
To get your trained ML program on the Arduino you'll need:
- An Arduino Nano 33 BLE Sense
- Micro-USB to USB cable
Training a ML motion recognition program
Creating a project in Edge Impulse
After creating an account and logging in on Edge Impulse, click on your user profile in the top right corner followed by Create new project'. This will open a new window where you can give a name to your project. After naming your project, click on the green [Create new Project] button to create your project. Edge Impulse will ask you what kind of sensor data you would like to collect. Since we're going to use the accelerometer on our mobile phone, click on 'Accelerometer data', followed by the green [Let's get started!] button.
Connecting your mobile phone
We will be using our mobile phones to collect accelerometer (gesture) data. That means we need a way to record data and send it over to Edge Impulse. To connect your phone within Edge Impulse, click on the tab 'Devices'. While on the new page click on the 'Connect new device' button in the top right corner, followed by 'Show QR code'. Now is the time to grab your mobile phone and use your camera or a QR code scanner app (e.g. Google Lens) and scan the QR shown on the screen. When done successfully you should see a green ✅ check mark ✅. After seeing the check mark, click on [Collecting motion?] to collect accelerometer data. Now we have to label the gesture we are going to collect. I'll start with a basic up and down movement so my label will be 'updown'. For the length it's recommended to pick 10 seconds because when we will record the up and down movement in a continuous motion (you don't want to do this for minutes, trust me). As for the category we will pick 'Training'. When all these options are set, we're ready to collect data!