Skip to content
/ FireGun Public

FireGun - a MAME compatible lightgun that uses a Wiimote IR tracking camera fused with an overkill DCM filter just so you can shoot gangsta style

License

Notifications You must be signed in to change notification settings

MarkzP/FireGun

Repository files navigation

FireGun

a MAME compatible lightgun that uses a Wiimote IR tracking camera fused with an overkill DCM filter just so you can shoot gangsta style

By Marc Paquette marc @^ dacsystemes.com

Uses highly customized DCM code from Razor AHRS https://github.com/ptrbrtz/razor-9dof-ahrs And more customized IR sensor code from http://www.kako.com/neta/2007-001/2007-001.html, www.stephenhobley.com, as well as http://procrastineering.blogspot.ca/2008/09/working-with-pixart-camera-directly.html Runs on a Teensy LC from PJRC http://www.pjrc.com/store/teensylc.html Relies on Sparkfun LSM9DS1 library https://github.com/sparkfun/SparkFun_LSM9DS1_Arduino_Library You may need to hack one of these to get the sensor: https://www.amazon.ca/PDP-Rock-Candy-Gesture-Controller/dp/B008U2XED0 Compiled with Arduino 1.6.9 & Teensyduino 1.30 http://www.pjrc.com/teensy/teensyduino.html

Form performance reasons, some trig equations have been simplified to their small angle approximation where suitable. I stopped optimizing when I figured out CPU load was less than 50% at ~100Hz. Also, the DCM / IR fusion stuff has been tuned experimentally. It may not work in all situations.

If you build one (or two), let me know!

USB Type should be "Keyboard + Mouse + Joystick" Alternatively, you can add a new Keyboard-less USB type by following instructions from tab "usb_desc" (My pc wouldn't boot with 2 identical Teensy USB Keyboards)

To build: -I stole a Nerf gun from my kids (don't be a jerk, get your own!) -Everything is held together nicely with hot melt glue -Look at the Buttons file to figure out how to connect the buttons -Look at the AccelGyro file to get the best way to connect to the imu -Finally look at the PVision.h file for additional details on the Ir sensor configuration

To calibrate the screen area: -Point to the upper left corner -Hold the trigger until the led comes on (default is 7 seconds) -While holding the trigger, move to the lower right corner -Release the trigger to save calibration

To switch between joystick & mouse mode: -Hold both the trigger & button 1 until led flashes once (quickly)

Troubleshooting: -Make sure to aim squarely at the sensor bar once in a while (this will re-aling the DCM heading) -If it starts to drift or becomed somewhat unuseable, just put the gun down for ~10 sec. This will recalibrate the gyros. -Make sure everything is connected correctly -Pullups are required on I2C lines, but don't overdo it -If initialization fails, leds will display error code (number of flashes): 3: Accel/Gyro error 4: IR Sensor error

This code is released under GPL v3.0: https://gnu.org/licenses/gpl-3.0.txt

About

FireGun - a MAME compatible lightgun that uses a Wiimote IR tracking camera fused with an overkill DCM filter just so you can shoot gangsta style

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages