Python для микроконтроллера — CircuitPython | Класс робототехники
2025.10.18 23:18
Войти или зарегистрироваться Menu Товары Уроки Магазин Уроки Доставка Оплата Написать нам
Python для микроконтроллера CircuitPython
Олег ЕвсегнеевPython один из самых популярных языков в мире, и если вы его ещё не знаете, обязательно следует с ним познакомиться. А уж если вы заглянули на RobotClass, то изучение python правильно будет совместить с изучением электроники.
Сам по себе язык Python невозможно заставить работать на таком слабом вычислительном устройстве, как микроконтроллер. Одна из причин мало памяти для хранения инфраструктуры языка. Чтобы решить эту задачу была разработана специальная версия языка MicroPython .
MicroPython позволяет запускать Python-скрипты на микроконтроллерах esp8266, esp32, stm32, nRF и пр. А вот на Arduino с микроконтроллером atmega328 этот язык уже не заработает.
CircuitPython
Специально для образовательных целей компания Adafruit доработала язык MicroPython и выпустила свою версию его под названием CircuitPython . Главной ценностью этой версии является наличие огромного количества совместимых библиотек, которые позволяют работать с привычными нам датчиками, дисплеями, драйверами и прочими радостями.
Так же как и свой прародитель CircuitPython может работать на множестве разных микроконтроллеров. Далее мы будем ориентироваться именно на язык CircuitPython.
Для экспериментов на этом уроке мы будем использовать отладочную плату Графит-S2, разработанную в RobotClass. Эту плату или её аналоги можно купить у нас в интернет-магазине.
Код: 2924Микроконтроллер с CircuitPython
Чтобы микроконтроллер умел работать с CircuitPython на нём уже должна быть установлена специальная инфраструктура (прошивка). Для примера, подключим отладочную плату Графит-S2 к компьютеру через USB кабель и посмотрим на реакцию. Работать будем в ОС Windows.
После подключения в списке доступных дисков появится новый накопитель с именем CIRCUITPY.
Зайдём в этот накопитель и увидим такую структуру папок.
Самое важно здесь это папка lib и файл скрипта code.py (в Python программы часто называют скриптами). В папке хранятся дополнительные библиотеки, которые необходимы для работы программы. Файл code.py хранит скрипт на языке Python, который запускается каждый раз когда мы его сохраняем на накопитель, или когда подаём питание на отладочную плату, или нажимаем кнопку сброса.
Кроме того, в списке устройств появится новый COM порт. С помощью этого виртуального порта можно будет работать с интерпретатором языка Python. Об этом чуть позже.
Среда разработки Mu
Итак у нас есть доступ к программе на Python, скорее бы уже что-нибудь написать. Но пока ещё одна остановка.
Редактировать программу можно и в обычном текстовом редакторе, однако удобнее для этого использовать так называемые IDE (это как Arduino IDE для Arduino). Помимо текстового редактора IDE имеют набор полезных функций: систему проверки кода, функцию загрузки на контроллер, терминал для связи с контроллером. А для Python будет ещё важным иметь возможность работать с интерпретатором языка (REPL).
Для CircuitPython (и для MicroPython тоже) имеется удобная среда Mu .
https://codewith.mu/
В Mu есть всё самое необходимое для успешного начала работы с CircuitPython. Теперь приступим к программированию.
REPL интерпретатор языка Python
Если отладочная плата подключена к компьютеру, редактор Mu автоматически её увидит и в нижнем правом углу окна появится иконка микросхемы без красного крестика. Если так, то значит всё хорошо и можно работать дальше.
Запустим интерпретатор и будем выполнять программу по шагам. Это станет необычным опытом, если до этого вы работали только с Arduino и программировали исключительно на компилируемых языках.
Жмём кнопку Последовательный . В нижней части редактора откроется консоль интерпретатора. Если на плате уже работает какая-то программа, нам следует прервать её выполнение комбинацией Ctrl+С. В результате появится приглашение нажать любую кнопку для активации командной строки REPL (Press any key to enter REPL). Жмём любую кнопку. Результат:
Итак, теперь интерпретатор языка готов принимать наши команды. Чтобы убедиться в этом, напишем простую программу по сложению двух чисел.
Вводим команды друг за другом, каждый раз нажимая Enter . Сначала присваиваем число 5 переменной a. Затем число 6 для b. Затем складываем их и результат присваиваем переменной c. Наконец, выводим результат функцией print .
Работает! Ну а теперь будем управлять светодиодом. Для этого нам потребуется подключить библиотеку board, которая специфична для каждой отладочной платы. Именно эта библиотека знает как пронумерованы контакты на плате, и какие у них есть синонимы.
Чтобы посмотреть все доступные контакты, используем функцию dir .
Над понимать, что это все возможные имена контактов вместе с синонимами. Физических контактов меньше. Например, 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). Вот что у нас получилось:
Посмотрите на светодиод, он горит!
Мигаем светодиодом на CircuitPython
Что ж, с интерпретатором познакомились. Это удобный инструмент, если нужно быстро что-нибудь проверить. В реальной задаче, конечно, программисты сначала пишут полный код программы, а потом его запускают целиком.
Напишем программу для мигания светодиодом. Прямо как на старой доброй Ардуино ( урок про светодиод ).
Жмём кнопку Загрузить и выбираем файл code.py на накопителе CIRCUITPY. Пишем код.
import time import board from digitalio import DigitalInOut, Direction led = DigitalInOut(board.D13) led.direction = Direction.OUTPUT while True: led.value = True time.sleep(0.1) led.value = False time.sleep(1.0)Добавилась библиотека time , из которой мы используем функцию sleep для организации паузы. Это аналог delay в Arduino IDE, только в sleep указываются секунды, а в delay миллисекунды.
Сразу после настройки контакта, мы запускаем бесконечный цикл. В Arduino IDE таким циклом была функция loop().
while True:Обратите внимание, всё что внутри цикла имеет отступ слева на равно число пробелов. Это одна из особенностей языка Python, в нём нет привычных фигурных скобок.
О тонкостях языка Python поговорим в других уроках. А теперь жмём в редакторе кнопку Сохранить и программа сразу начинает выполняться на микроконтроллере светодиод начинает мигать!
Полезные ссылки
Официальный сайт MicroPython: https://micropython.org
Среда разработки Mu: https://codewith.mu/
ВконтактеИзменено: 4 Сен, 2022 14:10
Python для микроконтроллера CircuitPython : 2 комментария
Andrei Andrei говорит 02.12.2023 в 18:30 :у меня при запуске программы вылает ошибку что не найдени не один плагин qt что делать?
Ответить ↓ Олег Евсегнеев говорит 02.12.2023 в 19:44 :При запуске какой программы? Покажите скриншот.
Ответить ↓Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев .
Как купить? Оплата Доставка Написать нам Гарантия и возврат Контакты Наша история Карта сайта Политика конфиденциальности- Программирование на языке python, помогите советом ...
- Micropython - это просто. Часть первая
- КАК СОЗДАТЬ КОНТРОЛЛЕР ИГРОКА НА PYTHON? | УРОК 3
- Python для микроконтроллера — CircuitPython
- Как использовать Python для работы с ...
- Python для микроконтроллеров
- Программирование контроллеров или как стать ...
- Подключение контроллера к проекту на python
- Python для микроконтроллеров. Учимся ...
- Пишем программу для контроллера TXT на Python
- Программирование на языке python, помогите советом ...
9 мар. 2025 г. — Для работы с MQTT в Python используйте библиотеку paho-mqtt . Она позволяет отправлять и получать сообщения через MQTT-брокер по стандартным ... - Micropython - это просто. Часть первая
Привет от преподавателя Международной школы программирования и дизайна CODDY! В этом коротком видеоролике ты научишься создавать контроллер ... - КАК СОЗДАТЬ КОНТРОЛЛЕР ИГРОКА НА PYTHON? | УРОК 3
4 сент. 2022 г. — MicroPython позволяет запускать Python-скрипты на микроконтроллерах esp8266, esp32, stm32, nRF и пр. А вот на Arduino с микроконтроллером ... - Python для микроконтроллера — CircuitPython
5 авг. 2021 г. — Программирование контроллеров ... Для успешного освоения материалов курса желательно иметь базовые навыки программирования на языке Python. - Как использовать Python для работы с ...
25 янв. 2018 г. — main.py — основной скрипт, который запускается сразу после выполнения boot.py , в него записывается основная программа. Начинаем разработку ... - Python для микроконтроллеров
7 июл. 2017 г. — Все что мне в итоге надо это уметь создавать вебстраницу с элементами управления (кнопки, флажки, текстовые поля) и управлять с этой страницы ... - Программирование контроллеров или как стать ...
21 июн. 2018 г. — Пишем программу для контроллера TXT на Python · Устанавливаем интерпретатор Python · Устанавливаем модуль ftrobopy · Устанавливаем редактор текста ... - Подключение контроллера к проекту на python
11 дек. 2013 г. — Python для микроконтроллеров · используется синтаксис Python 3.3; · может исполнять файлы, а также имеет интерфейс командной строки; ... - Python для микроконтроллеров. Учимся ...
28 мая 2024 г. — Подключите микроконтроллер к компьютеру с помощью USB-кабеля. · Сконфигурируйте среду разработки для работы с микроконтроллером. · Создайте новый ... - Пишем программу для контроллера TXT на Python
20 мар. 2020 г. — Эта статья начинает курс уроков по программированию микроконтроллеров с помощью языка Micropython. Это сравнительно новый язык ...
9 мар. 2025 г. — Для работы с MQTT в Python используйте библиотеку paho-mqtt . Она позволяет отправлять и получать сообщения через MQTT-брокер по стандартным ...
Привет от преподавателя Международной школы программирования и дизайна CODDY! В этом коротком видеоролике ты научишься создавать контроллер ...
4 сент. 2022 г. — MicroPython позволяет запускать Python-скрипты на микроконтроллерах esp8266, esp32, stm32, nRF и пр. А вот на Arduino с микроконтроллером ...
5 авг. 2021 г. — Программирование контроллеров ... Для успешного освоения материалов курса желательно иметь базовые навыки программирования на языке Python.
25 янв. 2018 г. — main.py — основной скрипт, который запускается сразу после выполнения boot.py , в него записывается основная программа. Начинаем разработку ...
7 июл. 2017 г. — Все что мне в итоге надо это уметь создавать вебстраницу с элементами управления (кнопки, флажки, текстовые поля) и управлять с этой страницы ...
21 июн. 2018 г. — Пишем программу для контроллера TXT на Python · Устанавливаем интерпретатор Python · Устанавливаем модуль ftrobopy · Устанавливаем редактор текста ...
11 дек. 2013 г. — Python для микроконтроллеров · используется синтаксис Python 3.3; · может исполнять файлы, а также имеет интерфейс командной строки; ...
28 мая 2024 г. — Подключите микроконтроллер к компьютеру с помощью USB-кабеля. · Сконфигурируйте среду разработки для работы с микроконтроллером. · Создайте новый ...
20 мар. 2020 г. — Эта статья начинает курс уроков по программированию микроконтроллеров с помощью языка Micropython. Это сравнительно новый язык ...