Skip to main content

Spiker-Man Web Flinger

Web Flinger in Action

"Spiker-Man, Spiker-Man, does whatever a Spiker-Man can"

Make your very own string-slinging device that shares startling similarities to a certain superhero!

InventorAlex Hatch & Chethan Magnan
micro:bit IDEMakeCode / MicroPython
Best LocationMakerspace

1. Materials Needed

Pick which materials you'd like to use and order them directly, from Amazon, or your distributor of choice.

  • Zip-String original: we used this one
  • Micro:Bit and Spiker:bit
  • EMG Signal Cable with 3 Electrodes
  • Wristband
  • 3D printed Parts or a DIY enclosure

Spiker-Man Parts

Optional

  • 8x Heat-Set M3 Nuts
  • 8x M3x8 Screws

3D-printed parts have both versions for heat setting and bolting on the wristband holders, or options with no hardware that may be less secure.

2. Code

This project can be made much simpler, but we added logic to make the project more reliable.

On start, we initialize the muscle input, set the display to a web, and set up some variables.

  • Initial Trigger: a value that must be overcome to start web flinging
  • Sustained Trigger: lower than the initial trigger, the muscle must be relaxed below this point to stop the web
  • Current Muscle Power: set to 0 on startup
  • is Flinging: set to false on startup
  • Decay Rate: how quickly the signal from your muscle will drop! larger numbers make it easier to sustain a web fling!
  • Gain: an adjustable value to make the web flinger more or less sensitive.

In the main forever code block, we run through the logic. The first IF statements set up our fast attack, but slow decay. if our tracked Current Muscle Power signal is below the strength of our flex, we update it to match, but if our flex is weaker than the tracked Current Muscle Power signal, then we only allow it to decay slowly using the Decay Rate constant. Tweaking the Decay Rate in our on start routine will make it faster or slower to release the web flingers button.

We control the brightness of the LED screen to match our muscle activity, capping this at the maximum brightness of 255.

The next main code block in our forever loop controls the servo that pushes the button on the Zip-String! We first check to see if our tracked Current Muscle Signal is greater than the Initial Trigger value. if it is, and we are not currently flinging our web, we send a single command to set the servo angle to hit the button.

You may need to adjust the servo angles for your particular setup to be successful in pressing, and releasing the button!

When our tracked Current Muscle Signal is below the Sustained Trigger value, we send a single command to the servo to release the Zip-String button.

when you press the A and B buttons, you can increase or decrease how sensitive Spiker-man is to mucle signals. press B on the microbit to increment the threshold gain, making it harder to trigger our web flinger, and press A to make it easier.

MakeCode Blocks

3. Hardware & Testing

Make sure you Print out the STL files, customize the source, or create your own mounts from scratch with crafting supplies!

For the featured version, we use heat-press inserts and screws to lock in the accessories, but we recommend the screwless 3D prints here:

No Screws:

  1. Spikerbit Wrist Strap Mount
  2. Zip-String Wrist Mount

Screw Version:

  1. Spikerbit Wrist Strap Mount with Heat-Set Nuts or Spikerbit Wrist Strap Mount with M3 Screw Holes
  2. Spikerbit Wrist Strap Bracket
  3. Zip-String Wrist Mount with Heat-Set Nuts
  4. Zip-String Wrist Mount Bracket with Heat-Set Nuts

Source CAD:

  1. Spikerbit Wrist Mount Assembly
  2. Zip-String Wrist Mount Assembly

For the screwless version, simply remove the support materials after printing and feed the wrist-strap through the open areas of the bands, and you are nearly there!

If using heat set inserts, you will need to install these these before assembly.

Putting the pieces into the 3D-printed cases will look like this: Wrist Mounted Brackets All Together

You are now just about ready to rock! First we need to make sure that the servo is positioned properly. Make sure that the servo can rotate in both directions, you will need to modify the two servo angles in the code to match the on and off position for the Zip-String button, and this will require some experimenation of values. Alternatively, you can simply install the servo without the 'horn', power on the microbit with the servo connected and code uploaded, and then install the servo horn in this position: Ensure Servo Horn Position

We recommend testing without the zip string in place first, and adding it in when you are confident. the Zip-String module is held in with friction, so it is all non destructive!

Finally, plug in your electrodes, strap on the gadget, and you are ready to sling webs! Chethan in Action!