MicroPython:Содержание: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
(не показано 6 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{MicroPython/Панель перехода}}
{{MicroPython/Панель перехода}}
<div class="nomobile">
<div>
{|class="nomobile" style="background-color:#2b2728;border-radius:0px; width:100%;margin: 0em 0 0em 0;height:10px;"
{|style="background-color:#2b2728;border-radius:0px; width:100%;margin: 0em 0 0em 0;height:10px;"
|style="float:left; text-align: center; padding:10px"|<span style="font-size:150%; color:#FFFFFF; text-align:center;">Добро пожаловать в раздел по MicroPython</span>
|style="float:left; text-align: center; padding:10px"|<span style="font-size:150%; color:#FFFFFF; text-align:center;">Добро пожаловать в раздел по MicroPython</span>
|style="width:12%; border-left:1px solid #FFFFFF;"|
|style="width:12%; border-left:1px solid #FFFFFF;"|
Строка 28: Строка 28:
[[File:Micropython-logo.svg|150px|center|link=Поддержать проект]]</div></div>
[[File:Micropython-logo.svg|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]] и оптимизированная для работы на [[микроконтроллер]]ах и в ограниченных условиях.
<br />
 
<hr>
В [[MicroPython]] имеется широкое разнообразие продвинутых функций: интерактивная командная строка, поддержка целых чисел произвольной точности, замыкания, списковое включение, генераторы, обработка исключений и многое другое. Но при этом он достаточно компактен, чтобы уместиться в пределах ''256 Кб'' кодового пространства и ''16 Кб'' памяти [[RAM]].
Нижняя строчка описания
</div></div>
</div></div>


Строка 45: Строка 44:


{{MicroPython/Программы}}
{{MicroPython/Программы}}
{{MicroPython/Прошивки}}


=См.также=
=См.также=

Версия от 20:37, 19 марта 2022

Добро пожаловать в раздел по 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

См.также

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