Un sistema semplice e avanzato per comunicare e sincronizzare vari micro:bit via Radio.
Scambio di messaggi, identificazione utenti e un grafico in tempo reale dei dispositivi online (fino a 20 utenti!).
Il sistema funziona in modalità "ad-hoc": tutti i micro:bit comunicano direttamente uno con l'altro. Non c'è un server o ruter centrale; tutti possono trasmettere e ricevere messaggi direttamente sullo stesso canale radio.
graph LR
Mittente[Il tuo micro:bit] -->|Invia Ping| Rete((Canale Pubblico))
Rete --> Riceventi[Altri micro:bit]
Riceventi -->|Risposta Automatica| Mittente
Tip
Cosa significa? Quando chiedi chi c'è in giro, tutti gli altri dispositivi vicini ti rispondono automaticamente. Così il tuo micro:bit impara esattamente quanti amici sono collegati in quel momento!
Quando il micro:bit riceve un segnale, analizza rapidamente di cosa si tratta e agisce di conseguenza offrendo un feedback visivo e uditivo:
flowchart TD
A([Nuovo Messaggio Ricevuto]) --> B{Di che tipo è?}
B -- Nome Utente --> C{Lo conosco?}
B -- Testo Lungo --> D[Mette In Pausa Le Animazioni]
B -- Comando Scan --> E[Rispondo Presente!]
C -- Si (Utente VIP) --> F[Stemma Esclusivo e Musica VIP]
C -- No (Sconosciuto) --> G[Mostro un Diamante e Suono Standard]
D --> H[Mostro Animazione di Arrivo Messaggio]
H --> I[Faccio scorrere il testo sullo schermo]
La scheda utilizza un rigoroso sistema di "stati" per capire cosa sta facendo in ogni momento. Questo evita crash o sovrapposizioni visive quando si premono troppi tasti insieme:
stateDiagram-v2
[*] --> InAttesa
InAttesa --> SalutoVIP : Premi A
SalutoVIP --> InAttesa : Finito
InAttesa --> ScansioneRete : Premi A+B
ScansioneRete --> InAttesa : Utenti Trovati
InAttesa --> DisegnoGrafico : Premi B
DisegnoGrafico --> InAttesa : Finito
InAttesa --> RicezioneTesto : Arriva un Messaggio
RicezioneTesto --> InAttesa : Finito
Ecco uno schema semplice diviso per categorie che riassume tutto ciò di cui si occupa il programma:
flowchart LR
Root((Radio V3)) --> Rete[Comunicazione]
Root --> Schermo[Effetti Visivi]
Root --> Suoni[Audio]
Rete --> R1(Gestione Interferenze)
Rete --> R2(Ricerca Dispositivi)
Schermo --> S1(Grafico a Barre Turtle)
Schermo --> S2(Transizioni Animazioni)
Suoni --> A1(Avvisi di Sistema)
Suoni --> A2(Motivi Musicali VIP)
Dettaglio delle Funzioni Più Belle
- Grafico HUD Potenziato: Grazie a precisi calcoli matematici, la sezione "Grafico a Barre" accende dinamicamente una barra di luci alla volta. Ora supporta fino a 20 utenti contemporanei visualizzati elegantemente sui LED.
- Profili Personalizzati (VIP): Se la tua scheda ha un nome speciale riconosciuto (come geget, zotap, o gagez), il sistema attiverà una firma visiva e sonora unica quando saluti gli altri!
- Ricezione Testo Protetta: Quando un utente ti invia una lunga frase di testo, il micro:bit fa partire un rapido suono di avviso e una piccola animazione per catturare la tua attenzione prima di far scorrere la scritta.
Cosa succede quando premi i bottoni fisici sulla scocca del micro:bit. Non ci sono impostazioni complicate: bastano tre azioni.
| Pulsante | Azione | Cosa succede sullo schermo |
|---|---|---|
| A | Invia Saluto | Dici "Ciao" alla rete. Trasmetti il tuo ID e fai accendere lo schermo degli altri (o mostri il tuo stemma VIP). |
| A + B | Scan della Rete | Avvia un'animazione di radar a tutto schermo. Manda un ping e aspetta le risposte per contare chi c'è online. |
| B | Aggiorna l'HUD | Disegna in diretta il grafico a barre in base all'ultimo numero di dispositivi trovati (fino a 20). |
Per far funzionare il codice in modo così fluido, ci appoggiamo ad alcuni componenti speciali messi a disposizione da MakeCode:
radio: Che abilita l'antenna principale.radio-broadcast: Ottima per inviare pacchetti a tutte le schede nelle vicinanze in contemporanea.microturtle: Una libreria speciale che permette di guidare una "penna invisibile" sullo schermo dei LED per disegnare il nostro grafico a barre passo dopo passo.
Note
Tutti possono partecipare! Come sempre, chiunque può programmare la propria scheda e far parte subito della rete e del conteggio. Non servono password.
Tuttavia, se vuoi sbloccare le funzioni esclusive (un'icona "Signature" personalizzata e un jingle d'avviso unico quando ti connetti), puoi farti riconoscere dal codice. Apri una discussione o una Issue su GitHub indicando il nome del tuo micro:bit e ti aggiungeremo alla "Hall of Fame" nel prossimo aggiornamento!
Se vuoi importare il progetto o interagire con il simulatore:
- Sito Web del Progetto - Pagina ufficiale ricca di animazioni ospitata su GitHub.
- Importa in MakeCode - Installa in pochi istanti tutto il programma blocchi/TypeScript sul tuo editor di fiducia.
Note
Progetto compilato, scritto e pensato da pgiudici13. Creato per unire sviluppo, hardware e puro divertimento!