Micropython - это просто. Часть первая

20 марта 2020



Эта статья начинает курс уроков по программированию микроконтроллеров с помощью языка Micropython. Это сравнительно новый язык программирования, но уже успевший завоевать популярность. Будучи представленным в 2013-м году в качестве проекта на Kikstarter, в 2020 он доступен на довольно внушительном списке плат и включает в себя множество библиотек для работы с различными модулями.

В данный момент - Micropython поддерживается следующими платами:

  • PyBoard - официальная плата для Micropython, её можно купить в официальном магазине. Недавно выпущены новые версии, с поддержкой Wi-Fi и Bluetooth.
  • WiPy - плата для разработки IoT устройств от компании pycom
  • ESP8266/ESP32 - самые популярные платы для создания различных устройств, с подержкой Wi-Fi, а в случае ESP32 ещё и Bluetooth
  • STM32F4 Discovery board - одна из плат на основе STM32
  • Espruino Pico - плата со встроенным USB-коннектором, разработанная компанией ESPruino

Кроме этого, у американской компании Adafruit существует собственная сборка Micropython - CircuitPython, но она доступна лишь на её фирменных платах, которые не поставляются в Россию.

Устанавливаем Micropython

В наших уроках будут использоваться платы ESP8266 или ESP32, обратите внимание, что если вы будете использовать другие платы или другие библиотеки - синтаксис может незначительно отличаться от приведённого в статье.

Для работы с Micropython, в частности для его установки на плату, необходима программа esptool. Это модуль, написанный на Python, и с помощью которого можно загружать прошивки на ESP8266 и ESP32. Для установки вам необходим Python.Установочный пакет для него можно и нужно скачать на официальном сайте - python.org. После установки Python на ваш компьютер, в командной строке(или терминале) ввести команду pip install esptool.

Для проверки что установка прошла успешно нужно ввести в терминале команду esptool.py -h или, если вы используете Windows - esptool.exe -h. Вы увидите всю подсказку по данному модулю.


Процесс установки Micropython-a аналогичен установке Espruino: скачать с сайта прошивку и установить её с помощью esptool, не забыв перед установкой отформатировать плату. При использовании команд - помните, что порт и имя файла прошивки может отличаться.

esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash

esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 460800 \
write_flash -z 0x1000 esp32-20190125-v1.10.bin

Для разработки с использованием Micropython уже существует достаточно много IDE, однако на мой взгляд самой удобной является Mu. Это IDE, которая позволяет работать не только с ESP32/ESP8266 но и с другими платами, поддерживающими Micropython.



Здесь есть и встроенная REPL, и функционал для загрузки и редактирования файлов, и автокомплит. В настройках IDE необходимо выбрать только тип платы, программа сама найдёт это устройство среди доступных портов.


Первая программа

Поговорим немного о синтаксисе. Если вы уже умеете программировать на Python - то никаких сложностей не возникнет, нужно только обратить своё внимание на модули предназначенные для работы с "железом"

Если вы не знакомы, то не пугайтесь, в процессе чтения примеров вы увидите, что синтаксис прост и понятен. Несколько синтаксических правил для понимания:

  • Блоки кода разделяются не фигурными скобками, как в C++, а отступами(Tab-ами)
  • Для подключения библиотек используется конструкция import name_of_library

Традиционно, первой программой для микроконтроллеров является программа Blynk - моргание встроенным в практически любую плату светодиодом.

В данном уроке используется плата на основе ESP8266 - WeMod D1 Mini, на ней встроенный светодиод связан с GPIO2.

from machine import Pin
import time

led_pin = Pin(2,Pin.OUT)

while True:
    led_pin.on()
    time.sleep(1)
    led_pin.off()
    time.sleep(1)

Для начала, необходимо импортировать библиотеки: from machine import Pin - самая популярная строка в программах на Micropython, в ней мы подключаем возможность управления пинами, библиотека time отвечает за работу со временем.

После этого необходимо связать GPIO2 с нашей переменной, и указать режим работы - Pin.OUT.

Затем в бесконечном цикле включать и выключать, то есть подавать сигнал равный 0 или 1 на наш пин, не забывая делать между этим паузу в одну секунду.

Заключение

Вот мы и написали нашу первую программу на Micropython. В следующих уроках мы будем подключать различные модули и библиотеки.


Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.


Поделиться: