Arcade Cabinet for Tablets



The goal of this project is to provide arcade-style cabinet for 11-inch tablets.

Hardware

 * 10 mm plywood or MDF
 * 1 Joystick
 * 8 (or less) Arcade buttons
 * 1 power switch
 * 1 Arduino Leonardo (better since it can emulate a keyboard or a mouse (HID))
 * 1 Bluetooth module for Arduino
 * 2 4-ohms speakers (recycled or not).
 * 1 Audio amplifier or 5v Audio Amplifier
 * 1 Android tablet

Extra
 * Humidity and Temperature Sensor - RHT03

Design

 * Figures for laser cutters (PDF and ODG formats) [[Media:ArcadeCabinetTablet.zip]]
 * Electronic Schema (Fritzing)

Arduino sketch
const int NBANABUT = 4; const int aButton[NBANABUT] = {A2, A3, A4, A5}; const int aChar[NBANABUT] = {'W', 'D', 'A', 'S' }; // warning, qwerty keyboard // W here gives Z on azerty Keyboard //const int aChar[NBANABUT] = {KEY_UP_ARROW, KEY_RIGHT_ARROW, KEY_DOWN_ARROW, KEY_LEFT_ARROW}; int aFlag[NBANABUT] = {false, false, false, false };

const int NBDIGBUT = 8; const int dButton[8] = {2, 3, 4, 5, 6, 7, 8, 9}; //const int dChar[8] = {'A', 'B', 'C', 'D', 'E','F','G','H' }; // order of button from left to right, line by line const int dChar[8] = {'d','h','g','c','f','b','e','q'}; int dFlag[8] = {false, false, false, false, false, false, false, false };

void setup{ for(int d=0;d 1024/2) { aFlag[a]=true; Keyboard.release(aChar[a]); delay(10); // to avoid multiple press } else if (aFlag[a] && analogRead(aButton[a]) < 1024/2) { Keyboard.press(aChar[a]); aFlag[a]=false; delay(10); // to avoid multiple press } } }

Processing sketches

 * Test
 * Pacman http://www.openprocessing.org/sketch/46944
 * Space Invaders http://www.openprocessing.org/sketch/6572

Javascript et HTML

 * http://gamejs.org/showcase.html