Luminous Weaponry

This guide takes you through the process of creating your own fantasy weapon that begins to glow as soon as you pick it up.

The design for this sword is taken from the Cartoon Network animated series 'Steven Universe'. 

A Black woman's manicured hand holds a round microcontroller with lit up LEDs.
Circuit Playground Express is the next step towards a perfect introduction to electronics and programming. We've taken the original Circuit Playground Classic and...
$24.95
In Stock
Top down view of a clear acrylic Adafruit Circuit Playground Express or Bluefruit Enclosure.
We've got nice cases for many of our beloved boards, but the Circuit Playground Express and
$4.95
In Stock
Adafruit NeoPixel LED 1 meter Strip with Alligator Clips wired to Circuit Playground, lighting up rainbow
Adding glowy color to your projects has never been easier: no more soldering or stripping wires, clip 'em on and glow! This Adafruit NeoPixel LED Strip with Alligator...
$14.95
In Stock
Conductive Nylon Fabric Tape - 8mm Wide
With our fun assortment of conductive materials,
$3.95
In Stock
USB cable - USB A to Micro-B - 3 foot long
This here is your standard A to micro-B USB cable, for USB 1.1 or 2.0. Perfect for connecting a PC to your Metro, Feather, Raspberry Pi or other dev-board or...
$2.95
In Stock

Other Materials

In addition to the electronics, for this project you will need:

Read on to learn how to build your own!

Power Options

Circuit Playground Express can use a variety of power sources, anywhere between 3V-5V is safe. These compact 400mAh lithium ion polymer batteries are excellent for powering small projects like this. 

A set of 3 AAA batteries also provides ample power, if that option is more convenient. If you're using a AAAx3 battery pack, check that the switch on the battery pack is set to "ON" when you want to power the boat.

Slim Lithium Ion Polymer Battery 3.7v 400mAh with JST 2-PH connector and short cable
Lithium-ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light, and powerful. The output ranges from 4.2V when completely charged to 3.7V. This...
$6.95
In Stock
Top view of Adafruit Micro Lipo - USB LiIon/LiPoly charger - v1 above a 2-pin JST cable.
Oh so adorable, this is the tiniest little lipo charger, so handy you can keep it any project box! Its also easy to use. Simply plug in the gold plated contacts into any USB port and a...
$5.95
In Stock

- OR -

Front angled shot of 3 x AAA battery holder with on-off switch and 2-pin JST PH connector.
This battery holder connects 3 AAA batteries together in series for powering all kinds of projects. We spec'd these out because the box is slim, and 3 AAA's add up to about...
$1.95
In Stock
Angled shot of 3 PKcell AAA batteries.
Battery power for your portable project! These batteries are good quality at a good price, and work fantastic with any of the kits or projects in the shop that use AAA's. This is a...
$1.50
In Stock

Getting started with MakeCode

This project runs a simple MakeCode sketch and is easy to play with if you want to make changes.

Microsoft MakeCode for Adafruit is a web-based code editor that provides a block editor, similar to Scratch or Code.org, and also a JavaScript editor for more advanced users.

If you've never used the Circuit Playground Express with MakeCode before, this guide is a good place to start.

The Code

The code is shown below. For browser viewing, you may need to enable content. For example, in Chrome, click "Show Embedded Content" as the material is fed not from Adafruit but from Microsoft's MakeCode site.

To download the code, click the download link at the bottom of the window. To edit the code in MakeCode, click the box with arrow icon in the upper right corner of the window.

How to Upload Code

To upload code to Circuit Playground Express, follow these instructions:

1) Connect your Circuit Playground Express to your computer using a known, good data+power micro USB cable and press the small reset button in the center of the board. All the LEDs will flash red briefly, then turn green. Your computer should now show a removable drive called CPLAYBOOT. 

2) Click the Download button in the code window below to download the .UF2 file to your computer.

3) Now drag and drop the .UF2 file onto the CPLAYBOOT drive in your computer's file explorer or finder.

Once the file is dragged onto CPLAYBOOT, the drive will automatically eject itself (your computer may give you a "failed to eject drive correctly" error, you can ignore this). The code is now on your Circuit Playground Express and ready to run!

Note: If you get a drive named CIRCUITPY, no worries! Press the reset button twice to get a flash drive named CPLAYBOOT. The project will not run if copied onto the CIRCUITPY drive as it is for CircuitPython.

What Does This Code Do?

The code for this project uses some built-in capacitive sensing abilities to detect when the sword is being held and when it's put down. In the on start statement we can see that set strip to block defines the length of the NeoPixel strip and which pin will control it (in this case A1). It also simultaneously sets the brightness of the NeoPixel strip to 0 while calibrating the sensitivity of the capacitive touch pad A7.

In the first pink statement, the on touch A7 down command tells Circuit Playground Express to bring the brightness of the strip up to 200 and play the rainbow animation when it detects a change in capacitance.

Below, the on touch A7 up command tells the strip to fade its brightness slowly when the sword is no longer being touched, resulting in a return of the measured capacitance to baseline.

Lastly, some functionality is given to button A, allowing the user to recalibrate the touch sensitivity without needing to restart the board.

Your Circuit Playground Express will take a few seconds to calibrate after being turned on. For best results don't touch while it's calibrating!

Troubleshooting

Problem: My Circuit Playground Express doesn't show up as CPLAYBOOT

Solutions:

  1. Be sure you have a Circuit Playground Express.  The Circuit Playground Classic will not work with MakeCode.
  2. If you get a drive named CIRCUITPY instead, press the reset button twice in succession to get to CPLAYBOOT.
  3. Some USB cables are "charge-only" and won't pass data. Try using a different USB cable and try using a different USB port on your computer.  
  4. With the Circuit Playground Express plugged into your computer with a micro USB cable, click the small reset button in the center of the board. The lights should all turn green. If they don't, try double-clicking the reset button.

If things still aren't working, head over to the Intro to Circuit Playground Express guide for more suggestions.

For more information on using capacitive touch take a look at this guide.

Sketch Outline

 

On a large piece of cardboard, sketch out the rough dimensions of your sword.

Use the NeoPixel strip as a guide for how long to make the sword.

Start with pencil, then define the outline with a dark marker.

Cut & Copy

 

Cut out the outline.

Trace the outline on cardboard to create a duplicate.

Because you're creating a copy of the original outline, you don't have to worry about being perfectly symmetrical. Make it as complicated as you like! 

NeoPixel Supports

 

Cut a variety of thin rectangles of cardboard about the same width as the NeoPixel strip.

Glue these aroundthe sword, leaving about 1/4" from the outside edge.

 

These will act as the backing material to support the NeoPixel strip.

Hot Glue Galore

 

Glue NeoPixel strip around outside edge.

Use hot glue to pin the strip in place by applying it to the outside edge of the cardboard.

Add CPX

 

Affix your Circuit Playground Express on the sword using double sided tape or hot glue.

 

Place it in a location where the alligator clips from the NeoPixel strips can still reach.

Handle

 

Use a cardboard tube to make a handle. 

If you don't have one that happens to be the right size, one can be made from an existing cardboard tube that is cut lengthwise and rolled down to the correct diameter for your purposes.

Touch Sensitivity

 

Make your handle touch sensitive by wrapping conductive nylon tape around the handle.

Start by securely connecting the end of the tape to pad A7 on CPX.

From there, wrap the tape around the handle, creating any pattern you desire.

Time to shine!

Power on your CPX and give it a few seconds to calibrate its sensitivity, then you should be able to control the lights with your touch!

Power On

If you're powering the sword with a AAAx3 battery pack, flip the switch from OFF to ON.

If you're using a LiPo battery, simply plug it in the the JST connector.

Calibrating the Sword

When you turn on the sword it will take a couple seconds to calibrate itself. Don't touch it while it's calibrating!

If you find the the NeoPixel strip isn't responding as you'd expect, you can press button A on the Circuit Playground Express to re-run the calibration. Just be sure to put it down and don't touch it for a couple seconds while it's calibrating!

Pick Up

When you pick up the sword it should immediately come ablaze in response to your touch.

Put Down

When you put down the sword it should slowly fade out.

More MakeCode!

If you enjoy MakeCode and want to continue exploring you can check out lots more MakeCode projects on the Adafruit Learn System.

This guide was first published on Sep 18, 2019. It was last updated on Sep 18, 2019.