This project was an individual assessment for my Physical Computing and Prototyping Module. The brief was to design and build a novel interactive physical user interface prototype that addressed a concrete problem. At minimum, the prototype had to include a micro-controller platform, sensing, actuation, and a digital fabrication technique. The project was completed in one and a half months.
When people fall ill they may find it hard to keep track of the over the counter (OTC) medicines they are taking to treat their symptoms. Not knowing whether it is safe to take medicine can be problematic as taking doses too often could lead to accidental overdose over time. Current advice for managing medication doses include recording doses in a notebook, journal, or calendar. However, if someone is ill or drowsy, these options may be difficult to manage.
The goal was to decrease accidental overdose of OTC medicine by creating a device that simplifies the way people keep track of the doses they take.
Inspiration came when I fell ill. For weeks I was sick in bed with the flu and other symptoms. In this state, I struggled to remember when I had last taken each medicine and wondered if I had waited enough time to take another dose. As I lay in bed and looked at the bottles of medicine on my nightstand I wished there was an easy solution for my problem. After some preliminary research, I discovered that others were having this problem as well.
Once, the basic idea had been established, I used sketching to visualize potential designs for the device. I continued to sketch through the design process as I explored new components and functionality.
Low Fidelity Wireframes
High Fidelity Mockup
Originally, the interaction flow included redundant steps and an unnecessary status. At first, in order to record a dose if medicine a user would have to scan the item, say that they were taking the dose, read the status (safe to take or wait longer), and then decide if they still wanted to take the dose based on this information. After showing an interaction flow diagram of this process to users, the redundancy became clear and the first step was removed. In addition, an unnecessary status (you have not taken this medicine yet) was combined with the “safe to take” status to simplify the interaction.
Another issue with the original interaction flow, which relied on text input from the serial monitor, was the potential for typos or incorrect text input. If “yes” or “no” were not typed exactly right, the program would not continue. This was solved by replacing the text input with red and green buttons.
The Arduino prototype was developed in phases. In the first phase, a way to read and record dose time for each medicine was programmed using the Arduino IDE. Medicines were identified using RFID and variables for each medicine (RFID tag ID, medicine name, recommended wait time between doses, last dose time, and wait time remaining) were stored using a struct.
In the first iteration, the Arduino IDE serial monitor was used to display messages and receive input. After that, the following components were added one by one: LED display, neopixel ring , buttons (yes/no), RFID tag stickers, and a passive buzzer.
When the components and program were complete, I moved on to the form-factor. First, I selected one design from my sketches. Second, I created a full-scale paper prototype to visualize how the components would fit into the machine. Third, I adjusted the measurements as needed and created a 3D CAD model for the revised design using Autodesk Fusion 360.
After the CAD model was built, I showed it to users for feedback. Based on this feedback I built a model of a second design. Additional feedback and reflection on potential usability issues led to a third and final CAD model.
To see if the components would fit properly into the final design, I made a fully-operational foam-core model based on the CAD model. Since the CAD model didn’t take into account the space taken by wires, the foam core model was slightly too small. To fix this, the width and height of the model were expanded.
For convenience reasons, the prototype was tested with students using sample medicines. Testing consisted of short informal observations of users interacting with the device in a university-run makerspace. Users were observed interacting with the device and were asked questions based on their interactions.
Overall, users were able to interact with the device with little guidance. Multiple users expressed joy when interacting with the device. However, there were a few problems. For example, often users pressed buttons too early as they didn’t realize messages spanned multiple screens. This caused two problems: (1) The device appeared unresponsive since buttons didn’t work until the entire message was displayed and (2) Information, such as wait time remaining before the next dose, was missed. To fix this, I decreased the delay time.
After making slight alterations based on user feedback, the final prototype was presented to professors and students at the Physical Computing and Prototyping module showcase. For the showcase, a poster and video accompanied a live demonstration.
For this project, I grew an idea into a functional prototype using the design process. Along the way I learned basic programming (C/C++), electronic prototyping (Arduino), 3D modeling (Fusion 360), and digital fabrication techniques (laser cutter). In addition, I learned to remove and/or change functionalities when faced with time, money, and technical constraints.
Dose Tracker could help reduce accidental overdoses by alerting people when they are taking more medication than is recommended. Informal observations with university students indicate the design is easy to use. Further testing with users of different ages and tech literacy, perhaps in a home setting, could uncover whether the device’s tangible design is intuitive for a variety of users.