MicroPython:Содержание: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 26: | Строка 26: | ||
<div style="float:left;width:18%;padding:15px 10px 23px 18px;"> | <div style="float:left;width:18%;padding:15px 10px 23px 18px;"> | ||
<div style="padding-top:10px;"> | <div style="padding-top:10px;"> | ||
[[File: | [[File:micropythonlogo1.jpg|Люди делятся на тех, на кого можно положиться и на тех, на кого нужно положить.|alt=Люди делятся на тех, на кого можно положиться и на тех, на кого нужно положить.|150px|center|link=Поддержать проект]]</div></div> | ||
<div style="font-size:1.03em;float:right;width:75%; padding:15px .5em .5em .5em;"> | <div style="font-size:1.03em;float:right;width:75%; padding:15px .5em .5em .5em;"> | ||
[[MicroPython]] – это минимизированная и эффективная реализация языка программирования [https://www.python.org/ Python 3], включающая в себя небольшую часть стандартной библиотеки [[Python]] и оптимизированная для работы на [[микроконтроллер]]ах и в ограниченных условиях. | [[MicroPython]] – это минимизированная и эффективная реализация языка программирования [https://www.python.org/ Python 3], включающая в себя небольшую часть стандартной библиотеки [[Python]] и оптимизированная для работы на [[микроконтроллер]]ах и в ограниченных условиях. |
Версия от 16:01, 10 декабря 2022
Добро пожаловать в раздел по MicroPython |
|
|
|
|
Содержание
Введение
Основы
Библиотеки[1]
В этом руководстве описаны встроенные в MicroPython модули (библиотеки функций и классов). Эти модули подразделяются на несколько категорий:
- Модули, в которых реализована часть стандартного функционала Python и не предназначенные для расширения пользователем.
- Модули, в которых реализована часть стандартного функционала Python и предоставляющие возможность для расширения пользователем (при помощи Python-кода).
- Модули, в которых реализованы MicroPython-расширения для стандартных Python-библиотек.
- Модули, специфичные для некоторых MicroPython-портов и поэтому не портируемые на другие платформы.
Важное примечание о доступности модулей и их содержимом: задача этого справочника – описать все модули и функции/классы проекта MicroPython. Но MicroPython] – это очень гибкая и настраиваемая система, и отдельные MicroPython-порты для разных плат/систем включают в себя лишь часть общего функционала MicroPython. Поэтому, что касается официальных портов, во-первых, разработчики стараются отфильтровать неприменимые элементы, и во-вторых, в данном справочнике некоторые функции помечены предложением «Доступность: ...» с информацией о том, в каких портах они поддерживаются.
Поэтому всегда помните, что некоторые функции/классы (или даже весь модуль), даже описанные в этом справочнике, могут быть недоступны в используемом вами MicroPython-порте на используемой вами платформе. Поиск общей информации о наличии/отсутствии функций лучше всего начать с раздела «Общая информация» об используемом вами MicroPython-порте.
На некоторых MicroPython-портах список доступных, встроенных библиотек, которые можно импортировать в код, можно узнать, введя в REPL следующее:
help('modules')
Помимо встроенных библиотек, описанных здесь, немало модулей из стандартного Python и несколько дополнительных MicroPython-расширений можно найти в проекте «micropython-lib».
Стандартные библиотеки Python и микро-библиотеки
Библиотеки, описанные ниже – это стандартные библиотеки Python, «микрофицированные» с целью подогнать их под стандарты MicroPython. Они включают в себя ключевой функционал Python-модулей и служат упрощенной заменой стандартной библиотеки Python. Некоторые модули ниже используют стандартные Python-названия, но с префиксом u – например, ujson вместо json. Это необходимо для того, чтобы показать, что модуль является микро-библиотекой, т.е. в нем реализована только часть функционала CPython. Используя правильное название, пользователь может написать расширяющий Python’овский модуль – чтобы улучшить совместимость с CPython (именно такой метод используется в проекте «micropython-lib», о котором говорилось выше).
В некоторых встраиваемых платформах, где может быть проблематично создавать Python’овский модуль-обертку для того, чтобы достичь совместимости названий с CPython, к микро-модулям можно обращаться и по «микро-названию» (с префиксом u), и по обычному названию (без префикса u). Обычное название можно переписать с помощью файла с перезаписанным названием, расположенным в sys.path (списке строк, указывающих пути для поиска модулей). К примеру, import json сначала будет искать файл json.py (или директорию json), и если найдет, то начнет его загрузку. А если не найдет, то перейдет к запасному варианту – загрузке встроенного модуля ujson.
- builtins - Встроенные функции и исключения
- cmath – математические функции для сложных чисел
- gc – управление сборщиком мусора
- math – математические функции
- sys – системные функции
- uarray – массивы числовых данных
- uasyncio – планировщик для асинхронных операций ввода/вывода
- ubinascii – преобразование данных между двоичным и ASCII форматами
- ucollections – коллекции и контейнеры
- uerrno – коды системных ошибок
- uhashlib – алгоритмы хэширования
- uheappq – алгоритм очереди с приоритетом (реализация на основе кучи)
- uio – потоковые объекты, с которыми можно выполнять операции чтения/записи
- ujson – преобразования между Python-объектами и JSON-форматом
- uos – базовые службы «операционной системы»
- ure – простые регулярные выражения
- uselect – ожидание событий в нескольких потоковых объектах
- usocket – сокеты Беркли
- ussl – модуль для работы с SSL/TLS
- ustruct – упаковка и распаковка примитивных типов данных
- utime – функции для работы со временем
- uzlib – библиотека zlib для сжатия данных
- _thread – многопоточность
Библиотеки MicroPython
В библиотеках ниже реализован функционал, который есть только в MicroPython:
- btree – простая база данных BTree
- framebuf – манипуляции с кадровым буфером
- machine – функции для работы с аппаратными элементами плат
- micropython – доступ и управление «нутрянкой» MicroPython
- network – сетевые настройки
- ubluetooth – низкоуровневый Bluetooth
- ucryptolib – криптографические шифры
- uctypes – доступ к двоичным данным при помощи структур данных
Библиотеки для портов
В некоторых портах библиотеки, описываемые ниже, имеют те же функции/классы, что и в библиотеке [[MicroPython:Библиотеки/machine.html#module-machine machine], но в то же время их функционал отличается, так как предназначен для работы с аппаратными элементами, специфичной для используемой платформы.
Чтобы написать код для порта, используйте функции/классы из модуля [[MicroPython:Библиотеки/machine.html#module-machine machine]. Чтобы получить доступ к аппаратным элементам, специфичным для платформы, используйте соответствующую библиотеку – например, в случае с Pyboard это будет [[MicroPython:Библиотеки/pyb.html#module-pyb pyb].
Библиотеки для Pyboard
К числу специальных Pyboard-библиотек относятся:
- pyb – функции для Pyboard-платы
- Функции для работы со временем
- Функции для сброса
- Функции для прерываний
- Функции, для работы с питанием
- Прочие функции
- Классы
- lcd160cr – управление дисплеем LCD160CR
- Класс LCD160CR
- Конструкторы
- Статические методы
- Члены экземпляра
- Команды настройки
- Методы для манипулирования отдельными пикселями
- Рисование текста
- Рисование примитивных фигур
- Методы для тачскрина
- Продвинутые команды
- Константы
Библиотеки для WiPy
К числу специальных библиотек и классов WiPy относятся:
- wipy – модуль для управления функциями, специфичными для WiPy
- Класс ADCWiPy – аналогово-цифровое преобразование
- Класс ADCChannel – считывание аналоговых данных с внутренних/внешних источников
- Класс TimerWiPy – управление аппаратными таймерами
- Класс TimerChannel – настройка канала для таймера
Библиотеки для ESP8266 и ESP32
К числу специальных библиотек ESP8266 и ESP32 относятся:
Платы
ESP8266
- Краткий справочник по ESP8266
- Общая информация о порте ESP8266
- Руководство по MicroPython для ESP8266
ESP32
- Краткий справочник по ESP32
- Общая информация о порте MicroPython для ESP32
- Подготовка к работе с MicroPython для ESP32
WiPy
Программы
IDE
Прошивки[2]
Управление исходным кодом при разработке MicroPython осуществляется с помощью Git, и главный репозиторий проекта можно найти на GitHub по этой ссылке.
Полную и последнюю версию исходного кода MicroPython можно загрузить отсюда:
- micropython-1.13.tar.xz (54 Мб)
- micropython-1.13.zip (103 Мб)
Ежедневные «снимки» этого GitHub-репозитория (без подмодулей) можно найти по эти ссылкам:
Прошивки для различных микроконтроллерных портов и плат создаются ежедневно, и найти их можно по ссылкам ниже. Кроме того, список всех доступных прошивок можно найти тут.