Skip to content

Mark-MDO47/RubberBandGun

Repository files navigation

RubberBandGun

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!
alt text

Table Of Contents

Videos

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:

Images

Top

alt text alt text alt text alt text alt text alt text alt text

Introduction

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

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.

Parts List

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.

Release Mechanism Software Dependency

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.

Sounds

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.

Sound Effects

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.

Voice Audio

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.

LED Patterns

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.

Extras

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.

Guide to README and Other Docs

Top
Here are the README docs available on this repository:

Here are some other docs available on this repository:

Here are some other useful docs etc. available on other repositories: