В ноябре 2022 года Arduino объявили, что MicroPython стал частью их экосистемы. Вместе с этим разработчики выпустили новую IDE — Arduino Lab for MicroPython. Но чем она лучше той же Thonny, которую до сих пор используют для программирования микроконтроллеров на Python? Давайте разбираться.
Thonny, покажи классику
Для программирования на MicroPython обычно используют среду разработки Thonny. Она простая и запускается в несколько действий: достаточно установить драйвер MicroPython на плату, загрузить IDE, выбрать в настройках нужный интерпретатор и порт для общения с платой.
И все — готово! Thonny стабильно работает с Raspberry Pi Pico, BBC micro:bit, ESP32 и ESP8266.
Теперь посмотрим, насколько сильно отличается Arduino Lab от старичка Thonny.
Знакомство с Arduino Lab
Arduino Lab — не первая среда Arduino, которая поддерживает MicroPython. Ранее компания интегрировала в свои продукты платформу OpenMV.
Установка Arduino Lab
Как в случае с Thonny, установка не занимает много времени: нужно просто скачать тулзу с официального сайта для своей операционной системы. Я проверил версии для MacOS и Windows и разницы не заметил.
После установки встречает уже знакомый интерфейс Arduino
Соединение с платой
Чтобы соединить плату со средой, нужно нажать кнопку Connect и выбрать COM-порт.
Но если подключить «чистую» плату — например, Raspberry Pi Pico — и нажать Connect, среда ее не увидит. Предварительно нужно прошить плату. В случае с Raspberry Pi Pico — загрузить uf2-образ. Тогда во вкладке Connect появится COM-порт.
Программирование платы
Создадим новый файл в скрипт и сохраним его, где удобно — в памяти платы или на диске компьютера. На результат это не повлияет.
Теперь попробуем запустить стандартный отладочный код: помигаем светодиодом с периодичностью в полсекунды.
from machine import Pin
import time
led = Pin(25, Pin.OUT)
while True:
led.on()
time.sleep_ms(250)
led.off()
time.sleep_ms(250)
Все работает, светодиод мигает, рефлексия по первому запуску Arduino Uno есть.
Ключевое отличие от Thonny — отсутствие окна с Preferences: нельзя выбрать конкретный интерпретатор. Предположительно, Arduino Lab должна это делать автоматически. Но сказать наверняка сложно, потому что я протестировал среду только на Raspberry Pi Pico. Плат, которые поддерживают MicroPython, гораздо больше.
Какие платы поддерживает Arduino Lab?
Под капотом — обычный MicroPython, разработчики этого не скрывают. То есть, в теории, можно использовать платы ESP8266, ESP32, Raspberry Pi Pico (Pico W) и PyBoard. Проблемы могут возникнуть с STM — это нужно проверять отдельно. Но ST-модели, которые поддерживают MicroPython, есть.
Разработчики предлагают использовать Arduino-платы линейки Nano — 33 BLE Sense, 33 BLE, RP2040 CONNECT — и Portenta H7. Но они редкие и дорогие. Поэтому рекомендую использовать Raspberry Pi Pico: у нее тот же чип RP2040, что и в Nano RP2040 Connect.
Платы Arduino, официально поддерживающие MicroPython.
Thonny или Arduino Lab?
«Мы протестировали MicroPython на классе респондентов и поняли, что сложно найти кроссплатформенную среду разработки, которая была бы так же проста, как оригинальная Arduino IDE», — Arduino.
Да, Arduino Lab появился недавно и еще не интегрирован полноценно в продукты Arduino. На данный момент среда уступает Thonny. Постараюсь выделить несколько проблем.
Минимализм привел к ограничениям
В Arduino Lab минималистичный, но малофункциональный интерфейс. Например, отсутствует привычная вкладка Preferences, в которой можно настроить редактор, запуск и отладку кода, терминал. Но все это есть в Thonny.
Arduino Lab еще сырая
Среда не сохраняет состояния предыдущих сеансов. После перезагрузки Arduino IDE нужно заново подключаться к плате и загружать скрипт, если он был ранее сохранен на плату или компьютер. Мелочь, но неприятная.
Видно, что Arduino Lab будут дорабатывать: во вкладке Files есть еще нерабочие макеты кнопок для проброса файлов с платы на компьютер. Не добавляли же их просто так? Посмотрим, что будет в релиз-версии.
Возможно, эти тексты тоже вас заинтересуют:
→ Подборка материалов для погружения в Angular: выбор сотрудников Selectel
→ Гитара из… броненосца, роботы-пылесосы и кое-что еще: очередные находки на испанской барахолке
→ Это вам не x86_64. Проблемы сборки Arch Linux под ARM-архитектуру и как мы их решали
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Вы используете в своих проектах MicroPython?
3.85% использую только его3
30.77% да24
65.38% нет51
Проголосовали 78 пользователей. Воздержались 20 пользователей.