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. Сравнительный анализ: как выбрать плату?
| Критерий | Arduino | STM32 Nucleo | Raspberry Pi Pico |
|---|---|---|---|
| Архитектура | 8‑бит AVR / 32‑бит ARM | 32‑бит ARM Cortex‑M | 32‑бит ARM Cortex‑M0+ (двойное ядро) |
| Тактовая частота | 16 МГц | до 480 МГц | 133 МГц |
| Flash | 32 КБ (Uno) | до 2 МБ | 2 МБ (на плате) |
| RAM | 2 КБ (Uno) | до 1 МБ |



