Stage combat is the art of theatrical violence. Rather than resembling fencing, stage combat is choreographed like dance for aesthetic and theatrical effect as well as for safety. Over years of choreographing and teaching others stage combat choreography, I realized that one of the most difficult aspects of teaching someone choreography is the necessity of speaking to communicate the necessary moves. By using visual cues rather than verbal cues, the connection between intent and action can be established faster and more easily, and the clumsy language of targets can be avoided somewhat.
I chose to make a shirt for smallsword choreography, since the placement of the "targets" is convenient for sewing onto a shirt. Targets are the areas which the actor aims to attack or defend. For most of stage combat, the targets are outside of the body for safety reasons. Smallsword is primarily pointwork, though, so the targets are actually on the body (in the approximate locations of the LEDs on my shirt). Apologies--the sword I'm holding is a rapier, not a smallsword, since that's what I had around.
This instructable describes how to convert a shirt, glove, arduino lilypad, and other electronic components into a controllable shirt for smallsword choreography instruction. At the end is a short video demonstrating the functionality and use of the completed project.
- 1 shirt
- 1 left-hand glove
- 1 lilypad arduino
- 4 LEDs (preferably lilypad LEDs)
- 1 lilypad buzzer
- 1 lilypad switch
- wire (approximately 8 yards), either standard copper wire or flexible wire
- needle and thread
- 4.5 V battery source (preferably 3 x 1.5 V button cells and duct tape)
Step 1: Connect Shirt and Glove
Obtain a comfortable shirt and a left-hand glove which meets the end of the shirt sleeve. (If you fight left-handed, you can use a right-hand glove instead.) I used a 3/4-sleeved shirt an elbow-length leather glove for this project. Leather will hold up well to the electronics on the shirt, but fabric gloves should work, as well. Put on the shirt and glove to determine the most comfortable connection location. Pin the shirt and glove together on the underside of your sleeve. Remove the shirt and glove, then sew them together only on the underside of the arm with standard thread. This makes getting the shirt on and off easier, allowing the wearer to remove his or her hand from the glove first, then from the sleeve.
Step 2: Get and Test Components
This project uses a lilypad arduino, a microcontroller intended to be sewn onto clothes. Lilypad arduinos are intended to be used with conductive thread. The first iteration of this project, described and pictured here, was created using normal metal wires because of the high impedance of conductive thread and the long lengths of wire needed. Several other components go with the lilypad arduino, as shown in the picture--LEDs, buzzers, light sensors, switches, buttons, and other components. The lilypad in the picture is a simple lilypad; a standard lilypad should be used for this project, since the simple lilypad does not have enough pins. This project uses four LEDs, one switch, and one buzzer. You will also need several resistors of approximately 200 Ohms, as well as a cable for programming the lilypad.
Test each of the components. You can choose to use Modkit, which was used for this project (visit www.modk.it) or to use more standard arduino software. To test the LEDs, connect a resistor between positive power and the control pin for the LED, then connect the LED between the control pin and ground. The LED should turn on when you set the control pin to HIGH and off when you set the control pin to LOW. Connect the switch in the same way--connect the minus side of the switch to ground and the plus side of the switch to an input pin which is also connected to positive power through a resistor. You should be able to turn on the LEDs and the buzzer using the switch.
Step 3: Place LEDs
Decide where to place the LEDs on the shirt. These should be on the front of the shoulders and hips as shown in the picture. Sew them on securely using standard thread, but remember that you will need to connect wires to these components. The picture here includes the wires used to connect the LEDs in a later step, but start by placing the LEDs by themselves and sewing them on securely.
Step 4: Place Lilypad and Power
The arduino will be sewn onto the back of the glove. The specific location of the arduino will depend on the length of the glove you use. For the high glove used for this project, the arduino fit comfortably near the end of the glove, in the middle of the forearm. Make sure that you have room to wire on all sides of the arduino. Select a few pins--two is enough--which you do not intend to use and sew through those pins with regular thread to connect the arduino to the glove. This project should only need any analog pins or any of the three pins under the connector to the computer, so one of those three and an analog pin would be good choices. Again, this picture is of the finished product, so you will not at this point have any of the wires connecting to the arduino.
Next, choose the location of your power supply. The lilypad arduino needs between 3.3 and 5.5 Volts, so a 4.5-Volt combination of 1.5-Volt button batteries is a convenient choice. (Three AAA or AA batteries would also work but would be heavier and more difficult to sew on.) For an easy-to-remove homemade battery case, duct-tape the three button cells together with an insulated wire attached to either end of the stack. Connect the proper leads to the + and - power pins on the arduino. Press the little button on the arduino, which is a reset button; the LED on the board should blink once if the power is connected properly. Remove the power leads, sew the power to the desired place on the glove (perhaps closer to the fingers on the back of the hand) then confirm that you can reconnect the leads. You do not need power hooked up for testing or sewing on other components, so it may be easiest to leave the leads disconnected from the arduino temporarily.
Step 5: Finger Controls
For this project, the impedance of readily-available conductive thread was determined to be too high for the lengths of wires used. Instead, standard wires were used. Flexible wires like those used in headphones would likely be more convenient to use in general. For the fingers, however, using standard wire is convenient. Strip a few inches at the end of a piece of wire, then twist tightly around a pair of needle-nose pliers to form a spiral. Remove the pliers and squeeze the spiral flat. You should have a pea-sized conductive button at the end of the wire. Measure the length of wire needed to go from one fingertip to your desired control pin on the arduino (I used 5 - 8 for the four fingers), taking into consideration the need to go around the wrist from the palm. Create a fifth wire for the thumb and measure the length needed to connect this wire to ground.
Sew the wires onto the glove by looping around each wire, with loops spaced approximately 1/2 inch apart. Sewing through the leather, if you are using leather gloves, may be somewhat difficult; if you find you are bending your needle, use an embroidery needle, which is thicker. Twist the ends of the wires around the pins of interest and flatten the wire around the pin to make a solid connection. Attach a short wire lead to the positive pin of the arduino; you will need to wire several resistors to positive power. Connect a resistor of approximately 200 Ohms to the each of the input pins (note that this will only be for the four fingers and not for the thumb). Connect the other end of each of these resistors to the lead from the positive pin. You may want to use insulation you have stripped off other wires to insulate the resistor leads from each other.
Now test your connections. Program the arduino to turn the LED on the board on when any of the pins reads LOW; this will correspond to a connection being made between one of the fingers and the thumb.
Step 6: Connect LEDs
To use the LEDs on the shirt instead of the one on the board, we need to connect them to the pins. I used pins 9-12 for this purpose, controlling pin 9 with pin 5, pin 10 with pin 6, and so on. All of the ground wires will connect to each other, so sew wires in a square on the shirt connecting all of the ground pins together. Sew the wires on using standard thread, looping around them as before. If you are using flexible wires, this is a part where you want to use them; using regular wire is fine but makes getting the shirt on and off rather difficult. Then sew a wire from the ground pin in the upper left corner of the shirt down the sleeve to the ground pin of the arduino. Make sure that the wires go along the bottom of the arm, since the top of the glove is not connected to the sleeve for ease of shirt removal. I found it easiest to sew the wires around the back of the shoulder and then to take them down the arm to the wrist, then around to the arduino. Then sew a wire from each of the positive leads down the arm and connect it to the arduino. I found it easiest to sew vertically from the lower left LED, horizontally from the upper right LED, and diagonally from the lower right LED such that all the wires were generally parallel.
Program the arduino to set pin 9 to HIGH when pin 5 is LOW, pin 10 to HIGH when pin 6 is LOW, and so on. Test the shirt by making connections between each of the fingers with the thumb and making sure the correct LEDs light up. Make sure also that you can put the shirt on and take it off without displacing any wires.
Step 7: Connect Other Components
Decide where you would like the other electronic components to go. I found it convenient to attach the switch in between the power supply and the arduino and the buzzer on the side of the hand. I attached the switch to pin 4 and the buzzer to pin 3. Attach the buzzer with the physical buzzing component towards the hand; the buzzer serves as tactile feedback rather than auditory feedback. Measure wires of appropriate length corresponding to the position of the components and sew the wires on as before. Regular wires rather than flexible ones should work fine in this case, considering the short length needed. The switch will, as the LEDs did, require a resistor between the control pin and positive power. To turn the buzzer on, set the analog value of the pin to 255; to turn the buzzer off, set the analog value to 0.
Step 8: Finish Programming
You already programmed the LEDs. Now program the other components. I decided to have two modes for my shirt, with the switch used to flip between modes. When the switch is LOW, the LEDs light up as previously programmed. When the switch is high, the connection between the pointer finger and the thumb is used to control advancing through a sequence of LEDs, and the buzzer buzzes with each advancement through the sequence. Two variables are needed to advance through the sequence. The first determines if you just terminated the connection between the thumb and pointer finger. This should be set to 0 when the pointer finger control pin is LOW, and when the control pin is not LOW the value should be set to 1 if it is 0 and 2 otherwise. If the value of that variable is 1, the other variable, a counter, should be incremented. This allows each connection to be counted separately. The sequence can be programmed as a sequence of ifs containing many or statements. For example, for the sequence 1, 4, 3, 4, 2, 3, 1, 2, LED 1 would be on if the counter was 1 or 7; LED 2 would be on if the counter was 5 or 8; and so on. Flipping the switch to the other mode should reset the counter variable.