Шаблон:MicroPython/Библиотеки: различия между версиями
Myagkij (обсуждение | вклад) (Новая страница: «==Библиотеки==») |
Myagkij (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
==Библиотеки== | ==Библиотеки<ref>[http://docs.micropython.org/en/latest/library/index.html docs.micropython.org - MicroPython libraries]</ref>== | ||
{{Спойлер| | |||
Внимание! | |||
Важная вводная информация к этому разделу: | |||
* В каждом модуле 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. | |||
* [http://docs.micropython.org/en/latest/library/builtins.html Встроенные функции и исключения] | |||
* [http://docs.micropython.org/en/latest/library/cmath.html cmath] – математические функции для сложных чисел | |||
* [http://docs.micropython.org/en/latest/library/gc.html gc] – управление сборщиком мусора | |||
* [http://docs.micropython.org/en/latest/library/math.html math] – математические функции | |||
* [http://docs.micropython.org/en/latest/library/sys.html sys] – системные функции | |||
* [http://docs.micropython.org/en/latest/library/uarray.html uarray] – массивы числовых данных | |||
* [http://docs.micropython.org/en/latest/library/uasyncio.html uasyncio] – планировщик для асинхронных операций ввода/вывода | |||
* [http://docs.micropython.org/en/latest/library/ubinascii.html ubinascii] – преобразование данных между двоичным и ASCII форматами | |||
* [http://docs.micropython.org/en/latest/library/ucollections.html ucollections] – коллекции и контейнеры | |||
* [http://docs.micropython.org/en/latest/library/uerrno.html uerrno] – коды системных ошибок | |||
* [http://docs.micropython.org/en/latest/library/uhashlib.html uhashlib] – алгоритмы хэширования | |||
* [http://docs.micropython.org/en/latest/library/uheapq.html uheappq] – алгоритм очереди с приоритетом (реализация на основе кучи) | |||
* [http://docs.micropython.org/en/latest/library/uio.html uio] – потоковые объекты, с которыми можно выполнять операции чтения/записи | |||
* [http://docs.micropython.org/en/latest/library/ujson.html ujson] – преобразования между Python-объектами и JSON-форматом | |||
* [http://docs.micropython.org/en/latest/library/uos.html uos] – базовые службы «операционной системы» | |||
* [http://docs.micropython.org/en/latest/library/ure.html ure] – простые регулярные выражения | |||
* [http://docs.micropython.org/en/latest/library/uselect.html uselect] – ожидание событий в нескольких потоковых объектах | |||
* [http://docs.micropython.org/en/latest/library/usocket.html usocket] – сокеты Беркли | |||
* [http://docs.micropython.org/en/latest/library/ussl.html ussl] – модуль для работы с SSL/TLS | |||
* [http://docs.micropython.org/en/latest/library/ustruct.html ustruct] – упаковка и распаковка примитивных типов данных | |||
* [http://docs.micropython.org/en/latest/library/utime.html utime] – функции для работы со временем | |||
* [http://docs.micropython.org/en/latest/library/uzlib.html uzlib] – библиотека zlib для сжатия данных | |||
* [http://docs.micropython.org/en/latest/library/_thread.html _thread] – многопоточность | |||
Библиотеки MicroPython | |||
В библиотеках ниже реализован функционал, который есть только в MicroPython: | |||
* [http://docs.micropython.org/en/latest/library/btree.html btree] – простая база данных BTree | |||
* [http://docs.micropython.org/en/latest/library/framebuf.html framebuf] – манипуляции с кадровым буфером | |||
* [http://docs.micropython.org/en/latest/library/machine.html machine] – функции для работы с аппаратными элементами плат | |||
* [http://docs.micropython.org/en/latest/library/micropython.html micropython] – доступ и управление «нутрянкой» MicroPython | |||
* [http://docs.micropython.org/en/latest/library/network.html network] – сетевые настройки | |||
* [http://docs.micropython.org/en/latest/library/ubluetooth.html ubluetooth] – низкоуровневый Bluetooth | |||
* [http://docs.micropython.org/en/latest/library/ucryptolib.html ucryptolib] – криптографические шифры | |||
* [http://docs.micropython.org/en/latest/library/uctypes.html uctypes] – доступ к двоичным данным при помощи структур данных | |||
Библиотеки для портов | |||
В некоторых портах библиотеки, описываемые ниже, имеют те же функции/классы, что и в библиотеке [http://docs.micropython.org/en/latest/library/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]. | |||
Библиотеки для Pyboard | |||
К числу специальных Pyboard-библиотек относятся: | |||
* [http://docs.micropython.org/en/latest/library/pyb.html pyb] – функции для Pyboard-платы | |||
o Функции для работы со временем | |||
o Функции для сброса | |||
o Функции для прерываний | |||
o Функции, для работы с питанием | |||
o Прочие функции | |||
o Классы | |||
* [http://docs.micropython.org/en/latest/library/lcd160cr.html lcd160cr] – управление дисплеем LCD160CR | |||
o Класс LCD160CR | |||
o Конструкторы | |||
o Статические методы | |||
o Члены экземпляра | |||
o Команды настройки | |||
o Методы для манипулирования отдельными пикселями | |||
o Рисование текста | |||
o Рисование примитивных фигур | |||
o Методы для тачскрина | |||
o Продвинутые команды | |||
o Константы | |||
Библиотеки для WiPy | |||
К числу специальных библиотек и классов WiPy относятся: | |||
* [http://docs.micropython.org/en/latest/library/wipy.html wipy] – модуль для управления функциями, специфичными для WiPy | |||
o Функции | |||
* [http://docs.micropython.org/en/latest/library/machine.ADCWiPy.html Класс ADCWiPy] – аналогово-цифровое преобразование | |||
o Конструкторы | |||
o Методы | |||
* [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] – управление аппаратными таймерами | |||
o Конструкторы | |||
o Методы | |||
* [http://docs.micropython.org/en/latest/library/machine.TimerWiPy.html#class-timerchannel-setup-a-channel-for-a-timer Класс TimerChannel] – настройка канала для таймера | |||
o Методы | |||
o Константы | |||
Библиотеки для ESP8266 и ESP32 | |||
К числу специальных библиотек ESP8266 и ESP32 относятся: | |||
* [http://docs.micropython.org/en/latest/library/esp.html esp] – функции, связанные с ESP8266 и ESP32 | |||
o Функции | |||
* [http://docs.micropython.org/en/latest/library/esp32.html esp32] – функционал, специфичный для ESP32 | |||
o Функции | |||
o Разделы flash-памяти | |||
o RMT | |||
o ULP-сопроцессор (от англ. «ultra-low-power», т.е. «ультра-низкое энергопотребление») | |||
o Константы |
Версия от 19:35, 21 августа 2020
Библиотеки[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.
- Встроенные функции и исключения
- 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 – доступ к двоичным данным при помощи структур данных
Библиотеки для портов В некоторых портах библиотеки, описываемые ниже, имеют те же функции/классы, что и в библиотеке machine, но в то же время их функционал отличается, так как предназначен для работы с аппаратными элементами, специфичной для используемой платформы. Чтобы написать код для порта, используйте функции/классы из модуля machine. Чтобы получить доступ к аппаратным элементам, специфичным для платформы, используйте соответствующую библиотеку – например, в случае с Pyboard это будет pyb. Библиотеки для Pyboard К числу специальных Pyboard-библиотек относятся:
- pyb – функции для Pyboard-платы
o Функции для работы со временем o Функции для сброса o Функции для прерываний o Функции, для работы с питанием o Прочие функции o Классы
- lcd160cr – управление дисплеем LCD160CR
o Класс LCD160CR o Конструкторы o Статические методы o Члены экземпляра o Команды настройки o Методы для манипулирования отдельными пикселями o Рисование текста o Рисование примитивных фигур o Методы для тачскрина o Продвинутые команды o Константы Библиотеки для WiPy К числу специальных библиотек и классов WiPy относятся:
- wipy – модуль для управления функциями, специфичными для WiPy
o Функции
- Класс ADCWiPy – аналогово-цифровое преобразование
o Конструкторы o Методы
- Класс ADCChannel – считывание аналоговых данных с внутренних/внешних источников
- Класс TimerWiPy – управление аппаратными таймерами
o Конструкторы o Методы
- Класс TimerChannel – настройка канала для таймера
o Методы o Константы Библиотеки для ESP8266 и ESP32 К числу специальных библиотек ESP8266 и ESP32 относятся:
- esp – функции, связанные с ESP8266 и ESP32
o Функции
- esp32 – функционал, специфичный для ESP32
o Функции o Разделы flash-памяти o RMT o ULP-сопроцессор (от англ. «ultra-low-power», т.е. «ультра-низкое энергопотребление») o Константы