Шаблон:MicroPython/Библиотеки: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
 
(не показано 10 промежуточных версий этого же участника)
Строка 1: Строка 1:
==Библиотеки<ref>[http://docs.micropython.org/en/latest/library/index.html docs.micropython.org - MicroPython libraries]</ref>==
==Библиотеки<ref>[http://docs.micropython.org/en/latest/library/index.html docs.micropython.org - MicroPython libraries]</ref>==


{{Спойлер|
{{Блок/Инфо4
'''Внимание!'''
|1=Внимание!
 
|2=
Важная вводная информация к этому разделу:
Важная вводная информация к этому разделу:
* В каждом модуле [[MicroPython]] реализована часть стандартного функционала [[Python]].
* В каждом модуле [[MicroPython]] реализована часть стандартного функционала [[Python]].
Строка 16: Строка 16:
* Модули, специфичные для некоторых MicroPython-портов и поэтому не портируемые на другие платформы.
* Модули, специфичные для некоторых MicroPython-портов и поэтому не портируемые на другие платформы.


Важное примечание о доступности модулей и их содержимом: задача этого справочника – описать все модули и функции/классы проекта [[MicroPython]]. Но [[MicroPython]] – это очень гибкая и настраиваемая система, и отдельные MicroPython-порты для разных плат/систем включают в себя лишь часть общего функционала [[MicroPython]]. Поэтому, что касается официальных портов, во-первых, разработчики стараются отфильтровать неприменимые элементы, и во-вторых, в данном справочнике некоторые функции помечены предложением ''«Доступность: ...»'' с информацией о том, в каких портах они поддерживаются.
Важное примечание о доступности модулей и их содержимом: задача этого справочника – описать все модули и функции/классы проекта [[MicroPython]]. Но [[MicroPython]]] – это очень гибкая и настраиваемая система, и отдельные MicroPython-порты для разных плат/систем включают в себя лишь часть общего функционала [[MicroPython]]. Поэтому, что касается официальных портов, во-первых, разработчики стараются отфильтровать неприменимые элементы, и во-вторых, в данном справочнике некоторые функции помечены предложением ''«Доступность: ...»'' с информацией о том, в каких портах они поддерживаются.


Поэтому всегда помните, что некоторые функции/классы (или даже весь модуль), даже описанные в этом справочнике, могут быть недоступны в используемом вами MicroPython-порте на используемой вами платформе. Поиск общей информации о наличии/отсутствии функций лучше всего начать с раздела ''«Общая информация»'' об используемом вами MicroPython-порте.
Поэтому всегда помните, что некоторые функции/классы (или даже весь модуль), даже описанные в этом справочнике, могут быть недоступны в используемом вами MicroPython-порте на используемой вами платформе. Поиск общей информации о наличии/отсутствии функций лучше всего начать с раздела ''«Общая информация»'' об используемом вами MicroPython-порте.
Строка 34: Строка 34:
В некоторых встраиваемых платформах, где может быть проблематично создавать Python’овский модуль-обертку для того, чтобы достичь совместимости названий с [[CPython]], к микро-модулям можно обращаться и по ''«микро-названию»'' (с префиксом '''u'''), и по обычному названию (без префикса '''u'''). Обычное название можно переписать с помощью файла с перезаписанным названием, расположенным в [[sys.path]] (списке строк, указывающих пути для поиска модулей). К примеру, '''import json''' сначала будет искать файл '''json.py''' (или директорию [[json]]), и если найдет, то начнет его загрузку. А если не найдет, то перейдет к запасному варианту – загрузке встроенного модуля [[ujson]].
В некоторых встраиваемых платформах, где может быть проблематично создавать Python’овский модуль-обертку для того, чтобы достичь совместимости названий с [[CPython]], к микро-модулям можно обращаться и по ''«микро-названию»'' (с префиксом '''u'''), и по обычному названию (без префикса '''u'''). Обычное название можно переписать с помощью файла с перезаписанным названием, расположенным в [[sys.path]] (списке строк, указывающих пути для поиска модулей). К примеру, '''import json''' сначала будет искать файл '''json.py''' (или директорию [[json]]), и если найдет, то начнет его загрузку. А если не найдет, то перейдет к запасному варианту – загрузке встроенного модуля [[ujson]].


* [http://docs.micropython.org/en/latest/library/builtins.html Встроенные функции и исключения]
* [[MicroPython:Библиотеки/builtins|builtins]] - Встроенные функции и исключения
* [http://docs.micropython.org/en/latest/library/cmath.html cmath] – математические функции для сложных чисел
* [[MicroPython:Библиотеки/cmath|cmath]] – математические функции для сложных чисел
* [http://docs.micropython.org/en/latest/library/gc.html gc] – управление сборщиком мусора
* [[MicroPython:Библиотеки/gc|gc]] – управление сборщиком мусора
* [http://docs.micropython.org/en/latest/library/math.html math] – математические функции
* [[MicroPython:Библиотеки/math|math]] – математические функции
* [http://docs.micropython.org/en/latest/library/sys.html sys] – системные функции
* [[MicroPython:Библиотеки/sys|sys]] – системные функции
* [http://docs.micropython.org/en/latest/library/uarray.html uarray] – массивы числовых данных
* [[MicroPython:Библиотеки/uarray|uarray]] – массивы числовых данных
* [http://docs.micropython.org/en/latest/library/uasyncio.html uasyncio] – планировщик для асинхронных операций ввода/вывода
* [[MicroPython:Библиотеки/uasyncio|uasyncio]] – планировщик для асинхронных операций ввода/вывода
* [http://docs.micropython.org/en/latest/library/ubinascii.html ubinascii] – преобразование данных между двоичным и ASCII форматами
* [[MicroPython:Библиотеки/ubinascii|ubinascii]] – преобразование данных между двоичным и ASCII форматами
* [http://docs.micropython.org/en/latest/library/ucollections.html ucollections] – коллекции и контейнеры
* [[MicroPython:Библиотеки/ucollections|ucollections]] – коллекции и контейнеры
* [http://docs.micropython.org/en/latest/library/uerrno.html uerrno] – коды системных ошибок
* [[MicroPython:Библиотеки/uerrno|uerrno]] – коды системных ошибок
* [http://docs.micropython.org/en/latest/library/uhashlib.html uhashlib] – алгоритмы хэширования
* [[MicroPython:Библиотеки/uhashlib|uhashlib]] – алгоритмы хэширования
* [http://docs.micropython.org/en/latest/library/uheapq.html uheappq] – алгоритм очереди с приоритетом (реализация на основе кучи)
* [[MicroPython:Библиотеки/uheapq|uheappq]] – алгоритм очереди с приоритетом (реализация на основе кучи)
* [http://docs.micropython.org/en/latest/library/uio.html uio] – потоковые объекты, с которыми можно выполнять операции чтения/записи
* [[MicroPython:Библиотеки/uio|uio]] – потоковые объекты, с которыми можно выполнять операции чтения/записи
* [http://docs.micropython.org/en/latest/library/ujson.html ujson] – преобразования между Python-объектами и JSON-форматом
* [[MicroPython:Библиотеки/ujson|ujson]] – преобразования между Python-объектами и JSON-форматом
* [http://docs.micropython.org/en/latest/library/uos.html uos] – базовые службы «операционной системы»
* [[MicroPython:Библиотеки/uos|uos]] – базовые службы «операционной системы»
* [http://docs.micropython.org/en/latest/library/ure.html ure] – простые регулярные выражения
* [[MicroPython:Библиотеки/ure|ure]] – простые регулярные выражения
* [http://docs.micropython.org/en/latest/library/uselect.html uselect] – ожидание событий в нескольких потоковых объектах
* [[MicroPython:Библиотеки/uselect|uselect]] – ожидание событий в нескольких потоковых объектах
* [http://docs.micropython.org/en/latest/library/usocket.html usocket] – сокеты Беркли
* [[MicroPython:Библиотеки/usocket|usocket]] – сокеты Беркли
* [http://docs.micropython.org/en/latest/library/ussl.html ussl] – модуль для работы с SSL/TLS
* [[MicroPython:Библиотеки/ussl|ussl]] – модуль для работы с SSL/TLS
* [http://docs.micropython.org/en/latest/library/ustruct.html ustruct] – упаковка и распаковка примитивных типов данных
* [[MicroPython:Библиотеки/ustruct|ustruct]] – упаковка и распаковка примитивных типов данных
* [http://docs.micropython.org/en/latest/library/utime.html utime] – функции для работы со временем
* [[MicroPython:Библиотеки/utime|utime]] – функции для работы со временем
* [http://docs.micropython.org/en/latest/library/uzlib.html uzlib] – библиотека zlib для сжатия данных
* [[MicroPython:Библиотеки/uzlib|uzlib]] – библиотека zlib для сжатия данных
* [http://docs.micropython.org/en/latest/library/_thread.html _thread] – многопоточность
* [[MicroPython:Библиотеки/_thread|_thread]] – многопоточность


=== Библиотеки MicroPython ===
=== Библиотеки MicroPython ===


В библиотеках ниже реализован функционал, который есть только в MicroPython:
В библиотеках ниже реализован функционал, который есть только в MicroPython:
* [http://docs.micropython.org/en/latest/library/btree.html btree] – простая база данных BTree
* [[MicroPython:Библиотеки/btree|btree]] – простая база данных BTree
* [http://docs.micropython.org/en/latest/library/framebuf.html framebuf] – манипуляции с кадровым буфером
* [[MicroPython:Библиотеки/framebuf|framebuf]] – манипуляции с кадровым буфером
* [http://docs.micropython.org/en/latest/library/machine.html machine] – функции для работы с аппаратными элементами плат
* [[MicroPython:Библиотеки/machine|machine]] – функции для работы с аппаратными элементами плат
* [http://docs.micropython.org/en/latest/library/micropython.html micropython] – доступ и управление «нутрянкой» MicroPython
* [[MicroPython:Библиотеки/micropython|micropython]] – доступ и управление «нутрянкой» MicroPython
* [http://docs.micropython.org/en/latest/library/network.html network] – сетевые настройки
* [[MicroPython:Библиотеки/network|network]] – сетевые настройки
* [http://docs.micropython.org/en/latest/library/ubluetooth.html ubluetooth] – низкоуровневый Bluetooth
* [[MicroPython:Библиотеки/ubluetooth|ubluetooth]] – низкоуровневый Bluetooth
* [http://docs.micropython.org/en/latest/library/ucryptolib.html ucryptolib] – криптографические шифры
* [[MicroPython:Библиотеки/ucryptolib|ucryptolib]] – криптографические шифры
* [http://docs.micropython.org/en/latest/library/uctypes.html uctypes] – доступ к двоичным данным при помощи структур данных
* [[MicroPython:Библиотеки/uctypes|uctypes]] – доступ к двоичным данным при помощи структур данных


=== Библиотеки для портов ===
=== Библиотеки для портов ===


В некоторых портах библиотеки, описываемые ниже, имеют те же функции/классы, что и в библиотеке [http://docs.micropython.org/en/latest/library/machine.html#module-machine machine], но в то же время их функционал отличается, так как предназначен для работы с аппаратными элементами, специфичной для используемой платформы.
В некоторых портах библиотеки, описываемые ниже, имеют те же функции/классы, что и в библиотеке [[MicroPython:Библиотеки/machine.html#module-machine machine], но в то же время их функционал отличается, так как предназначен для работы с аппаратными элементами, специфичной для используемой платформы.


Чтобы написать код для порта, используйте функции/классы из модуля [http://docs.micropython.org/en/latest/library/machine.html#module-machine machine]. Чтобы получить доступ к аппаратным элементам, специфичным для платформы, используйте соответствующую библиотеку – например, в случае с Pyboard это будет [http://docs.micropython.org/en/latest/library/pyb.html#module-pyb pyb].
Чтобы написать код для порта, используйте функции/классы из модуля [[MicroPython:Библиотеки/machine.html#module-machine machine]. Чтобы получить доступ к аппаратным элементам, специфичным для платформы, используйте соответствующую библиотеку – например, в случае с Pyboard это будет [[MicroPython:Библиотеки/pyb.html#module-pyb pyb].


=== Библиотеки для Pyboard ===
=== Библиотеки для Pyboard ===


К числу специальных Pyboard-библиотек относятся:
К числу специальных Pyboard-библиотек относятся:
* [http://docs.micropython.org/en/latest/library/pyb.html pyb] – функции для Pyboard-платы
* [[MicroPython:Библиотеки/pyb|pyb]] – функции для Pyboard-платы
** Функции для работы со временем
** Функции для работы со временем
** Функции для сброса
** Функции для сброса
Строка 86: Строка 86:
** Прочие функции
** Прочие функции
** Классы
** Классы
* [http://docs.micropython.org/en/latest/library/lcd160cr.html lcd160cr] – управление дисплеем LCD160CR
* [[MicroPython:Библиотеки/lcd160cr|lcd160cr]] – управление дисплеем LCD160CR
** Класс LCD160CR
** Класс LCD160CR
** Конструкторы
** Конструкторы
Строка 102: Строка 102:


К числу специальных библиотек и классов WiPy относятся:
К числу специальных библиотек и классов WiPy относятся:
* [http://docs.micropython.org/en/latest/library/wipy.html wipy] – модуль для управления функциями, специфичными для WiPy
* [[MicroPython:Библиотеки/wipy|wipy]] – модуль для управления функциями, специфичными для [[WiPy]]
** Функции
* [[MicroPython:Библиотеки/machine.ADCWiPy|Класс ADCWiPy]] – [[аналогово-цифровое преобразование]]
* [http://docs.micropython.org/en/latest/library/machine.ADCWiPy.html Класс ADCWiPy] – аналогово-цифровое преобразование
* [[MicroPython:Библиотеки/machine.ADCChannel|Класс ADCChannel]] – считывание аналоговых данных с внутренних/внешних источников
** Конструкторы
* [[MicroPython:Библиотеки/machine.TimerWiPy|Класс TimerWiPy]] – управление аппаратными таймерами
** Методы
* [[MicroPython:Библиотеки/machine.TimerChannel|Класс TimerChannel]] – настройка канала для таймера
* [http://docs.micropython.org/en/latest/library/machine.ADCWiPy.html#class-adcchannel-read-analog-values-from-internal-or-external-sources Класс ADCChannel] – считывание аналоговых данных с внутренних/внешних источников
* [http://docs.micropython.org/en/latest/library/machine.TimerWiPy.html Класс TimerWiPy] – управление аппаратными таймерами
** Конструкторы
** Методы
* [http://docs.micropython.org/en/latest/library/machine.TimerWiPy.html#class-timerchannel-setup-a-channel-for-a-timer Класс TimerChannel] – настройка канала для таймера
** Методы
** Константы


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


К числу специальных библиотек ESP8266 и ESP32 относятся:
К числу специальных библиотек [[ESP8266]] и [[ESP32]] относятся:
* [http://docs.micropython.org/en/latest/library/esp.html esp] – функции, связанные с ESP8266 и ESP32
* [[MicroPython:Библиотеки/esp|esp]] – функции, связанные с [[ESP8266]] и [[ESP32]]
** Функции
* [[MicroPython:Библиотеки/esp32|esp32]] – функционал, специфичный для [[ESP32]]
* [http://docs.micropython.org/en/latest/library/esp32.html esp32] – функционал, специфичный для ESP32
** Функции
** Разделы flash-памяти
** RMT
** ULP-сопроцессор (от англ. «ultra-low-power», т.е. «ультра-низкое энергопотребление»)
** Константы

Текущая версия от 20:01, 7 мая 2022

Библиотеки[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