Servo Driven Counterweight Trebuchet
by rowemg in Circuits > Remote Control
368 Views, 1 Favorites, 0 Comments
Servo Driven Counterweight Trebuchet
The project is a counterweight trebuchet, i.e. uses a heavy weight and leverage to throw projectiles.
A continuous rotation servo is attached to the winch axle to bring the arm down by winding the rope as the axle rotates. The servos are driven by a Raspberry Pi Pico W that connects to a local Wi-Fi network so that an online dashboard can be used to control them through Adafruit IO.
Trebuchet theory:
- counterweight should be 100x the payload
- the arm, or moving piece of wood carrying the weight and sling, should be divided into two parts:
- payload arm (long) and weight arm (short) in a 4:1 ratio
- the main axle should be drilled where these two portions meet
- the sling is used to essentially increase the amount of leverage acting on the payload as one end of the sling detaches from the finger at a certain angle, given by the angle of the finger relative to the arm
- when fired the counterweight should not contact the ground (length of short arm + weight)
- every part holding load should be able to withstand the tension/force when in motion
IMPORTANT DESIGN CHANGES FOR VIEWERS: A trigger mechanism is also included that attempts to push the rope attached to the winch off the finger (angled piece of wood at the end of the arm), but the design is flawed as this requires more torque than what the motor/box is capable of. A suitable alternative is to use a rack and pinion where the motor drives the pinion, and the rack is moved on top of the finger to hold tension (or perpendicular to the arm). The end of the rope attached to the rope could then be slid off as it no longer needs to hold tension. The weight enclosure .svg does not include holes to mount the 2 servos. The hole for the winch servo would need to be very precise in order to properly attach it to the axle to make it rotate in place.
Supplies
- NOTE: Attached image is not representative of final product, just the CAD design used to help plan
- Digital files: https://github.com/WebsiteDisplayName/phys_comp_trebuchet
- Trebuchet
- 4x ¼” bolt
- 4x ¼” knut
- 1” diameter x 12” dowels
- ½” diameter x 12” dowels
- ⅜” diameter x 12” dowels
- 1 ¼” x ½” x 4+ ft wood plank
- Super glue
- Wood glue
- Power drill
- 13/64” drill bit
- ¼” drill bit
- ⅜” drill bit
- Wood files (circular)
- Clamps
- Measuring tape
- Hand saw
- Fabric/Denim (sling pouch)
- 2x 32”x20” sheets of ⅛” birch plywood
- 5mm jute rope
- Scissors
- 2x 1”x2”x3” solid steel bars
- trotec laser cutter
- Electronics
- Raspberry Pi Pico W
- Pico W breadboard
- 2x continuous rotation servos (high torque)
- 6x male to male wires
- External battery
- USB A to MicroUSB
Steps
Electronics
- Pico W setup: phys_comp_trebuchet/adafruit-circuitpython-raspberry_pi_pico_w-en_US-8.0.0-rc.1.uf2 at main · WebsiteDisplayName/phys_comp_trebuchet (github.com)
- Library: phys_comp_trebuchet/lib at main · WebsiteDisplayName/phys_comp_trebuchet (github.com)
- Use Adafruit IO to create online dashboard to activate servo
- Instructions: Getting Started | Adafruit IO | Adafruit Learning System
- Create dashboard
- Create servo_feed
- Create 6 blocks of momentary buttons
- select servo_feed
- set press values to:
- "stopwinch"
- "tighten"
- "loosen"
- "pull trigger"
- "reset trigger"
- "stop trigger"
- settings.toml
- must create a settings.toml that connects variables such as:
- Wi-Fi name, password, IO_KEY, IO_USERNAME
Trebuchet Frame
- Cut 1 ¼” x ½” x 4+ ft into:
- 2x 1 ¼” x ½” x 15” (base)
- 2x 1 ¼” x ½” x 10 ½” (connects base to arm)
- 2x 1 ¼” x ½” x 3 ¼” (connects base to winch axle)
- Drill holes & bolts:
- 2x base:
- Drill bit: ¼”
- Drill holes 3.5” and 7.5” from one end of the long side (15”)
- Drill ⅝” from the bottom of the height (1 ¼”)
- 2x base to arm support:
- Drill bit: ¼”
- ⅝” away from one side of the long end (10 ½”)
- Drill bit: ⅜”
- 1 ⅛” away from the opposite end of the drilled hole in the previous step
- 2x base to winch axle
- Drill bit: ¼”
- ⅝” away from one side of the long end (3 ¼”)
- Drill bit: ⅜”
- 1 ⅛” away from the opposite end of the drilled hole in the previous step
- Use ¼” bolts to bolt:
- Winch axle support to base
- Arm support to base
3D Printing Boxes With Laser Cutter: Weight & Electronics
- Files: WebsiteDisplayName/phys_comp_trebuchet (github.com)
- phys_comp_trebuchet/oneeight_finalWeightEnclosure.svg at main · WebsiteDisplayName/phys_comp_trebuchet (github.com)
- phys_comp_trebuchet/electronicsEnclosure.svg at main · WebsiteDisplayName/phys_comp_trebuchet (github.com)
- Wood glue the sides together except for the top panel for easy access
- Material is 1/8" Birch plywood, if different size wood is used the files must be altered
- Slots/holes needed to be added to the electronics enclosure file to fit 2x servos, or else the slots must be cut manually
- Weight enclosure:
- Cut 2x ½”x4” dowel
- Super glue dowels to long side of the enclosure
- For each dowel on either side:
- Use 1 rope to create 2x timber hitch knots around both exposed ends of the dowel
- Electronics enclosure
- Cut 2x 1 ¾”x ⅞” to mount continuous servos
- 1x on the roof (trigger)
- NOTE: should be redesigned for rack and pinion !
- 1x on the side facing the trebuchet (connects to winch)
- The placement of the cuts are important to ensure the servo is properly connected to axle
- 3D print circles to better connect dowel to winch servo, then super glue
- File: phys_comp_trebuchet/winchServoMount.svg at main · WebsiteDisplayName/phys_comp_trebuchet (github.com)
Trebuchet Arm
- Made out of 1” diameter x 12” dowel
- Drill holes (holes must be inline/parallel)
- ⅞” from one end (right):
- Drill bit: 13/64” (holds rope)
- 2.5” from the same end (right)
- Drill bit: ⅜” (main axle)
- 1” from the opposite end (left)
- Drill bit: 13/64” (holds rope)
- Cuts:
- Cut angled cut to secure the “finger” of the trebuchet
- Ideal finger angles: 30-45 degrees
- Finger: ⅜” x 2”
- Cut angled cut into ⅜” x 3” dowel to secure winch rope
- Super glue finger to angled cut on end of arm
- Separate 5mm jute rope into 3x smaller strands
- 5mm jute rope will not pass through the holes drilled
- Pass one rope strand through the 13/64” hole ⅞” from the end
- Pass the same rope strand through the 2 rope loops of the weight enclosure
- Tie off with square knot
Putting everything together
- Cut ⅜” x 12” dowel in half
- Will be used to support base to prevent the base from contracting beneath the axles (no need to permanently attach these to the base)
- Cut 2x ⅜” x 6 ½” dowels (serve as main axle and winch axle)
- Use axles to connect the halves of the trebuchet
- Both sides should be spaced 6” based on the interior
- So the ⅜” x 6” dowels support the bottom and the axles support the top
- Friction will prevent the axles from sliding
- Cut two holes through the fabric on either end (sling pouch)
- For each hole on either end of the fabric:
- Pass a rope through and tie a knot
- Use the other end of the rope to either tie a loop and place over finger or pass through the 13/64” hole at the payload end of the arm and tie a loop/knot to secure
- Use rope to tie a knot around the winch axle and tie a loop to pass the other end around the finger
- i.e. non slip loop knot (fishing knot)
- The trigger servo will pull off the loop tied to the winch to release the arm and fire
- If a rack and pinion is used:
- the rack would slide over the finger while the winch holds tension
- the winch loop would be manually slide off
- the rack would then be reversed by the servo to release tension and fire
- Place 1 or 2 1”x2”x3” steel bars into the weight enclosure
- Use software to use winch & release
- Files:phys_comp_trebuchet/trebuchet.py at main · WebsiteDisplayName/phys_comp_trebuchet (github.com)
- Copy paste code in the Code.py file on the Pico W