MicroPython для начинающих: оживляем плату на Python за один вечер

В закладки5 минут чтения

Рубрика «Родительские университеты» — простым языком о том, как дети учатся, что им интересно и как родители могут им помочь.

Бывает так: ребёнок уже написал на 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 на плату

  1. Скачайте и установите RobX Studio с сайта studio.robx.online.
  2. Подключите плату к компьютеру. Программа сама найдёт её и отметит в списке портов звёздочкой. Если платы в списке нет, возможно, нужен драйвер USB-переходника — CH340 или CP210x, это зависит от модели платы.
  3. Прошейте MicroPython прямо из окна программы — без командной строки и отдельных утилит.
  4. Внизу окна откроется консоль, где плата ждёт команд. Наберите 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

Похожие темы
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии