My name is Shameya and I am a Junior at the Boston Preparatory Charter Public High School. During the summer, I am a youth teacher with the Learn 2 Teach, Teach 2 Learn maker education program. During the school year, I am a "Fab Steward" at the South End Technology Center @ Tent City's Fab Lab where I help people fabricate their digital designs on the lasercutter, vinylcutter and the modela milling machine. I like that you can pretty much create anything you want in a fab lab. I've fabricated stickers, keychains and necklaces for my friends.
Recently I was presented with the challenge of creating a physical programming project and I was inspired by the children's game Hungry Hungry Hippo. I was able to use the laser cutter in the Fab Lab to create the head of my hippo and the Modkit Micro software to program the Modkit MotoProto Shield and Arduino board that I used to control my project. The Modkit MotoProto board is attached to an Arduino that allows more access for inputs and outputs.
The input of my project was my button, which consisted of two wires (ground and voltage). I created this button using a modela milling machine which fabricated an Eagle program board design for the button. I then soldered the two wires to the button board which allows a headphone jack plug-in to be at the end of my button.
The output of my project was my servo motor, which consisted of three wires (ground,voltage,and sensor). I created the servo motor plug-in by soldering or plugging in the three wires to an attachable headphone jack.
Once my button and servo motor were created I then went to the Modkit Micro software where I was able to define my hardware, and then use my hardware to design the software program that would control both my input and my output. I went to the control tab of the software and took out a forever loop so that my program would continue on forever and never be limited. i then under the forever loop, included an if. The if allows me to program my project so that if a certain action happens to it then a reaction will occur. So with that in mind inside the if I included a button pressed which means that the "if button pressed" is my action, then within the "if button pressed" I set an angle under the output tab. My program now means that if the button is pressed, then it will go to the angle that i set it to, allowing the mouth of the hippo to open. After that angle was set i put in another angle so that my hippo's mouth would be able to close. Then between the two angles I set a delay, so that there would be a certain amount of time that passed before the mouth would close.
Step 1: Materials Used
hot glue Button (https://www.sparkfun.com/products/97)
Servo Motor (https://www.sparkfun.com/products/9065)
2 Headphone Jacks (https://www.sparkfun.com/products/10159)
Wood (3mm plywood - 4 12" squares)
Lasercutter (We have an Epilog at the South End Technology Center @ Tent City)
Arduino (I used a Duemilanove, but it has now been replaced by the Uno: https://www.sparkfun.com/products/11021 )
Modkit MotoProto Board (https://www.sparkfun.com/products/10018; need to solder on headers https://www.sparkfun.com/products/116)
Computer with Modkit Micro Software Link (www.modk.it), Inkscape and Open Office Draw (Open Source Software)
USB connector cord for connecting Arduino and computer
Caliper for measuring
Googly eyes for decorating
Acrylic Paint for decorating
Ball for playing
hot glue gun
Step 2: Design Process
I had to think about a project that used fabrication and physical programming that included a button and a servo.
First I drew out the hungry hungry hippo design. I searched on the internet for images of hungry hungy hippo game. I used Open Office Draw to merge shapes that formed the outside of the head of a hippo. I then designed the inner layers of the hippo's head by using only the outline of the hippo's head. I used two layers of wood for the outside of the hippo and 20 inner layers of the outline to form the hollow hippo head. On four of the 20 inner layers, I added knobs for the nose.
I first glued the 20 inner layers together in the correct order with a glue stick and let them dry for about 1/2 hour. I was careful to put the nose layers in the correct place, so that they wouldn't be at the very edge or the very middle.
Step 3: Designing the Place for the Gear to Go
To attach the gear to the hippo, I first needed to design a gear casing from the outline of the gear arm from my servo.
I counted the number of teeth on the gear arm of my servo. Then I used a set of calipers to measure the diameter of the gear.
Then I used these measurements as inputs for designing my gear casing using Inkscape.
INSTRUCTIONS FOR INKSCAPE
Under the EXTENSIONS menu, go to RENDER
Under RENDER menu, go to GEAR. . .
Then in the gear pop-up menu,
enter the number of teeth
enter the diameter of the gear under circular pitch.
make sure the pressure angle is 10.
This should produce a gear that looks exactly like the gear on the servo motor. If not, then increase or decrease your pressure angle on the gear pop-up menu until it does look the same.
Save this gear as an open office draw document (.odg)
Step 4: Gear Attachment
Next you fabricate the gear by dragging out a square around the shape of the gear in Open Office Draw, make sure that the square is small enough to fit on the hippo head, then fabricate it on the lasercutter when it's done make sure that the gear fits onto the gear of the servo motor. If it fits snugly that is perfect, this will allow the gear to open and close the hippo head. When you are done measuring the piece, glue it to the side of one of the hippo heads at the bottom corner of the head. then once the glue has dried, take sandpaper and curve the edge of both side heads so that it is round, this will allow for the head to get the full motion. When you are done sanding down the the sides of the head take the hot glue gun and very quickly put a small amount of glue in the middle of the cut out gear and put the servo perfectly in the cut out. This will make sure that the servo will allow the head to move when the servo's gear is on.
Step 5: Setting Up Your Platform
When you are done hot gluing the servo on, glue all the pieces of the head together with your nose pieces properly separated. Saw an opening in the middle pieces above the edge of the servo motor though, so that it wont get caught when the head is trying to move up and down. Next you want to make your platform, this can be a spare piece of wood, you want to make sure that there is both room for your hippo head and the button to fit on it. Once you find your platform, put the hippo head at the edge and glue the servo motor to the platform, this will make sure that the servo motor doesn't move, only the gear. make sure that all of the servo wires are coming out the back of the hippo head before you do this though so there won't be any friction. when you are done, put the button next to your hippo head on the platform so that there will be easy access to it, once again make sure that its wires are coming out the back for easy access.
Step 6: Programming Your Hippo
Take your Modkit board and put it near your platform, you are now going to connect your servo and button to the Modkit board so that you can program them. Take the headphone jack for the servo motor and plug it into A3 on the Modkit board, then take the headphone jack for the button and plug it into A2 on the Modkit board.
Step 7: Modkit Micro
Open Modkit Micro and follow these pictures. Under the hardware tab label the button as A2 and the Servo as A3. once you have set up the blocks, press the play button and when it shows a green light that means that your hippo is now programmed.
Step 8: Done!!!
Now you have finished programming you can now paint your project if you would like, and test out to see if your hippo can catch the ball.