Routine Reinforcement Armband
We built a wearable routine reinforcement armband: a device targeted at alzheimers patients, that aims to encourage adherence to a daily routine. Our prototype is an armband that can be worn around the wearer's upper arm so that they are able to detect the device outputs as subtle suggestions for activity reminders. The device uses a self-hosted website to allow routine customization and outputs sounds and vibrations based on the type of reminder at the specified time of day. Built-in safety features include a temperature sensor, which notifies wearers of unsafe environments, and an altimeter that checks for hard falls. Routine reminder types currently include Meals, Recreation, Medication, and Alarms, allowing caregivers and patients to automatically suggest activities throughout the patient's day.
Supplies
Project materials:
- Adafruit Nano ESP32
- 1 Force Sensitive Resistor
- 1 Adafruit Vibrating Mini Motor Disc
- 1 Adafruit DRV2605L Haptic Controller Breakout Board
- 1 LSM303 Triple-axis Accelerometer+Magnetometer Board
- 1 Piezo speaker
- 1 TMP36 - Analog Temperature sensor
Other materials:
- USB-C to USB-C wire
- Perfboard
- Soldering iron and stand
- Internet (for customizing routine)
- Device with internet access capabilities (for customizing routine)
- Wiring or other material for constructing an armband
- Capacitor
Software requirements:
- Arduino IDE 2.3.3 or higher
- Adafruit LSM303DLHC Driver
- Adafruit DRV2605 Library
- NTPClient (for determining T.O.D.)
Wifi Configuration
So the Nano can host its web server over wifi, users must
- Open the file WorkingADRD.ino and change "Colby Guest Access" to their own wifi name:
- Uncomment the line that reads:
- Input their wifi password inside the ""
- Paste onto line 398:
Once completed, run the program, and if connecte,d the program will print a verification.
Circuit Assembly
The circuit for the routine reminder armband is above. The image shows A0 and A1 as analog inputs, but could be any other unused Analog pin, and digital pin 8 for output to the speaker, which any PWM pin could again replace.
To detect force, create a voltage divider using the Force Sensitive Resistor (FSR) and a 10k ohm resistor. Wire 3V from the Nano 3.3V power supply to the FSR. On the other connection of the FSR, connect a wire to A0 and a 10k ohm resistor to ground.
The DRV2605L haptic driver is powered from the Nano's 3.3V and ground, and its I²C pins (SCL and SDA) connect to the Arduino’s A5 and A4 pins, respectively; its motor output terminals connect to the vibration motor. The accelerometer also communicates over I²C, so its SCL and SDA pins join the same A5 and A4 lines; it is also powered from the Arduino’s 3.3V output and ground.
The TMP36 is powered by the Nano's 3.3V and ground, and its Vout is wired to A1.
The piezo buzzer connects with one lead to a digital pin (D8 in our circuit) and the other to ground.
Soldering the Board
To create the prototype, we used a perfboard, wires, and a soldering iron. For each step, test the connection using the provided tester code above.
- Solder the microcontroller to the perfboard.
- Solder a 5-slot and 8 8-slot header to the perfboard. These will hold the altimeter and motor controller. Wire A4 to both SDA pins and A5 to both SCL pins. Again, connect both to 3.3V and ground on the microcontroller.
- Solder a 2-slot header to the perfboard for the FSR. Connect one side with a wire to the 3.3V of the Nano. On the other side, connect a wire to the A3 (we used A0 in the above circuit diagram), and using a 10k ohm resistor, connect the FSR header to ground.
- Solder a pitch terminal block to the board that holds the piezo speaker. Connect the positive side to digital pin 8, then connect the negative side to a 220 ohm resistor, and finally to ground.
- Solder a 2-pin header and a 3-pin header in proximity. Place a capacitor in the 2-slot header and the TMP36 in the 3-slot header. In sequence, attach 3.3V from the Nano to the capacitor, then one leg of the TMP36. On the opposite side of the TMP36 wire it to the unpowered leg of the capacitor, and then wire that leg to ground. Connect the middle leg of the TMP36 to A0.
Assembly
Post-soldering, the assembly of our device is extremely simple. Take one stiff wire and cut approximately twice the circumference of the wearer's forearm. Using electrical tape, fold and secure the wire in half. Solder the two exposed ends of the wire to the board and secure the opposite end to a second loop created by another wire.
Downloads
Operating Instructions
Once the device is powered and connected to wifi, it will begin hosting a web server on its own IP address, which is printed through serial. Pasting the address into a search engine will bring the user to a website that allows them to input a time of day and type of reminder (Meal, Recreation, Medication, and Alarm). The website documents currently set alarms in a list and allows the user to clear their routine.
As the user goes through their day, the reminders will suggest certain activity types, based on the auditory and haptic feedback. If a user decides to ignore their custom routine, they may press the FSR to clear all reminders from the schedule, without having to access the device via its website.
Potential Improvements
The device is a satisfactory prototype that proves our concept is viable, but to be truly functional in our target population, there are several improvements required:
- To allow the user to freely move throughout their day, the device needs to be powered by an onboard battery instead of a USB connection.
- Wi-Fi connectivity is currently the only technically demanding step in using the device. To help a likely technologically ill-educated population, it would be best to work around this step and have the device compiled and running the program out of the box.
- The device could be made more compact and ergonomic so that it might be more comfortable on the wearer's arm.
- Adding more types of reminders to the program and more complex feedback (auditory and haptic) would improve the usability of the device.
- Creating a functional menu that removes just one reminder from the schedule would make a more user-friendly interface.
- We would like the device to be capable of contacting a care team in the event of an emergency. Currently, the device warns the wearer, but future development would also involve sending for assistance automatically via the internet.
These potential next steps would create a better, user-friendlier device that would best suit a technologically challenged population, without impairing their day-to-day life.