Useless Box Fidget Toy
As I like fidgetting a lot, i recently stumbled upon a toy called a ''useless box''. It's box with a flick switch that when flicked, sends a little "finger" to re-flick the switch. However every example i found online happen to be very big and bulky. So i decided to make one that is as compact as possible, using extemely cheap materials.
Supplies
Parts:
- 3D printed parts:
- Case.stl (x1)
- Cover.stl (x1)
- FlipCover.stl (x1)
- Hook.stl (x2)
- Clicker.stl (x1)
- Electronics:
- Toggle Switch (x1)
- SG90 Servo (x1)
- SG90 Small Servo Horn (x1)
- Arduino Nano
- AA Battery (4x)
- Metalic part to bridge battery terminals (I used 20 gauge stainless hanging wire but a paperclip could also work)
- Jumpers/Wires to connect everything together(I used female jumpers as i could just unplug them anytime, but you can solder everything directly together)
- On/Off Toggle Switch
- Hardware:
- 6/32 Machine Screw Nuts
- 6/32 Machine Screw (around 10 cm long)
- 2 mm rod (74 cm long)
- Tools:
- Hot glue
- Tape
- Soldering iron
- Computer (programing)
- 3D Printer
- Other:
- Small elastic (I used my orthodontic elastics)
3D Print
3D print all the parts to whatever settings you want. I used PLA and did not use anything specific (30% infill, 0.16 layer height).
Install Nuts
Press the 2 6/32 nuts in their slots in the main case. to press them in, you can drive them in their slots by screwing the machine screws in until the nuts are flushed with the case
Install the Switch
Make sure that the off side of the switch is facing the back to the box (not the side where the finger is going to come from). This is to make sure that the code aligns with the state of the switch.
Glue Hooks
Apply a dab of hot glue on the bottom of each hook then press them in their respective slots. There are mini circles (1 on the case and 1 on the flip cover) that are indicators as to where you want to put the hooks.
Glue Servo Horn in the Clicker
I used Hot Glue, but crazy glue might also work
Install Servo
Glue the servo motor on to the bottom of the main cover, make sure to align it so that the center of the finger is centered to the flick switch.
Install Servo Horn
Make sure that the horn is places within a range of motion of the servo so that the servo can toggle the switch then tuck itself back in the box. The angle will differ from everyone so it is going to be up to you to adjust that in the code.
Install Arduino Nano
slip the back end of the arduino nano into the little slit then press the nano until its usb slot enters the little hole. It might be a little tight but it will eventually slip through.
Build the Battery Pack
To power this project, you can use both the power supplied by the arduino nano when pluged by usb, or by using a 4x AA battery pack. If you don't want to power it using the AAs, you can skip this step!
- 1. Tape the 4 battery to form a 2 * 2 array (make sure that the terminal of each battery is beside 2 terminals of opposite sign (- + - +))
- 2. On one side of the pack, using any conductor, bridge the + and - terminals of 2 of the batteries together to form 2 3 volt batteries. Cover the part using electrical tape or another insulator
- Similarly to the previous step, bridge the + and - terminals of the 2 batteries that you created in the previous step. MAKE SURE that you do not short the + and - terminals of the same battery.
- Using electrical tape, tape down 2 wires to the final + and - that remain, those will be the terminals of you newly created battery pack.
Install Flip Cover
Simply align the cover and the case, then hammer in the 2mm rod in the holes.
Circuit
For the circuit, as you can see on the image;
- The - terminal of the battery will be connected the main switch (on/off) and the connected to the GND pin on the arduino nano. The + terminal will be connected directly to the VIN pin on the nano
- The Ground wire of the servo (brown) will be connected directly to the ground pin on the nano. The positive wire of the servo (red) will be connected directly to the 5V pin of the arduino. Finally, the control wire of the servo (orange) will be connected directly to the D5 pin on the nano (any pwm pin will work, but make sure to change it in code).
- One of the terminals on the toggle switch will be connected directly to the nano's 5V pin. The other will be connected to D2 pin and then fork out to a 1k ohm resistor which will then connect to the GND pin
Since there arent enough 5V and GND pins on the arduino nano, we will have to combine wires which will enter a single pin the arduino.
Wiring
After soldering all the wires together according to the circuit diagram, you nee to connect all of the wires to the arduino. The way you do this does not matter as long as you hook them in the correct pins, or adjust for changes in code. I'm using female/male jumpers that i shortend but you can just solder directly on to the arduino nano. Do note that the colors of my wires do not indicate anything.
Assemble the Whole Thing
After hooking all the wires to the nano, placing the battery pack inside, and (if you have not already) glue the on/off switch at the bottom of the case (accesible (view image)), you can screw the case on using the machine screws. Next, you are going to have to hook you elastic to both hooks
Programming
Now that the whole thing is assembled and built, we can program it! connect it to your computer and run the arduino IDE.
Upload the following code to the nano or donload the arduino file and run that.
#include <Servo.h> const int tuckAngle = 134; //angles for tucking and clicking switch (calibrate for you project) const int clickAngle = 24; Servo servo; void setup() { servo.attach(5); servo.write(tuckAngle); // starts the servo in tucked position } void loop() { if(digitalRead(2) == HIGH){ // clicks switch when someone clicks it servo.write(clickAngle); delay(200); servo.write(tuckAngle); } }<br>