2 min read

Week 4: How do you open a door?

For this week's Designing Assistive Technology class, I had to build something out of cardboard – I thought it would be a good opportunity to test out a prototype of (a part of) my and Kai's idea for our midterm project, a spooky box of treats served by a skull.  

The device will work the following way: a skull will move its jaw and light up its eyes in response to the movement of passersby, prompting them to approach. Beneath (or beside) the skull will be a box with just a button. Pressing the button will open the box and reveal treats inside that the visitor is free to take.

For this assignment, I considered how I would build the box. Below is a report summarizing my process, and some accessibility concerns that we should consider as we expand this idea further. You can also access the document through this link. The breadboard schematic of the circuit used in the box is included in the report.

The Nothing Box.pdf
Link to write

Here I've added the code I used to operate the servo that moves its lid:

#include "Servo.h"

Servo servoMotor;
int servoPin = 2;
int buttonPin = 3;
int servoAngle = 0;
long lastMoveTime = 0;

void setup() {
  servoMotor.attach(servoPin);  
  pinMode(buttonPin, INPUT);
}

void loop() {
  if (digitalRead(buttonPin) == HIGH) {
    servoAngle = 90;
  } else {
    servoAngle = 180;
  }

  if (millis() - lastMoveTime > 20) {
    servoMotor.write(servoAngle);
    lastMoveTime = millis();
  }
}

I faced a few stumbling blocks on my way to building this box, and I'd like some help thinking through them:

  1. How do you build an automated drawer? I initially wanted to build a drawer, but I realized the push-and-pull mechanism necessary could require parts I don't have access to right now. A classmate suggested using a linear actuator, but cheap options don't seem to move very far. A drawer would also require adding wheels or some kind of sliding surface that the drawer can move along.
  2. How do you raise a lid with a servo motor? Instead of using a drawer, I decided to give the box a lid that can move up and down with the servo. I made a lever for the servo so that it can lift the lid, and a small chamber inside the box to hold the servo in place. While it gets the job done, the lever is quite conspicuous.  
  3. How can I separate the electronics? I built the box small thinking it would be easier to work with, but as a result it can hardly fit anything more than the electronics. I would prefer the user not see the components, and an idea we had was to create a sealed-off section that contains the electronic components.
  4. How do I get rid of the micro USB? I initially thought I would power the electronics using a 12V power supply, but I had some issues using them with the Arduinos. What's the right way to use a 5V regulator? Can the output from a 5V regulator be used to power the bus? How about the Arduino itself (through V-in)? In the end, though, a 9V battery will probably be the best choice to get rid of the dependence on an external power supply entirely – but I would then have to create a removable section of the box.