A high-tech SciFi imagining of the rubber band gun.
Both working prototypes were shown at the Asheville Maker Faire on May 07, 2022 in Asheville, N.C. Estimates are that 100 people fired rubber bands out of the RBG!
Table Of Contents
Top
Here is a new (2023-07-14) video showing the completed orange "Sidewinder" rubber band gun with a fairly complete showing of its features.
Here is a video showing the completed orange "Sidewinder" rubber band gun at night:
Here is a 2020-09-25 video demonstrating most of the software running on a prototype:
Top
Jim and I made a Science-Fiction Rubber Band Gun!
It has three rings of WS2812b 5050 RGB LED Ring proceeding up the barrel, each one larger than the previous in a "blunderbuss" shape. Note: this shape when applied to a handgun was known as a dragon, from which the term dragoon; see https://en.m.wikipedia.org/wiki/Blunderbuss
When fired, it plays a chosen sound. This could be a sequence similar to a "soundified" rendition of two neutron stars colliding
- https://www.gw-openscience.org/audiogwtc1 - search for GW170817
See the Sounds section below and the sounds README for more info.
At the same time as the sound, the LED rings do patterns to make it look like they are being charged up followed by a sequential pulsing that would convince anyone who knows absolutely less than nothing about such things that a rail-gun effect is propelling the rubber band down the central tube. These rings are composed of WS2812B individually addressable color LEDs controlled by the fantastic FastLED library. See the LED Patterns section below and the PartsInfo README for more info.
And the RBG is a talking Rubber Band Gun! It can use its own built-in speaker or connect to a Bluetooth speaker, it has voice menus to allow configuration of sounds and LED effects. The video at https://youtu.be/njpYX-5Zv9Y goes through some of the menus using a Bluetooth speaker.
Top
We have two working prototypes using these parts. The prices and parts availability have not been updated recently.
The barrel of the Rubber Band Gun is made from wood, with a sliding barrel attachment to assist in stringing the rubber band through the LED rings. The rest including the handgrip is 3-D printed.
Top
The "SILVER" SINGLETON RBG uses the solenoid release mechanism through the CLOTHESPIN to fire the rubber band.
Jim felt like this wasn't reliable enough and designed a SIDEWINDER mechanism that uses a motor to release one or more rubber bands at a time; this was used on the "ORANGE" RBG.
The current parts list and schematics contain both the CLOTHESPIN (SOLENOID) and the SIDEWINDER (MOTOR) mechanisms.
Git tag Silver-1.0 is the version of software that is in the SILVER CLOTHESPIN (SOLENOID) RBG
- There is a definition of DLYSOLENOID in RBG_SciFi_StatesAndInputs.h that needs to be adjusted if using the SIDEWINDER (MOTOR). See the comments near that definition if interested.
Development is continuing to make a minimum as well as a maximum activation time for the solenoid or motor mechanism. This will get a tag when complete and tested. SOLENOID_IF_NONZERO chooses CLOTHESPIN versus SIDEWINDER operation and sets the values of DLYSOLENOID_MIN and DLYSOLENOID_MAX.
- Define SOLENOID_IF_NONZERO as 1 for CLOTHESPIN (SOLENOID) processing.
- The Silver-1.0 version DLYSOLENOID corresponds to DLYSOLENOID_MAX in the later versions.
- Define SOLENOID_IF_NONZERO as 0 for SIDEWINDER (MOTOR) processing; this also activates the ability to control the motor time with the trigger button between DLYSOLENOID_MIN and DLYSOLENOID_MAX. I had initially added some other factors like when the shooting sound ended, but opted for more predictable behavior.
- When it shoots, it will do a minimum of 1/4 turn and basically keep turning until you let the trigger off or it reaches 1 complete turn. This allows me to put a rubber band on every other notch and just get a single shot by momentary trigger press or multiple shots by holding the trigger down until done.
Top
All sounds for the RBG were processed by Audacity, which can be found at https://www.audacityteam.org/
Voice sounds were generated by the eSpeak text-to-speech program version 1.48.04. The original code can be found at http://espeak.sourceforge.net/ while current development is at https://github.com/espeak-ng/espeak-ng
- Postprocessing was done by Audacity
The sounds reside on a 16Gbyte SD card inserted in the YX5200 audio module. Also on that SD card is an ATTRIBUTION directory containing an HTML file with attributions for the sounds used in this project.
Note that the sounds were de-stereo'd, chopped up, and in many cases modified and/or combined with other sounds. There is not a one-to-one onto relationship between the source of the sounds and the sounds as played by the Rubber Band Gun.
- As for many aspects of the RGB, the text-to-speech is semi-automated with StateTable_minimal.xlsx used to control generation and to associate sounds with RBG events.
- See https://github.com/Mark-MDO47/RubberBandGun/blob/master/sounds/README.md
Top
See the Readme.md in https://github.com/Mark-MDO47/RubberBandGun/tree/master/sounds for attribution and other information about the sounds that are used in this project.
See https://github.com/Mark-MDO47/RubberBandGun/blob/master/RBG_arduino/README.md for how sounds are integrated into the Arduino code.
Top
A few of the voices are recordings of members of my family or of me. The remainder are generated by the eSpeak text to speech program and post-processed by Audacity.
Top
FastLED is the library I use for controlling these color addressable LEDs
If you are new to FastLED, look at this famous demo code to see how easy it can be
See https://github.com/Mark-MDO47/RubberBandGun/blob/master/RBG_arduino/README.md for how LED Patterns are integrated into the Arduino code.
- As for many aspects of the RGB, the LED Patterns are semi-automated with StateTable_minimal.xlsx to associate LED Patterns with RBG events.
Top
The basic information from the references below is also on this repository, but the repositories below are more standalone and better for using on your own projects.
Get tips and some code for using the YX5200 Audio module: https://github.com/Mark-MDO47/AudioPlayer-YX5200
Get tips and some code for programming the KCX_BT_EMITTER Bluetooth Audio Transmitter module: https://github.com/Mark-MDO47/BluetoothAudioTransmitter_KCX_BT_EMITTER Be aware that the KCX_BT_EMITTER module expects 5V power and 5V serial interface signals; I have heard of people who found that the ESP32 did not work when directly used as the Programming Arduino. This can be easily accommodated by using a true Arduino version or a cheap clone Arduino Uno or Arduino Nano classic.
Top
Here are the README docs available on this repository:
- This README File
- Parts List
- Arduino Code Description
- Parts Info Overview
- YX5200 Audio Module Info
- Sound Sources and Attribution
- KiCad files for Schematic-Style Rubber Band Gun Wiring PDF
- Autocad Fusion 360 files for 3D Printed Parts
Here are some other docs available on this repository:
- Schematic-Style Rubber Band Gun Wiring PDF
- Overview of Building the Rubber Band Gun Software
- How To Program the KCX-BT-EMITTER BlueTooth Module
- Wiring Tips when Building the FOOF RBG
Here are some other useful docs etc. available on other repositories:
- Details of Microchip Technology ATMega Processors including 328P used in Arduino Nano
- Best Detailed YX5200 Audio Module DataSheet I Could Find
- AT Commands for KCX-BT-EMITTER Bluetooth Audio Module (use Google Translate)
- Electro-Tech-Online.com Forum Discussion on AT Commands for KCX-BT-EMITTER
- Details of WorldSemi WS2812B LED Operation
- Solenoid Driver Circuit from Adafruit