Activities of daily living (ADL) are self-care activities that are usually taken for granted, since as the name implies they are performed on a daily basis. If you have ever ended up in a cast, or on crutches you can empathize how menial daily activities can suddenly be very difficult to perform. Waking up in the morning and maintaining a schedule is obviously an important ADL, and for those with hearing impairments that can be a challenge with tradional radio alarm clocks. This post will discuss an open source option for maintaining a daily schedule with a hearing impaired alarm clock. A hearing impaired alarm clock flashes your bedside lamp to wake you up in the morning. Commercial versions of this alarm clock have been disappointing, and are expensive because of the relatively small market size for this type of alarm clock. This combination of poor performance and high cost motivated the open source hearing impaired alarm clock project.
This post is organized into the following sections:
- Project overview
- Bill of materials / price breakdown
- Hardware setup
- Software setup
- Operating Instructions
- Future work, possible derivatives
The hearing impaired alarm clock is based on an arduino micro-controller that switches on and off a lamp using a relay. Since building circuits to control household power is best left to professionals, a UL certified module that allows you to control the lamp using 5V signals from the arduino is employed (safety first!). Alarm clocks must survive an alarming amount of abuse from sleepy users, therefore the electronics are protected inside a wood box procured from a local hobby store. Finally a small LCD display is used to communicate the time and other pertinent information to the user.
Bill of Materials / Price Breakdown
- Arduino Duemilanove microcontroller (DEV-09950), $30
- Power switch tail (COM-09842) , $20
- Arcade button (COM-09340), $2 ea, qty: 4
- 16×2 LCD display (LCD-09395, $25
- Prototype shield (DEV-07914), $17
- Wood box (hobby store), $3
(SparkFun Electronics SKU’s shown in parenthesis)
Total cost: $105, considerable reductions in price could be achieved with better engineering and less reliance on physical computing platforms like the arduino, power switch, and prototype shield. Of course development time is proportional to the ease use of the platform and inversely proportional to cost.
- 3/8″ spade drill bit
- Saw (preferably a jig saw)
- Roto zip or similar router (optional)
- Compass for drawing circles
- computer with arduino IDE installed
The four arcade buttons are mounted on the top of the wooden box. A window is cut out of the front of the box using the jig saw to mount the LCD screen. The 3/8″ spade bit is used to drill access holes into the back of the box for the power cord and the 5V wires that control the power tail. The power tail is mounted behind the back of the wooden box.
The arcade buttons are wired to a pull down resistor and the arduino as illustrated below:
The power tail is controlled by connecting a jumper wire from an arduino digital I/O pin to the positive terminal on the power tail, and grounding the negative pin. The LCD has three wires which must be connected to +5V, GND, and a (digital) signal pin on the arduino. To complete the hardware setup the arduino is carefully placed in the bottom of the box and the lid is closed. This safely and securely hides all wires inside the box.
The software that controls the alarm clock was written and loaded into the arduino micro-controller using the arduino IDE. The entire source code for the project can be found on its dedicated page here.
The alarm clock is organized into four operating modes:
- Clock mode
- Alarm armed mode
- Alarm sounding/flashing mode
- Snooze mode
In each mode the four buttons on the top of the clock behave differently. The white buttons are distinguished by their relation to the four cardinal directions as viewed from above. For example the top button is the north button, the right button is the east button and so on. In modes one and two the north button enters the menu functions (set time, set alarm, etc…). When the alarm is sounding (the lamp is flashing), pressing the east and west buttons simultaneously stops the alarm, and returns the alarm to mode 2. At this point the alarm is reset to activate at the same time on the following day. If the south button is pressed while the alarm is flashing the snooze mode is entered. At any time the south button can be used to manually turn on/off the lamp. While in mode two, pressing the east and west buttons simultaneously de-activates the alarm and move the clock into mode one.
While the hearing impaired alarm clock satisfies the requirements of waking its user up in the morning, the project could be extended to include many more functions due to the open nature of the hardware and software that was used to develop the project. A few future improvemnts that could be incorporated:
- Internet connectivity through a wired, or radio add on shield. This could allow the lamp to be flashed when message are received (via email or text message), or alternatively the ability to broadcast messages to care takers when the alarm is de-activated in the morning.
- Additional alarm functionality through the addition of a second alarm, or the capability to set alarms only for week days or only weekends.
As a final geeky aside the functionality of the 120V relay would be a good starting point for developing Rube Goldberg like contraptions that dump you out of bed into your clothes while simultaneously cooking your breakfast. See link here.
Update 11/7/2010: The connections shown on the bread board for controlling buttons and activating the relay kept intermittently loosening and caused a number of difficult to debug errors in the alarm clock. This problem was fixed by hardwiring all the connections into a more permanent perf-board.
————————————–End of Post——————————————————————-