-
1Hardware Build Guide
TBD
-
2Data Taking for Model Training
PROCEDURE:
This initial project will take the form of a case study that will take place using multiple laboratory visits of participants.
Visit 1) Participants will wear the wrist mounted IMU to gather baseline data on tremor severity and frequency. Participants will wear the IMU on their wrist while performing 1 of 5 classifications in 10 second increments for a total of 2 minutes. Combined this will require 10 minutes of active time:
- idle,
- moving their hand up and down,
- moving their hand left and right,
- lifting a glass
- lifting an eating utensil.
This baseline data will be analyzed through fourier analysis to determine the dominant frequency of the tremor. This dominant frequency will be the starting point for haptic vibrations to be applied to the participant’s wrist in a second visit.
Visit 2) Participants will wear the wrist mounted IMU and have haptic feedback applied to their wrist while performing the same actions. The haptic frequency will initially be set to be equal to the dominant frequency of the individual’s unique tremor. Vibration frequencies will then be adjusted in reasonable increments to allow for potential development of a fitted machine-learning model to minimize tremor frequency based on input vibration. A randomized pattern of vibration will also be applied to compare with the non-random results. IMU data from this visit will be collected and fed into a Machine-Learning model developed using Edge Impulse to create a model linking motor vibration frequency to minimized tremor amplitude. This model will be deployed to the Arduino Nano 33 BLE Sense Rev2 for use by the participant in Visit 3.
Visit 3) The developed model will be deployed to the wrist mounted IMU device and utilized by the participant over the span of a week to determine efficacy of the machine-learning model in minimizing tremor frequency from surface vibrating motors. Results will be analyzed and the process repeated/adapted as necessary.
SETTING UP EDGE IMPULSE: Installation
Complete the Installation Process here to setup your environment for using EDGE IMPULSE: https://docs.edgeimpulse.com/docs/edge-impulse-cli/cli-installation
Note: I completed the Windows installation and most of the steps were simple downloads to install through GUI’s. The exception was this one line. On Windows you need to open a WINDOWS POWERSHELL (you can access WINDOWS POWERSHELL from the Search bar)
and type the following:
> npm install -g edge-impulse-cli --force
SETTING UP EDGE IMPULSE: Reading Data
To get Data from the Nano 33 BLE Sense Rev 2 complete the following to use the DATA FORWARDER feature of Edge. This will connect you through the web to upload data from the SERIAL port of your ARDUINO. For this tremor watch device, we are interested in the accelerometer values (ax, ay and az) to get tremor frequency. In theory this is a temporary process until EDGE can officially support the Nano 33 BLE Sense Rev2.
Open a Windows Terminal and type the following:
> edge-impulse-data-forwarder
You may get an error message stating “cannot be loaded because running scripts is disabled on this system.” To fix this issue, you need to change the execution policy using the Set-ExecutionPolicy cmdlet, so that the PowerShell script runs on your particular machine. Here is how to permit PowerShell script execution (determined using Google Bard accessing source : https://github.com/edgeimpulse/edge-impulse-cli):
- Open PowerShell Console by selecting “Run as Administrator” and get the execution Policy with the command: Get-ExecutionPolicy to get the current policy applied, such as “Restricted”.
- Set the execution Policy with the following command: Set-ExecutionPolicy RemoteSigned. Type “Y” when prompted to proceed.
Once you have changed the execution policy, you should be able to run the PowerShell script without any problems and can then collect data. If you see the following:
You probably have your Arduino IDE open and taking up the PORT that EDGE is trying to access. Keep your Arduino plugged in but close any IDE windows that might be accessing your Arduino port. Once you do that you should see the following:
Hey! Look at that. You now have a weblink to visit to start collecting your data! Here’s what mine looks like. You will use the START SAMPLING to begin data collection according to the suggestions below.
Now lets collect some data! You want to have your individual wear the nano accelerometer and gather data for multiple situations in Edge Impulse. We have THREE core situations and variations on each of these. For each situation, you want to gather data in 10 second increments for a total of approximately 2 minutes for each situation. This will give a total of 18 minutes of data. The situations of interest:
- Idle: hand not moving
- UpDown: hand moving up and down in a continuous motion
- LeftRight: hand moving left and right in a continuous motion
- IdleCup: hand holding a cup
- UpDown: hand moving up and down in a continuous drinking motion while holding a cup
- LeftRight: hand moving left and right in a continuous motion while holding a cup
- IdleUtensil: hand holding a utensil (fork/knife/spoon/etc)
- UpDownUtensil: hand moving up and down in a continuous drinking motion while holding a utensil (fork/knife/spoon/etc.)
- LeftRight: hand moving left and right in a continuous motion while holding a utensil (fork/knife/spoon/etc.)
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.