I used Blender3D to modify gsyan’s Micro Ballista Remix model to add a firing mechanism so that a match can be launched remotely from a Raspberry Pi.
Print all the files in the STL directory with the following settings:
Infill density: 30%
Layer height: 0.2mm
Speed: Standard
- Push the tube all the way to the front of the frame’s track, then add a drop of super glue so the piece doesn’t move. This is where you’ll attach the striker strip to ignite the match.
- Measure the specific matches you plan to launch, then use a Dremel to make a cut at the proper spot on the bottom of the track where the dime will block the nock from shooting forward.
- Use the Dremel to make a cut on the base. Make sure it lines up with your previous cut when you place the frame on the base.
- Super glue a dime into the cut you made on the base. Once you place the frame on top of the base, the dime should slightly insert into the cut on the frame, just enough to prevent the nock from moving.
- Attach an SG90 servo to the side of the base. It should be positioned in such a way that when the
release.py
script is executed, the servo arm pushes the frame away from the base & dime enough to allow the nock to shoot forward. - Wire the servo to the GPIO pins of your Raspberry Pi. The pinout changes between models, so check the documentation for your specific RPi version.
- Push the nock onto the frame’s track, load a rubber band through the hole on the nock, then attach each end of the rubber band to the slots on the frame.
- Wrap a rubber band around the rear end of the base and frame to keep the frame secure while firing.
- You should now be able to load the ballista by pulling the nock back behind the frame’s cut, then pressing the frame onto the base until the dime blocks the nock.
- To fire the ballista, SSH into your Raspberry Pi and run:
python3 scripts/release.py