Arcade Spinner by tbonge 3d model
3dmdb logo
Thingiverse
Arcade Spinner by tbonge

Arcade Spinner by tbonge

by Thingiverse
Last crawled date: 4 years, 8 months ago
I made this spinner control for my MAME arcade cabinet. It functions as a USB mouse and can be assigned as a spinner control in MAME for games such as Tempest or Major Havoc.
In addition to the 3D printed part you will you will need:
Incremental Rotary Encoder (should be less than $20 on Amazon)
Arduino with ATmega32u4
Stereo volume knob of your choice that fits your encoder shaft
You can use a low cost plastic knob, 3D print your own, or use a solid aluminum one for some mass. It is made to mount into a MDF arcade control panel. Drill a 38mm hole and this part drops in and has a 2mm flange to keep it from falling though. This is covered by your control knob. The encoder mounts from underneath, your encoder should come with machined mounting holes that line up with the holes in this part.
To program the ATmega32u4 as a mouse use the Arduino IDE and install the built in mouse library and the encoder library (in the comments) with the following sketch:
#include
/* Encoder Library
* http://www.pjrc.com/teensy/td_libs_Encoder.html
*/

// Change these two numbers to the pins connected to your encoder.
// Best Performance: both pins have interrupt capability
// Good Performance: only the first pin has interrupt capability
// Low Performance: neither pin has interrupt capability
// avoid using pins with LEDs attached
#include
Encoder myEnc(2, 3);

long oldPosition = -999;

void setup() {

}

void loop(){
long newPosition = myEnc.read();
int encoderMove = 0;
if (newPosition != oldPosition) {
encoderMove = (newPosition-oldPosition);

if ((encoderMove<=127) && (encoderMove>=-128))
Mouse.move(encoderMove, 0, 0);
else
if (encoderMove>127)
Mouse.move(127, 0, 0);
else
Mouse.move(-128, 0, 0);

oldPosition = newPosition;
}
}

Tags