Шаблон:MicroPython/Библиотеки: различия между версиями
Myagkij (обсуждение | вклад) |
Myagkij (обсуждение | вклад) |
||
(не показано 15 промежуточных версий этого же участника) | |||
Строка 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]]. | ||
* Названия MicroPython-версий стандартных Python-модулей обычно дополняются префиксом u – чтобы упростить возможность расширения. | * Названия MicroPython-версий стандартных [[Python]]-модулей обычно дополняются префиксом '''u''' – чтобы упростить возможность расширения. | ||
* В используемом вами порте или версии MicroPython может не быть инструментов/функций, описанных в этом справочнике (из-за ресурсных или каких-то других ограничений). | * В используемом вами порте или версии [[MicroPython]] может не быть инструментов/функций, описанных в этом справочнике (из-за ресурсных или каких-то других ограничений). | ||
}} | }} | ||
В этом руководстве описаны встроенные в MicroPython модули (библиотеки функций и классов). Эти модули подразделяются на несколько категорий: | В этом руководстве описаны встроенные в [[MicroPython]] модули (библиотеки функций и классов). Эти модули подразделяются на несколько категорий: | ||
* Модули, в которых реализована часть стандартного функционала Python и не предназначенные для расширения пользователем. | * Модули, в которых реализована часть стандартного функционала [[Python]] и не предназначенные для расширения пользователем. | ||
* Модули, в которых реализована часть стандартного функционала Python и предоставляющие возможность для расширения пользователем (при помощи Python-кода). | * Модули, в которых реализована часть стандартного функционала [[Python]] и предоставляющие возможность для расширения пользователем (при помощи Python-кода). | ||
* Модули, в которых реализованы MicroPython-расширения для стандартных Python-библиотек. | * Модули, в которых реализованы MicroPython-расширения для стандартных [[Python]]-библиотек. | ||
* Модули, специфичные для некоторых MicroPython-портов и поэтому не портируемые на другие платформы. | * Модули, специфичные для некоторых MicroPython-портов и поэтому не портируемые на другие платформы. | ||
Важное примечание о доступности модулей и их содержимом: задача этого справочника – описать все модули и функции/классы проекта MicroPython. Но MicroPython – это очень гибкая и настраиваемая система, и отдельные MicroPython-порты для разных плат/систем включают в себя лишь часть общего функционала MicroPython. Поэтому, что касается официальных портов, во-первых, разработчики стараются отфильтровать неприменимые элементы, и во-вторых, в данном справочнике некоторые функции помечены предложением «Доступность: ...» с информацией о том, в каких портах они поддерживаются. | |||
Поэтому всегда помните, что некоторые функции/классы (или даже весь модуль), даже описанные в этом справочнике, могут быть недоступны в используемом вами MicroPython-порте на используемой вами платформе. Поиск общей информации о наличии/отсутствии функций лучше всего начать с раздела «Общая информация» об используемом вами MicroPython-порте. | Важное примечание о доступности модулей и их содержимом: задача этого справочника – описать все модули и функции/классы проекта [[MicroPython]]. Но [[MicroPython]]] – это очень гибкая и настраиваемая система, и отдельные MicroPython-порты для разных плат/систем включают в себя лишь часть общего функционала [[MicroPython]]. Поэтому, что касается официальных портов, во-первых, разработчики стараются отфильтровать неприменимые элементы, и во-вторых, в данном справочнике некоторые функции помечены предложением ''«Доступность: ...»'' с информацией о том, в каких портах они поддерживаются. | ||
Поэтому всегда помните, что некоторые функции/классы (или даже весь модуль), даже описанные в этом справочнике, могут быть недоступны в используемом вами MicroPython-порте на используемой вами платформе. Поиск общей информации о наличии/отсутствии функций лучше всего начать с раздела ''«Общая информация»'' об используемом вами MicroPython-порте. | |||
На некоторых MicroPython-портах список доступных, встроенных библиотек, которые можно импортировать в код, можно узнать, введя в REPL следующее: | На некоторых MicroPython-портах список доступных, встроенных библиотек, которые можно импортировать в код, можно узнать, введя в REPL следующее: | ||
<syntaxhighlight lang="python" enclose="div"> | |||
help('modules') | help('modules') | ||
Помимо встроенных библиотек, описанных здесь, немало модулей из стандартного Python и несколько дополнительных MicroPython-расширений можно найти в проекте «micropython-lib». | </syntaxhighlight> | ||
Стандартные библиотеки Python и микро-библиотеки | |||
Библиотеки, описанные ниже – это стандартные библиотеки Python, «микрофицированные» с целью подогнать их под стандарты MicroPython. Они включают в себя ключевой функционал Python-модулей и служат упрощенной заменой стандартной библиотеки Python. Некоторые модули ниже используют стандартные Python-названия, но с префиксом u – например, ujson вместо json. Это необходимо для того, чтобы показать, что модуль является микро-библиотекой, т.е. в нем реализована только часть функционала CPython. Используя правильное название, пользователь может написать расширяющий Python’овский модуль – чтобы улучшить совместимость с CPython (именно такой метод используется в проекте «micropython-lib», о котором говорилось выше). | Помимо встроенных библиотек, описанных здесь, немало модулей из стандартного [[Python]] и несколько дополнительных [[MicroPython-расширений]] можно найти в проекте ''«micropython-lib»''. | ||
В некоторых встраиваемых платформах, где может быть проблематично создавать Python’овский модуль-обертку для того, чтобы достичь совместимости названий с CPython, к микро-модулям можно обращаться и по «микро-названию» (с префиксом u), и по обычному названию (без префикса u). Обычное название можно переписать с помощью файла с перезаписанным названием, расположенным в sys.path (списке строк, указывающих пути для поиска модулей). К примеру, import json сначала будет искать файл json.py (или директорию json), и если найдет, то начнет его загрузку. А если не найдет, то перейдет к запасному варианту – загрузке встроенного модуля ujson. | |||
* [ | === Стандартные библиотеки 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]]. | ||
* [ | |||
* [ | * [[MicroPython:Библиотеки/builtins|builtins]] - Встроенные функции и исключения | ||
* [ | * [[MicroPython:Библиотеки/cmath|cmath]] – математические функции для сложных чисел | ||
* [ | * [[MicroPython:Библиотеки/gc|gc]] – управление сборщиком мусора | ||
* [ | * [[MicroPython:Библиотеки/math|math]] – математические функции | ||
* [ | * [[MicroPython:Библиотеки/sys|sys]] – системные функции | ||
* [ | * [[MicroPython:Библиотеки/uarray|uarray]] – массивы числовых данных | ||
* [ | * [[MicroPython:Библиотеки/uasyncio|uasyncio]] – планировщик для асинхронных операций ввода/вывода | ||
* [ | * [[MicroPython:Библиотеки/ubinascii|ubinascii]] – преобразование данных между двоичным и ASCII форматами | ||
* [ | * [[MicroPython:Библиотеки/ucollections|ucollections]] – коллекции и контейнеры | ||
* [ | * [[MicroPython:Библиотеки/uerrno|uerrno]] – коды системных ошибок | ||
* [ | * [[MicroPython:Библиотеки/uhashlib|uhashlib]] – алгоритмы хэширования | ||
* [ | * [[MicroPython:Библиотеки/uheapq|uheappq]] – алгоритм очереди с приоритетом (реализация на основе кучи) | ||
* [ | * [[MicroPython:Библиотеки/uio|uio]] – потоковые объекты, с которыми можно выполнять операции чтения/записи | ||
* [ | * [[MicroPython:Библиотеки/ujson|ujson]] – преобразования между Python-объектами и JSON-форматом | ||
* [ | * [[MicroPython:Библиотеки/uos|uos]] – базовые службы «операционной системы» | ||
* [ | * [[MicroPython:Библиотеки/ure|ure]] – простые регулярные выражения | ||
* [ | * [[MicroPython:Библиотеки/uselect|uselect]] – ожидание событий в нескольких потоковых объектах | ||
Библиотеки MicroPython | * [[MicroPython:Библиотеки/usocket|usocket]] – сокеты Беркли | ||
* [[MicroPython:Библиотеки/ussl|ussl]] – модуль для работы с SSL/TLS | |||
* [[MicroPython:Библиотеки/ustruct|ustruct]] – упаковка и распаковка примитивных типов данных | |||
* [[MicroPython:Библиотеки/utime|utime]] – функции для работы со временем | |||
* [[MicroPython:Библиотеки/uzlib|uzlib]] – библиотека zlib для сжатия данных | |||
* [[MicroPython:Библиотеки/_thread|_thread]] – многопоточность | |||
=== Библиотеки MicroPython === | |||
В библиотеках ниже реализован функционал, который есть только в MicroPython: | В библиотеках ниже реализован функционал, который есть только в MicroPython: | ||
* [ | * [[MicroPython:Библиотеки/btree|btree]] – простая база данных BTree | ||
* [ | * [[MicroPython:Библиотеки/framebuf|framebuf]] – манипуляции с кадровым буфером | ||
* [ | * [[MicroPython:Библиотеки/machine|machine]] – функции для работы с аппаратными элементами плат | ||
* [ | * [[MicroPython:Библиотеки/micropython|micropython]] – доступ и управление «нутрянкой» MicroPython | ||
* [ | * [[MicroPython:Библиотеки/network|network]] – сетевые настройки | ||
* [ | * [[MicroPython:Библиотеки/ubluetooth|ubluetooth]] – низкоуровневый Bluetooth | ||
* [ | * [[MicroPython:Библиотеки/ucryptolib|ucryptolib]] – криптографические шифры | ||
* [ | * [[MicroPython:Библиотеки/uctypes|uctypes]] – доступ к двоичным данным при помощи структур данных | ||
Библиотеки для портов | |||
В некоторых портах библиотеки, описываемые ниже, имеют те же функции/классы, что и в библиотеке [ | === Библиотеки для портов === | ||
Чтобы написать код для порта, используйте функции/классы из модуля [ | |||
Библиотеки для Pyboard | В некоторых портах библиотеки, описываемые ниже, имеют те же функции/классы, что и в библиотеке [[MicroPython:Библиотеки/machine.html#module-machine machine], но в то же время их функционал отличается, так как предназначен для работы с аппаратными элементами, специфичной для используемой платформы. | ||
Чтобы написать код для порта, используйте функции/классы из модуля [[MicroPython:Библиотеки/machine.html#module-machine machine]. Чтобы получить доступ к аппаратным элементам, специфичным для платформы, используйте соответствующую библиотеку – например, в случае с Pyboard это будет [[MicroPython:Библиотеки/pyb.html#module-pyb pyb]. | |||
=== Библиотеки для Pyboard === | |||
К числу специальных Pyboard-библиотек относятся: | К числу специальных Pyboard-библиотек относятся: | ||
* [ | * [[MicroPython:Библиотеки/pyb|pyb]] – функции для Pyboard-платы | ||
** Функции для работы со временем | |||
** Функции для сброса | |||
** Функции для прерываний | |||
** Функции, для работы с питанием | |||
** Прочие функции | |||
** Классы | |||
* [ | * [[MicroPython:Библиотеки/lcd160cr|lcd160cr]] – управление дисплеем LCD160CR | ||
** Класс LCD160CR | |||
** Конструкторы | |||
** Статические методы | |||
** Члены экземпляра | |||
** Команды настройки | |||
** Методы для манипулирования отдельными пикселями | |||
** Рисование текста | |||
** Рисование примитивных фигур | |||
** Методы для тачскрина | |||
** Продвинутые команды | |||
** Константы | |||
Библиотеки для WiPy | |||
=== Библиотеки для WiPy === | |||
К числу специальных библиотек и классов WiPy относятся: | К числу специальных библиотек и классов WiPy относятся: | ||
* [ | * [[MicroPython:Библиотеки/wipy|wipy]] – модуль для управления функциями, специфичными для [[WiPy]] | ||
* [[MicroPython:Библиотеки/machine.ADCWiPy|Класс ADCWiPy]] – [[аналогово-цифровое преобразование]] | |||
* [ | * [[MicroPython:Библиотеки/machine.ADCChannel|Класс ADCChannel]] – считывание аналоговых данных с внутренних/внешних источников | ||
* [[MicroPython:Библиотеки/machine.TimerWiPy|Класс TimerWiPy]] – управление аппаратными таймерами | |||
* [[MicroPython:Библиотеки/machine.TimerChannel|Класс TimerChannel]] – настройка канала для таймера | |||
* [ | |||
* [ | === Библиотеки для ESP8266 и ESP32 === | ||
К числу специальных библиотек [[ESP8266]] и [[ESP32]] относятся: | |||
* [ | * [[MicroPython:Библиотеки/esp|esp]] – функции, связанные с [[ESP8266]] и [[ESP32]] | ||
* [[MicroPython:Библиотеки/esp32|esp32]] – функционал, специфичный для [[ESP32]] | |||
Библиотеки для ESP8266 и ESP32 | |||
К числу специальных библиотек ESP8266 и ESP32 относятся: | |||
* [ | |||
* [ | |||
Текущая версия от 20:01, 7 мая 2022
Библиотеки[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 – настройка канала для таймера