Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Kit machine à sous « Alien » à base d'ATmega328P

Composants et fournitures

td>1
Composant Quantité Notes
ATmega328P-PU (Microchip) 2 1 pour machine, 1 pour afficheur I²C esclave
Afficheur 7 segments 8 digits 1 Solde crédits joueur
Matrice 8×8, 4 segments, MAX7219 1 3 segments utilisés (rouleaux)
Écran LCD I²C 20×4 bleu 1 Menu options
Plaque d'essai 830 points 2
Boutons poussoirs momentanés 6 Spin, navigation menu (3), mise à la masse RESET (2)
LED RGB diffuse cathode commune 1 Signalisation
LED standard (alimentation) 1
Résistance 10 kΩ 6 Pull-up boutons + RESET
Résistance 1 kΩ 4 Série boutons → entrées
Résistance 330 Ω 3 LED RGB (R, G, B)
Quartz 16 MHz 2 1 par ATmega
Interrupteur glissière (alimentation) 1
Buzzer piézo passif 2 1 par puce (pourrait être partagé)
Condensateur 22 pF 4 Quartz
Condensateur 0,1 µF (100 nF) 6 Découplage
Condensateur 100 nF (série RESET pour FTDI) 1 Optionnel (programmation via adaptateur USB série)
Condensateur 10 µF 2 Lissage alimentation
Régulateur linéaire 7805 (5 V) 1
Fils de câblage 1 lot
Alimentation 5 V 1
Adaptateur USB série Arduino Mini Optionnel (ou Arduino UNO comme programmateur)
Adaptateur FTDI USB-TTL série 1 Programmation in-situ (×2 = 3,32 $)
Plaque à souder grand format 1 Version finale
Plaque à souder mini (SparkFun) 1 Afficheur esclave
Soudure 60/40 0,8 mm 1
Boîtier étanche plastique transparent 1 Enclosure finale (~13 $)

Outils nécessaires

Applications et bibliothèques

À propos du projet

Machine à sous à thème Alien sur ATmega328P

Kit machine à sous « Alien » à base d ATmega328P

Inspiré par la « Alien Invasion Slot Machine » de Cory Potter, ce projet implémente une machine à sous complète avec deux ATmega328P-PU. Un seul ATmega gère la logique de jeu, les 3 rouleaux (matrices 8×8), le menu LCD, les boutons, le buzzer et la LED RGB. Un second ATmega agit en esclave I²C pour piloter l'afficheur 7 segments 8 digits (crédits). Le projet est actuellement sur plaque d'essai ; le boîtier final arrivera plus tard.

Kit machine à sous « Alien » à base d ATmega328P

Fonctionnement du jeu

3 rouleaux, chacun avec les mêmes 25 symboles uniques (1 matrice 8×8 inutilisée sur les 4). 5 façons de gagner :

Kit machine à sous « Alien » à base d ATmega328P

Fonctionnalités (menu LCD 20×4)

Kit machine à sous « Alien » à base d ATmega328P

Navigation par 2 boutons (haut/bas) + sélection (bouton dédié « spin » pour lancer les rouleaux). Menu principal (6 lignes, défilement) :

Kit machine à sous « Alien » à base d ATmega328P
Kit machine à sous « Alien » à base d ATmega328P
Kit machine à sous « Alien » à base d ATmega328P
Kit machine à sous « Alien » à base d ATmega328P
Kit machine à sous « Alien » à base d ATmega328P

Le solde crédits est toujours affiché sur l'afficheur 7 segments 8 digits.

Kit machine à sous « Alien » à base d ATmega328P

Les mathématiques (probabilités & table de paiement)

25 symboles par rouleau → 25³ = 15 625 combinaisons totales.

Événement Combinaisons Probabilité Cotes (1/p - 1)
3 vaisseaux 1 0,000064 1 / 15 624
3 symboles identiques (hors vaisseaux) 24 0,001536 1 / 650
2 vaisseaux 24 × 3 = 72 0,004608 1 / 216
1 vaisseau 24² × 3 = 1 728 0,110592 1 / 8
2 symboles identiques 23 × 3 × 24 = 1 656 0,105984 1 / 8,4
Perte (maison) 12 168 0,777216 –

La table de paiement est conçue pour maintenir un Indice de Volatilité (VI) < 20 (acceptable pour l'industrie). Le VI mesure la prévisibilité : plus il est haut, plus les gains/pertront imprévisibles. Le « Hold » (avantage maison) est configurable via le menu (typique max 15 % selon juridictions). Un tableau Excel (fourni avec le code) a servi à valider les paiements par simulations de 1 000 001 parties.

Kit machine à sous « Alien » à base d ATmega328P
Kit machine à sous « Alien » à base d ATmega328P
Kit machine à sous « Alien » à base d ATmega328P
Kit machine à sous « Alien » à base d ATmega328P
Kit machine à sous « Alien » à base d ATmega328P

Le code

Disponible sur GitHub (3 fichiers : SlotMachine.ino, SlotMachine.h, slotCreditsDisplaySlave.ino). Très commenté. Points notables :

Construction

Programmation in-situ via adaptateur FTDI USB-série (condensateur 100 nF en série sur RESET pour auto-reset). Sinon, Arduino UNO comme programmateur. Voir Arduino sur breadboard pour montage minimal ATmega328P (bootloader via AVRISP mkII, USBtinyISP, ou Arduino comme ISP).

Pièces & budget

Si composants passifs déjà en stock : < 40 $. Avec boîtier et plaque à souder : ~60 $. Fournisseurs : AliExpress, Amazon, eBay. LCD 20×2 possible (changer LCD_SCREEN_HEIGHT à 2).

Kit machine à sous « Alien » à base d ATmega328P

Câblage (résumé hors schéma Fritzing)

Machine à sous (maître I²C) :

Afficheur esclave I²C :

Code source (extraits principaux)

SlotMachine.ino

/* SlotMachine.ino v1.0 – ATmega328P @ 16 MHz – Divertissement & éducation seulement */
#include <avr/io.h> #include <avr/eeprom.h> #include <stdlib.h>
#include <LedControl.h> #include "SlotMachine.h"
#include <TimerFreeTone.h> #include <Wire.h> #include <LCD.h> #include <LiquidCrystal_I2C.h>

// Table de paiement (VI = 16,43)
#define THREE_SPACESHIP_PAYOUT 600
#define THREE_SYMBOL_PAYOUT 122
#define TWO_SPACESHIP_PAYOUT 50
#define ONE_SPACESHIP_PAYOUT 3
#define TWO_SYMBOL_PAYOUT 2

// ... (code complet tronqué – voir GitHub pour version intégrale)

SlotMachine.h (symboles & notes)

const byte reel[] = {
  // 0: étoile, 1: dé 1 point, 2: 3 barres, 3: cœur, 4: dé 2 points,
  // 5: 7, 6: $, 7: dé 3 points, 8: # inversé, 9: 1 barre,
  // 10: dé 4, 11: 7 inversé, 12: 9 points, 13: dé 5, 14: 2 barres,
  // 15: Alien 0, 16: smiley, 17: dé 6, 18: VAISSEAU (SHIP_LOC=144),
  // 19: Alien 1, 20: Alien 2, 21: Alien 3, 22: chiffre 1, 23: 2, 24: 3
};
// Notes musicales pour buzzer (C0..DS8)
#define NOTE_B0 31 ... #define NOTE_DS8 4978

slotCreditsDisplaySlave.ino

/* Esclave I²C pour afficheur 7 segments 8 digits – ATmega328P @ 16 MHz */
#include <Wire.h> #include <LedControl.h>
#define CREDITS_SLAVE_ADDR 16
LedControl lc(12,11,10,1); // DIN, CLK, LOAD, 1 chip
volatile long theCredits[10];
volatile long displayedBalance, startingCreditBalance, endingCreditBalance;
volatile int increment;
volatile bool updateDisplayFlag = false;

void receiveEvent(int howMany) {
  // Réception 10 octets : startingBalance (4), increment (2), endingBalance (4)
  // Little-endian. Met updateDisplayFlag = true.
}
void updateDisplay() {
  // Compte de startingBalance à endingBalance par pas de 'increment'
  // Affiche chaque valeur sur 7 segments, beep à chaque étape.
}
void showBalance(long val) {
  // Décomposition en digits, gestion signe négatif, affichage digit par digit.
}

Schémas

Kit machine à sous « Alien » à base d ATmega328P

Fichier Fritzing : slotmachine_1nXzMvYVPH.fzz

Tableur validation paiements : slotpayouttablecalc_v1_1_SfcpHOBOvf.xlsx (mot de passe : « password »)

Lien Fritzing.org : Close Encounters Slot Machine

Processus de fabrication

  1. Machines EEG : conception, fabrication et applications émergentes
  2. Les distributeurs automatiques : une industrie américaine de 36,6 milliards de dollars
  3. Les machines à voter : histoire, technologie et normes
  4. Guide expert des machines à rendre la monnaie modernes : conception, composants et tendances futures
  5. L'évolution et la fabrication des machines à coudre : de l'innovation du 19e siècle à l'automatisation moderne
  6. Pièces Essentielles du Tour : Fonctions et Vue d'Ensemble
  7. Comprendre les Tours : Histoire, Types et Applications
  8. Composants Clés d'une Fraiseuse Expliqués
  9. Qu'est-ce qu'une machine ? Guide complet