Установка CircuitPython на ESP

CircuitPython — это прежде всего интерпретатор языка python (об это подробнее в уроке про CircuitPython). И чтобы микроконтроллер можно было программировать на Python, необходимо этот интерпретатор на него как-то установить.

Разберём эту процедуру на примере установки CircuitPython на плату Графит-S2 от RobotClass (ESP32-S2-WROOM-I). Алгоритм установки на другие ESP контроллеры будет аналогичным.

Отладочную плату Графит-S2 или её аналоги можно купить у нас в интернет-магазине.

В корзину

Загрузчик TinyUF2

Начнём с установки загрузчика TinyUF2. Напомню, загрузчик — это такая небольшая программа, которая постоянно хранится в памяти микроконтроллера и обеспечивает более удобную загрузку на него пользовательских программ. Например, благодаря загрузчику мы можем так легко загружать программы на Arduino через USB (по факту, через виртуальный COM-порт).

Так вот, TinyUF2 — ещё более крутой: он заставляет контроллер работать как USB-накопитель и загружать программы простым копированием файлов. То есть, подключаете плату к свободному USB порту вашего компьютера, она определяется как флешка, и копируете туда файлы библиотек и саму программу. Очень удобно.

Для своих плат мы уже подготовили компоненты загрузчика TinyUF2, так что их остаётся только загрузить на микроконтроллер. Делается это с помощью python-утилиты esptool.

Перед запуском esptool, необходимо перевести контроллер в режим прошивки. По факту, мы должны активировать на нём ещё один загрузчик, более низкого уровня, который примет прошивку и разместит её в нужном месте памяти. Для платы Графит-S2 это делается так:

  • зажимаем кнопку RST (сброс);
  • нажимаем кнопку GPIO0;
  • отпускаем кнопку RST.

В результате в диспетчере устройств Windows должен появиться новый COM-порт. Запомним его номер. Для Linux ситуация аналогичная — смотрим какой порт появился и запоминаем его идентификатор.

Теперь запускаем esptool вот такой длинной командой. В команде можно заметить, что мы перечисляем все компоненты TinuUF2 и адреса в памяти контроллера, куда их следует записать.

c:\python39\python.exe c:\esp\esptool\esptool.py -p COM18 -b 460800 --before default_reset --after hard_reset --chip esp32s2  write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x1000 c:\esp\firmware\bootloader.bin 0x8000 c:\esp\firmware\partition-table.bin 0xe000 c:\esp\firmware\ota_data_initial.bin 0x2d0000 c:\esp\firmware\tinyuf2.bin

Измените номер порта (COM18) на тот, который мы запомнили ранее. Также измените пути к файлам, чтобы они соответствовали реальному расположению на вашем компьютере. По завершении процедуры, компьютер обнаружит новый накопитель.

Интерпретатор CircuitPython

Второй шаг — установка интерпретатора языка Python. Для этого используем всю прелесть TinyUF2 и просто скопируем файл с прошивкой на контроллер. После этого накопитель переподключится к компьютеру и сменит имя на CIRCUITPY.

Накопитель CircuitPython

Готово. Теперь можно обратиться к самому первому уроку на тему circuitpython и написать свою программу на языке Python.

Полезная информация

ESPTool

ESPTool — это программа на python, которая умеет загружать прошивки ESP модулей через COM-порт. Самый простой способ её установить — это воспользоваться установщиком пакетов pip

$ pip install esptool

Компоненты TinyUF2 для Графит-S2

https://download.robotclass.ru/circuitpython/graphite-s2/tinyuf2/

Прошивка CircutPython для Графит-S2

https://download.robotclass.ru/circuitpython/graphite-s2/firmware.uf2


Изменено:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.