Руководство по началу работы с Raspberry Pi Pico
Если вы только что купили свой первый Raspberry Pi Pico (или, возможно, стартовый набор для Raspberry Pi Pico), это простое и понятное руководство поможет вам быстро начать работу.
Мы познакомим вас с Raspberry Pi Pico и его различными возможностями, объясним, как настроить популярное программное обеспечение для написания кода, а также предложим пару простых проектов для начала!
Готовы? Поехали!
Необходимые компоненты
Для минимального старта вам понадобится Raspberry Pi Pico и кабель Micro-USB.
Raspberry Pi Pico
Всё очевидно — вам понадобится Raspberry Pi Pico! На момент написания статьи существует три версии Pico, однако мы рекомендуем вариант Pico H, поскольку он поставляется с уже припаянными контактами.
Мы не рекомендуем новичкам начинать с Raspberry Pi Pico W, так как вы, скорее всего, не будете использовать беспроводные функции на начальном этапе.
Кабель Micro-USB
Вам понадобится кабель Micro-USB, чтобы Raspberry Pi Pico мог взаимодействовать с вашим компьютером для программирования, а также для получения питания.
Дополнительные компоненты
В качестве небольшого стартового проекта мы будем управлять светодиодами с помощью кода. Если вы хотите следовать инструкциям, вам могут понадобиться:
Макетная плата (не менее 400 точек / половинного размера)
5-миллиметровые светодиоды
Резисторы 330 Ом
Соединительные провода (джампер-провода)
Что такое Raspberry Pi Pico?
Raspberry Pi Pico — это мощная и гибкая плата микроконтроллера от Raspberry Pi — тех же замечательных людей, которые создали Raspberry Pi 4 и Raspberry Pi Zero.
Тем не менее Raspberry Pi Pico — это другой тип Raspberry Pi. Это плата на основе микро контроллера, а не мини-компьютера. Мозгом Pico является микроконтроллерный чип RP2040 — небольшой чёрный квадрат в центре платы.
Если Raspberry Pi 4 (у которого есть операционная система) вы можете использовать для игр, написания текстов и просмотра веб-сайтов, то Raspberry Pi Pico предназначен для проектов физических вычислений, где он управляет такими компонентами, как светодиоды, кнопки, датчики, моторы и даже другие микроконтроллеры.
Характеристики платы Raspberry Pi Pico
Raspberry Pi Pico очень компактен — всего 51 мм x 21 мм, что отлично подходит для встраивания в небольшие проекты!
На одном конце платы находится порт Micro-USB, который при использовании с USB-кабелем питает плату и позволяет ей взаимодействовать с компьютером для программирования. На другом конце — порт для отладки (debugging), о котором новичкам пока не стоит беспокоиться!
В центре расположен чип RP2040 (чёрный квадрат) — это мозг нашей платы и первый чип микроконтроллера, созданный самими Raspberry Pi!
По обеим сторонам платы вы увидите множество контактов — поговорим о них подробнее, так как вы будете использовать их ОЧЕНЬ часто!
GPIO-контакты Raspberry Pi Pico
На плате расположено множество контактов, называемых GPIO (General Purpose Input Output — контакты общего назначения ввода/вывода), которые позволяют подключать самые разные компоненты для создания проектов. Ими управляет написанный вами код.
Полная схема расположения физических контактов Pico H доступна на официальном сайте Raspberry Pi. Вы заметите множество надписей разного цвета, однако давайте пока остановимся только на основных, которые будут интересны новому пользователю:
Светло-зелёный — базовые GPIO-контакты. С их помощью мы взаимодействуем с такими компонентами, как датчики или светодиоды, в режиме входа или выхода.
Красный — контакты питания. Чаще всего вы будете использовать 3V3(OUT), который обеспечивает 3,3 В для питания датчиков и других компонентов.
Чёрный — контакты «земли» (GND).
Существует множество других функций контактов, представленных другими цветами, однако новичкам пока не стоит об этом беспокоиться.
Вот более простая версия схемы контактов Pico с основными контактами, которые нас интересуют на данном этапе:
Языки программирования для Raspberry Pi Pico
Raspberry Pi Pico поддерживает ряд популярных языков программирования, таких как C/C++/Arduino и CircuitPython, однако наиболее популярным, пожалуй, является MicroPython. Большинство проектов и примеров в интернете используют именно MicroPython.
MicroPython — это компактная и эффективная версия языка программирования Python 3, разработанная для использования с платами микроконтроллеров, такими как Raspberry Pi Pico. Если вы ранее программировали на Python, MicroPython покажется вам очень знакомым.
Настройка Raspberry Pi Pico
Теперь, когда мы знаем, что такое Pico и как он работает, давайте настроим его, запустим и подготовим к написанию кода! Для этого нам нужно скачать и установить некоторое программное обеспечение.
Примечание
Это руководство основано на Windows 10/11. Для тех, кто использует более старые версии или macOS, процесс может отличаться. Описываемое программное обеспечение в настоящее время недоступно для Chromebook (по крайней мере, без значительных усилий!).
Настройка программного обеспечения
Мы установим программное обеспечение под названием Thonny, которое позволит нам программировать Pico с помощью MicroPython.
Thonny — это Python IDE. IDE расшифровывается как Integrated Development Environment (Интегрированная среда разработки). IDE помогают нам писать код, предоставляя множество полезных функций для предотвращения ошибок, повышения читаемости кода и многого другого.
Итак, давайте установим Thonny! Перейдите на сайт https://thonny.org/ и найдите вот такое поле:
Если навести курсор на название вашей операционной системы, вы увидите несколько вариантов, причём один из них будет рекомендован исходя из используемой вами системы. Для нас, использующих 64-разрядную версию Windows, рекомендуется 64-разрядная версия.
Ваша система может отличаться, поэтому лучше всего просто выбрать версию, которую рекомендует сайт:
Скачайте нужную версию для вашего компьютера, затем откройте файл для начала установки.
Thonny устанавливается как большинство программ и попросит вас принять лицензионное соглашение и подтвердить место установки. Мы оставили все параметры по умолчанию, и установка заняла чуть меньше минуты.
После установки нажмите «Finish», затем откройте программу. В Windows 10/11 нажмите кнопку «Пуск» и просто введите «Thonny». Программа откроется и будет выглядеть, как на примере ниже:
Установка MicroPython на Raspberry Pi Pico
Теперь нам нужно установить прошивку MicroPython на Raspberry Pi Pico. Это даёт Pico базовое программное обеспечение, необходимое для выполнения кода MicroPython, который мы будем отправлять на него позднее.
Важно
Возможно, при использовании описанного ниже метода у вас возникнут проблемы (например, ошибки SSL). Попробуйте этот способ, но если у вас возникнут трудности с установкой MicroPython на Pico, воспользуйтесь альтернативным методом с сайта Raspberry Pi.
Сначала вставьте кабель Micro-USB в Pico — но пока не подключайте его к компьютеру!
Найдите маленькую кнопку на верхней стороне Pico. Это кнопка „BOOTSEL“, которую нужно удерживать при подключении кабеля, чтобы установить прошивку на Pico.
Удерживая эту кнопку, одновременно вставьте USB-кабель в USB-порт вашего компьютера. Возможно, он появится как новое устройство на вашем компьютере — пока просто проигнорируйте это.
В Thonny, в правом нижнем углу, вы должны увидеть что-то вроде «MicroPython (Raspberry Pi Pico)» и COM-порт, как в примере ниже (у вас может быть по-другому, но это не важно на данном этапе). Нажмите на это, и вы увидите несколько вариантов. Выберите «Install MicroPython…»
Вам будут предложены параметры в новом диалоговом окне. Используйте те же параметры, что на скриншоте ниже: выберите том RPI-RP2 в качестве целевого, вариант Raspberry Pi Pico / Pico H и последнюю доступную версию (на момент написания это была версия 1.19.1):
Нажмите «Install», и вы увидите небольшой индикатор выполнения во время установки. После завершения нажмите «Close».
Настройка Thonny
Thonny можно использовать с различными платами разработки, поэтому нам нужно указать Thonny, что мы используем Raspberry Pi Pico.
В верхнем меню выберите «Run», затем «Configure interpreter»:
Убедитесь, что в первом выпадающем списке выбрано «MicroPython (Raspberry Pi Pico)», выберите доступное устройство в выпадающем списке «Port», затем нажмите «OK».
Совет
Если в выпадающем списке «Port» вы видите несколько вариантов, это означает, что к вашему компьютеру подключены другие устройства. Если вы не уверены, какое из них — Pico, запомните, какие COM-порты отображаются, отключите Pico от USB-порта, закройте окно параметров Thonny, затем попробуйте снова. Тот, который исчез, и есть Pico — подключите его снова и в следующий раз выберите именно это устройство (это намного проще, чем отключать всё остальное, если у вас много других устройств!).
Теперь вы должны увидеть панель «Raspberry Pi Pico» в левой части Thonny и информацию в нижней правой панели Shell.
Совет
Если ваш Pico не отображается слева, попробуйте выбрать «View» в верхней панели навигации и нажать «Files».
Настройка завершена — мы готовы писать код!
Ваша первая программа для Raspberry Pi Pico!
Давайте создадим очень простую программу и запустим её на Pico.
Мы дадим Pico команду „print“ (напечатать) несколько слов (называемых «строкой» текста). Эти слова/строки затем «выводятся» в окне Shell (панель в правом нижнем углу).
Функция print — это инструмент, который вы будете использовать ОЧЕНЬ часто при программировании. Это полезный способ увидеть, что происходит в программе, какая часть программы выполняется, и он помогает при отладке проектов.
В верхней панели (которая сейчас должна называться <untitled>, так как мы ещё не сохраняли её) скопируйте/вставьте или введите следующую строку и нажмите зелёную кнопку запуска (она похожа на кнопку «Play») в меню.
print("This is my Pico talking")
Теперь вы должны увидеть следующее в окне Shell:
Вы сделали это! Ваша первая программа!
Несколько важных замечаний:
Строки для вывода всегда заключаются в кавычки, внутри скобок (или круглых скобок)
Регистр букв очень важен в MicroPython и других языках программирования. Наш print всегда пишется как «p rint», а не «P rint».
Теперь попробуйте изменить текст между кавычками — вы можете написать что угодно (почему бы не попробовать классическое «Hello World»?). Вы даже можете добавить несколько строк print подряд — попробуйте!
Включение встроенного светодиода Pico
Теперь мы знаем, где писать код в Thonny и как запускать программу, поэтому давайте сразу перейдём к управлению светодиодами!
Pico имеет небольшой встроенный светодиод, который подключён к одному из контактов RP2040 — GPIO25. Этот контакт — не один из физических контактов, расположенных по краям платы.
Примечание
Pico W имеет немного другую настройку контактов, так как использует контакт GPIO на беспроводном чипе для управления встроенным светодиодом. Ниже мы покажем, как это сделать на обеих платах.
Мы можем дать программе команду включать и выключать этот контакт в любой момент, что является отличным первым аппаратным проектом и может пригодиться как индикатор в ваших собственных проектах.
Входы и выходы
Наши GPIO-контакты (зелёные на схеме контактов) могут быть настроены как входы или выходы. Мы используем входы, когда хотим, чтобы что-то посылало сигналы/напряжение в Pico, например кнопка или датчик, и используем выходы, когда хотим, чтобы Pico посылал сигналы/напряжение из себя к чему-либо другому, например к светодиодам или зуммерам.
Здесь мы будем использовать выход, который будет подавать напряжение на встроенный светодиод для его включения.
Импорты (imports)
Обратите внимание на первую строку приведённого ниже примера кода. Когда мы пишем код в Thonny, нам часто нужно добавлять импорты в начало.
Импорты подключают код из других мест (называемых «модулями» или «классами»), который необходим для работы нашей программы. Обычно это встроенные модули.
Для работы с GPIO-контактами нам всегда нужно импортировать Pin.
Код — версия для Pico/Pico H
Посмотрите ещё раз на пример ниже. Что он делает?
Первая строка импортирует „*Pin*“ из модуля „*machine*“, что просто позволяет нам использовать GPIO-контакты.
Вторая строка настраивает один из контактов для использования в нашем коде. Она задаёт *GPIO25* с именем «onboardLED». Мы используем *Pin.OUT* в конце, чтобы сообщить MicroPython, что этот контакт является *выходом*.
Третья строка наконец устанавливает значение этого контакта в «1», что означает HIGH (включено). 1 всегда используется для HIGH (включено), а 0 — для LOW (выключено).
from machine import Pin
onboardLED = Pin(25, Pin.OUT)
onboardLED.value(1)
Скопируйте этот код в верхнюю правую панель, затем нажмите кнопку запуска. Светодиод должен загореться — ура — вы управляете первым физическим компонентом!
Теперь попробуйте изменить 1 на 0 — запустите код снова, и светодиод должен погаснуть.
Код — версия для Pico W
Если вы хотите сделать то же самое с беспроводным Raspberry Pi Pico W, просто измените номер контакта (25) на «LED» (включая кавычки), вот так:
from machine import Pin
onboardLED = Pin('LED', Pin.OUT)
onboardLED.value(1)
Управление светодиодами с Raspberry Pi Pico
Мы освоили встроенный светодиод, поэтому теперь давайте соберём схему со светодиодами. Мы покажем, как подключить схему и управлять ими с помощью кода на вашем Pico.
Сначала убедитесь, что Pico отключён от USB-кабеля. Всегда делайте это при изменении схемы.
Макетные платы (breadboard)
Мы будем добавлять компоненты на макетную плату. Макетные платы позволяют подключать компоненты и собирать прототипы схем без пайки, используя провода с штекерами на концах — соединительные провода (иногда называемые DuPont-проводами).
На этих макетных платах есть два набора горизонтальных каналов (красный/синий) с обеих сторон. Все красные контакты соединены между собой, равно как и синие (но каждая сторона не соединена с другой). Мы используем их для создания «шин» соединений, таких как «земля» (GND) для синего канала и 3,3 В для красного.
Отверстия в середине соединены вертикальными рядами: в каждом ряду по 5 соединённых контактов с каждой стороны разделителя. Разделитель не позволяет обеим сторонам соединяться.
Вставьте Raspberry Pi Pico *полностью* в макетную плату (так, чтобы металлические контакты стали невидимы), как показано на изображении ниже.
Схема с LEDs для Raspberry Pi Pico
Вставьте три светодиода в нижнюю часть макетной платы, с промежутком в 1 отверстие, с длинной ножкой справа, как показано на изображении ниже.
Вы пока не будете знать, какого цвета какой светодиод, так как светодиоды в наборе имеют прозрачные линзы — это не важно, мы вернёмся к этому чуть позже. Ваша макетная плата должна выглядеть вот так:
Совет
Короткая ножка — это катод (-), а длинная ножка — это анод (+).
Теперь нужно добавить резистор, чтобы ограничить ток, который светодиод может потреблять от наших GPIO-контактов.
Вставьте резистор между левой ножкой каждого светодиода и нижним синим каналом, как показано ниже. Этот синий канал мы вскоре подключим к контакту «земля» (-).
Теперь возьмите соединительные провода. Вам нужен один провод, соединяющий синий канал с контактом «земля» на вашем Pico — мы предлагаем использовать *физический контакт 38*, как показано на диаграмме ниже (обратитесь к схеме контактов Pico, если вам нужно напоминание).
Также нужно подключить правую ножку каждого светодиода к GPIO-контакту. Используйте GPIO18 (физический контакт 24) для красного, GPIO19 (физический контакт 25) для жёлтого и GPIO20 (физический контакт 26) для зелёного, как на диаграмме ниже.
Совет
Цвет соединительных проводов не важен — они все работают одинаково. В идеале чёрный цвет зарезервирован для контактов «земля», а красный — для напряжения, но для простых проектов это не обязательно.
Простой проект со светодиодами
Мы покажем вам простой код для включения каждого из светодиодов в вашем наборе. Мы включим каждый светодиод, подождём 5 секунд, затем выключим их. Для этого нам нужно использовать модуль time.
Модуль time
Модуль time позволяет программировать задержки в коде, заставляя его ждать секунды или доли секунды перед продолжением. Это фундаментальный модуль, который вы будете использовать в большинстве своих проектов.
Код
Наш код импортирует pin, а также импортирует time. Затем мы задаём номер контакта для каждого цвета светодиода (давая им понятное имя) и устанавливаем их как выходы.
После этого нужно просто установить каждый контакт светодиода в HIGH, подождать 5 секунд с помощью time.sleep(5), затем снова установить их все в LOW.
Вот код для копирования в Thonny — запустите его, нажав зелёную кнопку:
from machine import Pin
import time
led1 = Pin(18, Pin.OUT)
led2 = Pin(19, Pin.OUT)
led3 = Pin(20, Pin.OUT)
led1.value(1)
led2.value(1)
led3.value(1)
time.sleep(5)
led1.value(0)
led2.value(0)
led3.value(0)
Что дальше?
Удивительный мир программирования, создания проектов и, конечно же, Raspberry Pi Pico ждёт вас!
Обязательно загляните на сайт Raspberry Pi за проектами и вдохновением, в раздел Pico на форуме Raspberry Pi для решения проблем и поиска идей, в группы пользователей социальных сетей за вдохновением и поддержкой, и, как всегда, поисковые системы — ваш лучший друг!
Схема подключения на макетной плате создана с помощью Fritzing