REPL и Thonny: разговариваем с платой вживую

Осваиваем интерактивный диалог с микроконтроллером — главное удобство MicroPython.

REPL (Read-Eval-Print Loop) — интерактивная консоль, где вы вводите команды Python, а плата сразу их выполняет и печатает результат.

Зачем нужен REPL

В Arduino, чтобы проверить идею, надо написать скетч, скомпилировать и прошить — минуты ожидания. В MicroPython можно подключиться к плате и набрать 2 + 2, мгновенно получив 4. Это превращает разработку в живой эксперимент: проверить пин, помигать светодиодом, прочитать датчик — всё прямо в консоли.

Thonny — самый простой путь

Thonny — бесплатная среда разработки для Python, в которой есть готовая поддержка MicroPython. Порядок:

  1. Установить Thonny с сайта thonny.org.
  2. Подключить ESP32 по USB.
  3. В меню Tools → Options → Interpreter выбрать «MicroPython (ESP32)» и нужный порт.
  4. Снизу появится панель Shell — это и есть REPL.

Теперь в Shell можно писать:

>>> print("Привет с ESP32!")
Привет с ESP32!
>>> import machine
>>> machine.freq()
240000000

Команда machine.freq() вернула частоту процессора — 240 МГц.

Файлы boot.py и main.py

Чтобы код запускался сам после включения платы (а не только из REPL), его сохраняют в файлы на плате:

ФайлКогда выполняется
boot.pyСразу при старте — обычно настройки сети, частоты
main.pyПосле boot.py — основная логика устройства

В Thonny вы пишете код в редакторе и сохраняете его на устройство (Save → MicroPython device) под именем main.py. После перезагрузки платы программа запустится автоматически.

Полезные команды REPL

КлавишиДействие
Ctrl+CПрервать работающую программу
Ctrl+DМягкая перезагрузка (soft reset)
Ctrl+EРежим вставки большого кода (paste mode)

Как работает под капотом

REPL работает поверх того же последовательного порта (UART через USB), что и прошивка. Вы печатаете символы — они летят на плату, интерпретатор их читает (Read), выполняет (Eval), печатает результат (Print) и ждёт следующую строку (Loop). Когда вы сохраняете main.py, файл физически копируется во встроенную файловую систему ESP32 (она занимает часть флеш-памяти). При старте прошивка ищет сначала boot.py, потом main.py и выполняет их.

Частые ошибки

  • Порт занят. Если открыт другой монитор порта, Thonny не подключится — закройте лишние программы.
  • Программа в main.py с while True «висит». Плата занята циклом и не отвечает в REPL — нажмите Ctrl+C, чтобы прервать.
  • Забыть сохранить именно на устройство. Сохранение на компьютер не запустит код на плате.

Итог

  • REPL — живая консоль Python прямо на плате, главный инструмент отладки.
  • Thonny даёт REPL и редактор в одном окне.
  • boot.py и main.py запускаются автоматически при включении.
  • Ctrl+C прерывает программу, Ctrl+D перезагружает.
Проверьте себя
1. Что означает аббревиатура REPL?
ARemote Electric Power Line
BRead-Eval-Print Loop — читать, выполнить, напечатать, повторить
CRun Every Python Library
DReset Pin Logic
2. Какой файл MicroPython запускает основную логику устройства после загрузки?
Amain.py
Bindex.html
Csetup.c
Dconfig.ini
3. Какая комбинация прерывает работающую на плате программу?
ACtrl+S
BCtrl+C
CCtrl+Z
DCtrl+V