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.
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.
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:


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.


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.




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


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.


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


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.


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
- Avvia l’Arduino IDE
- Clicca su File > Apri… e naviga nella cartella del progetto
- 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:
- Scheda: ESP32S3 Dev Module
- Dimensione flash: 16MB
- Schema partizioni: Huge APP (3MB No OTA/1MB SPIFFS)
- PSRAM: OPI PSRAM
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: ESP32 → OK
- 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.
- Come si gioca
- Documentazione tecnica
- Documentazione gameplay