Useless Box Fidget Toy

by WilliamA63 in Workshop > 3D Printing

2203 Views, 32 Favorites, 0 Comments

Useless Box Fidget Toy

20210919_184829.jpg
open.PNG
20210919 183055 1
closed.PNG

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

20210919_130937.jpg

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

20210919_131538.jpg
20210919_131520.jpg

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

20210919_134108.jpg
20210919_134131.jpg

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

20210919_145854.jpg

I used Hot Glue, but crazy glue might also work

Install Servo

20210919_145244.jpg

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

20210919_145935.jpg
20210919_150146.jpg
20210919_150206.jpg

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

20210919_134145.jpg

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

20210919_142109.jpg

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

20210919_150816.jpg

Simply align the cover and the case, then hammer in the 2mm rod in the holes.

Circuit

Circuit.png

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

20210919_173546.jpg
20210919_173933.jpg

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

20210919_174507.jpg
20210919_180719.jpg
20210919_181252.jpg
20210919_181517.jpg
20210919_181530.jpg
20210919_181533.jpg

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>

Downloads

Enjoy :)