Introduction: Alarm Clock
A man is lying peacefully in his bed, waiting for morning. When his alarm is placed over a light sensor, morning comes and the alarm goes off. Like all too many of us, his natural reaction is to smack the thing and go back to bed.
A servo pulls a level glued to the man's back and inserted through the bed. This lever causes the man to sit up in bed. The fishing line controlling the extension of the arm runs through the man's back and is attached to the bed such that when he sits up the arm is extended automatically. The arm knocks the alarm clock over and the servo returns the lever to its original position, with the arm curling back in as it does.
This instructable will address creating the project both with and without the utility a laser cutter provides. There's a tremendous amount of room for aesthetic expansion, so we implore you to consider that at every part of the process and consider the addition of aesthetic elements. The elements we added, including things like the lamp, are at the end of the instructable, though you're not likely to want to do them all at that part of the process (so read through things and weave your ideas into the whole process!).
This project was completed by Tommaso Buvoli, Kristina Callaghan, Bruce Deakyne, and Phillip Dunlap for CU Boulder Things that Think Spring 2011.
Step 1: Materials
With laser cutter:
Sheets of wood,
Tape/general adhesives of choice,
Without laser cutter:
Sheets of wood,
Fishing line and wire,
Tape/general adhesives of choice,
Microcontroller (we used Arduino Mega),
Resistive Light sensor,
100,000 KOhm resistor,
LED (for lamp add-on)
1 KOhm resistor (for lamp add-on)
Step 2: Making the Arm
If you're lucky enough to have a laser cutter, making the arm is significantly easier to achieve a high quality product. The first picture is our first laser cut prototype. The basic design is to have each segment be two planks of wood with room between to create a joint with the next segment. Simply laser cut holes where you wish to insert a pin (in our case a wooden dowel), form the joint, and glue the pin to the outside pieces of wood. Glue rubber band inside the joint to cause the arm to curl back after extension. Attach coffee straw guides (or any old tube) to the outside of the arm to control the fishing line which will perform the extension. Feel the line through the straws and glue to the final segment of the arm you wish to extend (in our case, the whole arm).
If you aren't going high tech, use a saw (we used a band saw) to make the joints (cut a valley in one dowel, its converse on another). Once they fit together snugly (but without a lot of friction), drill a hole to insert a wire pin in to. Be sure to check the action of the joint, as quite frequently the joint will require sanding corners to bend properly. This is the easiest place to ensure the arm won't hyperextend, since you can sand one side of the joint and leave the other at right angles. Once the joint is constructed, the other additions (rubber band, wire guide, wire) are the same as the laser cut arm. We also found cutting very small troughs where the string bends around the joint (elbow, shoulder) to help prevent problems.
Our laser design files for the arm we used are attached.
When the arm is finished, you should be able to pull the fishing line to extend the arm to full length, hopefully without hyperextension but that's your prerogative. Also size is variant (our laser cut version was far smaller than our hand cut version), but if you've a friend to measure, ratio is really all that's important.
Step 3: Torso and Other Arm
Since our project is going to be a little more than just a "Cousin It," we need to make a body and another arm! Since the other arm is just aesthetic, there's no need to complicate it with joints (although you can, if you want). In the laser cut version the arm can still fold because we simply printed another copy of the other arm, but the hand cut one is just dowels glued together.
The torso is another opportunity to get out your friend and measuring tape. Either hand or laser cut two identical torso pieces. Once you're ready to glue the arms and perhaps some support pieces into the torso, take a moment's pause to plan the next steps. The fishing line needs to run through the back of the torso to connect to the bed, and that hole can be drilled either now or later. If drilled now, you may also want to glue in a coffee straw guide to prevent the line from forming a split in the wood that could give you trouble later. Also consider the lever we're going to end up gluing to the inside center column of his back when selecting where to make your hole. We also found it useful to glue a dowel vertically near the beginning of the arm to serve as a turning point (pulley) for the fishing line.
Once you've finished planning/drilling, it's time to glue the torso together. The arms function at good supports for the top corners, and lower supports are optional (we did on hand cut, didn't on laser cut). Your arm should now be extendable by pulling the fishing line whether from the bottom of the torso or through the drilled hole in the back. If you haven't drilled prior to gluing it together, now is the time to do it. If someone is conveniently available and likely to laugh, consider testing the arm by harassing them a little with it.
Our laser cut pieces for the torso can be found below.
Step 4: Bed and Lever
Unfortunately for the hand cutters out there, this is where the instructable goes laser-cutter only, though fortunately the premise is exactly the same.
Design a bed in good proportion with your figure. We chose to go with a bed that had feet so you could see the mechanics underneath, but there is no reason this is necessarily so. Cut a hole in the bed to insert the lever through at wherever you'd like the bottom of his torso to be. Size this hole to fit your lever, which will be addressed in a moment. Once you've figured out the position of your wooden figure, drill a hole to match the one in the back of the torso. While the adjoined picture has small blocks to prevent the torso from sliding toward the foot of the bed, if your level hole is sized well to your lever these blocks prove to be more trouble than they're worth. Also, be sure to leave room for the figure's head.
The lever requires some design questions. The basic idea is just a beam with an S-bend in it at the hole in the bed, but certain elements like the width of the bed are important. Do you want the motor to push or pull the lever? Do you want the bed raised above the floor or a protrusion of the contiguous floor? In our case our servo pulls and our bed is raised. This meant our S-bend didn't need to be all that significant, since it merely needed to get below the bed but above the floor. One need be cautious with the material selected for the level, though, as all the force in the product will be directed through it. If you're not using a very strong wood (as we weren't, using Basswood), you need to compensate by making it thick enough. Our quarter inch version snapped, so we upped it to a three eights. The snapped quarter inch version is featured below.
Once your bed and lever are constructed, begin assembling the pieces in the bed. Make sure you can fit the lever through the hole in the bed before gluing it to the torso (shouldn't be an issue). Feed the fishing line through the bed and achieve a tightness that causes arm extension at the point in the arc of sitting up that you'd like. We secured the fishing line with knots and electrical tape. Adding a piece of cloth to the bed gives an illusion of a mattress. At this point you should be able to make the man sit up in bed and extend his arm just through use of the lever.
Our laser cut pieces for the lever and bed can be found attached.
Step 5: Floor
The floor piece is just one large sheet with a trough cut to permit full lever action. If you have a laser cutter, this is a good time to add the aesthetic element of a floor pattern, since shortly here the floor won't be able to go back in for additional laser cutting! Once you've cut the trough, try to mount your motor to the floor and test the full action by holding the bed on. In our case, we used fishing line to tie the lower end of the lever to the arm of our servo and just pulled on the servo to simulate the result. If your lever reliably swings into the trough, your arm reliably extends, and you're satisfied with the motion, then you're sitting pretty! You may want to wait to glue, though, as the cabinet's positioning and dimensions determine exactly where to set the variables.
Step 6: Cabinet
While largely an aesthetic element (so do due diligence to that!), the cabinet is going to house the electronics the user will be interacting with, and that comes with some design specifications. Whether your cabinet has drawers and is functional or just a wooden rectangular prism, you'll need to have a hole in the top for the light sensor, space inside for a vibrating motor and/or beeper, a place for the lamp, and room to feed the wires required to your microcontroller under the floor. You want to give yourself some freedom in where you position the light sensor, such that you can drill the hole after setting the cabinet next to the rest of the components and finding its place in the room. Also, pay attention to how far the guy has to sit up to extend his arm and where that necessitates putting the cabinet in the room. If it's too far forward, go back and tighten the fishing line under the bed until you've got what you're looking for. Then find out where to position the alarm clock such that the arm will be able to smack it.
Our cabinet's top section is entirely open for this very reason. Also, remember to leave a wall removable so that you can manipulate the electronics inside more easily. We did this by laser cutting it to a size where the friction would hold it, but if you're hand cutting you can always just leave it completely open until you've got the electronics all set and working. Once that's finished, drill a hole in the floor in part 4 to stuff the cabinet's wiring through.
Step 7: Base
Part 6: Base
You're going to need room to house your microcontroller, power source, and space for the motor's arm to swing. Measure the height required by your motor's arm to fully move the figure, and be sure to make your base at least that tall (preferably with some wiggle room). We made the base out of clear acrylic to showcase our electronics and the action of the servo as well as to make wiring modifications substantially easier. Give yourself a large enough hole in the bottom that you can manipulate your electronics should the need arise. The floor will eventually be glued onto the top side of this (though you'll kick yourself if you don't do the wiring before doing that gluing!). The design is essentially four walls and a floor for a portion of it (what the electronics rest on). You probably want to plan to have the cabinet over the floor section, since the majority of the wires will be coming out of that.
Step 8: Programming
The program is a fairly simple state machine. When the alarm clock is covering the sensor, it waits for awhile. It then sets the alarm off, waits, moves the servo for the man to sit up (and can miss a few times if you'd like). Once the alarm has been knocked off, the program waits until it is put back on.
One possible solution:
Loop every 2-5milliseconds. (We called each loop a 'tick')
Start in state 0.
State 0: Alarm is coving the light sensor.Wait a few hundred ticks (a few seconds), then turn the alarm on (write HIGH on whatever pin the buzzer is attached to). Go to State 1,
State 1: Wait a few hundred ticks as the alarm goes off.
Then, every few ticks, increment the position of the servo.
There will be some servo position to knock the alarm clock over. If you want a few misses, subtract a random number (say between 0 and 4 degrees) from this ideal position and set that as the final value for the servo. That way, it will need to run a few times before actually reaching the ideal servo ending position (it will probably knock the clock over when the random number is 0 or 1).
Once the servo is at it's ending position, go to State 2.
State 2: Decrement the servo position every few ticks until it reaches the preset "laying down" position.
If the alarm clock is still in place, go back to State 1.
Otherwise, go to State 3.
State 3: Check the light sensor every few ticks.
If the alarm clock is back in place, go to State 0.
If you're using an Arduino Mega, you can use the attached program. Just make sure you get the pin assignments correct.
You may need to include the servo library.
Note: you will probably need to change the 'pos_start' and 'pos_end' values in the program to match your physical bed & lever.
Step 9: Electronics
You're welcome to either solder or breadboard the electronics. We chose to solder. The only messy part was the multiple ground nodes that came together: the arduino mega only has 2 (designated) ground pins. You can always just set an output pin to LOW and use it as a ground.
The light sensor is really just a variable resistor that is light sensitive.
It's hooked up as a voltage divider between the sensor and a 100KOhm resistor
The servo runs on external power (a 9v battery)
The input is from the micro-controller (in our case, the Arduino servo library) PWM pin 9.
One end in pin 5, the other in ground.
One end (+) in pin 4 (set to HIGH when lamp is on), the other (-) in pin 3 (which is always set to LOW)
Step 10: Aesthetics
This is one of the most important parts of the project. You can use anything as the alarm clock in so long as it blocks the light sensor. We chose a classic design and put a small plank of wood to ensure we completely covered the sensor. Painting really helps bring the alarm clock to life as well as shows off how integral it really is to the finished product. Our laser cut file is attached.
Need we say more? We used a wood sphere and attaches to a dowel for his neck. A face can easily be painted on, and yarn can be attached to serve as hair.
Our poor man's covers are too short! As a result, his feet stick out of the bed. The feet are made of two wooden dowels, with the dowel serving as the foot cut in half. This dowel is glued onto the second dowel that acts as the man's legs. The full leg is then hot glued to the actual bed.
Who doesn't have a lamp on their cabinet? Cut or find (we chose find) a good piece to serve as a base, drill a hole through it, and mount an LED on top. Be sure to wrap the LED's pins (itty bitty living space)! Make a paper lampshade and some structure to hold it on (glue and a paper clip… be creative!).
Makes everything feel more homely! Our carpet is made out of crochet. The first step is done by chaining 21, then single crocheting across, starting with the second chain from the hook. Then, just chain 1, turn, and single crochet across again! Repeat this process until the carpet is the desired length for your room. If this doesn't make sense, there are plenty of crochet blogs out there to help! Don't forget to add your own personal touch. We choose to add tassels to our rug, as well as a duckie motif.
The pillow is made out of two pieces of cloth and a little stuffing. Cut two identical pieces of cloth that fit the dimensions of your bed. Then, simply whip stitch them together. Don't forget to add stuffing before finishing off your sewing. Be advised, however, that the height of the pillow will affect the tension in the man's arm.
The construction of the bed covers is almost identical to that of the pillow. Choose a piece of cloth with a nice pattern for the comforter. Then, sew a piece of this patterned cloth to an identically sized piece of regular white cloth. Make sure you don't forget to lightly stuff the comforter and size your pieces of cloth according to the dimensions of the bed. After the sewing is complete, fold back one of the sides so that the white cloth is showing and sew this into place. This gives the illusion that there are more covers for the man.
Add some windows, wallpapers, pictures, posters; you name it. We chose to laser cut a window into our wall. Then, we used acrylic as panes and hot glued the whole window together. To add more character, wallpaper was glued onto the wall. The paper used was just regular scrapbook paper found at your local craft store. But since plain wallpaper would be boring, pictures were added. We laser cut picture frames and then used images of animals as our pictures. The files used to create the window and picture frames are attached.
Paint: Because just wood color could be a bit unimaginative…
Step 11: Assembly
Check all your electronics! By now you're probably intimately familiar with the project, and understand how to assemble it. Nevertheless, we've got to do what we've got to do. Glue the bed onto the floor (wood glue). Glue the cabinet to the floor (wood glue). Glue the floor onto the base (we used hot glue). Glue....no, wait! You're done! After everything has set, be sure to just sit back and watch your man try to fall back asleep. Videos of our finished product are shown here.