MicroPython:Содержание

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Добро пожаловать в раздел по MicroPython
Поддержать проект
Резерв
Резерв
Резерв
Люди делятся на тех, на кого можно положиться и на тех, на кого нужно положить.
Люди делятся на тех, на кого можно положиться и на тех, на кого нужно положить.

MicroPython – это минимизированная и эффективная реализация языка программирования Python 3, включающая в себя небольшую часть стандартной библиотеки Python и оптимизированная для работы на микроконтроллерах и в ограниченных условиях.

В MicroPython имеется широкое разнообразие продвинутых функций: интерактивная командная строка, поддержка целых чисел произвольной точности, замыкания, списковое включение, генераторы, обработка исключений и многое другое. Но при этом он достаточно компактен, чтобы уместиться в пределах 256 Кб кодового пространства и 16 Кб памяти RAM.

Содержание


Введение

Основы

Библиотеки[1]

Внимание!

Важная вводная информация к этому разделу:

  • В каждом модуле MicroPython реализована часть стандартного функционала Python.
  • Названия MicroPython-версий стандартных Python-модулей обычно дополняются префиксом u – чтобы упростить возможность расширения.
  • В используемом вами порте или версии MicroPython может не быть инструментов/функций, описанных в этом справочнике (из-за ресурсных или каких-то других ограничений).

В этом руководстве описаны встроенные в 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 относятся:

Библиотеки для ESP8266 и ESP32

К числу специальных библиотек ESP8266 и ESP32 относятся:

  • esp – функции, связанные с ESP8266 и ESP32
  • esp32 – функционал, специфичный для ESP32

Платы

ESP8266

ESP32

WiPy

Программы

IDE

Прошивки[2]

Управление исходным кодом при разработке MicroPython осуществляется с помощью Git, и главный репозиторий проекта можно найти на GitHub по этой ссылке.

Полную и последнюю версию исходного кода MicroPython можно загрузить отсюда:

Ежедневные «снимки» этого GitHub-репозитория (без подмодулей) можно найти по эти ссылкам:

Прошивки для различных микроконтроллерных портов и плат создаются ежедневно, и найти их можно по ссылкам ниже. Кроме того, список всех доступных прошивок можно найти тут.

PyBoard v1 и PyBoard серии D

Платы STM32

Платы TI CC3200

ESP-платы Espressif

Нельзя купить счастье за деньги, но можно арендовать.
Нельзя купить счастье за деньги, но можно арендовать.
Платежная система Реквизиты
VISA

4249170472080526

ETH

0x978A62F272a66933a69f8e6e986e29dAe29971b0

ETC

0xC24b83E0FEBa3d36b3b46E471Bf7e904BCA778E8

Bitcoin

bc1qxcgvralj54s5nkcj3y9zqg09p94cp0e60auked

Litecoin

ltc1qes7y26hkchtaqty3dmw48edm2j35evmgwuurc7

DogeCoin

DJY5XpvwqMUyByp6zaNeYujGDkWzMMp746

Kaspa

kaspa:qpsmyhh5tme4fgyq592c3qqyw9t4p39y9muz85xuqu2extz3w74hvdgtpnvyh

Tron TA6k7HCHSUUTxQSsVC8UzajTtcL1fJCajh
ZIL zil15mqcgc5uxvj2dleq8vy5a86jgy8axh6rgpu3ah
DNX XwnNZXxXvkNKqd9EiBBQo529fn5iCcGYP75EXaYdWVmqKQkCYp59uQtTDgnM4X3qjsZrgfgojbnGEZRVepMAQYce28bfbb9CX

См.также

Внешние ссылки