Среда разработки RV Circuit Studio

Python для микроконтроллера — CircuitPython

Главное окно RV Circuit Studio.

RV Circuit Studio

Сверху окна имеется меню, состоящее исключительно из иконок. Первый блок отвечает за работу с проектами и файлам:

  • New project — создать новый проект;
  • Open project — открыть проект;
  • New file — создать новый файл;
  • Save — сохранить текущий проект/файл;
  • Save As — сохранить как;
  • Close — закрыть.

Второй раздел посвящён контролю над инструментами:

  • Toggle explorer — показать/скрыть дерево проекта;
  • Toggle snippets — показать/скрыть примеры;
  • Toggle code panel — показать/скрыть редактор кода;
  • Toggle REPL Terminal — показать/скрыть REPL терминал;
  • Toggle Debug panel — показать/скрыть окно отладки.

В третьем разделе меню находятся дополнительные иструменты:

  • Save and run on board (Stop running code) — сохранить программу на устройство и запустить её;
  • Start a step-through debug session on the board — запустить отладку;
  • Format code with Black — автоформат кода с помощью модуля Black (требует дополнительной установки через pip);
  • Toggle serial data plotter — показать/скрыть график;
  • Manage CIRCUITPY/lib/ library files — работа с библиотеками.

В самом конце можно найти:

  • Port — выбор COM-порта;
  • Baud — выборк скоросить COM-порта;
  • Find & Replace — поиск и замена по коду;
  • Settings — настройки среды;
  • About — общая информация о среде.

REPL — интерпретатор языка Python

Если отладочная плата подключена к компьютеру, редактор RV Circuit Studio автоматически её увидит отобразит в терминале REPL текущий вывод программы. Если программы нет, или она остановлена, появится стандартное приветствие.

Auto-reload is on. Simply save files over USB to run them or enter REPL to disable.
code.py output:

Code done running.

Press any key to enter the REPL. Use CTRL-D to reload.

Нажмём любую кнопку на клавиатуре и получим приглашение:

Adafruit CircuitPython 9.2.8 on 2025-07-03; RobotClass Graphite S3 with ESP32S3
>>> 

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

Вводим команды друг за другом, каждый раз нажимая Enter. Сначала присваиваем число 5 переменной a. Затем число 6 для b. Затем складываем их и результат присваиваем переменной c. Наконец, выводим результат функцией print.

>>> a=5
>>> b=6
>>> c=a+b
>>> print(c)
11

Работает! Ну а теперь будем управлять светодиодом. Для этого нам потребуется подключить библиотеку board, которая специфична для каждой отладочной платы. Именно эта библиотека знает как пронумерованы контакты на плате, и какие у них есть синонимы.

Чтобы посмотреть все доступные контакты, используем функцию dir.

>>> import board
>>> dir(board)
['__class__', '__name__', 'APACI', 'APADI', 'BOOT0', 'BUTTON', 'D0', 'D1', 'D10', 'D11', 'D12', 'D13', 'D14', 'D15', 'D17', 'D18', 'D2', 'D21', 'D3', 'D35', 'D36', 'D37', 'D38', 'D39', 'D4', 'D40', 'D41', 'D42', 'D5', 'D6', 'D7', 'D8', 'D9', 'I2C', 'L', 'LED', 'MISO', 'MOSI', 'RX', 'SCK', 'SCL', 'SDA', 'SPI', 'TX', 'UART', 'VSENS', '__dict__', 'board_id']

Над понимать, что это все возможные имена контактов вместе с синонимами. Физических контактов меньше. Например, D13, LED и L — это одно и то же.

Следующий шаг — настройка контакта. Так же как и при работе с Arduino нам следует определить, в каком направлении будет работать контакт: на ввод или на вывод. Для этого подключим из библиотеки digitalio два класса: функцию DigitalInOut и Direction:

from digitalio import DigitalInOut, Direction

Создаём объект класса DigitalInOut, указывая за какой контакт он будет отвечать. Мы будем работать со светодиодом на контакта D13. Его и пишем, вернее, его синоним.

led = DigitalInOut(board.LED)

Устанавливаем направление. В нашем случае это OUTPUT.

led.direction = Direction.OUTPUT 

Наконец, зажигаем светодиод присваивая led.value значение True (истина, как HIGH на Arduino). Вот что у нас получилось:

>>> from digitalio import DigitalInOut, Direction
>>> led = DigitalInOut(board.LED)
>>> led.direction = Direction.OUTPUT
>>> led.value=True

Если к 13-му контакту подключить светодиод, то он обязательно загорится!

Работа с файлами

В дереве проекта отображаются файлы и папки с накопителя CIRCUITPY. Чтобы открыть файл, просто делаем двойной щелчок мыши по нему. Содержимое файла откроется в блоке редактора кода.

Если нажать иконку меню Save, то файла сохранится на устройство.


Изменено: