Плата Raspberry Pi в настоящее время является одной из самых популярных микроконтроллерных плат, применяемых в современной электронике. По сравнению с другими аналогичными платами (например, Arduino), она отличается большой вычислительной мощностью, но и стоит она при этом существенно дороже. Для преодоления этого ценового разрыва компания Raspberry Pi Foundation's в этом, 2021 году, выпустила плату Raspberry Pi Pico на своем собственном чипе RP2040, которая отличается низкой ценой – всего $4. Данная плата основана на двухъядерном процессоре с архитектурой ARM и имеет систему контактов ввода/вывода общего назначения (GPIO).
В данной статье мы рассмотрим основы работы с платой Raspberry Pi Pico и ее программирование с помощью языка MicroPython.
Общая характеристика платы Raspberry Pi Pico
Плата Raspberry Pi Pico содержит в своем составе двухъядерный ARM процессор на ядре Cortex M0+ с тактовой частотой до 133 МГц. На плате находится 264 Кб SRAM памяти (ОЗУ) и 2 Мб перезаписываемой флэш памяти, которую можно увеличить до 16 Мб с помощью внешнего модуля, подключаемого по шине Quad-SPI. Также плата имеет в своем составе 26 многофункциональных контактов ввода/вывода (GPIOs) работающих с уровнем напряжения 3.3v, 3 из этих контактов также могут выполнять функции аналоговых входов. Плата Raspberry Pi Pico достаточно универсальна в плане подачи на нее питающего напряжения, которое может подаваться на нее через разъем micro-USB, внешние источники и от батареек (аккумуляторов). Также важным преимуществом платы является отсутствие необходимости в наличии специального программатора для нее и она может программироваться с помощью простой технологии Drag-and-Drop” через USB.
Как показано ниже на распиновке платы Raspberry Pi Pico она имеет в своем составе 40 контактов, 26 из которых являются многофункциональными контактами ввода/вывода (GPIOs). Встроенный в плату светодиод подключен к ее контакту GPIO25. Одним из отмечаемых недостатков платы Raspberry Pi Pico является отсутствие у нее кнопки сброса (reset button), однако у плату есть контакт RUN, который выполняет роль контакта сброса (reset pin) если мы замыкаем его на землю (Ground).
Установка языка MicroPython на Raspberry Pi Pico
Для написания программ для платы Raspberry Pi Pico хорошо подходит язык MicroPython. Автор данной статьи (ссылка на оригинал приведена в конце статьи) для установки программной среды для работы с MicroPython использовал операционную систему Ubuntu 20.04 LTS, однако аналогичным образом это можно сделать и на других Linux подобных операционных системах.
MicroPython – это версия языка программирования Python, которая написана на языке C и оптимизирована для использования на небольших микроконтроллерах/микроконтроллерных платах, которой является Raspberry Pi Pico. Для написания программ на MicroPython нам сначала необходимо установить программное обеспечение для работы с языком Python. Автор проекта использовал для этого Python3, установленный на операционную систему Ubuntu.
После установки Python нам также необходимо будет установить Python IDE “Thonny” для "безошибочной" разработки кода. Thonny IDE также поддерживается операционными системами Windows/MacOS. Нам всего лишь нужно скачать и установить ее дистрибутив для используемой нами операционной системы.
1 |
pip3 install thonny |
Как загружать программы в плату Raspberry Pi Pico
После установки Thonny IDE нам необходимо подсоединить плату Raspberry Pi Pico к загрузчику (bootloader). Как мы уже знаем, для программирования платы Raspberry Pi Pico не нужен никакой специальный программатор, она программируется с помощью простого процесса drag-and-drop. Для реализации этого нам необходимо подключить плату к разъему USB в то время когда встроенная на плату кнопка BOOTSEL будет нажатой и удерживать эту кнопку до тех пор пока плата не определится системой, после этого кнопку можно будет отпустить.
Встроенная на плату кнопка BOOTSEL используется для того чтобы плата определилась на компьютере как устройство Mass-storage, для загрузки в нее обновленной версии прошивки или непосредственного написания кода программы на MicroPython. После того как плата определится на компьютере как устройство Mass-storage и плата соответственно перейдет в режим загрузчика, она получит имя в системе RPI-RP2. После этого ее можно будет открыть (по данному имени).
После этого откройте окно терминала используя команду Ctrl+Alt+T и напечатайте в нем python3 -m thonny чтобы открыть Thonny Python IDE и удостовериться в том, что плата Raspberry Pi Pico подключена к системе.
После этого нажмите на кнопку ‘Python’ с номером его версии в правом нижнем углу окна Thonny чтобы выбрать интерпретатор Python "MicroPython (Raspberry Pi Pico)", который мы будем использовать для написания кода программы для нашей платы в Thonny IDE.
После выбора интерпретатора "MicroPython (Raspberry Pi Pico)" появится всплывающее окно установки, в котором нам необходимо нажать на кнопку установки (install) чтобы загрузить последнюю версию программного обеспечения MicroPython в плату Raspberry Pi Pico.
После установки Micropython в плату Raspberry Pi Pico носитель с именем RPI-RP2 автоматически удалится ("отмонтируется") из системы и на экране появится интерактивная оболочка Micropython REPL.
В этой оболочке мы сможем писать код программы на python и непосредственно запускать его на выполнение как это обычно делается из окна терминала.
1 2 3 |
>>> print ('Hello Pico!') Hello Pico! >>> |
Компиляция и загрузка кода программы для мигания светодиодом
Теперь, когда необходимое программное обеспечение у нас установлено, давайте попытаемся скомпилировать наш первым проект (мигание встроенным в плату светодиодом) чтобы удостовериться в том, что и наша IDE, и библиотека MicroPython работают корректно. Более подробно все эти процессы вы можете посмотреть на видео, представленном в конце статьи.
Напишите код программы для мигания светодиодом в основном окне Thonny IDE и затем нажмите на RUN (зеленая кнопка) на панели инструментов.
1 2 3 4 5 6 7 8 |
from machine import Pin import time led = Pin(25, Pin.OUT) while True: led.high() time.sleep(.25) led.low() time.sleep(.25) |
После нажатия кнопки RUN на экране появится всплывающее окно, в котором вам будет предложено выбрать место сохранения программы. В этом окне нам необходимо выбрать “Raspberry Pi Pico” и сохранить файл под именем “main.py”. После сохранения файла встроенный в плату светодиод начнет мигать и даже если мы отключим плату от компьютера и запитаем ее от батарейки, то светодиод также будет мигать.
Примечание: нам необходимо сохранять нашу программу под именем “main.py” потому что при подаче на плату питания (то есть при ее включении) ее загрузчик на MicroPython будет искать файл с именем main.py чтобы запустить систему в работу. Это как функция main в C/C++.
Исходный код программы на MicroPython
1 2 3 4 5 6 7 8 |
from machine import Pin import time led = Pin(25, Pin.OUT) while True: led.high() time.sleep(.25) led.low() time.sleep(.25) |
1. Как происходит импорт зависимостей из внешних библиотек не входящих в стандартный пакет Python?
2. Как происходит импорт самописных модулей? Обычной загрузкой на плату?
Да, копируете их в память платы и импортируете обычным образом в основной программе. К примеру, можете посмотреть эту статью про подключение модуля ESP8266 к Raspberry Pi Pico, там импортировали самописную библиотеку для работы с модулем ESP8266.
Не загружает последнюю версию программного обеспечения MicroPython в плату Raspberry Pi Pico.
URLError:
И что ?? Сертификаты глючат??
Однозначно сложно сказать, причин может быть много. Для начала попробуйте сделать это с другого компьютера с другой операционной системой. Или со своего компьютера, но с другой операционной системы, если есть такая аозможность
В этой статье ошибочно сказано: "На плате находится 264 Кб SRAM памяти (ПЗУ) ".
SRAM - ОЗУ.
Хорошо, спасибо за внимательность. Исправил опечатку