Главная / Без рубрики / Платы разработки (Dev Boards): Arduino, STM32 Nucleo, Raspberry Pi Pico

Платы разработки (Dev Boards): Arduino, STM32 Nucleo, Raspberry Pi Pico

1. Введение: зачем нужны платы разработки

Платы разработки (dev boards) — готовые аппаратные платформы для быстрого прототипирования, обучения и создания встраиваемых систем. Они позволяют:

  • сэкономить время — не проектировать PCB с нуля;
  • снизить порог входа — простая среда разработки, обилие примеров;
  • тестировать идеи — подключать датчики, актуаторы, интерфейсы;
  • масштабировать — от прототипа к серийному изделию.

Ключевые компоненты dev board:

  • микроконтроллер/процессор;
  • разъёмы для периферии (GPIO, I²C, SPI, UART);
  • схема питания (USB, регулятор напряжения);
  • программатор/отладчик (часто встроенный);
  • светодиоды, кнопки для отладки.

2. Arduino: стандарт для начинающих и хобби

2.1. Общая характеристика

  • Архитектура: AVR (ATmega328P, ATmega2560 и др.), иногда ARM (Due, MKR).
  • Напряжение логики: 5 В (классические), 3,3 В (некоторые новые).
  • Среда разработки: Arduino IDE (на базе Wiring), поддержка PlatformIO, VS Code.
  • Язык: упрощённый C++ с библиотеками высокого уровня.

2.2. Популярные модели

  • Arduino Uno (ATmega328P):
    • 16 МГц, 32 КБ Flash, 2 КБ RAM;
    • 14 цифровых пинов (6 с ШИМ), 6 аналоговых входов;
    • USB‑UART на чипе ATmega16U2.
  • Arduino Mega 2560:
    • 256 КБ Flash, 8 КБ RAM;
    • 54 цифровых пина, 16 аналоговых входов.
  • Arduino Nano (компактный аналог Uno).

2.3. Преимущества

  • Простота старта: «подключил и программируешь».
  • Огромное сообщество: тысячи библиотек, туториалов, форумов.
  • Совместимость с шилдами (модулями расширения).
  • Низкая цена (от $5–10).

2.4. Ограничения

  • слабая производительность (8‑битный AVR);
  • малый объём памяти;
  • нет встроенной отладки (только Serial‑мониторинг);
  • ограниченная поддержка RTOS.

2.5. Пример кода (мигание светодиодом)

void setup() {
    pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
}

3. STM32 Nucleo: мощь ARM Cortex‑M для профессионалов

3.1. Общая характеристика

  • Архитектура: ARM Cortex‑M (M0, M3, M4, M7) от STMicroelectronics.
  • Напряжение логики: 3,3 В.
  • Среда разработки: STM32CubeIDE, Arduino IDE (через ядро STM32), PlatformIO.
  • Отладка: встроенный отладчик ST‑LINK/V2‑1.

3.2. Линейка Nucleo

  • Nucleo‑F030R8 (Cortex‑M0):
    • 48 МГц, 64 КБ Flash, 8 КБ RAM.
  • Nucleo‑F401RE (Cortex‑M4):
    • 84 МГц, 512 КБ Flash, 128 КБ RAM, FPU.
  • Nucleo‑H743ZI2 (Cortex‑M7):
    • 480 МГц, 2 МБ Flash, 1 МБ RAM, двойной банк памяти.

3.3. Особенности

  • Богатая периферия:
    • до 10 UART, 3 CAN, 3 SPI, 4 I²C;
    • АЦП 12–16 бит, ЦАП;
    • таймеры с PWM, входным захватом;
    • USB OTG, Ethernet (на старших моделях).
  • Совместимость с Arduino Shields (разъём Uno R3).
  • STM32CubeMX — графический конфигуратор периферии.

3.4. Преимущества

  • высокая производительность (до 480 МГц);
  • большой объём памяти;
  • встроенная отладка (точки останова, просмотр переменных);
  • поддержка RTOS (FreeRTOS, Zephyr);
  • промышленная надёжность.

3.5. Ограничения

  • сложнее старт для новичков (нужно разбираться в периферии);
  • среда STM32CubeIDE требовательна к ресурсам ПК;
  • цена выше, чем у Arduino ($10–30).

3.6. Пример кода (GPIO через HAL)

#include "stm32f4xx_hal.h"

int main(void) {
    HAL_Init();
    __HAL_RCC_GPIOA_CLK_ENABLE();
    
    GPIO_InitTypeDef GPIO_InitStruct;
    GPIO_InitStruct.Pin = GPIO_PIN_5;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    
    while (1) {
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);
        HAL_Delay(1000);
        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
        HAL_Delay(1000);
    }
}

4. Raspberry Pi Pico: RISC‑V и RP2040 для гибких решений

4.1. Общая характеристика

  • Микроконтроллер: RP2040 (двойное ядро ARM Cortex‑M0+ @ 133 МГц).
  • Напряжение логики: 3,3 В.
  • Память: 264 КБ SRAM, 2 МБ встроенной Flash (на плате).
  • Среда разработки: Arduino IDE, MicroPython, C/C++ через SDK.

4.2. Ключевые особенности

  • 2 ядра: можно распараллеливать задачи.
  • Programmable I/O (PIO) — блоки для кастомных протоколов (например, VGA, WS2812).
  • USB Mass Storage — прошивка через перетаскивание .uf2‑файла.
  • Низкое энергопотребление (режим сна — микроамперы).

4.3. Периферия

  • 26 GPIO (3 АЦП, 3 UART, 2 SPI, 2 I²C);
  • 16 каналов ШИМ;
  • аппаратный USB 1.1;
  • часы реального времени (RTC).

4.4. Преимущества

  • Цена (около $4–5) — дешевле многих аналогов.
  • Гибкость (MicroPython для быстрого теста, C/C++ для оптимизации).
  • PIO — уникальная возможность для нестандартных интерфейсов.
  • Активное сообщество (Raspberry Pi Foundation).

4.5. Ограничения

  • нет встроенного Wi‑Fi/Bluetooth;
  • малый объём Flash (2 МБ) по сравнению с STM32;
  • ограниченная поддержка отладки (нет JTAG на плате).

4.6. Пример кода (MicroPython — мигание LED)

from machine import Pin
import time

led = Pin(25, Pin.OUT)

while True:
    led.value(1)
    time.sleep(1)
    led.value(0)
    time.sleep(1)

5. Сравнительный анализ: как выбрать плату?

КритерийArduinoSTM32 NucleoRaspberry Pi Pico
Архитектура8‑бит AVR / 32‑бит ARM32‑бит ARM Cortex‑M32‑бит ARM Cortex‑M0+ (двойное ядро)
Тактовая частота16 МГцдо 480 МГц133 МГц
Flash32 КБ (Uno)до 2 МБ2 МБ (на плате)
RAM2 КБ (Uno)до 1 МБ

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *