As my kids grow up, my interest in electronics and embedded development gives me an excuse to delve into the intrinsics of do-it-yourself lasertag. Although not that complicated in its essence, it provides several challenges on both hardware and software matters that give me ample opportunity to learn.
The MilesTag system is generally considered the ‘Godfather of DIY Lasertag’, but simply copying that and/or buying the relevant modules would be too simple. With the old saying ‘why take the easy road if you can make it complicated‘, I decided to venture into the realms of hobby electronics, infra-red optics, battery management, embedded communications and that kind of stuff.
The idea in general is to create a pluggable system of independent components that have specific functions within the lasertag setting. Basically, it means I will end up with:
- a lasertag gun that is able to communicate using infrared encoded packages and has a few infrared sensors on the gun itself. It should be battery powered and have a wired pluggable connection for extension.
- a sensor unit that can be plugged into a central core, allowing you to add sensors to a vest or headband and combine all these sensor inputs into a central processing module
- and of course a central processing module (CPM), that is able to power relevant sensor modules attached to it, as well as communicate with relevant gun modules wired into it. I am planning on adding WiFi to this module.
The sensor and gun units should be able to work stand alone as well, allowing for easy testing. But for a complete experience, linking up with the central processing module would allow for registering and recording hits and all kinds of complicated logic for different kinds of game modes.
Ideally, the sensor modules would be able to plug into the lasertag gun as well, so you can do without the central module for simple setups. The gun-sensors could then be added to this generic interface as well. I2C/SPI sounds right for this. I am leaning towards a CANBUS for the gun-CPM interface, just for the sake of learning CANBUS proper.
Anyway, as we go along, I’ll try to post updates in this blog.