Introduzione
Benvenuto in un altro tutorial di Velxio! Oggi costruiamo un test di Serial Echo per Raspberry Pi Pico (RP2040). Questo progetto è perfetto per i principianti che vogliono capire come funziona la comunicazione seriale sui microcontrollori. Imparerai come inviare e ricevere dati tramite UART, aggiungere un indicatore visivo con un LED e implementare un semplice timer per il heartbeat.

Panoramica del circuito
Il circuito è piacevolmente semplice. Servono solo due componenti:
- Raspberry Pi Pico (il cervello)
- LED giallo (indicatore visivo per l’attività seriale)
Collegamenti
- Collega l’anodo (A) del LED giallo al pin TX del Pico. Il pin TX viene utilizzato per la trasmissione seriale, quindi ogni volta che il Pico invia dati, il LED lampeggerà.
- Collega il catodo (C) del LED a GND (qualsiasi pin di massa sul Pico).
Questo è tutto! Il LED è collegato in serie alla linea TX, quindi si accende quando il Pico trasmette. Questo ti dà una conferma visiva che i dati seriali stanno fluendo.

Analisi del codice
Analizziamo il codice. Apri l’editor Velxio e vedrai il seguente sketch:
// Raspberry Pi Pico — Serial Echo Test
// Echoes received characters and prints a heartbeat every 2 seconds
void setup() {
Serial.begin(115200);
delay(500);
Serial.println("=== Pico Serial Echo ===");
Serial.println("Type something and press Enter.");
Serial.println();
}
unsigned long lastHeartbeat = 0;
void loop() {
// Echo any incoming characters
while (Serial.available()) {
char c = Serial.read();
Serial.print("Echo: ");
Serial.println(c);
}
// Heartbeat every 2 seconds
if (millis() - lastHeartbeat >= 2000) {
lastHeartbeat = millis();
Serial.print("[Heartbeat] Uptime: ");
Serial.print(millis() / 1000);
Serial.println("s");
}
}
Come funziona
setup(): Inizializza la comunicazione seriale a 115200 baud. Dopo un breve ritardo, stampa un messaggio di benvenuto.loop(): Due compiti principali:- Eco: Controlla se ci sono dati disponibili sulla porta seriale. Se sì, legge un carattere e lo stampa con il prefisso “Eco:”.
- Heartbeat: Ogni 2000 millisecondi (2 secondi), stampa un messaggio di heartbeat che mostra il tempo di attività del sistema in secondi.
La variabile lastHeartbeat tiene traccia dell’ultima volta in cui è stato stampato il heartbeat, utilizzando millis() per un timing non bloccante.
Concetti chiave
Comunicazione seriale (UART)
UART (Universal Asynchronous Receiver/Transmitter) è un semplice protocollo seriale. Il pin TX del Pico invia dati, mentre il pin RX riceve dati. In questo esempio utilizziamo solo TX per l’output, ma la funzione eco utilizza anche RX (tramite il Monitor Seriale).
Timing non bloccante con millis()
Invece di usare delay(), che mette in pausa l’intero programma, usiamo millis() per controllare il tempo trascorso. Questo permette al ciclo di eco di funzionare ininterrottamente mentre stampa comunque il heartbeat a intervalli regolari.
LED come indicatore visivo
Collegando il LED al pin TX, otteniamo un feedback visivo in tempo reale dell’attività seriale. Ogni volta che il Pico invia un carattere, il LED lampeggia brevemente.
Errori comuni e suggerimenti per il debug
- Disallineamento del baud rate: Assicurati che il Monitor Seriale sia impostato a 115200 baud. Se vedi caratteri illeggibili, controlla il baud rate.
- LED che non lampeggia: Verifica la polarità del LED (anodo a TX, catodo a GND). Controlla anche che il Pico stia effettivamente trasmettendo (ad esempio, digita qualcosa nel Monitor Seriale).
- Nessun eco: Assicurati di inviare dati al pin RX del Pico. In Velxio, il Monitor Seriale gestisce questo automaticamente.
- Heartbeat non stampato: Controlla che
lastHeartbeatsia dichiarato comeunsigned longe che la logica di confronto sia corretta.

Estensioni suggerite
Una volta che l’eco di base funziona, prova questi miglioramenti:
- Aggiungi un LED RX: Collega un altro LED al pin RX per mostrare quando vengono ricevuti dati.
- Analisi dei comandi: Invece di limitarti all’eco, interpreta comandi come “LED ON” o “LED OFF” per controllare un LED esterno.
- Baud rate multipli: Permetti all’utente di cambiare il baud rate tramite un comando seriale.
- Registrazione sulla console: Memorizza i dati ricevuti in un buffer e stampali su richiesta.

Invito all’azione
Pronto a provarlo tu stesso? Apri l’esempio live su Velxio e inizia a sperimentare: Pico Serial Echo su Velxio. Puoi modificare il codice, cambiare il colore del LED o aggiungere nuovi componenti. Buon hacking!