Parkinson's Laser Walker

24

1

Parkinson's Disease is caused by the decrease of dopamine production in the substantia nigra. This causes symptoms that may affect gait such as freezing. During freezing, it is difficult to initiate movement in gait, so a visual cue of a laser can help some begin their first step. This laser has a motion sensor to allow for the laser to automatically turn on when the client steps into the filed of the sensor.

This product includes components from an Arduino circuit board, a 3D printed holder for the breadboard, a motion sensor and line laser diode and some adhesive devises such as velcro and zip ties in order to keep the previously states components in place.

Step 1: Set Up the Ardiuno Circuit Board

Components Needed:

- (1) Distance sensor [with wire extenders]

- (3) 330 ΩResistors (orange, orange, brown)

- (1) RGB LED

- (10) Jumper Wires

- (1) Line Laser Diode (5mW 650nm Red) [with wire extenders]

Location of Components:

- Distance Sensor: A3, A4, A5, A6

- 330 Ω Resistors: E22 to F22, E23 to F23, E25 to F25

- RGB LED: A25, A24, A23, A22

- Jumper Wires: E3 to 5V Rail (+), E4 to Digital Pin 11, E5 to Digital Pin 12, E6 to GND Rail (-), 5V Rail (+) to 5V, GND Rail (-) to GND, J22 to Digital Pin 6, J23 to Digital Pin 5, J25 to Digital Pin 3, E24 to GND Rail (-)

- Line Laser Diode: 5V Rail (-), Digital Pin 13

Code:

<!--<br> /* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1107305727 0 0 415 0;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;
	mso-font-charset:0;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:-536870145 1073786111 1 0 415 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-unhide:no;
	mso-style-qformat:yes;
	mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
.MsoChpDefault
	{mso-style-type:export-only;
	mso-default-props:yes;
	mso-fareast-font-family:Calibri;
	mso-fareast-theme-font:minor-latin;
	mso-bidi-font-family:"Times New Roman";
	mso-bidi-theme-font:minor-bidi;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.WordSection1
	{page:WordSection1;}
--><p>/*<br>SparkFun Inventor’s Kit
Circuit 3B-Distance Sensor</p><p>Control the color of an RGB LED using an ultrasonic distance sensor.</p><p>This sketch was written by SparkFun Electronics, with lots of help from the Arduino community.
This code is completely free for any use.</p><p>View circuit diagram and instructions at: <a href="https://learn.sparkfun.com/tutorials/sparkfun-inventors-kit-experiment-guide---v40"> https://learn.sparkfun.com/tutorials/sparkfun-inv...</a>
Download drawings and code at: <a href="https://github.com/sparkfun/SIK-Guide-Code"> https://learn.sparkfun.com/tutorials/sparkfun-inv...</a>
*/</p><p>const int trigPin = 11;           //connects to the trigger pin on the distance sensor       
const int echoPin = 12;           //connects to the echo pin on the distance sensor      
const int laserPin = 13;           //connects to the laser pin on the distance sensor</p><p>const int redPin = 3;             //pin to control the red LED inside the RGB LED
const int greenPin = 5;           //pin to control the green LED inside the RGB LED
const int bluePin = 6;            //pin to control the blue LED inside the RGB LED</p><p>float distance = 0;               //stores the distance measured by the distance sensor</p><p>void setup()
{
  Serial.begin (9600);        //set up a serial connection with the computer</p><p>  pinMode(trigPin, OUTPUT);   //the trigger pin will output pulses of electricity 
  pinMode(echoPin, INPUT);    //the echo pin will measure the duration of pulses coming back from the distance sensor
  pinMode(laserPin, OUTPUT);   //the laser pin will output pulses of electricity </p><p>  //set the RGB LED pins to output
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}</p><p>void loop() {
  distance = getDistance();   //variable to store the distance measured by the sensor</p><p>  Serial.print(distance);     //print the distance that was measured
  Serial.println(" in");      //print units after the distance</p><p>  if(distance <= 10){                         //if the object is close</p><p>    //make the RGB LED red
    analogWrite(redPin, 255);
    analogWrite(greenPin, 0);
    analogWrite(bluePin, 0);
    analogWrite(laserPin, 225);</p><p>  } else if(10 < distance && distance < 20){  //if the object is a medium distance</p><p>    //make the RGB LED yellow
    analogWrite(redPin, 255);
    analogWrite(greenPin, 50);
    analogWrite(bluePin, 0);
    analogWrite(laserPin, 225);</p><p>  } else{                                     //if the object is far away</p><p>    //make the RGB LED green
    analogWrite(redPin, 0);
    analogWrite(greenPin, 255);
    analogWrite(bluePin, 0);
    analogWrite(laserPin, 0);    
  }</p><p>  delay(50);      //delay 50ms between each reading
}</p><p>//------------------FUNCTIONS-------------------------------</p><p>//RETURNS THE DISTANCE MEASURED BY THE HC-SR04 DISTANCE SENSOR
float getDistance()
{
  float echoTime;                   //variable to store the time it takes for a ping to bounce off an object
  float calculatedDistance;         //variable to store the distance calculated from the echo time</p><p>  //send out an ultrasonic pulse that's 10ms long
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10); 
  digitalWrite(trigPin, LOW);</p><p>    //send out an ultrasonic pulse that's 10ms long
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10); 
  digitalWrite(trigPin, LOW);</p><p>  echoTime = pulseIn(echoPin, HIGH);      //use the pulsein command to see how long it takes for the
                                          //pulse to bounce back to the sensor</p><p>  calculatedDistance = echoTime / 148.0;  //calculate the distance of the object that reflected the pulse (half the bounce time multiplied by the speed of sound)</p><p>  return calculatedDistance;              //send back the distance that was calculated
}</p>

Step 2: 3D Print the Breadboard Holder

In order to attach the breadboard to the walker, a 3D printed holder is made so the breadboard can stay within the area of the laser and motion sensor. The holder is made for the Arduino breadboard to slide in and be held upside-down with the wired components to hang free of obstruction.

The 3D printed holder then should be fastened to the underside of the seat cushion of walker via Velcro strips.

Step 3: Placement of the Sensor and Laser

The wires should be long enough so that it can extend to the end of the walker. The sensor should be placed on the walker so that the front of the sensor faces inward. The front of the sensor should be in a location that the client's leg will pass in front of in order to turn on the laser light. The laser should also face inward but at an angle so that the laser light shines perpendicularly to tip of the client's feet. The laser light should be a few inches in front of the sensor and feet of the client so that they have a distinct line to walk towards. The wires should be fastened securely onto the legs of the walker with zip-ties.

Step 4: How to Use the Final Product

The instructions to use the product are simple. The client should start off with one foot/leg within the range of the sensor and as the light turns on, they can start walking towards or on the laser light. This should help them initiate their step and gait cycle with the visual cue of the laser light. Since the laser is motion activated through the sensor, the client does not need to remember to turn on or off the device as it automatically does that through the sensor.

Share

    Recommendations

    • Tape Contest

      Tape Contest
    • Trash to Treasure

      Trash to Treasure
    • Arduino Contest 2019

      Arduino Contest 2019

    Discussions

    0
    None
    jessyratfink

    10 hours ago

    This is a fantastic project :)