Назад

Pico Serial Echo: тестирование UART на RP2040 с Velxio

Введение

Добро пожаловать в очередной урок Velxio! Сегодня мы создаем тест Serial Echo для Raspberry Pi Pico (RP2040). Этот проект идеально подходит для начинающих, желающих понять, как работает последовательная связь на микроконтроллерах. Вы узнаете, как отправлять и получать данные через UART, добавить визуальный индикатор с помощью светодиода и реализовать простой таймер heartbeat.

Схема подключения pico-serial-echo на холсте симулятора Velxio

Обзор схемы

Схема удивительно проста. Нам понадобятся всего два компонента:

Подключение

  1. Подключите анод (A) желтого светодиода к выводу TX Pico. Вывод TX используется для передачи данных, поэтому каждый раз, когда Pico отправляет данные, светодиод будет мигать.
  2. Подключите катод (C) светодиода к GND (любому выводу земли на Pico).

Вот и всё! Светодиод включен последовательно с линией TX, поэтому он загорается при передаче данных Pico. Это дает визуальное подтверждение того, что данные передаются.

Панель инструментов редактора Velxio с элементами управления компиляцией и запуском

Разбор кода

Давайте разберем код. Откройте редактор Velxio, и вы увидите следующий скетч:

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

Как это работает

Переменная lastHeartbeat отслеживает время последнего вывода heartbeat, используя millis() для неблокирующей синхронизации.

Ключевые концепции

Последовательная связь (UART)

UART (Универсальный асинхронный приемопередатчик) — это простой последовательный протокол. Вывод TX Pico отправляет данные, а вывод RX принимает данные. В этом примере мы используем только TX для вывода, но функция эха также использует RX (через Serial Monitor).

Неблокирующая синхронизация с millis()

Вместо использования delay(), который приостанавливает всю программу, мы используем millis() для проверки прошедшего времени. Это позволяет циклу эха работать непрерывно, одновременно выводя сообщение heartbeat через регулярные интервалы.

Светодиод как визуальный индикатор

Подключив светодиод к выводу TX, мы получаем визуальное отображение активности последовательного порта в реальном времени. Каждый раз, когда Pico отправляет символ, светодиод кратковременно мигает.

Частые ошибки и советы по отладке

Панель инструментов холста Velxio над окном симуляции

Предлагаемые расширения

После того как базовое эхо заработает, попробуйте следующие улучшения:

  1. Добавьте светодиод на RX: Подключите еще один светодиод к выводу RX, чтобы показывать, когда данные принимаются.
  2. Разбор команд: Вместо простого эха интерпретируйте команды, такие как “LED ON” или “LED OFF”, для управления внешним светодиодом.
  3. Несколько скоростей передачи: Позвольте пользователю изменять скорость передачи через последовательную команду.
  4. Логирование в консоль: Сохраняйте полученные данные в буфер и выводите их по запросу.

Модальное окно выбора компонентов Velxio с просмотром деталей по категориям

Призыв к действию

Готовы попробовать сами? Откройте живой пример на Velxio и начинайте экспериментировать: Pico Serial Echo на Velxio. Вы можете изменить код, поменять цвет светодиода или добавить новые компоненты. Удачного хакерства!


Поделиться:
David Montero

Автор

David Montero

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

GitHub velxio.dev

Похожие статьи


Предыдущая статья
Управление светодиодом через последовательный порт на Pico: создаём первую командную консоль
Следующая статья
Мигание светодиодом на Raspberry Pi Pico с симулятором Velxio