Nytt liv i havererat flipperspel tack vare Arduino

Berätta om dina pågående projekt.
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av Lennart Aspenryd »

Nej, det var bar raljerande.
Lite kopplingsschema , och lite programkod är inte fel.
I can hear the sounds of the flippers! says Lasp
zealotry
Inlägg: 919
Blev medlem: 9 oktober 2004, 22:28:40
Ort: Västerås

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av zealotry »

Gissar på att han menar under spelplanen. Hur fungerar bumpers, uppskjut, flipprar osv =) Rent elektromekaniskt alltså, kul o se på en sån fin gammal pjäs!
SimLego
Inlägg: 16
Blev medlem: 16 april 2013, 17:27:43

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av SimLego »

Och jag hängde på och rimmade litet till.

Jag har f n 16 + 8 kb programkod, har i och för sig inget emot att publicera den, men tvivlar på allmänintresset.

Här är ett litet smakprov. Några funktioner, varav den sista, newGame(), som jag just nu jobbar på: Kan inte sätta igång och förklara allt, men fråga gärna om det är något speciellt du undrar över.

Kod: Markera allt

int scansw()
{
  // Scan Line 0
  selectLine(0);
  if(digitalRead(Apin) == LOW) return 1; // Drain Pit
  if(digitalRead(Bpin) == LOW) return 2; // Top Target
  if(digitalRead(Cpin) == LOW) return 3; // 50k Target
  if(digitalRead(Dpin) == LOW) return 4; // Top Pit

  // Scan Line 3
  selectLine(3);
  if(digitalRead(Bpin) == LOW) return 32; // 500p Rollovers
  if(digitalRead(Cpin) == LOW) return 33; // 30p Contacts

  // Scan Line 4
  selectLine(4);
  if(digitalRead(Bpin) == LOW) return 42; // 5k Rollovers, Bonus
  if(digitalRead(Cpin) == LOW) return 43; // Rollovers x2
  // Position 44 = 5 Balls Mode Jumper

  // Scan Line 5
  selectLine(5);
  if(DropL == 0 && digitalRead(Cpin) == LOW) return 51; // Left Drop Target
  if(DropM == 0 && digitalRead(Bpin) == LOW) return 52; // Center Drop Target
  if(DropR == 0 && digitalRead(Apin) == LOW) return 53; // Right Drop Target
  // Position 54 = Debug Mode Jumper
  
  // Scan Line 6
  selectLine(6);
  if(digitalRead(Apin) == LOW) return 61; // Left Bumper
  if(digitalRead(Bpin) == LOW) return 62; // Right Bumper
  if(digitalRead(Cpin) == LOW) return 63; // Left Slingshot
  if(digitalRead(Dpin) == LOW) return 64; // Right Slingshot

  // Scan Line 7
  selectLine(7);
  if(digitalRead(Apin) == LOW) return 71; // Tilt
  if(startbuttonEnable && digitalRead(Bpin) == LOW)
    return 72; // Start button
  if(digitalRead(Cpin) == LOW) return 73; // 30k Rollover
  if(digitalRead(Dpin) == LOW) return 74; // Top Slingshot

  return 0;
}

void updateBonus()
{
  for(int i=0; i<10; i++) digitalWrite(BonusLamp[i], LOW); 
  if (Bonus > 9) digitalWrite(BonusLamp[9], HIGH);
  for(int i=1; i<6; i++)
    if (Bonus == i || Bonus == i+10)
      digitalWrite(BonusLamp[i-1], HIGH);
  for(int i=6; i<10; i++)
    if (Bonus == i)
      digitalWrite(BonusLamp[i-1], HIGH);
}

void selectLine(int n)  // used by scansw()
{
  if (n == 0) { digitalWrite(line0pin, LOW); }
    else digitalWrite(line0pin, HIGH);
  if (n == 3) { digitalWrite(line3pin, LOW); }
    else digitalWrite(line3pin, HIGH);
  if (n == 4) { digitalWrite(line4pin, LOW); }
    else digitalWrite(line4pin, HIGH);
  if (n == 5) { digitalWrite(line5pin, LOW); }
    else digitalWrite(line5pin, HIGH);
  if (n == 6) { digitalWrite(line6pin, LOW); }
    else digitalWrite(line6pin, HIGH);
  if (n == 7) { digitalWrite(line7pin, LOW); }
    else digitalWrite(line7pin, HIGH);
  delay(2);
}

void activateCoil(int pin_no)
{
  digitalWrite(pin_no, HIGH);
  delay(SolenoidTime);
  digitalWrite(pin_no, LOW);
}

void updateScore(int p) // 0-3 -> Player 1-4, 4 -> All Players
{
  if(p>3)
    for(int i=0; i<4; i++)
      updateScore(i);
  else
  {
    sprintf(s, "@%d%06ld", p, Score[p]);
    if(debugmode) Serial.print(s);
    Serial1.print(s);
  }
}

void updateBallInPlay()
{
  sprintf(s,"@B%d",BallInPlay);
  Serial1.print(s);
}

void setTilt(int TiltStatus)
{
  Tilt = TiltStatus;
  sprintf(s,"@T%d",Tilt);
  Serial1.print(s);
}

void updatePlayer()
{
  sprintf(s,"@U%d",Player);
  Serial1.print(s);
}


void updateCredits()
{
  sprintf(s,"@C%02d",nCredits);
  Serial1.print(s);
}

void newGame()
{
  // reset all scores
  for(Player=0; Player<4; Player++) Score[Player] = 0;
  Player=0;
  BallInPlay = 0; // ie Ball In Play = 1
  updateScore(4);
  Bonus = 0;
  updateBonus();

  
}
Senast redigerad av SimLego 17 april 2013, 11:41:43, redigerad totalt 1 gång.
SimLego
Inlägg: 16
Blev medlem: 16 april 2013, 17:27:43

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av SimLego »

PS. Manualen till det system som just detta spel bygger runt finns på: http://www.flippers.be/Recel_System_III.pdf (3,6 Mb PDF) Kan vara mycket intressant att studera, även om det skiljer sig åt på flera sätt jämför med den amerikanska "standarden".
salle
Inlägg: 878
Blev medlem: 28 oktober 2004, 09:41:45
Ort: Växjö

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av salle »

Eftersom det är TS som frågar så är det väl inte OT, det spelet som jag hade var ett mekaniskt Lady luck från 1968.
Någon hade målat kabinettet blåmetallic, samt även klippt kabelstammen till topboxen.
Det var en på forumet som fick det, kommer inte ihåg vem just nu, finns en skänkestråd om det.
Spelplan och plast var ok, men motivet på topboxen hade börjat flaga.

Salle
Nerre
Inlägg: 27195
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av Nerre »

salle skrev:Det är i dessa lägen jag kan ångra att jag gav bort mitt gamla flipperspel där någon innan jag blev ägare klippt kabelstammen till topboxen (när det dessutom finns kontakter när man vill plocka isär spelet)
Så gjorde farsan när han plockade ner den telefonväxel jag hade satt upp hemma hos dem förut... (En A415 Midi)
Användarvisningsbild
Klas-Kenny
Inlägg: 11831
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av Klas-Kenny »

SimLego: Använd gärna Code-taggen runt din kod, så blir den snyggare presenterad och man slipper scrolla så mycket i onödan. :)
SimLego
Inlägg: 16
Blev medlem: 16 april 2013, 17:27:43

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av SimLego »

Använd gärna Code-taggen runt din kod
Tack för tipset. Jag såg inte den. Nu är det gjort.
Användarvisningsbild
dar303
Inlägg: 5979
Blev medlem: 17 december 2003, 19:54:56
Ort: Sthlm

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av dar303 »

Snyggt jobbat, alltid kul att se fler med jättemonsteridiotprojekt som verkligen orkar köra det i mål! (eller snart i mål i alla fall!)
Fler bilder, filmer etc!
SimLego
Inlägg: 16
Blev medlem: 16 april 2013, 17:27:43

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av SimLego »

Fler bilder, filmer etc!
Hämtade precis ut 160kronors-kameran hos postombudet idag. Ingen Hasselbladare direkt, men ganska imponerande att det öht går att tillverka kameror till det priset, som f ö inkluderar frakt från Kina. Video borde komma ikväll när jag något-så-när lärt mig bemästra underverket.
Användarvisningsbild
matsadona
Inlägg: 755
Blev medlem: 28 februari 2010, 23:05:17

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av matsadona »

Det är ju naturligtvis både coolare och roligare att bygga själv, men för liknande projekt finns dessa produkter som gör livet lite enklare (men kanske dyrare)...
http://www.pinballcontrollers.com/index.php/products
SimLego
Inlägg: 16
Blev medlem: 16 april 2013, 17:27:43

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av SimLego »

Det är ju naturligtvis både coolare och roligare att bygga själv, men för liknande projekt finns dessa produkter som gör livet lite enklare (men kanske dyrare)...
Det hade definitivt sett snyggare ut "under huven" om inte annat. Men det hade blivit hiskligt mycket dyrare! Sedan är jag lite osäker på om dessa hade passat mitt kraftigt ostandardiserade spel.
SimLego
Inlägg: 16
Blev medlem: 16 april 2013, 17:27:43

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av SimLego »

Nu är jag äntligen klar med ett videoklipp. Det börjar med fyra stillbilder och en snutt stumfilm, men sedan kommer ljudet med buller & bång, så vrid inte upp för mycket volym.

http://www.youtube.com/watch?v=6WgdqQP0obM
Användarvisningsbild
GeekJoan
Admin
Inlägg: 11145
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Nytt liv i havererat flipperspel tack vare Arduino

Inlägg av GeekJoan »

Coolt!
Skriv svar