[Перевод] Raspberry Pi Pico vs Arduino: какая плата лучше?
До того, как Raspberry Foundation представила Pi Pico, сравнивать «малинку» и Arduino было некорректно. Raspberry Pi — полноценный компьютер, хотя и специфический. А вот Arduino — микроконтроллер. Но с появлением Raspberry Pi Pico все изменилось, поскольку новая плата — это тоже микроконтроллер, разница с Arduino уже не такая большая.
У Arduino и Raspberry Pi Pico есть одна общая черта — это отличные платы для разного рода проектов, включая управление освещением, приводами или сенсорами. Использовать полноценную ОС при этом не нужно. Сейчас уже можно сравнить возможности обеих плат, чем в этой статье и займемся.
Функциональность и GPIO
У Raspberry Pi Pico отличный от других представителей линейки форм-фактор. В частности, у платы 40 пинов DIP. Плюс по периметру есть зубцы, которые можно использовать для коннекта Pico к несущей платы.
В DIP нет ничего нового — аналогичный форм-фактор в других микроконтроллерах используется много лет. Такую плату можно распаять на несущей плате, поместить на макетную схему или присоединить поверх других модулей. Т.е. подобную плату можно очень легко интегрировать в любую систему.
У GPIO платы Pico много цифровых каналов, плюс три аналоговых входа и несколько I2C, SPI и UART интерфейсов. Но у Pico есть и ряд программируемых PIO, которые можно настроить для эмуляции других интерфейсов и протоколов, включая WS2812 «NeoPixels». В целом, плата — недорогой и универсальный инструмент с GPIO.
Победитель: Raspberry Pi Pico
SoC Raspberry Pi Pico vs Arduino
Предыдущие поколения популярных Arduino плат были оснащены чипами Artmel вроде ATMega328P. Сейчас многие платы оснащаются ARM. Например, у Arduino«s Portenta H7 — двухъядерный Arm Cortex M7+M4.
Такие платы, как Adafruit, Seeed и SparkFun также оснащены ARM-чипами. Микроконтроллерам обычно не нужны несколько ядер и высокая производительность, поскольку они используются, в основном, для какого-то одного процесса.
А вот RP2040 — это уже следующее поколение чипов. Во-первых, это Arm Cortex M0+, работающий с частотой 133 МГц. Это гораздо быстрее UNO«s 16 MHz 328P. SRAM у процессора «малинки» — 264KB, что больше, чем у Uno — здесь всего 2 КБ. Ну и у Pico 2 МБ внутренней памяти, а у Uno — всего 32 КБ. Негусто.
Ну, а что Pico может противопоставить Portenta H7? Окей, у этой платы Arm Cortex M7 + M4, который может работать с частотой вплоть до 480 МГц, плюс 2 МБ внутренней памяти и 1 МБ ОЗУ. У платы есть WiFi, Buetooth, интерфейс для подключения камеры и GPU. В целом Potenta выигрывает по всем фронтам, очень мощная плата для своего класса. Но если вспомнить, что стоит она около $109 (с налогами), и сравнить эту цену с $4 для Pico, выбор становится очевидным.
Победитель: Raspberry Pi Pico
Программирование Raspberry Pi Pico vs Arduino
Arduino IDE — интегрированная среда разработки для Windows, MacOS и Linux, разработанная на Си и C ++, предназначенная для создания и загрузки программ на Arduino-совместимые платы. Есть альтернативы — PlatformIO и Arduino Create, облачная среда от Arduino. Но, в целом, это все та же IDE.
С течением времени она эволюционировала, улучшалась, так что теперь есть встроенные функции вроде управления несколькими платами, плюс средства для поиска и установки библиотек пакетов для надстроек и аксессуаров. Arduino Create — удобная облачная среда, которую можно использовать как для решения простейших задач, так и для более сложных проектов. PlatformIO поставляется в трех версиях — инструмент командной строки, выделенная IDE или же средство интеграции с существующей IDE, например Microsoft Visual Studio Code.
Что касается новой платформы, Raspberry Pi Pico, но кодить в этом случае можно в среде C и MicroPython. Причем сами разработчики платформы рекомендуют последний вариант. В случае с MicroPython и Pico все просто отлично. Работать с языком можно при помощи Python Shell, известном как REPL (Read, Eval, Print, Loop), или же IDE вроде Thonny. Все это дает возможность быстро писать и деплоить код.
Если все же нужно работать с С, то есть два варианта — пишем код в редакторе (Vi / Vim. Nano), а потом используем консольные инструменты. Либо же используем разные расширения для сборки и переноса кода на Pico. Оба подхода нормально работают, но это не очень удобно. Правда, вскоре появится третий вариант — обновленный IDE Arduino с поддержкой чипа RP2040.
Победитель: Raspberry Pi Pico
Простота и удобство работы с платами
Как уже говорилось выше, другие модели Raspberry Pi — это полноценные ПК. Они работают под управлением полноценной ОС. Pico — микроконтроллер без ОС.
Соответственно, вне зависимости от выбранного языка, нужно прошивать Pico образом этого языка. Это дает возможность потом работать с платой, загружая код прямо в нее. Формать образов — UF2 от Microsoft. Для того, чтобы прошить образ, нужно нажать на BOOTSEL после подключения miscro USB кабеля, затем загрузить UF2 файл на диск RPI-R2 и через несколько скунд можно работать. Т.е. можно открывать тот же Thonny и начинать писать код.
С языком C/C++ все несколько сложнее. Здесь нужно использовать уже консоль, текстовый редактор, загружать дополнительные приложения и следить за зависимостями. Если все хорошо, то получается проект, который загружается вручную в виде UF2 файла в Pico.
Немного автоматизировать эту задачу можно при помощи Microsoft«s Visual Studio Code, который дает возможность написать код проекта и создать нужный файл в несколько кликов. Это не самый удобный процесс для новичков, но все решаемо. Кстати, команда Arduino недавно заявила о том, что вскоре можно будет работать с RP2040 посредством Arduino IDE.
Что касается непосредственной работы с платами, то нужно упомянуть, что Raspberry Pi Pico поступает нераспаянной, т.е. без пинов. Их можно припаять самостоятельно, для чего, конечно, нужен паяльник. Arduino продаются уже с пинами, за исключением таких плат, как Arduino Nano Every и Nano 33 IoT. А значит, можно сразу приступать к работе.
Но это мелочи, в итоге проще работать все же с Pico, так что плата побеждает и здесь.
Энергопотребление
Raspberry Pi Pico — эффективная плата для встраиваемых проектов. По сравнению с типичным Raspberry Pi, Pico потребляет гораздо меньше. Просто потому, что это микроконтроллер.
В нашем обзорном тесте мы запитали Raspberry Pi Pico с 12 светодиодами Neopixel на полной яркости от источника питания 5 В. Потребляемый ток — 140 мА, 0,7 Вт! Это отлично, поскольку Raspberry Pi 4, работающий в режиме ожидания показывает результат в 4–5 Вт. Итак, по сравнению с Raspberry Pi, Pico потребляет энергию, но как он сравнивается с Arduino Uno, выполняющим тот же тест?
При 5 В — 90 мА, 0,45 Вт! Таким образом, Arduino Uno потребляет меньше, но этого и следовало ожидать, учитывая конфигурацию микроконтроллера. Если повторить тест с другой платой, скажем, Portenta H7, то мы увидим гораздо более высокое энергопотребление, поскольку процессор Arm, используемый на Portenta, более мощный. Он даже мощнее, чем RP2040.
Победитель: Arduino
В сухом остатке
В целом, обзор достаточно субъективный. В итоге получается, что победитель — Pico, с его ценой в $4, широким спектром возможностей, документацией и простотой в работе. Это лучшая плата для проектов с микроконтроллерами, поскольку за минимум денег мы получаем максмум возможностей. При этом все работает так, как заявлено, в отличие от многих других плат.
С некоторыми из них приходится изрядно повозиться, чтобы заставить работать. Плюс ко всему, MicroPython — лучший вариант для работы, с его помощью плату можно запустить очень быстро. После того, как разработчики Arduino IDE добавят поддержку Pico, без проблем можно будет работать и с С/С++. И тогда поклонники Arduino, которые привыкли к своему микроконтроллеру и принципам работы с ним, смогут опробовать и Pico.