После того, как Raspberry Pi Foundation разработала и анонсировала свой процессор RP2040, на рынке появилось несколько одноплатников на его основе, включая собственную разработку Raspberry. Среди наиболее заметных RP2040-проектов стоит отметить Adafruit Py RP2040 и Pimoroni Tiny 2040. Есть еще и Adafruit Feather RP2040 с Cytron Maker Pi Pico.
Напомним, что сам по себе проект Raspberry Pi Pico — это, по сути, микроконтроллер с GPIO и возможностью программирования. Плату можно применять для эмуляции самых разных типов интерфейсов, включая ретро-системы. У Pico от Raspberry относительно небольшой набор функций, но своих денег плата стоит. Сейчас появился новый девайс, который называется Pimoroni Pico LiPo. Это как бы «Pico на стероидах».
Его стоимость — $17, то есть в 4 с немногим раз больше, чем у оригинального Pico. Но и возможности шире, так что девайс может пригодиться тем разработчикам, кому не хватало возможностей микроконтроллера от Raspberry. Так, здесь есть функция заряда аккумулятора, USB-C порт, 16 МБ флеш-памяти и коннектор Stemma QT / Qwiic.
Подробнее о характеристиках
Система на чипе | RP2040 |
Двухъядерный Arm Cortex M0+, частота 133 МГц. | |
264KB SRAM, и 4 / 16MB Flash памяти | |
GPIO | 26 × мультифункциональных 3.3V GPIO пинов |
2 × SPI, 2 × I2C, 2 × UART, 3 × 12-bit ADC, 16 × PWM каналов | |
1 x User LED (GPIO 25) | |
8 × Programmable I/O (PIO) state machines for custom peripheral support. | |
Stemma QT / Qwiic коннектор | |
SWD debug breakout | |
Модуль можно распаивать на платах | |
Power | USB C для данных и питания |
2 pin JST коннектор для LiPo / Li lon аккумуляторов. Мониторинг батарей + LED для отображения режима работы батареи. |
Дизайн и использование Pimoroni Pico LiPo
Pico LiPo идеально работает с MicroPython. Для того, чтобы получить максимальную отдачу от платы, нужно использовать CircuitPython, в особенности при работе с компонентами Stemma QT / Qwiic. Если по какой-то причине вам необходимо работать с MicroPython и при этом взаимодействовать с устройствами Stemma QT / Qwiic, то стоит попробовать последний проект от Adafruit. Вот здесь можно загрузить все необходимое, работает с Pico LiPo весьма гладко.
Как и говорилось выше, Pico LiPo — это Raspberry Pi Pico на стероидах. При таком же размере и аналогичной GPIO-распиновке у девайса есть функция зарядки батарей, Stemma QT / Qwiic и кнопка включения. Наиболее важная возможность — зарядка аккумуляторов, режим которой контролируется чипом MCP73831. Ток небольшой — 215 мА, но в ходе теста LiPo батарея была заряжена полностью.
Есть защита аккумулятора — XB6096I2S, что предотвращает возможное превышение параметров заряда. Выделенного MicroPython или CircuitPython модуля для мониторинга заряда нет. Для определения факта заряда используется 24-й пин. А для мониторинга — 29-й. Всего у девайса три аналоговых входа — столько же, сколько и у «малинки», но меньше, чем у Adafruit’s Feather RP2040. Да, на один пин меньше, но если учитывать, что его используют для контроля заряда батареи, то с потерей смириться проще.
Положительный момент в этом — возможность использования аккумулятора в качестве базового бесперебойника питания. Так, проект можно запитать от USB-C, но если питание отключится, в дело вступает батарея. Распиновка у Pico LiPo такая же, как и у «малинки». Плюс есть коннектор Stemma QT, благодаря которому подключение внешнего устройства становится очень простой задачей.
Наличие этого коннектора — реальный прорыв для I2C-девайсов. Дело в том, что у ряда производителей есть множество совместимых компонентов, включая датчики температуры, емкостные входы, экраны и т.п. Используя емкостный сенсорный датчик MPR121 и последнюю версию CircuitPython 7 для Pico LiPo, мы создали демонстрационную модель системы с применением Stemma QT-коннектора.
Система заработала сразу и без проблем. Кроме того, мы видим множество проектов с применением Stemma QT / Qwiic. Рядом с этим коннектором есть трехпиновой коннектор JST-SH — это отладка. Контакты используются для получения данных из работающего RP2040 без использования UART. Используя эти контакты и другой Pi Pico в качестве дебаг-хоста мы можем работать с процессором, SRAM, отображенной памяти I/O в выбранной среде разработки. Если вы разрабатываете критически важные RP2040-приложения, то это ключевая особенность. Ну а для большинства из нас — просто интересная функция.
Кнопка power — тумблер. Звучит не особо захватывающе, но есть здесь пара важных моментов. Дело в том, что именно эта кнопка позволяет полностью обесточить устройство, а не просто выполнить сброс. Ну а поскольку у нас есть аккумулятор, то его заряд можно сэкономить, полностью отключив плату. С кнопкой другого типа такой номер не пройдет — батарея продолжит разряжаться. Когда плата понадобится снова — просто включаем кнопку и все.
Кнопка BOOT обычно применяется для ввода системы в режим прошивки. Но у этой платы есть еще возможность задействовать кнопку в коде. На плате — три разных светодиода, включая power, статус заряда батареи и пользовательский светодиод, подключенный к 25 контакту.
Как и упоминалось выше, распиновка у платы такая же, как у «малинки», так что использовать ее можно точно там же и точно так же, где применяется Raspberry Pi Pico. При желании этот микроконтроллер можно заменить на LiPo в уже готовом проекте и получить больше функций. Мы проверили это утверждение, заменив микроконтроллер от Raspberry на новую плату вот в этом проекте. После замены все заработало без танцев с бубном.
Юзкейсы для Pimoroni Pico LiPo
У LiPo есть все, что дает Raspberry Pi Pico, плюс дополнительные функции. Даже одна лишь возможность подключения батареи стоит тех $17, которые просят разработчики за свой микроконтроллер. Его можно применять в самых разных проектах, от световых мечей на базе NeoPixel до интернета вещей. Pico LiPo можно применять в разных роботехнических проектах, но для сервоприводов, двигателей и т.п. понадобится собственный источник питания — GPIO платы не даст ток больше 600 мА.