Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

ATmega328P Alien-gokkast Kit

Onderdelen en benodigdheden

Microchip ATmega328P-PU (2x: 1 voor gokkast, 1 voor I2C credit-display slave) 2
7-segment display 8 digits (spelercredits) 1
8x8 LED-matrix, 4 segmenten, MAX7219 (3 rollen, 1 ongebruikt) 1
I2C 2004 Seriële Blue Backlight LCD 20x4 (menu) 1
Breadboard 830 punten 2
Momentcontactknoppen (1x rollen, 3x menu, 2x reset) 6
RGB Diffused Common Cathode LED 1
LED (standaard, power-indicator) 1
Weerstand 10kΩ (pull-ups knoppen + reset) 6
Weerstand 1kΩ (knop-beveiliging) 4
Weerstand 330Ω (RGB LED) 3
16 MHz Kristal (2x) 2
Schuifschakelaar (voeding) 1
Buzzer (piezo) (2x: 1 per chip) 2
Condensator 22pF (kristal) 4
Condensator 0.1µF (100nF) 6
Condensator 100nF (optioneel, voor FTDI-programmering) 1
Condensator 10µF (voedingssmoothing) 2
Lineaire regelaar 7805 (5V) 1
Jumper-draden 1 set
5V voeding 1
Arduino Mini USB-serieel adapter (optioneel, voor programmeren) 1
FTDI USB-TTL Serial Adapter (2x, voor in-circuit programmeren) 1
Solderbaar breadboard (volledig + mini) 1+1
Soldeer 60/40 Rosin Core 0.8mm 1
Waterdichte projectbehuizing (clear plastic) 1

Benodigde tools en machines

  • Solderbout
  • Helping Hands (derde hand)

Apps en online diensten

  • Arduino IDE
  • Timer Free Tone Library
  • LED Control Library (LedControl)
  • LiquidCrystal/LCD Library
  • LiquidCrystal I2C Library

Over dit project

ATmega Alien-themed gokkast

Deze gokkast gebruikt twee ATmega328P-PU microcontrollers. Geïnspireerd door Cory Potter's Alien Invasion Slot Machine, wilde ik het concept uitbreiden. Het is voor entertainment en educatief doel. Ik probeerde een echte gokkast zo nauwkeurig mogelijk te simuleren. Op breadboard gebouwd; behuizing volgt na levering onderdelen. Bouwtijd: ~2 maanden in vrije tijd. De grootste uitdaging: de wiskunde achter de uitbetalingstabel na honderden miljoenen simulaties.

Hoe het spel werkt

Drie rollen met elk 25 unieke symbolen (één van de 4 matrices ongebruikt). Vijf manieren om te winnen:

  • 3 ruimteschepen = Jackpot
  • 1 of 2 ruimteschepen = credits
  • 2 of 3 matchende symbolen = credits
  • Combinatie (ruimteschip + 2 matchende symbolen) = uitbetaling op basis van laagste kans/hoogste uitbetaling (winnende events sluiten elkaar uit)

Functies

Via het 20x4 I2C LCD-display (2 navigatieknoppen + selectieknop) benader je het menu. Knoppen gebruiken een gesofisticeerd debounce-algoritme met externe interrupts.

Hoofdmenu: Play, Bet, Settings, Metrics, Reset, Hold (scrollen voor meer items). Er is ook een speciale 'spin'-knop.

Inzet wijzigen: Via Bet-menu (+5/-5 credits).

Auto-modus: Via Settings-menu. Spelt automatisch tot 1 miljoen speelrondes of handmatig stoppen. Ideaal voor testen. Geluid kan hier uitgeschakeld worden.

Metrics bekijken: Creditbalans, jackpot-aantal, overige winnings, etc. Ook zichtbaar in Seriële Monitor via RX/TX. Gebruikt voor simulatie-validatie.

Reset: Zet alle metrics (behalve EEPROM-schrijftellen) op nul. EEPROM houdt ~100.000 schrijfcycli; met 512kB beschikbaar kun je metrics-opslag verplaatsen bij benadering van limiet (niet geïmplementeerd).

Hold (huisvoordeel): Configureerbaar via menu (percentage van inzet dat huis houdt). Typisch max 15% per jurisdictie. Na Reset moet Hold opnieuw ingesteld worden.

Creditbalans: Altijd zichtbaar op 8-digit 7-segment display.

De Wiskunde

Kansen en uitbetalingen zijn berekend voor acceptabele Volatiliteitsindex (VI) (< ~20). VI meet voorspelbaarheid: hogere VI = onvoorspelbaardere winst/verlies. VI wordt gemanipuleerd via uitbetaaltabel.

Kansen (25 symbolen per rol, 15625 combinaties):

  • 3 ruimteschepen: 1/15625 = 0.000064 (odds 1:15624)
  • 3 symbolen matchen (geen schepen): 24/15625 = 0.001536 (odds ~1:650)
  • 2 ruimteschepen: 72/15625 = 0.004608 (odds ~1:216)
  • 1 ruimteschip: 1728/15625 = 0.110592 (odds ~1:8)
  • 2 symbolen matchen: 1656/15625 = 0.105984 (odds ~1:8.4)

Met spreadsheet (bij code) zijn uitbetalingen getund tot VI = 16.43:

  • 3 Schepen: 600x inzet
  • 3 Symbolen: 122x
  • 2 Schepen: 50x
  • 1 Schip: 3x
  • 2 Symbolen: 2x

Validatie: 5 simulaties van 1.000.001 spelen met 0% hold → werkelijke kansen matchen berekende kansen. Met 15% hold → inkomsten binnen 90% betrouwbaarheidsinterval.

De Code

Uitgebreid gecommentarieerd. Lees de bron (GitHub). Gebruikt:

  • Timer Free Tone Library – piezospaker frequenties (Close Encounters thema bij opstart)
  • LED Control Library – 3x 8x8 matrices (rollen) + 7-segment display (via I2C slave)
  • LiquidCrystal I2C – 20x4 LCD (vervangbaar door 20x2 door LCD_SCREEN_HEIGHT op 2 te zetten). Moet I2C-capabel zijn of met PCF8574 adapter.

State machine: machineState volgt statussen (IDLE, SPINNING, AUTO, SHOW_MENU). Events worden gedispatched via ProcessEvents.

Bekende issues:

  • Soms draait 1-2 rollen niet (RNG kiest hetzelfde symbool) – geen defect.
  • Rollen stoppen niet linkser-naar-rechts (ontwerpkeuze voor simpliciteit).
  • 80% globaal geheugen gebruikt – instabiel risico bij toevoegingen.

TODO: Brown-out detectie, watchdog, geluid verbeteren, RGB LED beter benutten.

Symbolen (deels Space Invaders, deels zelf ontworpen) staan in SlotMachine.h in binair formaat voor makkelijke aanpassing.

De gokkast bouwen

Programmeren via FTDI USB-serieel bord (verbindingen niet in Fritzing-schema). Zie Arduino op breadboard voor setup. Bootloader branden via AVRISP mkII, USBtinyISP of Arduino als ISP.

Onderdelen

Kleine componenten op voorraad? < $40. Met behuizing + printplaat ~$60. Leveranciers: AliExpress, Amazon, eBay. 20x4 LCD niet verplicht; 20x2 werkt met code-aanpassing.

Software

Alle libraries in Arduino IDE installeren via Library Manager of handmatig.

Handtools

  • Solderbout
  • Helping Hands

Schema

Fritzing-schema beschikbaar (bij code op GitHub). Onderstaande pinout-listen helpen bij de drukke schematica:

Slot Machine (Master)

  • Pin 1: FTDI RTS / resetknop
  • Pin 2: FTDI TXD
  • Pin 3: FTDI RXD
  • Pin 4: 1kΩ → spin-knop
  • Pin 5: 330Ω → RGB blauw
  • Pin 6-13: ongebruikt (overweeg ground)
  • Pin 7 VCC, Pin 8 GND: 0.1µF naar rails
  • Pin 9-10: 16MHz kristal + 22pF naar GND
  • Pin 14: DIN 8x8 matrices
  • Pin 15: 330Ω → RGB rood
  • Pin 16: 330Ω → RGB groen
  • Pin 17: Piezo buzzer (+) / (-) → GND
  • Pin 18: CS 8x8 matrices
  • Pin 19: CLK 8x8 matrices
  • Pin 20 AVCC, Pin 21 AREF: voeding
  • Pin 22 GND
  • Pin 23: zwevend (RNG seed)
  • Pin 24: 1kΩ → nav-up knop
  • Pin 25: 1kΩ → nav-down knop
  • Pin 26: 1kΩ → select knop
  • Pin 27 SDA → Slave pin 27
  • Pin 28 SCL → Slave pin 28

Display Slave

  • Pin 1: FTDI RTS / resetknop
  • Pin 2: FTDI TXD
  • Pin 3: FTDI RXD
  • Pin 4-13: ongebruikt (ground?)
  • Pin 7 VCC, Pin 8 GND: 0.1µF
  • Pin 9-10: 16MHz kristal + 22pF
  • Pin 15: Piezo buzzer
  • Pin 16: CS 7-segment
  • Pin 17: CLK 7-segment
  • Pin 18: DIN 7-segment
  • Pin 20 AVCC, Pin 21 AREF: voeding
  • Pin 22 GND
  • Pin 23-26: ongebruikt
  • Pin 27 SDA → Master pin 27
  • Pin 28 SCL → Master pin 28

Samenvatting

Leuk project om te bouwen. De wiskunde achter de uitbetaaltabel was de grootste uitdaging. Veel plezier ermee! Vragen/defects: dan-murphy@comcast.net. Deel II volgt na inbouw in behuizing.

Code

Drie bestanden op GitHub:

  • SlotMachine.ino (hoofdprogramma)
  • SlotMachine.h (symbolen, noten, constanten)
  • slotCreditsDisplaySlave.ino (I2C slave voor 7-segment display)

Schema's

Fritzing-schema en .fzz-bestand bij code. Spreadsheet met uitbetalingsberekeningen (wachtwoord: "password").

Productieproces

  1. EEG-Apparaten: Ontwerp, Productie en Opkomende Toepassingen
  2. Automaatjes: Een Amerikaanse Industriemacht van $36,6 Mrd
  3. Stemmachines: Geschiedenis, Technologie en Standaarden
  4. Expertgids voor Moderne Wisselgeldautomaten: Ontwerp, Componenten en Toekomsttrends
  5. Uitgebreid Overzicht van Moderne ECG-Apparaten: Technologie, Productie en Toekomstige Innovaties
  6. De Evolutie en Productie van Naaimachines: Van 19e-Eeuwse Innovatie tot Moderne Automatisering
  7. CNC-Machines: Geschiedenis, Ontwerp en Toekomsttrends
  8. Essentiële onderdelen van een draaibank: functies en overzicht
  9. Draaibanken begrijpen: geschiedenis, typen en toepassingen
  10. Belangrijkste Onderdelen van een Freesmachine Uitgelegd
  11. Wat is een machine? Een uitgebreide gids