image

В ноябре 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 Lab IDE.


Соединение с платой

Чтобы соединить плату со средой, нужно нажать кнопку 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-архитектуру и как мы их решали

Комментарии (11)


  1. ugsm
    00.00.0000 00:00
    +4

    попробовал читать текст, но постоянно меняющиеся моргающие картинки между редкими абзацами совершенно не способствуют этому.


    1. Doctor_IT Автор
      00.00.0000 00:00

      Здравствуйте! Жаль, что гифки показались лишними. Спасибо за обратную связь, учту при подготовке следующих публикаций.


      1. sim2q
        00.00.0000 00:00
        +1

        наверное можно просто спрятать под спойлер


        1. 4p4
          00.00.0000 00:00

          Или просто не достаточно интересно.


    1. fiego
      00.00.0000 00:00

      А мне, наоборот, понравились анимации.


  1. kimor
    00.00.0000 00:00

    Прочитал до конца и в самом конце запнулся в месте не предвещающем сложностей -- опросе. Как мне ответить если я использую MicroPython примерно в половине моих проектов?


    1. Doctor_IT Автор
      00.00.0000 00:00

      Можно создать второй аккаунт, чтобы проголосовать за два варианта — за первый и второй :з


      1. masai
        00.00.0000 00:00

        Увы, нельзя, это нарушение правил. :(


      1. kimor
        00.00.0000 00:00

        Это запрещено здесь. Так как же мне быть? До сих пор страдаю непроголосовамши!


        1. Doctor_IT Автор
          00.00.0000 00:00

          отредактировал опрос)


  1. fiego
    00.00.0000 00:00

    сложно найти кроссплатформенную среду разработки, которая была бы так же проста, как оригинальная Arduino IDE

    Проста, тривиальна и малофункциональна. Обычно, проще нормальную IDE научить микроконтроллерам, чем мучиться в этой "ИДЕ"