Fencing Three Weapon Scoring Box (Wired with Wireless Display)
This project is a small (approx .15 x 10 x 6 cm) three weapon fencing scoring box.
This project expands on the excellent Instructables article Arduino Fencing Scoring Apparatus.
Three options are described:
- Basic three weapon scoring box - buttons to select weapon, with LEDs to indicate current weapon and hit/miss.
- Add LCDs panels if you want larger indicators, or LCD strips that run along the piste and are easily seen by an audience.
- Add an ESP8266 microcontroller and you can have a wireless scoring display that can be viewed and managed on a smartphone or laptop, and can be exported to a large display.
Parts for Scoring Box
- Arduino Uno
- 3 x blue LEDs
- 8 x white LEDs
- 4 x red LEDs
- 4 x green LEDs
- 2 x push switch (momentary)
- 1 x buzzer (5V)
- 6 x 4mm banana sockets
- Resistors (variety pack)
Resistor values are dependent on the LEDs you have, how bright you want them to be, and aof course which values you happen to have. It's worth using a breadboard and testing them before committing (the Arduino "blink" sketch is ideal for this). the following suit me:
1 x 330 ohm on common ground for Red's On/Off target LEDs
1 x 330 ohm on common ground for Green's On/Off target LEDs
1 x 2K ohm on common ground for blue indicator LEDs
4 x 1K ohm between ground and the four FAR and NEAR pins (A0, A2, A3 and A5)
2 x 1K ohm between 5V and both MIDDLE pins (A1 and A4)
- heat shrink tubing - it's very congested inside the box, so heat shrink tubing tubing keeps everything tidy and insulated.
- STL files for 3D printing
- small box for Arduino UNO (only)
- slightly larger box with mounting for ESP8266 and wifi antenna.
- Optional support to change the viewing angle
- small box for Arduino UNO (only)
- Arduino sketch.This is used to program the Arduino UNO controller using the Arduino IDE.
You'll need a soldering iron, solder and some glue - superglue (cyanoacrylate) is best.
It is useful to 3D print this small jig to support the LEDs when soldering, rather than taking a chance of damaging the case.
- 3D print the case, and optionally the jig to hold the LEDs
- Collect the parts
- Place four coloured LEDs into the jig. bend the cathodes (short legs) at 90 degrees, then solder them together. Do the same for four white LEDs. Solder the two cahodes (white and coloured) together.
- Next, solder the four coloured anodes (the long legs) together, taking care they don't touch any of the cathodes. Do the same for the white anodes. You should now have eight LEDs and three legs - one cathode and two anodes, one for white and one for coloured.
- repeat the previous two steps for four white LEDs and the other colour. You should have something like this:
- Check your connections. Check that all LEDs are working and the resistor value you have is appropriate. Too high and the lights will be dim, too low and they'll be very bright and you can risk burning them out.
If you use the Arduino example sketch "Blink" connections are:
- Arduino GND -> resistor -> LED common ground/cathode
- Arduino pin 13 -> LED anode. Check each colour separately.
- If all is OK, solder the resistor to the LED cathode, secure it with heatshrink tubing, then solder on about 15-20CM/6"-8" wire to the ground and two anodes.
- Repeat for the remaining colour/white combo.
- Similarly, join the three blue LED cathodes with a resistor. Only one will be lit at a time, and you don't want it too bright, so a value around 2K should be good.
- Check the LEDs fit in the case, then use a drop of superglue in each of the holes to fix them in position.
- Solder a couple of wires onto each of the push switches.One lead from each will be connected to ground.
- Fit the push switches and banana sockets in position.
Arduino Digital Connections
Arduino UNOs are usually supplied with headers, so you don't have to solder onto the board. Simply snap off the appropriate number of pins, put them in a breadboard for support, and solder your connections to the short end.
- Refer to the right hand side of above diagram.
- Connect the wires from the case components to the relevant header pins.
The ground wire is connected to the LED common cathodes, the two switches, and the buzzer. The polarity of the switches is unimportant, but the buzzer -ve must be connected to ground, and +ve to the header (Arduino pin 3).
Arduino Input and Power Connections
The six Analog/Analogue inputs on other side of the Arduin UNO's board are connected to the Red and Blue fencers' body wires.
It looks confusing, but is straightforward though a little cramped. It is recommended you use shrink-wrap tubing to insulate the connections, especially if the box will spend its life being rattled around in a bag with fencing kit.
- Each of the MIDDLE, NEAR and FAR pins is connected to one of the Arduino's Analog inputs.
- Additionally, each MIDDLE pin is connected to +5V via a resistor.
- Also, each NEAR and FAR pin is connected to GND via a resistor.
- Take six wires, of an appropriate length, and solder the little tabs from the banana sockets
Note Too short and it will be difficult to connect to the Arduino, but too long means a lot of wire stuffing later.
- Solder a 1K resistor to the opposite end, and attach each wire/resistor pair to the "Analog IN" header, again using heat shrink tubing to insulate them.
- Combine and attach the middle-pin resistors to a wire that will go to +5V.
- Combine and attach the far- and near-pin resistors to a wire that will go to GND.
Disclaimer As you may have spotted in the photo, I ran out of 1K resistors .. but the 2.2K replacements work fine. Use 1K if you have them, but similar values should work if you don't.
- The reset push switch, on the back of the box, is connected; one wire to ground, the other to the Arduino's RESET pin.
Also leave a short length attached to this pin if you envisage adding an ESP8266 for a wireless display.
- 5V pin is used for the 5V for the body cord resistors, see previous.
Optionally, leave a short length of wire to provide power for an ESP8266 if you want to add a wireless display.
- connect GND to the body cord resistors, as described above.
- If you intend attaching an ESP8266 for a wireless display, you can leave a short length of wire on the remaining GND pin.
Putting it all Together
- First, attach your Arduino UNO to the base - if you've used my 3D model and a standard UNO it should fit snugly over the pins. Use a hot soldering iron to poke and spread the pins, which is enough to hold it in place. There's no need for glue.
- Double check your connections, in particular ensuring that the switches, LEDs and buzzer have their GND connected.
- Attach the tabs to the appropriate body cord inputs (you did colour code them, didn't you?)
- Attach the headers, and you should have a pile of spaghetti like this, or preferably neater:
- Hook the Arduino sockets through the back of the case and close it all up. After testing you can secure it with small screws.
- It should look similar to the following, but without the wifi antenna:
Program the Arduino
This can be done at any point.
- Download and compile the sketch in the Arduino development environment, ensuring that the correct board is selected.
- At startup there's a visual check- if the box is wired up correctly you should see the lights sequence through coloured, white and blue, with a beep at the end.
- The box defaults to Epee mode.
- Press the mode button to change the weapon, and the corresponding LED will be turned on.
- In Foil mode, with no weapon connected, you will have repeated white lights from both fencers and an almost continual beep .. hence why Epee is default!
- Press the reset button to restart the processor(s)
- Hopefully everything is fine .. if so, you're done.