Mini mini cab (portatile)

Area riservata alle discussioni sui Cabinet generici Autocostruiti sia grandi che piccoli
Avatar utente
CarloBlanch
Cab-maniaco
Cab-maniaco
Messaggi: 1012
Iscritto il: 22/08/2014, 19:37
Città: MonteCompatri
Grazie Ricevuti: 1 volta
Contatta:

Re: Mini mini cab (portatile)

Messaggio da CarloBlanch »

Grazie Funzionaaaaaa!!!

Ho risolto meno male.

Non con il tuo sketch, ma grazie alla tua risposta mi sono messo di nuovo a smanettare e ho scoperto che era una massa non ben saldata, mannaggia a me ormai non ci vedo più da vicino.

Funziona alla grande, senza ghosts, reazioni immediate, ripetizione corretta.
Bene, bene sono contento, finalmente.

A volte basta poco, anche un piccolo tentativo ulteriore da fare per capire il guaio.

Ero un po sconfortato , avendo rimosso il keyboard hack dal cab per farci stare l ' MVS e l ' ST-V sul cablaggio Jamma, e non riuscivo più a gestirci il pc.

ti posto il mio di sketch, ovviamente scopiazzato, da qui:

http://mahoneytech.com/blog/2013/03/17/ ... ontroller/

Molto simile al tuo, con gli inputs gestiti in array, veloce e preciso.

Se hai problemi anche tu, fammi sapere, magari ti posso essere utile.

Codice: Seleziona tutto

  
 /*
 * Space Invaders TV Game Joystick test sketch
 * Chris Mahoney / March 17, 2013
 *
 * Use keyboard emulation of Leonardo to press keyboard
 * keys when switches are triggered on Space Invaders controller.
 */

//Variables for the buttons
/* 
 * Switch order:
 * (8) Ground, L, U, R, D, B, A (2)
 */
// Arduino pin -> function
int buttonLeft=6, buttonUp=4, buttonRight=7, buttonDown=5, buttonB=1, buttonA=0, buttonC=2, buttonD=3, buttonCoin1=8, buttonStart=9, buttonStart2=21, buttonLeft2=15, buttonUp2=14, buttonRight2=16, buttonDown2=10, buttonB2=19, buttonA2=20, buttonC2=18;
// Set all pins high before setup()
int prevLeft = HIGH, prevUp = HIGH, prevRight = HIGH, prevDown = HIGH, prevB = HIGH, prevA = HIGH, prevC = HIGH, prevD = HIGH, prevCoin1 = HIGH, prevStart = HIGH, prevStart2 = HIGH, prevLeft2 = HIGH, prevUp2 = HIGH, prevRight2 = HIGH, prevDown2 = HIGH, prevB2 = HIGH, prevA2 = HIGH, prevC2 = HIGH;

// Array of button pins
int buttons[18] = {buttonLeft, buttonUp, buttonRight, buttonDown, buttonB, buttonA, buttonC, buttonD, buttonCoin1, buttonStart, buttonStart2, buttonLeft2, buttonUp2, buttonRight2, buttonDown2, buttonB2, buttonA2, buttonC2};
// Previous state of buttons
int prevButtons[18] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, HIGH};
// Actual ASCII values to "press"
int buttonNames[18] = {KEY_LEFT_ARROW, KEY_UP_ARROW, KEY_RIGHT_ARROW, KEY_DOWN_ARROW, KEY_LEFT_ALT, KEY_LEFT_CTRL, 32, KEY_LEFT_SHIFT, 53, 49, 50, 97, 115, 113, 114, 102, 100, 103};
int pinCount = 18; // # of pins

void setup(void)
{
  // Set all pins INPUT to begin
  for (int pin = 0; pin < pinCount; pin++) {
    pinMode(pin, INPUT); 
  }
  // Enable keyboard interaction (REQUIRES LEONARDO/MICRO)
  Keyboard.begin();
}
void loop(void)
{
  // Run each pin each loop
  for (int pin = 0; pin < pinCount; pin++) {
    // Get pin value
    int buttonState = digitalRead(buttons[pin]);
    // Only process if different than last check
    if (buttonState != prevButtons[pin]) { // State change, process it                                                                                                                             
   
      // Pressed?
      if (buttonState == HIGH) {
        Keyboard.press(buttonNames[pin]);   
      } 
      // Released?
      if (buttonState == LOW) {
        Keyboard.release(buttonNames[pin]);
      }
      
      // Set new previous state
      prevButtons[pin] = buttonState;
      
    } // End state change
    
    // Delay to avoid freakouts if experienced
   //  delay(10);
  }

}
Avatar utente
CarloBlanch
Cab-maniaco
Cab-maniaco
Messaggi: 1012
Iscritto il: 22/08/2014, 19:37
Città: MonteCompatri
Grazie Ricevuti: 1 volta
Contatta:

Re: Mini mini cab (portatile)

Messaggio da CarloBlanch »

Ora però mi servirebbe la gestione delle combinazioni di tasti, hai qualche idea?
alkaluso
Affezionato
Affezionato
Messaggi: 118
Iscritto il: 12/12/2013, 11:39
Città: monza

Re: Mini mini cab (portatile)

Messaggio da alkaluso »

CarloBlanch ha scritto:Ora però mi servirebbe la gestione delle combinazioni di tasti, hai qualche idea?
Puoi dirmi un caso specifico in cui ne hai bisogno che provo a verificarlo direttamente sul cab?
L'unica combinazione di tasti che uso e che funziona è l'escape di game ex, una combinazione di 3 tasti per chiudere l'emulatore.
Avatar utente
CarloBlanch
Cab-maniaco
Cab-maniaco
Messaggi: 1012
Iscritto il: 22/08/2014, 19:37
Città: MonteCompatri
Grazie Ricevuti: 1 volta
Contatta:

Re: Mini mini cab (portatile)

Messaggio da CarloBlanch »

Esatto , mi servirebbe per uscire senza dover mappare l'esc , e quello penso di risolverlo con il gameex ma mi serve una combinazione per il player2 start.
alkaluso
Affezionato
Affezionato
Messaggi: 118
Iscritto il: 12/12/2013, 11:39
Città: monza

Re: Mini mini cab (portatile)

Messaggio da alkaluso »

Shift + una lettera e sfrutti il case sensitive non funziona (chiedo)?
Avatar utente
CarloBlanch
Cab-maniaco
Cab-maniaco
Messaggi: 1012
Iscritto il: 22/08/2014, 19:37
Città: MonteCompatri
Grazie Ricevuti: 1 volta
Contatta:

Re: Mini mini cab (portatile)

Messaggio da CarloBlanch »

No, a me serve perché ho solo 18 ingressi ma me ne servirebbero 19.
Per ora il player 2 ha solo 3 tasti, il 4° non é mappato, perché ho ritenuto più importante il player2 start.
Però se riesco a trovare una combinazione che possa andare per il player2 start (per esempio player1 start+coin, oppure player1start+player2 A) potrei lasciare l'ingresso al tasto D del player2.

Comunque credo che ne prenderò un'altra anche perché il buffer massimo é di 6 pressioni, e in due si sente.
In questo modo avrei 36 ingressi.

inviato da Tapatalk, perdonate gli errori di battitura, il correttore non capisce i termini tecnici.
TUTTIFUSI
Affezionato
Affezionato
Messaggi: 115
Iscritto il: 20/01/2007, 0:45

Re: Mini mini cab (portatile)

Messaggio da TUTTIFUSI »

Salve, ho letto che qualcuno usava arduino leonardo e ci ha fatto lo sketch, anche se e´ molto diverso dal mio sketch.

In ogni caso notando e preparando lo sketch al caso mio e se vedete un esempio qui :

Codice: Seleziona tutto

void setup() {
  
Keyboard.begin();

//Joystick and button connections
pinMode(2, INPUT_PULLUP); //Joystick Left Switch
pinMode(3, INPUT_PULLUP); //Joystick Right Switch
pinMode(4, INPUT_PULLUP); //Fire Button
}

void loop() {
  
// Check the switches:
int buttonState2 = digitalRead(2);
int buttonState3 = digitalRead(3);
int buttonState4 = digitalRead(4);

// Joystick Left = Arrow Left Key
if (buttonState2 == LOW) {
Keyboard.press(216);
}
else {
Keyboard.release(216);
}

// Joystick Right = Arrow Right Key
if (buttonState3 == LOW) {
Keyboard.press(215);
}
else{
Keyboard.release(215);
}

// Fire Button = Left Ctrl key
if(buttonState4 == LOW) {
Keyboard.press(128);
}
else{
Keyboard.release(128);
}
}
noto che e´ facile da compilare, cosi ho aggiunto anche altri buttoni. Ma avrei bisogno anche di qualcos´ altro. I shift keys.

esempio :

"Start Player 1 (nel mame e´ 1)" + "P1 Down (nel mame e´ U ARROW) " vorrei come risultato = Pause (nel mame e´ P )

E siccome vorrei usare piu´ combinazioni di shiftkeys (TAB; load and save state, enter, etc) non vorrei usare tanti buttoni installati... per questo mi serviva i shiftkeys nello sketch arduino leonardo, ma ancora non sono riuscito a trovare il codice giusto e funzionante oltre al link che ho citato che pero´ e´fatta solo per buttoni semplici.

Qualcuno ha usato i shiftkeys all´arduino leonardo e puo´ aiutarmi ?
Immagine
Immagine
Immagine
Immagine
Il Dela
Affezionato
Affezionato
Messaggi: 125
Iscritto il: 19/07/2016, 1:03
Città: Brescia
Grazie Ricevuti: 1 volta

Re: Mini mini cab (portatile)

Messaggio da Il Dela »

Forse ho la soluzione se non l'hai ancora trovata :) però è da testare TUTTIFUSI perché non ho un Leonardo a disposizione :on_cry:
Rispondi

Torna a “Cabinati Autocostruiti - Weecade - Bartop”