Вводный урок по программированию ESP32, ESP8266 на MicroPython.
По многочисленным просьбам начинаю цикл уроков по программированию ESP32, ESP8266 на MicroPython. В данном вводном уроке рассмотрим, что такое MicroPython, чем отличается от Arduino IDE, а также обозначим его плюсы и минусы.
Что такое MicroPython?
MicroPython — это легкая и компактная реализация языка программирования Python. Он разделен и урезан для работы с микроконтроллерами, которые в основном имеют ограниченные ресурсы.
Если вы считаете этот учебный курс полезным, пожалуйста, поделитесь им! Чтобы он мог охватить больше людей, которым это может быть интересно.
История создания языка MicroPython с сайта Википедия.
«MicroPython создан австралийским программистом Дэмиеном Джорждем. Средства на разработку были собраны на Kickstarter кампании в 2013 году. Изначально MicroPython разрабатывался для основанной на чипе STM32F4 плате разработки PyBoard, но позднее стал поддерживаться большим количеством других платформ.»
На данный момент MicroPython поддерживает несколько десятков плат. Об этом кратко я расскажу в следующем уроке.
Собственные библиотеки MicroPython:
btree — библиотека для работы с BTree базами данных
framebuf — библиотека для создания двоичного изображения для внешних экранов
machine — библиотека для работы с микроконтроллером
micropython — библиотека для работы с собственными типами данных MicroPython
network — библиотека для работы с сетью
ubluetooth — библиотека для работы с Bluetooth
ucryptolib — библиотека для шифрования
uctypes — библиотека для взаимодействия с бинарными структурами
Так же в сборках под некоторые платформы есть специфичные только для них библиотеки.
Особенности и отличия MicroPython от Arduino:
В MicroPython исходный код создается и/или редактируется на компьютере с помощью редактора, такого как Thonny Python, который аналогичен традиционному программированию Arduino с использованием Arduino IDE.
В MicroPython код хранится во флэш-памяти микроконтроллеров, в то время как в Arduino код хранится на вашем компьютере.
В MicroPython компиляция исходного кода происходит внутри микроконтроллера или более правильно называть это интерпретацией исходного кода. Интерпретатор Python преобразует исходный код в байтовый код и сохраняет его в оперативной памяти и, следовательно, выполняет программу, в то время как в Arduino компиляция исходного кода происходит на компьютере. Компилятор Cpp преобразует код в машинный код. Машинный код передается на микроконтроллер через последовательный интерфейс и записывается во флэш-память. Флэш - память перезаписывается каждый раз при загрузке исходного кода.
В MicroPython время, необходимое от компиляции кода до его выполнения, очень минимально и практически выполняется немедленно. И поскольку MicroPython — это интерпретируемый язык, когда вы изменяете свой исходный код, ему не нужно компилировать все, что ему необходимо просто изменить часть в соответствии с изменениями в исходном коде, в то время как в Arduino каждый раз, когда вы изменяете свой исходный код, вам также необходимо все перекомпилировать, чтобы изменение вступило в силу.
Но поскольку MicroPython интерпретируется во время выполнения кода, быстродействие не является эффективным, в то время как традиционное программирование имеет преимущество в использовании уровня машинного кода.
Еще одной интересной особенностью MicroPython является добавление REPL. REPL расшифровывается как «Read-Evaluate-Print-Loop», что можно перевести как «цикл чтение-вычисление-вывод». REPL позволяет вам подключиться к плате разработки и тестировать код без какой-либо необходимости компиляции.
REPL использует последовательного интерфейса UART, который обычно имеют почти все отладочные платы, доступные на рынке.
Понравился Вводный урок по программированию ESP32, ESP8266 на MicroPython? Не забудь поделиться с друзьями в соц. сетях.
Комментарии