View Single Post
Old 01-01-2017, 11:58 AM
johnt johnt is offline
Senior Member
 
Join Date: Apr 2009
Location: Stafford, UK
Posts: 1,059
15 yr Member
johnt johnt is offline
Senior Member
 
Join Date: Apr 2009
Location: Stafford, UK
Posts: 1,059
15 yr Member
Default

TexasTom thanks for sending the screen shots from the "Emma".

I ran my prototype (that is with only 4 vibrators) using the firing pattern shown by the screen shot. No luck. I show the code below.

I reckon that the "Activator" that they talk about is just the coin shaped vibrating motor that we are using.

Activator 1 is shown as having a firing pattern alternating between on (100ms) and off (100ms) giving a period of 200ms, or a frequency of 5Hz. That's in the middle of the range of 4-6Hz that's the norm for PD. I don't think this is a coincidence.

Given that tremor varies from person to person, it makes sense to try a range of values for the period from about 150Hz to about 250Hz.

With this perspective it is possible that activators 2 to 6 are just dealing with errors. These parameters are possibly determined in a training session. Here's how I could see such a system working:

- use a sensor to measure tremor;
- accept the alternating pattern of Activator 1, but play with the period until the locally optimal period is found for this particular user;
- take measurements with Activator 1 set, where there is still tremor set the Activator 2 bit to on, possibly with a reduced strength;
- and so on, giving less strength to each succeeding activator.
(Basically a Fourier analysis type approach.)

The moral of the story is that unless the tremor reduction system can be got working by trial and error, a way of measuring tremor (accelerometer, etc.) is at the heart of the system.

Ironically, I wanted to use this time for further tests, but for some reason although I'm late with my drugs I'm not tremoring!


// NOTE: this is a prototype. DO NOT USE FOR CLINICAL PURPOSES.

// This program controls 6 vibrating motors positioned in a circle around a wrist or arm.

// The theory under test is that the vibrations around the wrist reduces tremors.

// D0 A5
// D1 A4
// D2 A3
// V0 <---- D3 A2
// D4 A1
// V1 <---- D5 A0
// V2 <---- D6 ARDUINO
// D7 UNO VIN
// D8 GND
// V3 <---- D9 GND
// V4 <---- D10 5V
// V5 <---- D11 3.3V
// D12
// D13
// USB 5V
//

const int NVIBRATORS = 6;
const int PHYSICAL_PIN[6] = {3,5,6,9,10,11}; // Choose digital pins with PWM.
const int INTERVAL = 100; // ms
const int NINTERVALS = 20;
const int STRENGTH = 200; // range 0..255
const int VIBRATOR[6][20] = {
{1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0},
{0,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,0,0},
{0,0,0,1,1,0,1,0,1,1,0,1,1,1,0,1,1,0,0,0},
{1,0,1,1,0,1,0,0,1,0,1,0,1,0,0,0,1,0,0,0},
{1,1,0,1,0,0,1,0,1,0,0,1,0,0,1,1,0,1,0,0},
{1,0,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1,0,0,1}
}; // 1=on, 2=off

int intervalNumber = 0;

void setup()
{
// set the vibrator pins as output
for (int v=0; v<NVIBRATORS; v++)
{
pinMode(PHYSICAL_PIN[v], OUTPUT);
}
}

void loop()
{
for (int v=0; v<NVIBRATORS; v++)
{
analogWrite(PHYSICAL_PIN[v], STRENGTH*VIBRATOR[v][intervalNumber]);
}
delay(100);
intervalNumber = (intervalNumber+1)%NINTERVALS;
}


John
__________________
Born 1955. Diagnosed PD 2005.
Meds 2010-Nov 2016: Stalevo(75 mg) x 4, ropinirole xl 16 mg, rasagiline 1 mg
Current meds: Stalevo(75 mg) x 5, ropinirole xl 8 mg, rasagiline 1 mg
johnt is offline   Reply With QuoteReply With Quote
"Thanks for this!" says:
job1119 (01-01-2017)