This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (www.makecourse.com)
Licky is a robot who responds to stimuli by complaining. He notices how far the knob on his head has been turned, and responds by screaming, sticking his tongue out, and lighting his eyes red. My initial inspiration for this project was to make an interactive pet type of toy, however, along the course of the production, the robot became angrier and angrier.
Licky the Robot could be used to teach children about respecting boundaries, as he is just the right size for small hands, has round edges, a cute face, and displays signs of emotion as a user does things to annoy him, without doing any real harm.
Step 1: Components
- 3D printer
- Fishing line
- Arduino Uno R3
- Electrical tape
- One SG90 9G servo
- Jumper wires
- One 10k rotary potentiometer
- Six 220 ohm resistors
- One half breadboard
- One 9v power adapter
- One 5v buzzer
- Coarse and fine sandpaper
- Super glue
- One pack Scotch heavy duty fasteners
Step 2: Design
The main body of the project has three holes in the front, a hole at the top, and a removable back panel. The two small holes are spaces for the LED eyes of the robot. The large hole at the front is a mouth, with reinforcements extending outward from the wall to keep the tongue piece aligned. Just above the mouth are two prongs to align the wires behind the right eye.
The top hole is to accommodate the potentiometer and knob. The elevated ring and semicircle allow the potentiometer to be held in place. To be affixed with super glue beneath the potentiometer is a blue cylinder, which prevents the potentiometer from falling through. There is a wider indent on the top of the main body for the knob to slide fully into place, as well as a hole in the knob to fit the potentiometer's dial into.
At the bottom, there is a slightly wider section for the breadboard to slide into. It slides fully to the front of the main body, leaving room for the Arduino and battery just behind the back panel.
On the right side, the servo is attatched to the wall of the main body via heavy duty fastener. it must be affixed to the right wall because the left side contains the wiring for the LEDs and buzzer.
There is a small hole in the back of the tongue to connect it to the servo, which will be explained at a later step.
The .stl files are attached here.
Step 3: Wiring and Code
The batteries are connected to the Arduino directly to supply power for the entire circuit. The RGB LEDs, buzzer, and servo are connected to the Arduino as outputs, and the potentiometer is connected as an analog input.
The code reads the value of the potentiometer and translates it to a value readable by the servo. Then, it checks whether or not that value is above three certain thresholds. If it is above the first threshold, the eyes change color. If it is above the second threshold, the tongue begins to move in and out of the mouth. If it is above the third threshold, the buzzer makes a shrieking "pewwww" noise each time the tongue moves in and out. If the value is at its lowest point, the LEDs and servo turn off to conserve power, effectively entering a "sleep mode."
The Arduino sketch is attatched here.
Step 4: Assembly
First, the breadboard is slid into place in the main body of the project. Then, the potentiometer and potentiometer plug are glued into place at the top. The screw shaped knob is pressed onto the top of the potentiometer, allowing the device to turn while the potentiometer remains securely in place.
The LEDs are attached to jumper wires for added mobility, and glued into place at the small holes. The majority of the wires will be located to the left side of the tongue.
The tongue piece and the servo are attached by a loop of fishing wire, strung between the small hole at the back of the tongue and the small outermost hole of the servo horn. In order to reinforce the fishing wire so it stays at a constant length, electrical tape is wrapped around the center. This forms an arm which can push and pull the tongue from the mouth. The servo is attached to the right wall of the main body via heavy duty fastener. Since the fastener is removable, the servo is removable for maintenance.
The Arduino and battery can fit in the empty space next to the breadboard. Finally, the back panel is attached via heavy duty fastener. It is important that this is removable as well, because this is how the battery will be replaced when needed.
Step 5: Complete!
Enjoy the company of Licky the Robot!