Alcune parti di questo sito web non sono ancora disponibili nella tua lingua. Stiamo lavorando per risolvere questo problema e ci scusiamo per eventuali disagi.
Tutorial ESP32 36/55 - Gioco di Indovinare il Numero | Kit di Apprendimento ESP32 IoT di SunFounder
In questo tutorial, creeremo un divertente gioco di indovinare il numero utilizzando il microcontrollore ESP32 insieme a un telecomando a infrarossi e a un display LCD. Il giocatore tenterà di indovinare un numero generato casualmente compreso tra 0 e 99, con il gioco che fornisce indizi su se l'indovinato è troppo alto o troppo basso. Attraverso questo progetto, imparerai a utilizzare il ricevitore a infrarossi, visualizzare valori su un LCD e gestire l'input dell'utente da un telecomando. Puoi fare riferimento al video per ulteriori chiarimenti (nel video a 00:00).
I componenti principali utilizzati in questo progetto includono il microcontroller ESP32, un telecomando a infrarossi, un ricevitore a infrarossi e un display LCD. L'ESP32 funge da unità di elaborazione principale ed è in grado di gestire la comunicazione wireless, rendendolo una scelta versatile per progetti IoT. Il telecomando a infrarossi consente agli utenti di inserire le proprie ipotesi senza richiedere interazione fisica con la scheda, mentre il display LCD mostra lo stato del gioco e le istruzioni.
Il ricevitore a infrarossi rileva i segnali dal telecomando e li decodifica per l'uso nel gioco. Ogni pressione di un pulsante sul telecomando corrisponde a un valore specifico che l'ESP32 può interpretare. Il display LCD fornisce un'interfaccia visiva per l'utente, mostrando l'attuale intervallo di stima e se la stima era corretta.
Dettagli della scheda tecnica
Produttore
SunFounder
Numero di parte
ESP32
Tensione logica/IO
3,3 V
Tensione di alimentazione
5 V (tramite USB)
Corrente di uscita (per canale)
12 mA (max)
Indicazioni sulla frequenza PWM
1 kHz
Soglie logiche di ingresso
0,3 * Vcc a 0,7 * Vcc
Caduta di tensione / RDS(on)/ saturazione
0,2 V
Limiti termici
Temperatura di esercizio: -40 a 85 °C
Pacchetto
Modulo WROOM-32
Note / varianti
Supporta Wi-Fi e Bluetooth
Assicurati che tutti i componenti siano valutati per 3,3 V e 5 V dove applicabile.
Utilizzare corretti resistori di pull-up per il ricevitore IR per evitare ingressi flottanti.
Considera di utilizzare un dissipatore di calore se funzionando al massimo della corrente di uscita per periodi prolungati.
Quando si utilizza il PWM, mantenere una frequenza di circa 1 kHz per prestazioni ottimali.
Fai attenzione con il cablaggio; assicurati che le connessioni siano sicure per evitare guasti intermittenti.
Istruzioni di cablaggio
ESP32_36_guessing_number_wiring
Per configurare il cablaggio per il gioco di indovinare il numero, inizia collegando il ricevitore a infrarossi. Collega il filo rosso dal pin destro del ricevitore all'alimentazione a 3,3 V sull'ESP32. Il filo nero dovrebbe andare a terra, mentre il pin sinistro del ricevitore a infrarossi si collega al pin.14sull'ESP32.
ESP32_36_guessing_number_schematic
Successivamente, collega il display LCD. Collega il pin VCC del LCD all'alimentazione da 5 V dell'ESP32 e il pin di massa a terra. I pin SDA e SCL del LCD devono essere collegati ai pin21e22rispettivamente. Assicurati che ci siano due spazi vuoti tra le connessioni SDA e SCL per evitare conflitti sui pin. Infine, assicurati di rimuovere eventuali coperture di plastica dalla batteria prima di alimentare la scheda.
Esempi di codice e guida step-by-step
I seguenti frammenti di codice illustrano parti essenziali del programma utilizzato per il gioco del numero da indovinare. Iniziamo includendo le librerie necessarie e definendo gli identificatori chiave.
In questo estratto, includiamo librerie per gestire la funzionalità del LCD e del ricevitore IR. Il pin per il ricevitore infrarosso è definito come14, e creiamo istanze degli oggetti necessari per gestire l'input e l'output.
Questo frammento mostra la funzione di setup in cui inizializziamo il LCD, avviamo la comunicazione seriale e abilitiamo il ricevitore IR. La funzioneinitNewValue()è chiamato a generare un nuovo numero casuale che il giocatore deve indovinare.
bool detectPoint() {
if (count > pointValue) {
if (count < upper) upper = count;
} else if (count < pointValue) {
if (count > lower) lower = count;
} else if (count == pointValue) {
count = 0;
return 1;
}
count = 0;
return 0;
}
Questa funzione verifica il tentativo del giocatore rispetto al numero generato casualmente, regolando di conseguenza i limiti superiori e inferiori. Se il tentativo è corretto, ripristina il conteggio e restituisce vero.
Il codice completo è caricato sotto l'articolo per il tuo riferimento.
Dimostrazione / Cosa Aspettarsi
Una volta che tutto è cablato e il codice è caricato, il gioco ti inviterà a premere un numero qualsiasi sul telecomando. Il gioco poi fornirà un feedback sulle tue ipotesi, aggiornando l'intervallo dei numeri possibili fino a quando non indovini correttamente il numero target. Se premi il pulsante POWER, il gioco si resetta e ricomincia (nel video a 02:30).
Le trappole comuni includono assicurarsi che il ricevitore a infrarossi sia correttamente orientato e che tutte le connessioni siano sicure. Se il gioco non risponde, controlla l'alimentazione e verifica che la scheda e la porta corrette siano selezionate nell'IDE di Arduino.
Timestamp video
00:00 Inizio
2:17 Introduzione al progetto di gioco
4:37 Cablaggio
6:15 Codice Arduino spiegato
12:32 Selezione della scheda ESP32 e della porta COM nell'IDE Arduino
16:16 Giocando al gioco del numero da indovinare
Immagini
ESP32_36_guessing_number_schematic
ESP32_36_guessing_number_wiring
ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-2
ESP32_36_guessing_number_schematic
ESP32_36_guessing_number_wiring
ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-2
837-ESP32 Tutorial 36/55- Arduino code for guessing number