Retour

Pico Serial Echo — Test UART sur RP2040 avec Velxio

Introduction

Bienvenue dans un autre tutoriel Velxio ! Aujourd’hui, nous construisons un test Serial Echo pour le Raspberry Pi Pico (RP2040). Ce projet est parfait pour les débutants qui souhaitent comprendre comment fonctionne la communication série sur les microcontrôleurs. Vous apprendrez à envoyer et recevoir des données via UART, à ajouter un indicateur visuel avec une LED, et à implémenter un simple timer de heartbeat.

Schéma du circuit pico-serial-echo sur le canevas du simulateur Velxio

Présentation du Circuit

Le circuit est d’une simplicité agréable. Nous n’avons besoin que de deux composants :

Câblage

  1. Connectez l’anode (A) de la LED jaune à la broche TX du Pico. La broche TX est utilisée pour la transmission série, donc chaque fois que le Pico envoie des données, la LED clignotera.
  2. Connectez la cathode (C) de la LED à GND (n’importe quelle broche de masse du Pico).

C’est tout ! La LED est câblée en série avec la ligne TX, donc elle s’allume lorsque le Pico transmet. Cela vous donne une confirmation visuelle que les données série circulent.

Barre d'outils de l'éditeur Velxio avec les contrôles de compilation et d'exécution

Explication du Code

Plongeons dans le code. Ouvrez l’éditeur Velxio et vous verrez le sketch suivant :

// 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");
  }
}

Comment ça fonctionne

La variable lastHeartbeat garde la trace du dernier moment où le heartbeat a été affiché, en utilisant millis() pour un timing non bloquant.

Concepts Clés

Communication Série (UART)

L’UART (Universal Asynchronous Receiver/Transmitter) est un protocole série simple. La broche TX du Pico envoie des données, et la broche RX en reçoit. Dans cet exemple, nous n’utilisons que TX pour la sortie, mais la fonction d’écho utilise également RX (via le Moniteur Série).

Timing Non Bloquant avec millis()

Au lieu d’utiliser delay(), qui met en pause tout le programme, nous utilisons millis() pour vérifier le temps écoulé. Cela permet à la boucle d’écho de s’exécuter en continu tout en affichant le heartbeat à intervalles réguliers.

LED comme Indicateur Visuel

En connectant la LED à la broche TX, nous obtenons un visuel en temps réel de l’activité série. Chaque fois que le Pico envoie un caractère, la LED clignote brièvement.

Pièges Courants et Conseils de Débogage

Barre d'outils du canevas Velxio au-dessus de la fenêtre de simulation

Extensions Suggérées

Une fois que l’écho de base fonctionne, essayez ces améliorations :

  1. Ajouter une LED RX : Connectez une autre LED à la broche RX pour indiquer quand des données sont reçues.
  2. Analyse de commandes : Au lieu de simplement renvoyer l’écho, interprétez des commandes comme “LED ON” ou “LED OFF” pour contrôler une LED externe.
  3. Plusieurs débits en bauds : Permettez à l’utilisateur de changer le débit en bauds via une commande série.
  4. Journalisation dans la console : Stockez les données reçues dans un tampon et affichez-les sur demande.

Sélecteur de composants Velxio parcourant les pièces par catégorie

Appel à l’Action

Prêt à essayer par vous-même ? Ouvrez l’exemple en direct sur Velxio et commencez à expérimenter : Pico Serial Echo sur Velxio. Vous pouvez modifier le code, changer la couleur de la LED ou ajouter de nouveaux composants. Bon bricolage !


Partager sur :
David Montero

Écrit par

David Montero

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

GitHub velxio.dev

Articles liés


Article précédent
Contrôle de LED par liaison série sur Pico : créez votre première interface de commande
Article suivant
Faire clignoter une LED sur Raspberry Pi Pico avec le simulateur Velxio