Programmable Statue Lever Base
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Electronics
- Licencja
- Creative Commons — Attribution — Noncommercial
Universal Interactive Statue Base
This base turns a regular 3D printed statue into a programmable control device.
By tilting the statue, the internal microswitch can trigger actions such as turning on a 3D printer or controlling other electronics via wifi. The mechanism uses magnets to return the statue to its neutral position, so no springs are required. An optional OLED screen can be installed to display information or device status. You can also add internal weights to make the base heavier and more stable.
The base is designed to fit statues with a circular base exactly 78 mm in diameter.
Your statue attaches to the trap_door.3mf piece by superglue.
If you want help understanding the assembly, you can also inspect the included STEP file.
YOU CAN SEE MY REMIX OF THE THINKER STATUE ON ONE OF THE PICS, YOU CAN FIND THAT STATUE IN BETWEEN MY MODELS. Feel free to use any statue with a circular base, but resize it so it would have a 78mm base.
Print Settings
Walls: 3
Infill: 20–30%
Print speed: normal/fast speeds work fine
Supports:
Only body.3mf needs supports.
Place supports only on the lips of the weight slots and the shoulders of the microcontrollers seating.
Hardware & Electronics
1× Wemos D1 Mini (or compatible clone)
1× microswitch
2× D6×4 mm magnets (for neutral return position)
1× 3×12 mm countersunk head screw (weight door)
2× 3×10–20 mm axles (I cut mine from nails)
4× self-adhesive rubber feet
Some hookup wires
Optional:
1× 64×48 OLED screen (I²C)
Up to 50× M10 nuts (used as internal weight)
Tools:
Superglue
Hot glue gun
Screwdriver
Assembly Notes
Solder wires to the microswitch, route them through the holes and seat the microswitch by pulling though the cables.
Insert a magnet into the trap door and the base. Glue your statue to the trap_door piece with superglue. Place the statue on the base, and push the axles from the two sides to keep the statue attached. You may have to predrill the holes with a 3mm drillbit. At the end give a droplet of superglue to the axles.
Use hotglue to attach the microcontroller, solder the wires.
Install 4 rubber feet under the base to lift it slightly from the table so there is space for wiring and the microcontroller.
(optional) Place the weight nuts into the base then close the weight bay with its door. Secure with the 3×12 mm countersunk screw.
(optional) Hot glue the screen into its housing. After that, superglue the housing into the base (no screws are used).
Wiring (My Setup)
Button: GND → microswitch → D6
OLED:
3.3 V
GND
D0 / D1 (I²C)
Power: USB
Coding
I included the Arduino code I used for my setup. Here is what my code does:
While programming add your wifi details into the code, and the exact ip of your printer.
On power-up first it connects to wifi. Microcontroller checks for the state of your printer (shutoff/standby/printing) and displays it (ON/OFF). The screen puts itself into sleepmode after 5mins of no interaction of the lever. Any short press wakes the screen up. If you tilt and hold the lever for more than 3seconds, it activates function: if the printer is in shutoff state, it turns on the "power_on" power device in a klipper based system so the printer turns on. if its in ready state it turns the mentioned power device off. The power device should be set up in your moonraker.conf file, and dont forget to set it up so its latched while printing! You dont want to accidentaly turn the printer off while printing!
If the printer is in standby/printing state, the screen first displays "ON", and every 5seconds it switched between displaying some print data (nozzle-, bed-, chamber- temp, state, remaining print time) and displaying "ON" state. YOU MAY HAVE TO COMMENT OUT THE CHAMBER TEMP CODE TO MAKE THE CODE WORK IF YOU DONT ACTUALLY HAVE A CHAMBER SENSOR.
One more thing about my code. The oled library for the 48x64pixel screen worked kinda broken for me.. The coordinates are off for me, but it may work fine for you. If you experience badly spaced text with my code, run through the positions of the display.text objects. For me, actual 0.0 position was 16.32..... Also i had to select a 128x64px screen in the code to make the screen work at all...
Thank you, for reading this whole novel :D