Arcade Cabinet for Tablets

From air
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
ArcadeCabinetTablet5.jpg

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

Hardware

Extra

Design

Software

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<NBDIGBUT;d++) pinMode(dButton[d], INPUT_PULLUP);
  Keyboard.begin();
}

void loop(){

  
   for(int d=0;d<NBDIGBUT;d++) {
    if (!dFlag[d] && digitalRead(dButton[d]) == HIGH) {

      dFlag[d]=true;

    }else 
    if (dFlag[d] && digitalRead(dButton[d]) == LOW) {
      Keyboard.press(dChar[d]);
      delay(10); // to avoid multiple press
      Keyboard.releaseAll();
      dFlag[d]=false;
    }
  }
  
  
  
for(int a=0;a<NBANABUT;a++) {
    if (!aFlag[a] && analogRead(aButton[a]) > 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

Javascript et HTML

Gallerie

ArcadeCabinetTablet.png ArcadeCabinetTablet1.jpg ArcadeCabinetTablet2.jpg ArcadeCabinetTablet3.jpg ArcadeCabinetTablet4.jpg ArcadeCabinetTablet5.jpg