Что такое Raspberry Pi Pico? Установка MicroPython, распиновка и первые проекты
Что такое Raspberry Pi Pico и чем она отличается от Raspberry Pi и Arduino? Возможности RP2040, Pico W и Pico 2, распиновка, установка MicroPython через Thonny и первый код со светодиодом, кнопкой, PWM и АЦП.
Raspberry Pi Pico — очень дешёвая плата-микроконтроллер размером с ладонь на основе RP2040 — микросхемы, которую разработал сам фонд Raspberry Pi. Её главная особенность — программирование на MicroPython, то есть на Python: пишешь код, запускаешь и сразу видишь результат, без ожидания компиляции. Поэтому она отлично подходит ученикам, изучающим Python, и новичкам в электронике. При желании её можно программировать и на C/C++ или в Arduino IDE.

Что такое Raspberry Pi Pico? Чем она отличается от Raspberry Pi
Несмотря на похожее название, Pico — не компьютер, как Raspberry Pi 4 или 5. У неё нет операционной системы, выхода HDMI и рабочего стола; как и Arduino, это плата-микроконтроллер, которая выполняет одну программу. Программа запускается сразу после подачи питания, потребление очень маленькое, а такие задачи, как чтение датчиков, управление светодиодами и моторами, выполняются в реальном времени.
| Параметр | Raspberry Pi Pico | Arduino Uno R3 | Raspberry Pi 4 / 5 |
|---|---|---|---|
| Тип | Плата-микроконтроллер | Плата-микроконтроллер | Одноплатный компьютер |
| Операционная система | Нет | Нет | Linux |
| Язык программирования | MicroPython, C/C++, Arduino | C/C++ (Arduino) | Python и почти любой язык |
| Время запуска | Мгновенно | Мгновенно | 20–30 секунд |
| Потребление | Около 25 mA | Около 45 mA | Несколько ватт |
| Типичное применение | Датчики, светодиоды, моторы, отсчёт времени | Датчики, светодиоды, моторы | Камеры, серверы, настольный компьютер |
Характеристики: Pico, Pico W и Pico 2
| Параметр | Pico | Pico W | Pico 2 |
|---|---|---|---|
| Микросхема | RP2040, два ядра Cortex-M0+, 133 MHz | RP2040, два ядра Cortex-M0+, 133 MHz | RP2350, два ядра Cortex-M33, 150 MHz |
| ОЗУ | 264 КБ | 264 КБ | 520 КБ |
| Flash-память | 2 МБ | 2 МБ | 4 МБ |
| Беспроводная связь | Нет | Wi-Fi (2,4 GHz) + Bluetooth | Нет (есть у Pico 2 W) |
| Доступные GPIO | 26 | 26 | 26 |
| Аналоговые входы (АЦП) | 3 канала, 12 бит | 3 канала, 12 бит | 3 канала, 12 бит |
| Рабочее напряжение | 3,3 V | 3,3 V | 3,3 V |
Распиновка Pico
Всего у Pico 40 пинов по двум краям. Каждый из 26 пинов GPIO от GP0 до GP28 умеет выдавать PWM, а I2C, SPI и UART можно использовать на нескольких альтернативных пинах. Аналоговый вход есть только на GP26, GP27 и GP28. Полную карту пинов платы можно посмотреть в утилите Распиновка; важные пины питания и специальные пины такие:
| Пин | Назначение |
|---|---|
| VBUS | 5 V от USB |
| VSYS | Вход внешнего питания (1,8–5,5 V) |
| 3V3(OUT) | Выход 3,3 V для датчиков (примерно до 300 mA) |
| GND | Земля (на плате их 8) |
| GP0–GP22 | Цифровой вход/выход, PWM, I2C, SPI, UART |
| GP26–GP28 | Ещё и аналоговый вход (ADC0–ADC2) |
| RUN | Сбрасывает плату при соединении с GND |
Установка MicroPython (через Thonny)
- Скачай и установи Thonny с сайта thonny.org.
- Удерживая кнопку BOOTSEL на Pico, подключи USB-кабель к компьютеру; Pico появится как диск с именем RPI-RP2 (у Pico 2 — RP2350).
- В меню интерпретатора в правом нижнем углу Thonny выбери MicroPython (Raspberry Pi Pico), затем через пункт «Install or update MicroPython» установи нужную версию для своей платы (Pico, Pico W или Pico 2). Файл .uf2 можно также скачать с micropython.org и перетащить на диск.
- Когда установка закончится, Pico перезапустится. Если в нижней панели Shell в Thonny видно приглашение >>>, всё готово.
- Если сохранить код на Pico под именем main.py, он будет запускаться автоматически при каждом включении платы, даже без подключения к компьютеру.
Первая программа: мигаем встроенным светодиодом
1from machine import Pin
2import time
3
4led = Pin(25, Pin.OUT) # Pico'da dahili LED; Pico W ve Pico 2 W'de Pin("LED") yaz
5 # onboard LED on Pico; use Pin("LED") on Pico W / Pico 2 W
6
7while True:
8 led.toggle() # durumu tersine çevir / flip the state
9 time.sleep(0.5)Управление светодиодом кнопкой
Подключи светодиод к GP15 через резистор 220 Ω, а кнопку — к GP14. Другая ножка кнопки идёт на GND, и включается внутренняя подтяжка (pull-up) Pico, поэтому отпущенная кнопка читается как 1, а нажатая — как 0:
1from machine import Pin
2
3led = Pin(15, Pin.OUT)
4button = Pin(14, Pin.IN, Pin.PULL_UP) # butonun diğer ucu GND'de / other leg to GND
5
6while True:
7 led.value(not button.value()) # basılıyken yanar / on while pressedЯркость светодиода через PWM
Каждый пин GPIO на Pico умеет выдавать PWM. В MicroPython значение заполнения лежит в диапазоне от 0 до 65535. Код ниже медленно разжигает светодиод и начинает заново; идея PWM подробно объяснена в статье Что такое PWM?
1from machine import Pin, PWM
2import time
3
4led = PWM(Pin(15), freq=1000)
5
6while True:
7 for d in range(0, 65536, 1024): # yavaşça yan / fade in
8 led.duty_u16(d)
9 time.sleep_ms(10)Аналоговое чтение и встроенный датчик температуры
Подключи средний вывод потенциометра к GP26, а крайние — к 3V3 и GND. read_u16() возвращает значение от 0 до 65535. Внутри Pico есть ещё и датчик температуры, подключённый к 4-му каналу АЦП; показания у него грубые, но это забавный способ измерить температуру без дополнительных деталей:
1from machine import ADC
2import time
3
4pot = ADC(26) # GP26 (ADC0) / potansiyometre orta ucu / pot wiper
5sensor = ADC(4) # dahili sıcaklık sensörü / internal temperature sensor
6
7while True:
8 value = pot.read_u16() # 0–65535
9 volts = sensor.read_u16() * 3.3 / 65535
10 temp = 27 - (volts - 0.706) / 0.001721 # °C (yaklaşık / approximate)
11 print(value, round(temp, 1))
12 time.sleep(1)Программирование Pico в Arduino IDE
Если тебе ближе C++ и библиотеки Arduino, Pico можно использовать и с Arduino IDE. Добавь https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json в поле дополнительных ссылок для плат в «Файл › Настройки», затем установи пакет Raspberry Pi Pico/RP2040/RP2350 от Earle Philhower через «Менеджер плат». При первой загрузке удерживай кнопку BOOTSEL, подключая плату; дальше загрузка работает как обычно. Пример Blink с LED_BUILTIN и большинство библиотек Arduino работают без проблем.
Pico, ESP32 или Arduino?
| Что нужно | Рекомендуемая плата |
|---|---|
| Первый проект, датчики на 5 V, больше всего примеров и материалов | Arduino Uno |
| Wi-Fi, Bluetooth, интернет, управление с телефона | ESP32 или Pico W |
| Учиться программировать на Python | Raspberry Pi Pico |
| Очень низкая цена, точные тайминги (PIO) | Raspberry Pi Pico |
| Проекты с камерой и звуком | ESP32-S3 или ESP32-CAM |
Для проектов с беспроводной связью познакомься с ESP32 в статье Что такое ESP32? Сильная сторона, которая есть только у Pico, — блоки PIO (программируемый ввод-вывод): они берут на себя задачи, критичные к таймингам, например светодиодные ленты WS2812B или собственные протоколы связи, не нагружая процессор.
Идеи проектов на Raspberry Pi Pico
- Светофор: светофор из трёх светодиодов, которые загораются по очереди.
- Knight Rider: световой эффект, который бегает туда-обратно по шести светодиодам.
- Кнопки и прерывания (IRQ): код, который ловит нажатие кнопки, не дожидаясь основного цикла.
- Смена цветов RGB: эффект радуги на RGB-светодиоде тремя каналами PWM.
- Веб-сервер на Pico W: управляй светодиодом или реле со страницы, открытой на телефоне.
- Мини-термометр: показывай на OLED-дисплее показания встроенного датчика температуры.
Частые ошибки и как их исправить
- Диск RPI-RP2 не появляется: плата подключена без удержания BOOTSEL, или кабель только для зарядки; используй кабель с передачей данных.
- Thonny не находит плату: выбран не тот интерпретатор, или на плате не установлен MicroPython.
- На Pico W не загорается светодиод: на Pico W встроенный светодиод подключён к беспроводной микросхеме; используй Pin("LED") вместо Pin(25).
- Подключение сигналов 5 V: GPIO работают на 3,3 V; сигналы 5 V могут повредить пин.
- Код не работает без компьютера: он не сохранён на Pico под именем main.py.
- Слишком высокое напряжение на VSYS: VSYS принимает максимум 5,5 V; не подключай адаптер на 9 V или 12 V напрямую.
Благодаря низкой цене и поддержке Python Raspberry Pi Pico — один из самых простых способов соединить программирование и электронику. Основы светодиодов — в статье Что такое светодиод?; в приложении BlueGrays есть пошаговые проекты на Pico со схемами подключения и кодом на MicroPython: мигание светодиодами, светофор, Knight Rider, прерывания от кнопки, «дыхание» через PWM и смена цветов RGB.
Частые вопросы
Raspberry Pi Pico — это компьютер Raspberry Pi?
Нет. Pico — плата-микроконтроллер от фонда Raspberry Pi; у неё нет операционной системы, видеовыхода и рабочего стола. Как и Arduino, она выполняет одну программу. Raspberry Pi 4 и 5 — полноценные компьютеры на Linux.
На каком языке программируют Raspberry Pi Pico?
Чаще всего на MicroPython: его легко установить через Thonny, и любой, кто знает Python, может сразу начать. Можно также использовать официальный C/C++ SDK и Arduino IDE (с пакетом Earle Philhower). Поддерживается и CircuitPython.
Чем Pico отличается от Pico W?
В Pico W добавлена беспроводная микросхема, которая даёт Wi-Fi на 2,4 GHz и Bluetooth; всё остальное одинаково. Встроенный светодиод на Pico W подключён к этой микросхеме, поэтому в коде используют Pin("LED") вместо Pin(25).
Работает ли Raspberry Pi Pico от 5 V?
Плату можно питать от 5 V через USB или напряжением 1,8–5,5 V на пине VSYS. А вот пины GPIO работают на 3,3 V и не выдерживают 5 V, поэтому подавать на них сигналы 5 V напрямую нельзя.
Сколько аналоговых входов у Pico?
Пользователю доступны три аналоговых входа: GP26 (ADC0), GP27 (ADC1) и GP28 (ADC2). 4-й канал АЦП подключён к датчику температуры внутри микросхемы. В MicroPython read_u16() возвращает значение от 0 до 65535.
Можно ли программировать Raspberry Pi Pico в Arduino IDE?
Да. Если установить в Arduino IDE пакет плат Raspberry Pi Pico/RP2040/RP2350 от Earle Philhower, Pico можно программировать командами Arduino и пользоваться большинством библиотек Arduino. При первой загрузке нужно удерживать кнопку BOOTSEL, подключая плату.
Что собрать после прочтения
Все проекты
Мигание встроенным светодиодом Raspberry Pi Pico (Pico и Pico W)
Первый проект серии Raspberry Pi Pico! Мигаем зелёным встроенным светодиодом, чтобы проверить, что плата работает, — классический первый опыт «Hello World». НИКАКИХ внешних компонентов, только Pico и USB-кабель. Код написан на MicroPython (официальном языке, поддерживаемом Raspberry Pi Foundation). Изучи в Thonny IDE класс machine.Pin, режим Pin.OUT, методы led.on()/off() и time.sleep(). Каждое переключение видно в выводе (REPL).

Raspberry Pi Pico: управление внешним светодиодом (макетная плата)
Следующий шаг после встроенного светодиода Pico: подключить внешний светодиод на макетной плате и управлять им через пин GP14. В этом проекте ты узнаешь, как использовать любой пин GPIO общего назначения у Pico как выход, какая полярность у светодиода (длинная ножка = анод/+, короткая = катод/–) и зачем нужен токоограничивающий резистор (220Ω). Без резистора через светодиод пойдёт слишком большой ток, и он может сгореть. Схема очень простая: Pico GP14 → резистор 220Ω → светодиод → GND.

Симулятор светофора на Pico (3 светодиода по очереди)
Настоящий светофор на красном, жёлтом и зелёном светодиодах — первый проект серии Pico с 3 светодиодами! Зелёный 4 с «едем», жёлтый 1,5 с «внимание», красный 3 с «стоп» и красный + жёлтый 1 с «приготовиться» (европейская схема светофора). Изучи объявление функций (def all_off()), логику конечного автомата (последовательность) и синхронизацию нескольких GPIO. Простая схема: 3 светодиода на GP11 (зелёный), GP12 (жёлтый), GP13 (красный), у каждого токоограничивающий резистор 220Ω.

Бегущие огни на Pico (6 светодиодов)
Классическая анимация «бегущие огни» на Pico — версия на 6 светодиодов! 6 светодиодов загораются по очереди слева направо — будто свет идёт по ряду. Изучи список Python, генератор списка ([Pin(p, Pin.OUT) for p in LED_PINS]), цикл for с управлением пинами и enumerate(). 6 светодиодов на GP9–GP14, у каждого токоограничивающий резистор 220Ω. Очень чистый код: вместо объявления 6 светодиодов по одному используется список, и можно добавлять светодиоды по числу свободных пинов GPIO.

Светодиод с управлением кнопкой на Pico (удержание)
Первый проект Pico с входом — чтение кнопки! Светодиод горит, пока кнопка нажата, и гаснет после отпускания. Это большой шаг после светодиодных анимаций: сигнал из внешнего мира в Pico. Изучи Pin.IN (режим входа), Pin.PULL_UP (встроенный подтягивающий резистор — стандарт для кнопок) и чтение button.value(). Светодиод на GP14, кнопка на GP2 (встроенный PULL_UP). Нажата = LOW (0), отпущена = HIGH (1) — обратная логика сначала путает, но это промышленный стандарт.

Антидребезг кнопки на Pico: IRQ против программного опроса
Нажимаешь кнопку один раз, а код насчитывает 3–4? Это дребезг контактов — металлические контакты колеблются доли миллисекунды! Сравни в мониторе два способа подсчёта рядом: сырой опрос (ловит дребезг и считает лишнее) и IRQ + программный антидребезг (точно). Изучи физику дребезга, программный антидребезг (ticks_diff() > 50ms), регистрацию прерывания Pin.irq(), триггер IRQ_FALLING, обработчики ISR и безопасность global в ISR.

Плавное затухание светодиода с PWM на Pico (эффект дыхания)
Светодиод больше не просто мигает — он дышит! С помощью PWM (широтно-импульсной модуляции) Raspberry Pi Pico яркость светодиода медленно растёт и медленно падает, как огонёк спящего MacBook. Изучи класс machine.PWM, duty_u16() (16-битная яркость 0–65535), частоту PWM (freq(1000) — 1000 циклов вкл/выкл в секунду, мерцания не видно), циклы range() с шагом (вверх и вниз) и почти аналоговый выход с цифрового пина.

Смена цветов RGB-светодиода на Pico (3 канала PWM)
Один светодиод — миллионы цветов! RGB-светодиод содержит 3 светодиода: красный, зелёный и синий. Если управлять каждым своим каналом PWM Pico, цвета смешиваются: красный + зелёный = жёлтый, зелёный + синий = голубой, все три = белый. Светодиод перебирает 8 цветов. Изучи несколько каналов PWM, объявление функций (def set_color(...)), смешивание RGB, перевод 8 бит → 16 бит (x257) и общий катод и общий анод.
Другие статьи
Приложение BlueGrays
Собери эту схему шаг за шагом в телефоне
Схема подключения, код и список деталей на одном экране. 200+ проектов на Arduino, ESP32 и Pico готовы к сборке.
Наведи камеру телефона
Наведи камеру на код — откроется магазин приложений на телефоне.
или открыть магазин

