MicroPython
MicroPython — это облегчённая версия языка Python, созданная специально для микроконтроллеров. Он занимает мало памяти и даёт возможность писать код на привычном языке программирования, не вдаваясь в детали работы с регистрами и аппаратурой.
REPL — это интерактивная оболочка, которая позволяет вводить команды построчно, сразу видеть результат их выполнения и продолжать работу без перезапуска программы.
Платформы для обучения
Особенности Поддерживается Базовые типы данных ✅ Условные операторы ✅ Циклы for
,while
✅ Функции и модули ✅ Работа с файлами ✅ Списки, словари ✅ requests
,pandas
,threading
❌ (не поддерживаются)
Устройство | Поддержка MicroPython | Комментарий |
---|---|---|
Arduino Uno | ❌ Нет | Слишком слабый чип |
Arduino Nano RP2040 | ✅ Да | Полная поддержка |
ESP8266 / ESP32 | ✅ Да | Отлично работает, Wi-Fi включён |
STM32 Blue Pill | ✅ Частично | Зависит от модели |
Raspberry Pi Pico | ✅ Да | Лучший выбор для старта |
В наших уроках мы будем использовать Raspberry PI Pico W. Т.к есть Wi-Fi и Bluetooth, хорошая цена, хорошая доступность и отличная официальная документация.
Установка Python3.10+
Для использования MicroPython необходимо установить Python3 больше 10 ревизии
В линукс обычно уже установлен Python3. Для проверки версии используйте:
python3 --version
Если он выдаст ошибку или если версия ревизии меньше Python3.10, тогда через консоль
sudo apt update
sudo apt install python3.10
python3 --version
В этой серии уроков я буду использовать VS Code. Т.к. он бесплатный и в нем есть необходимые плагины для удобной разработки
Достаточна скачать его с официального сайта Visual Studio Code и установить.
sudo apt code
Я не знаю как работает MacOS, поэтому вот ссылка на официального сайта
После того как вы установили VS Code, запустите его
Теперь нам надо установить плагин MIcroPico, Python, Pylance и IntelliCode
Открываем этот файл и вставляем в него код(В следующем уроке мы его разберём)
from machine import Pin
from utime import sleep
pin = Pin("LED", Pin.OUT)
print("LED starts flashing...")
while True:
try:
pin.toggle()
sleep(1)
except KeyboardInterrupt:
break
pin.off()
print("Finished.")