Indietro

Pico Serial Echo: test UART su RP2040 con Velxio

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.

Schema elettrico di pico-serial-echo sulla tela del simulatore Velxio

Panoramica del circuito

Il circuito è piacevolmente semplice. Servono solo due componenti:

Collegamenti

  1. 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à.
  2. 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.

Barra degli strumenti dell'editor Velxio con i controlli di compilazione ed esecuzione

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

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

Barra degli strumenti della tela Velxio sopra il viewport di simulazione

Estensioni suggerite

Una volta che l’eco di base funziona, prova questi miglioramenti:

  1. Aggiungi un LED RX: Collega un altro LED al pin RX per mostrare quando vengono ricevuti dati.
  2. Analisi dei comandi: Invece di limitarti all’eco, interpreta comandi come “LED ON” o “LED OFF” per controllare un LED esterno.
  3. Baud rate multipli: Permetti all’utente di cambiare il baud rate tramite un comando seriale.
  4. Registrazione sulla console: Memorizza i dati ricevuti in un buffer e stampali su richiesta.

Modale di selezione componenti Velxio che sfoglia parti per categoria

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!


Condividi su:
David Montero

Scritto da

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Articoli correlati


Articolo precedente
Controllo LED Seriale su Pico: Crea la Tua Prima Interfaccia a Comandi
Articolo successivo
Lampeggiare un LED su Raspberry Pi Pico con il Simulatore Velxio