Come abbiamo costruito con Arduino una mini-console con giochi da casinò

Abbiamo realizzato una mini-console offline con tre giochi da casinò classici, programmata su ESP32-S3, completa di schermo touch, audio e case stampato in 3D.
Federico Cremonesi, Author at imiglioricasinoonline.net Scritto da: Federico Cremonesi

Pubblicato il: 5.05.2025

casino offline arduino

Siamo abituati a pensare ai giochi da casinò come esperienze digitali: app, browser, connessioni sempre attive e grafiche scintillanti. Ma cosa succede se si prova a rovesciare questa prospettiva? Se invece di spingere ancora più avanti il digitale, si fa un passo indietro, verso qualcosa di più fisico, compatto, personale?

Con questo spirito è nato il nostro progetto: realizzare una mini-console portatile con giochi da casinò, completamente offline, con display a colori e interfaccia touch. Un piccolo dispositivo tascabile che si accende e funziona senza bisogno di connessioni, app o log-in.

Ci occupiamo ogni giorno di casinò online, ma questa volta abbiamo voluto sperimentare un approccio diverso: trasformare il gioco in qualcosa di costruito, tangibile, replicabile. Un esercizio di stile e tecnologia, un progetto da maker pensato per raccontare, anche visivamente, un’altra declinazione possibile dell’intrattenimento.

Per dare forma a questa idea, abbiamo scelto come base un microcontrollore ESP32-S3, programmabile tramite Arduino IDE, potente, compatto e ideale per gestire interfacce touch a colori. Arduino (e il suo ecosistema) si è rivelato la scelta perfetta per questo tipo di progetto: open source, flessibile, supportato da una vasta community e ampiamente documentato, permette di prototipare rapidamente e con precisione.

Per la realizzazione tecnica ci siamo affidati al talento di Milo Perovic, ingegnere elettronico con lunga esperienza nel mondo dell’embedded hardware. Milo ha curato tutte le fasi del progetto: dalla progettazione del PCB alla selezione e programmazione dei componenti, fino al test completo e alla documentazione passo-passo. Il risultato è un dispositivo funzionante, solido, ben progettato e pronto per essere replicato da chiunque voglia cimentarsi in un esperimento simile.

Componenti e materiali

Per chi volesse replicare questo progetto, abbiamo raccolto l’elenco completo dell’hardware necessario. Si tratta di una selezione di componenti facilmente reperibili online, pensati per garantire compatibilità, affidabilità e prestazioni ottimali.

Nella tabella qui sotto troverai le specifiche dettagliate, i link per l’acquisto e, dove possibile, alcune opzioni aggiuntive consigliate (come il case stampato in 3D o il PCB personalizzato).

Requisiti Hardware

La seguente tabella elenca tutti i componenti necessari per realizzare questo progetto. Assicurati che tutti i moduli e i pezzi corrispondano alle specifiche indicate, per garantirne funzionamento e compatibilità

# Componente Specifiche / Note Link
1 ESP32-S3-WROOM-1 (N16R8) 16MB Flash, 8MB OPI PSRAM — assicurati che la tua board rispetti queste specifiche Amazon
2 DFPlayer Mini (HW-247A V0.5.1) Modulo MP3, supporta microSD FAT32 fino a 32GB DFRobot
3 Speaker (20mm, 4Ω 2W) Piccolo altoparlante per l’uscita audio AliExpress
4 Scheda MicroSD (≤32GB) Classe 10 consigliata; da formattare in FAT32 Amazon
5 LCD Touch Capacitivo WaveShare 2.8” Risoluzione 240×320, touch capacitivo, compatibile con ESP32-S3 WaveShare

Opzionali (Consigliati)

# Elemento Descrizione Fonte
1 Case stampato in 3D File STL disponibili — protegge e organizza il progetto 📁 Case_3D
2 PCB personalizzato Usa i file Gerber forniti per un layout compatto e solido 📁 CasinoPCB

Note

  • Controlla sempre la compatibilità dei pin e le tensioni prima di alimentare il dispositivo.
  • Per risultati ottimali, usa componenti di qualità da fornitori affidabili.
  • Se hai dubbi su un qualsiasi componente, consulta la sezione dettagliata sul cablaggio e l’installazione.

Componenti per l’assemblaggio del case 3D

Se decidi di utilizzare il case stampato in 3D, avrai bisogno dei seguenti componenti per un corretto montaggio e fissaggio:

# Componente Specifiche Quantità
1 Viti per fissaggio del display (DIN 7985) M2.5 × 5mm, testa cilindrica 4 pz
2 Viti di montaggio (DIN 965) M2 × 6mm, testa svasata, rivestimento nero 7 pz
3 Inserti filettati (ottone) Filettatura M2, lunghezza 5mm, diametro esterno 3.2mm 7 pz

Note sull’assemblaggio

  • Inserisci gli inserti filettati in ottone nel case 3D utilizzando un saldatore, per ottenere un sistema di fissaggio sicuro e riutilizzabile.
  • Fai attenzione a non stringere troppo le viti nel materiale plastico per evitare crepe o danni al case.

Componenti aggiuntivi per l’assemblaggio del PCB

Se scegli di utilizzare il PCB personalizzato, ti servirà anche il seguente componente per completare l’integrazione hardware:

# Componente Specifiche Quantità
1 Header maschio 2×8, passo 2.54mm (dritto) 1 pz

Note

L’header maschio 2×8 serve a collegare il display al PCB. Assicurati che sia saldato correttamente e in linea per garantire un contatto stabile e affidabile.

Guida alla costruzione passo passo

1. Preparazione

Prima di iniziare l’assemblaggio vero e proprio, è consigliabile leggere tutta la guida e avere una visione completa delle fasi. Assicurati anche di avere a disposizione uno spazio di lavoro adatto e ben illuminato: una superficie piana, un saldatore affidabile e gli strumenti base per l’elettronica saranno più che sufficienti. Cartelle di file con istruzioni assemblaggio mini-console di giochi da casinò

2. Scaricare tutti i file del progetto

Vai alla pagina GitHub: https://github.com/milo123milo/mini-casino-games e scarica l’intero archivio, che include:

  • File di schema e PCB
  • Firmware
  • Modelli 3D del case
  • Suoni

Assicurati di scaricare tutto il repository (non solo singoli file) per non perdere nulla.

3. Realizzare il PCB

Hai due opzioni disponibili:

A) PCB fatto in casa (per appassionati del fai-da-te)

  • Stampa il layout del PCB su carta lucida
  • Trasferiscilo su una piastra ramata con un ferro da stiro o laminatrice
  • Incidi con cloruro ferrico o persolfato di sodio
  • Pratica i fori e pulisci accuratamente

B) Ordinare da un produttore (consigliato)

Puoi ordinare PCB a basso costo da siti come:

Lato rame del livello inferiore PCB Lato rame – Livello inferiore
Lato frontale del livello superiore PCB Lato frontale – Livello superiore

4. Saldare il PCB e collegare tutto

Una volta ottenuto il PCB, salda con cura tutti i componenti. Inizia da quelli più piccoli, usa il flussante e controlla bene le polarità.

Fai particolare attenzione all’orientamento del DFPlayer Mini (la microSD deve essere rivolta verso l’header) e dell’ESP32 (la porta USB-C deve trovarsi in fondo al PCB). Dopo aver saldato, collega i cavi necessari per il display LCD.

Componenti PCB
Schema collegamenti componenti PCB

5. Preparare la scheda SD

  • Prendi una scheda microSD e formattala in FAT32 (puoi usare il tuo PC o un tool come SD Card Formatter)
  • Copia nella scheda SD le cartelle contenute nella directory SD_Card_Sounds del repository GitHub senza modificarle
  • Rimuovi la scheda in sicurezza e inseriscila nello slot previsto sulla scheda

Attenzione: qualsiasi modifica ai file audio può compromettere il funzionamento del modulo sonoro.

6. Stampare il case 3D

È stato utilizzato PLA nero standard stampato con una BambuLab A1. I file STL si trovano nella cartella /Case_3D del repository GitHub.

Case in PLA nero stampato in 3D, lato esterno
Case in PLA nero stampato in 3D, lato interno
Assemblaggio case in PLA, parte prima
Assemblaggio case in PLA, parte seconda

7. Posizionare gli inserti filettati nel case

Gli inserti filettati in ottone rendono il montaggio più semplice e duraturo. Ecco come inserirli correttamente:

  • Scalda un saldatore a circa 200–220°C
  • Posiziona l’inserto sopra il foro
  • Spingilo lentamente con la punta del saldatore finché non affonda in posizione
  • Rimuovi il saldatore e lascia raffreddare
Posizionamento degli inserti nel case PLA Posizionare gli inserti nel case (3 pezzi)
Posizionamento degli inserti negli angoli del case PLA Posizionare gli inserti negli angoli del case

8. Montare il PCB all’interno del case

Inserisci il PCB nel suo alloggiamento nel case. Allinea i fori e fissalo con viti M2. Posiziona l’altoparlante nel foro circolare previsto: puoi usare della colla a caldo per tenerlo fermo.

Viti M2 per il fissaggio case
Montaggio PCB all'interno del case

9. Installare il display

Allinea con attenzione il display nella sua sede e fissalo con viti M2.5. Non stringere troppo per evitare fessurazioni.

Inserimento schermo nello slot del case 1. Mettere lo schermo nel suo slot
Inserire le viti per fissaggio componenti 2. Inserire le viti

10. Chiudere il case

Posiziona la parte posteriore del case sopra quella anteriore e fissala con le viti. Controlla che nulla sia fuori allineamento o bloccato.

Particolare del fissaggio di viti e collegamenti all'interno del case
case PLA completo e chiuso

11. Collegare l’USB-C

Il montaggio è completato. Collega ora il cavo USB-C al dispositivo: nella prossima sezione troverai le istruzioni su come caricare correttamente il firmware, sia compilando il codice che utilizzando una versione precompilata.

Guida alla compilazione e al caricamento tramite Arduino IDE

Per compilare correttamente il progetto utilizzando l’Arduino IDE, segui attentamente questi passaggi:

Software richiesto e versioni

  • Arduino IDE: versione 2.1.1
  • Pacchetto schede ESP32: versione 2.0.11

Aprire il file principale

  1. Avvia l’Arduino IDE
  2. Clicca su File > Apri… e naviga nella cartella del progetto
  3. All’interno della cartella ui, apri il file ui.ino

Questo è il punto di ingresso principale del progetto: assicurati di modificare e caricare questo file.

Configurazione delle librerie

  • Apri la cartella delle librerie di Arduino sul tuo sistema

    Percorsi tipici:

    • Windows: Documenti/Arduino/libraries
    • macOS/Linux: ~/Arduino/libraries
  • Copia tutti i contenuti della cartella libraries fornita nel progetto all’interno della tua cartella libraries di Arduino
  • Assicurati che le librerie copiate corrispondano esattamente a quelle richieste dal progetto

Configurazione della scheda

Nel menu Strumenti dell’Arduino IDE, imposta le seguenti opzioni:

  1. Scheda: ESP32S3 Dev Module
  2. Dimensione flash: 16MB
  3. Schema partizioni: Huge APP (3MB No OTA/1MB SPIFFS)
  4. PSRAM: OPI PSRAM

Configurazione opzioni Arduino IDE

Caricamento del codice precompilato (opzionale)

1. Scaricare il tool

Scaricalo da: https://www.espressif.com/en/support/download/other-tools

Estrai l’archivio e avvia il file flash_download_tool_3.X.X.exe

2. Avviare lo strumento e selezionare la modalità

  • Seleziona: ESP32OK
  • Nella schermata successiva, scegli “Developer Mode”

3. Impostare indirizzi e file da flashare

Vedrai una tabella con i percorsi dei file e gli indirizzi di memoria flash:

Selezione Percorso del file Indirizzo di memoria
☑️ ui.ino.bootloader.bin 0x0000
☑️ ui.ino.partitions.bin 0x8000
☑️ ui.ino.bin 0x10000

Assicurati di spuntare tutte le caselle a sinistra e selezionare manualmente i file corretti per ciascuna voce.

4. Impostare gli altri parametri (in basso)

  • SPI SPEED: 40MHz (va bene il valore predefinito)
  • SPI MODE: OPI
  • FLASH SIZE: 16MB
  • COM Port: seleziona la porta seriale dell’ESP32
  • Baud Rate: 115200 oppure 460800 (più veloce)

Alternativa: utilizzo da riga di comando

Comando Python con esptool.py

  • esptool.py –chip esp32s3 –port COMx –baud 460800
  • write_flash –flash_mode opi –flash_freq 40m –flash_size 16MB
  • 0x0000 ui.ino.bootloader.bin
  • 0x8000 ui.ino.partitions.bin
  • 0x10000 ui.ino.bin

Da sostituire:

  • COMx → con la tua porta seriale reale (es. COM5 su Windows o /dev/ttyUSB0 su Linux/macOS)
  • ui.ino.bootloader.bin, ui.ino.partitions.bin, ui.ino.bin → con i percorsi reali dei tuoi file esportati

Spiegazione dei parametri:

  • –chip esp32s3 → perché stai usando un ESP32-S3
  • –flash_mode opi → corrisponde alla modalità usata in fase di compilazione
  • –flash_freq 40m → frequenza impostata anche nella GUI (40MHz)
  • –flash_size 16MB → dimensione del modulo ESP
  • –baud 460800 → più veloce ma stabile; usa 115200 se dà problemi
  • write_flash → comando per caricare i file nella memoria flash
  • 0x0000, 0x8000, 0x10000 → indirizzi standard per bootloader, partizioni e app

Conclusione

Con questo progetto abbiamo voluto sperimentare un modo diverso di pensare al gioco da casinò: non più solo come esperienza digitale, ma come oggetto fisico, costruito con cura e precisione, che funziona in totale autonomia e restituisce quel senso di controllo e immediatezza tipico del fai-da-te elettronico.

Se sei arrivato fin qui, hai ora tra le mani una mini-console completa, compatta, e soprattutto funzionante. Per completezza abbiamo preparato alcune guide per accompagnarti nell’utilizzo e nella comprensione del sistema, insieme a una breve dimostrazione video in cui puoi vedere il dispositivo in azione con i tre giochi integrati.

Appassionato di giochi di lungo corso, sono il fondatore e principale autore di questo sito e lieto di poter condividere con voi tutti i segreti del gioco online.