Nota
Ciao, benvenuto nella community SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.
Perché unirsi?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara & Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni l’accesso anticipato agli annunci di nuovi prodotti e anteprime esclusive.
Sconti Speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.
Promozioni e Concorsi Festivi: Partecipa a concorsi e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
GIOCO - Escape
Questo gioco si chiama «Escape». L’obiettivo del giocatore è inclinare il sensore MPU6050 per muovere un pixel sulla matrice LED e cercare di farlo passare attraverso un’apertura nel bordo della matrice (l’uscita).
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
---|---|---|
Elite Explorer Kit |
300+ |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE COMPONENTI |
LINK ACQUISTO |
---|---|
- |
|
- |
Collegamenti
Schema Elettrico
Codice
Nota
Puoi aprire il file
11_escape_square.ino
nel percorsoelite-explorer-kit-main\fun_project\11_escape_square
direttamente.Oppure copia questo codice nell’Arduino IDE.
Nota
Per installare la libreria, usa l’Arduino Library Manager e cerca «Adafruit MPU6050» e installala.
Come funziona?
Ecco una spiegazione dettagliata del codice:
Importazione Librerie e Variabili Globali:
Le librerie importate includono la matrice LED, Wire (per la comunicazione I2C), MPU6050 (sensore di movimento) e la libreria
Adafruit_Sensor
. Inizializzazione degli oggetti MPU6050 e matrice LED. Definizione di variabili globali come pixelX e pixelY (posizione del pixel), gapStart e side (posizione iniziale del gap e lato), level (livello di difficoltà del gioco) e altre.setup()
:Inizializza la matrice LED e disegna la matrice con il gap. Inizializza la comunicazione seriale e controlla se il sensore MPU6050 si avvia correttamente, impostando il suo intervallo di accelerazione a 2g.
loop()
:Aggiorna periodicamente la posizione del pixel in base alle letture del sensore MPU6050. Sposta periodicamente la posizione del gap. Carica il nuovo layout del pixel e lo visualizza sulla matrice LED. Controlla se il pixel è passato attraverso il gap. Se lo è, ritarda di 1,5 secondi per visualizzare il successo, aumenta la difficoltà del gioco e ripristina la posizione del pixel.
Altre Funzioni:
drawSquareWithGap()
: Disegna un bordo 8x8 e crea un gap al suo interno.createGap()
: Crea un gap di lunghezza 2 sul lato specificato.moveGap()
: Sposta la posizione del gap in base al lato corrente e a gapStart, cambiando lato quando necessario.movePixelBasedOnMPU()
: Legge i dati di accelerazione dal sensore MPU6050. Sposta la posizione del pixel in base ai dati di accelerazione (reimpostando se il pixel esce dai limiti o entra nelle pareti).resetPixel()
: Reimposta la posizione del pixel al centro della matrice.checkPixelPosition()
: Controlla se il pixel si trova sul gap. Se lo è, aumenta il livello di difficoltà del gioco e imposta il flag di passaggio su true.