Electronic Target for Toy Foam Blaster like Nerf
Multiplayer target with score management and OLED display.
My boys enjoy playing with foam blaster guns like Nerf. In our hallway they often practice by shooting at different objects. One day, during a family discussion, they were thinking that it would be good to have a target to practice on. I found that Nerf sells a few electronic targets, but I thought that to make it at home with them participating would be more fun.
I drew a design on paper, then my older son drew it in Thinkercad. However, for the active part, we needed first to find the right switch. After some research, I found a micro switch similar to what is used in computer mice. Small.
Before printing the target full size, I build a POC (proof of concept). A small box, with only one button, and one position to shoot at. Although one switch is enough for the electric contact, I needed two switches to get enough spring force. With only one switch, sometimes the button remains stuck in pressed down position. So, below the button, one support will get the switches, with 90 degrees orientation.
After some playing (family play) with this POC, we printed the full-size target (21 cm x 21 cm, the max size for my 3D printer). It took several days (really) to print all the parts (download the designs at https://www.tinkercad.com/things/hNY4hzGaqxa)
For the control part, I used a board I just developed for another application. It is a PIC with four buttons, a connection for the I2C display, and two connectors: one for power, one for software programming. The board is powered with a lithium battery and an IC is recharging it. A small USB-to-serial interface will be uses for software download and to recharge the battery.
To make it fancier, I used a graphic OLED display of 128x64 pixels. To find the right graphic display is never easy, as many are available but a lot less that work well.
This project is still using MikroC Pro and the software is quite simple:
- Init
- Enter number of players
- Play with a predefined number of shots
- If no target hit is detected after 10 sec, go to the next player
- When the shoot-out is finished display the score of each player
- If some players have the same score, the winner is the fastest shooter
I asked my boys to draw the graphic screen to be displayed when a target is hit (in Paint, online tools are available to convert images in bitmaps that can be integrated in source code).
We hung the target on a door and now it is fun to play. The mechanical design is not yet perfect as sometimes a target gets stuck and keeps the switches pressed down. I'm still improving it.
Possible improvements:
- Instead of putting the target on a wall or door, add a support (tripod?) to place it on a table.
- In the software, add the possibility of choosing the number of shots. Currently it is hardcoded in software to 5.
- Increase the size of the display. 1.3'' is quite small from few meters distance. The same OLED driver can manage 1.5'' but the enclosure needs to be made bigger for this. Unfortunately, the 3D printer cannot handle bigger casing...
- Use a remote display to display score, with RF transmission of the score.
- Add an LED under each target to show which was hit by the foam ball.
My son asked me to develop a way to detect that the player missed the target, but I didn’t find a solution yet.
Laurent
I drew a design on paper, then my older son drew it in Thinkercad. However, for the active part, we needed first to find the right switch. After some research, I found a micro switch similar to what is used in computer mice. Small.
Before printing the target full size, I build a POC (proof of concept). A small box, with only one button, and one position to shoot at. Although one switch is enough for the electric contact, I needed two switches to get enough spring force. With only one switch, sometimes the button remains stuck in pressed down position. So, below the button, one support will get the switches, with 90 degrees orientation.
After some playing (family play) with this POC, we printed the full-size target (21 cm x 21 cm, the max size for my 3D printer). It took several days (really) to print all the parts (download the designs at https://www.tinkercad.com/things/hNY4hzGaqxa)
For the control part, I used a board I just developed for another application. It is a PIC with four buttons, a connection for the I2C display, and two connectors: one for power, one for software programming. The board is powered with a lithium battery and an IC is recharging it. A small USB-to-serial interface will be uses for software download and to recharge the battery.
To make it fancier, I used a graphic OLED display of 128x64 pixels. To find the right graphic display is never easy, as many are available but a lot less that work well.
This project is still using MikroC Pro and the software is quite simple:
- Init
- Enter number of players
- Play with a predefined number of shots
- If no target hit is detected after 10 sec, go to the next player
- When the shoot-out is finished display the score of each player
- If some players have the same score, the winner is the fastest shooter
I asked my boys to draw the graphic screen to be displayed when a target is hit (in Paint, online tools are available to convert images in bitmaps that can be integrated in source code).
We hung the target on a door and now it is fun to play. The mechanical design is not yet perfect as sometimes a target gets stuck and keeps the switches pressed down. I'm still improving it.
Possible improvements:
- Instead of putting the target on a wall or door, add a support (tripod?) to place it on a table.
- In the software, add the possibility of choosing the number of shots. Currently it is hardcoded in software to 5.
- Increase the size of the display. 1.3'' is quite small from few meters distance. The same OLED driver can manage 1.5'' but the enclosure needs to be made bigger for this. Unfortunately, the 3D printer cannot handle bigger casing...
- Use a remote display to display score, with RF transmission of the score.
- Add an LED under each target to show which was hit by the foam ball.
My son asked me to develop a way to detect that the player missed the target, but I didn’t find a solution yet.
Laurent
Updates from the author