MicroPython для начинающих: оживляем плату на Python за один вечер
Рубрика «Родительские университеты» — простым языком о том, как дети учатся, что им интересно и как родители могут им помочь.
Бывает так: ребёнок уже написал на Python пару игр и калькулятор, и программы на экране ему надоели. Хочется, чтобы код что-то делал в комнате — мигал, пищал, крутил мотор, ловил Wi-Fi. Раньше для этого почти сразу приходилось учить язык C. Сейчас можно остаться на Python: для этого есть MicroPython.
Ниже — короткая инструкция на один вечер. Её можно пройти вместе с ребёнком, даже если вы сами никогда не держали в руках плату.
Что такое MicroPython
Это облегчённый Python, который работает прямо на микроконтроллере — маленьком компьютере размером с палочку жвачки. Синтаксис тот же, что у обычного Python: те же циклы, условия и функции. Добавлены модули, чтобы управлять «ножками» платы: включать светодиод, читать кнопку, подключаться к Wi-Fi.
Для новичка в этом два удобства. Код не нужно компилировать: написал строчку — плата сразу её выполнила. А если что-то пошло не так, ошибка выводится понятным текстом, как в обычном Python.
Что понадобится
- Плата на ESP32 — например, обычная ESP32 DevKit. Она недорогая, в ней сразу есть Wi-Fi и Bluetooth, так что на ней можно расти от мигающего светодиода до метеостанции с телефоном.
- USB-кабель, который передаёт данные, а не только заряжает. Это самая частая причина, почему «компьютер не видит плату».
- Компьютер с бесплатной программой RobX Studio — редактором для MicroPython на ESP32. Есть версии для Windows, macOS и Linux.
- Для второго опыта: макетная плата, светодиод, резистор на 220–330 Ом, кнопка и несколько проводов «папа-папа».
Как поставить MicroPython на плату
- Скачайте и установите RobX Studio с сайта studio.robx.online.
- Подключите плату к компьютеру. Программа сама найдёт её и отметит в списке портов звёздочкой. Если платы в списке нет, возможно, нужен драйвер USB-переходника — CH340 или CP210x, это зависит от модели платы.
- Прошейте MicroPython прямо из окна программы — без командной строки и отдельных утилит.
- Внизу окна откроется консоль, где плата ждёт команд. Наберите
print(2 + 2). Если плата ответила «4», всё готово.
Первая программа: мигаем светодиодом
На многих платах ESP32 DevKit уже есть свой светодиод на выводе 2, так что для начала ничего подключать не надо. Скопируйте код в редактор и нажмите «Запустить».
from machine import Pin
import time
led = Pin(2, Pin.OUT)
while True:
led.value(not led.value())
time.sleep(0.5)
Светодиод мигает раз в секунду: каждые полсекунды программа меняет его состояние на противоположное. Попросите ребёнка поменять 0.5 на 0.1 и на 2 и посмотреть, что изменится. Такие маленькие правки и есть первое настоящее программирование железа. Если на вашей плате светодиод не мигает, значит, встроенного на выводе 2 у неё нет — во втором опыте подключим свой.
Когда программа понравится, нажмите «залить как main.py». Тогда она будет запускаться сама при каждом включении платы — даже от пауэрбанка, без компьютера.
Второй шаг: кнопка и светодиод
Теперь соберём маленькую схему на макетной плате. Длинную ножку светодиода через резистор подключите к выводу 23, короткую — к GND. Одну ножку кнопки — к выводу 18, другую — к GND.
from machine import Pin
import time
led = Pin(23, Pin.OUT)
button = Pin(18, Pin.IN, Pin.PULL_UP)
while True:
if button.value() == 0:
led.on()
else:
led.off()
time.sleep(0.05)
Нажали кнопку — светодиод горит, отпустили — гаснет. Тут есть одна тонкость, о которой ребёнок наверняка спросит: почему нажатая кнопка даёт 0, а не 1? Из-за PULL_UP: пока кнопка отпущена, вывод «подтянут» к единице, а при нажатии он соединяется с землёй и становится нулём. Хороший повод поговорить о том, что в электронике всё решают напряжения, а не слова «вкл» и «выкл».
Третий шаг: какие Wi-Fi сети видит плата
У ESP32 есть Wi-Fi, и для этого опыта не нужен ни один провод. Плата сама осмотрится и перечислит сети вокруг.
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
for net in wlan.scan():
name = net[0].decode()
signal = net[3]
print(name, signal, "dBm")
Рядом с каждой сетью — сила сигнала: чем ближе число к нулю, тем сигнал сильнее. Пусть ребёнок походит с платой и пауэрбанком по квартире и найдёт, где домашний Wi-Fi ловит хуже всего. Это уже маленькое исследование, а не упражнение из учебника. Следующим шагом можно подключиться к своей сети и управлять светодиодом с телефона.
Где у MicroPython потолок
MicroPython работает медленнее, чем программы на C, и занимает больше памяти. Там, где счёт идёт на микросекунды — например, в быстрых гоночных роботах или точном управлении моторами, — инженеры всё равно пишут на C или C++. Для учёбы, домашних проектов, метеостанций и простых роботов этой скорости хватает с запасом.
Зато привычки, которые ребёнок получит здесь, никуда не денутся: читать схему подключения, разбираться, почему устройство ведёт себя не так, и чинить по шагам. При переходе на другой язык они пригодятся первыми.
Если что-то не работает
С железом что-то не получается почти всегда — и это нормально. Не спешите исправлять за ребёнка: лучше пройдите вместе по списку частых причин.
- Платы нет в списке портов — попробуйте другой кабель и другой USB-порт, проверьте драйвер CH340 или CP210x.
- В консоли ошибка — читайте последнюю строку: чаще всего там опечатка или сбитые отступы.
- Светодиод не горит — переверните его: длинная ножка должна смотреть в сторону вывода платы.
- Кнопка «не нажимается» — проверьте, что её ножки стоят в разных рядах макетной платы.
Если ребёнок пока только начинает программировать, с MicroPython спешить не надо. Сначала пусть уверенно пишет простые программы на обычном Python — о том, как к нему подойти, мы рассказывали в статье «Программирование для детей: с чего начать — Scratch или Python».
Приходите на пробное занятие в РОБОЛАТОРИЮ — покажем, как проходят занятия, и поможем подобрать курс по возрасту и интересам ребёнка 🤖
📞 8 (495) 120-30-60 🌐 robolatoriya.com