План уроков по Raspberry Pi Pico: 6 недель MicroPython в классе
План уроков по Raspberry Pi Pico: 6 недель уроков MicroPython по 40 минут с бесплатными проектами, настройкой Thonny, списком материалов на 24 ученика и примером урока.
Если нужен план уроков по Raspberry Pi Pico, вот короткий ответ: 6 недель, один урок по 40 минут в неделю, работа в парах и одно новое понятие MicroPython каждую неделю. На первой неделе ученики зажигают встроенный светодиод одной строкой в REPL Thonny; дальше идут переменные и время, функции, кнопки и условия, звук и датчик расстояния с ШИМ, а на последней неделе — пианино на пять кнопок со списком и циклом for. Проект каждой недели бесплатно доступен в BlueGrays со схемой, списком деталей и кодом, так что Premium ученикам не нужен. План рассчитан на Raspberry Pi Pico или Pico W с Thonny и на учеников средней и старшей школы, которые ещё никогда не писали код.
Сначала разберём, почему Pico и MicroPython так хорошо работают в классе, а затем подготовку к первому уроку: файл MicroPython UF2, кнопку BOOTSEL, выбор интерпретатора в Thonny и то, на что обратить внимание на школьных компьютерах. После этого — план по неделям с аналогом каждого понятия на Arduino C++, список материалов на класс из 24 учеников, поминутный пример урока, три коротких примера кода, таблица оценивания и решения проблем, которые чаще всего возникают на уроке. 8-недельную версию этого подхода с Arduino и блоками мы разобрали в статье план уроков по блочному программированию; этот план её не повторяет и предназначен для классов, которые хотят сразу начать с текстового кода или перейти на Python после блоков.

Почему Raspberry Pi Pico и MicroPython?
Pico — небольшая плата с микроконтроллером, которую Raspberry Pi сделала на собственной микросхеме RP2040. Это не компьютер: как и Arduino, она снова и снова выполняет одну программу. Для класса у неё три сильные стороны. Первая — MicroPython, облегчённая версия Python для микроконтроллеров. Он легко читается, в нём нет точек с запятой и фигурных скобок, поэтому ученики, которые уже встречали Python на информатике, тем же языком управляют светодиодом или зуммером. Вторая — нет компиляции: как только в Thonny нажата кнопка «Запустить» (Run), код выполняется на плате, и не нужно ждать компиляции и загрузки после каждой мелкой правки. На 40-минутном уроке это значит гораздо больше попыток за то же время. Третья — REPL: введи одну строку в окне Shell в Thonny, нажми Enter, и плата сразу её выполнит. Когда ученики вводят led.on() и светодиод загорается, они за первые пять минут понимают, что программировать — значит давать плате команды. Низкая цена и то, что плата вставляется прямо в макетную плату, делают работу в парах реальной. Когда проще взять Arduino? С младшими учениками, которые только научились читать, или если большая часть набора — модули на 5 V, начинать с Arduino и блоков проще и без сюрпризов. Характеристики и распиновка платы — в статье Что такое Raspberry Pi Pico?
| Характеристика | Raspberry Pi Pico + MicroPython | Arduino Uno + C++ |
|---|---|---|
| Напряжение пинов | 3,3 V (5 V не выдерживает) | 5 V |
| Язык и редактор | MicroPython, Thonny | C++, Arduino IDE |
| Запуск кода | Сразу по кнопке «Запустить», без компиляции | Компиляция и загрузка после каждой правки |
| Проверка по строке (REPL) | Есть: >>> в окне Shell в Thonny | Нет |
| Аналоговые входы | 3 пина (GP26–GP28), read_u16() 0–65535 | 6 пинов (A0–A5), analogRead() 0–1023 |
| Разъём USB | Micro USB | USB-B (Uno R3) |
| На макетной плате | Pico H / WH идут с гребёнками и вставляются напрямую | Плата стоит рядом, подключается перемычками |
| Цена | Обычно заметно дешевле Uno | Дороже |
Перед первым уроком: MicroPython и Thonny
- Определи плату: для Pico, Pico W, Pico 2 и Pico 2 W нужны разные файлы MicroPython. Посмотри на надпись на плате и скачай с официальной страницы загрузки MicroPython последний файл .uf2 именно для этой платы. С неправильным файлом плата не запустится или не заработает Wi-Fi.
- Подключай с зажатой BOOTSEL: удерживай белую кнопку BOOTSEL рядом с USB-разъёмом, пока вставляешь кабель в компьютер, затем отпусти. На компьютере появится диск RPI-RP2 (у Pico 2 он называется RP2350).
- Скопируй файл UF2: перетащи файл .uf2 на этот диск. Через несколько секунд плата перезагрузится, и диск исчезнет; это не ошибка, а знак того, что MicroPython установлен. MicroPython остаётся на плате, так что переустанавливать его на каждом уроке не нужно.
- Выбери интерпретатор в Thonny: в «Инструменты › Параметры › Интерпретатор» (Tools › Options › Interpreter) выбери «MicroPython (Raspberry Pi Pico)», а порт оставь на автоопределении. То же самое можно выбрать, нажав на правый нижний угол окна Thonny.
- Проверь соединение: внизу, в окне Shell, должно быть приглашение >>>. Введи print("привет") и нажми Enter; если пришёл ответ, плата готова к уроку.
Не оставляй настройку школьных компьютеров на сам урок; поговори со школьным системным администратором за неделю. Thonny работает в Windows, macOS и Linux и идёт со своим Python, так что отдельно ставить Python не нужно. Для Windows есть и портативная версия, которая вообще не требует установки; это сильно упрощает жизнь в закрытых компьютерных классах, где программы может ставить только администратор. Windows 10 и 11 распознают Pico как последовательный порт (COM) без дополнительного драйвера. В некоторых школах USB-накопители заблокированы; тогда диск RPI-RP2 может не появиться на компьютерах учеников, но если MicroPython заранее установлен на платы с твоего компьютера, это не важно, потому что на уроке используется только последовательное соединение. И наконец, покажи ученикам два варианта в окне сохранения Thonny: «This computer» (этот компьютер) сохраняет файл на компьютер, «Raspberry Pi Pico» — на плату. Пары, которые не знают, что выбрали, на 6-й неделе не найдут свой код.
6-недельный план уроков по Raspberry Pi Pico
Каждый урок рассчитан на 40 минут и работу в парах. Все проекты в таблице бесплатны в BlueGrays, а у проектов первых трёх недель рядом с кодом есть ещё и блочное представление. Порядок выбран намеренно: сначала выход (светодиод), затем переменные и время, функции, потом вход и условия, звук и датчик с ШИМ и в конце списки и циклы. Каждая неделя добавляет одну новую идею к предыдущей. В последнем столбце то же понятие показано на Arduino C++: это мостик для учеников, которые позже перейдут на Arduino; подробнее о C++ — в статье Основы программирования Arduino.
| Неделя | Цель | Бесплатный проект BlueGrays | Новое понятие MicroPython | Аналог на Arduino C++ |
|---|---|---|---|---|
| 1 | Знакомство с Pico, первая программа, цифровой выход | Мигание встроенным светодиодом Raspberry Pi Pico (Pico и Pico W), Raspberry Pi Pico: управление внешним светодиодом (GP14 + макетная плата) | REPL (>>>), from machine import Pin, Pin(14, Pin.OUT), led.on() / led.off(), time.sleep(0.5), while True:, отступы | pinMode(14, OUTPUT); digitalWrite(14, HIGH); delay(500); void loop() (аналог while True) |
| 2 | Переменные, время, два выхода | Два попеременно мигающих светодиода на Pico (узор мигалки, GP14 + GP13), Полицейский стробоскоп на Pico (красный + синий, GP11 + GP12) | WAIT_MS = 300 (переменная), led.value(1), led.toggle(), sleep_ms(300) | int waitMs = 300; digitalWrite(13, !digitalRead(13)); delay(waitMs); (аналог toggle()) |
| 3 | Меньше повторов: функции | Симулятор светофора на Pico (3 светодиода по очереди, GP11/GP12/GP13) | def all_off():, вызов функции, дробные секунды через sleep(1.5) | void allOff() { … } ; delay(1500); (функция и пауза 1,5 с) |
| 4 | Вход, условия и состояние | Светофор на Pico с выбором 4 режимов кнопкой (конечный автомат, GP11-13 + GP4) | Pin(4, Pin.IN, Pin.PULL_UP), if / elif / else, mode = (mode + 1) % 4, time.ticks_ms() (время в мс) | pinMode(4, INPUT_PULLUP); if / else if / else; millis() (время в мс) |
| 5 | Датчик и звук | Парктроник на Raspberry Pi Pico (HC-SR04 + 3 светодиода + зуммер) | PWM(Pin(17)), freq(), duty_u16(), time_pulse_us(), def … return (функция с возвратом значения) | tone(17, 1200); pulseIn(); return (звук, длительность импульса, возврат значения) |
| 6 | Списки, циклы for, итоговый проект | Кнопочное пианино на Raspberry Pi Pico (5 кнопок + зуммер + запись мелодии) | NOTE_HZ = (523, 587, 659, 698, 784), for … in, пять кнопок с одним и тем же кодом | int notes[] = {523, 587, 659, 698, 784}; for (int i = 0; i < 5; i++) (массив и цикл) |

Во время курса возьми за правило, чтобы в конце каждой недели ученики меняли одно значение. На 1-й неделе проект со встроенным светодиодом обращается к нему по имени «LED», поэтому одинаково работает на Pico и Pico W; внешний светодиод подключается к GP14, то есть к физическому пину 19, а соседний пин 18 — это GND. На 2-й неделе уменьшение WAIT_MS в полицейском стробоскопе с 300 до 80 показывает, что одна переменная сразу меняет ритм обоих светодиодов. На 3-й неделе светофор вызывает all_off() в цикле три раза; попроси учеников удалить функцию и написать то же самое вручную: увидев, как набегают девять строк, они сами объяснят, зачем нужны функции. 4-я неделя — проект среднего уровня: кнопка подключена с PULL_UP, поэтому при нажатии читается 0, а каждое нажатие по кругу переключает режим: обычный, только красный, мигающий жёлтый и выключено. Код длинный, поэтому сначала прочитайте его по шагам во вкладке «Разбор кода». На 5-й неделе HC-SR04 работает от 5 V, так что не забудь подключить ECHO через делитель; эксперименты со значениями GREEN_CM 100, YELLOW_CM 50, RED_CM 25 и STOP_CM 10 дают ученикам понятие порога. Как работает датчик, рассказано в статье Датчик расстояния HC-SR04, а как получить звук с помощью ШИМ — в статье Активный и пассивный зуммер; бери пассивный зуммер, потому что в проекте меняется частота. На 6-й неделе пианино играет пять нот от «до» до «соль» в диапазоне 523–784 Hz, а если удерживать клавишу «до» 1 секунду, начинается запись мелодии. Полный код для этого уровня длинный; вместо того чтобы просить учеников набрать его целиком, попроси их поменять частоты в списке NOTE_HZ и построить свой звукоряд.
Вопросы на выходе для каждой недели
- 1-я неделя: Что произойдёт, если поменять местами строки led.on() и time.sleep(0.5)? Почему строки под while True: начинаются с отступом?
- 2-я неделя: Как изменится стробоскоп, если увеличить WAIT_MS с 300 до 1000? Какие две строки заменяет одна toggle()?
- 3-я неделя: Сколько ещё строк пришлось бы написать без функции all_off()? Чем определение функции отличается от её вызова?
- 4-я неделя: Почему button.value() возвращает 0 при нажатии кнопки с PULL_UP? Если mode равно 3 и нажать кнопку, чему станет равно mode?
- 5-я неделя: Почему пин ECHO датчика HC-SR04 не подключают к Pico напрямую? Что делает с зуммером строка duty_u16(0)?
- 6-я неделя: Какие списки в коде нужно изменить, чтобы добавить пианино шестую клавишу?
Список материалов на класс из 24 учеников
Если разбить 24 ученика на пары, получится 12 групп; с одним запасным набором готовь 13 наборов. Pico недорогая, поэтому в большинстве школ можно работать парами, а не тройками, и у каждого ученика больше времени за клавиатурой; если работать тройками, сократи количество до 9 наборов. Каждой группе нужен компьютер, потому что Thonny общается с Pico по USB. Телефон или планшет нужен, чтобы держать открытыми в BlueGrays проект недели, его схему и вкладку «Разбор кода». Паять ничего не нужно: всё вставляется в макетную плату.
| Позиция | На группу | На класс (12 групп + 1 запасной) | Неделя |
|---|---|---|---|
| Raspberry Pi Pico H или Pico WH (с запаянными гребёнками) | 1 | 13 | Все |
| Кабель micro USB с передачей данных | 1 | 13 | Все |
| Макетная плата (400 или 830 отверстий) | 1 | 13 | Все |
| Перемычки «папа–папа» | 20 | около 260 | Все |
| Светодиоды 5 мм (красный, жёлтый, зелёный, синий) | 4 | около 60 | 1–5 |
| Резистор 220 Ω | 4 | около 60 | 1–5 |
| Тактовая кнопка (4 ножки) | 5 | около 70 | 4, 6 |
| Пассивный зуммер | 1 | 13 | 5, 6 |
| Ультразвуковой датчик расстояния HC-SR04 | 1 | 13 | 5 |
| Резисторы 1 kΩ и 2 kΩ (делитель для ECHO) | 1 + 1 | 13 + 13 | 5 |
| Компьютер с Thonny | 1 | 12 | Все |
| Потенциометр 10 kΩ (по желанию, для АЦП) | 1 | 13 | Быстрые группы |
Пример урока: 1-я неделя, первая программа
План ниже — для 1-й недели. Первый урок самый рискованный, потому что именно здесь вылезают проблемы с настройкой. Предполагается, что MicroPython уже установлен на платы, а Thonny — на компьютеры. Тот же каркас подходит и для остальных недель: разминка, совместное чтение, прогноз, схема, запуск кода, изменение одного значения и вопрос на выходе. Если есть сдвоенный урок на 80 минут, растяни этап «измени одно значение» и дай парам представить свои ответы на вопрос на выходе.
| Время | Этап | Что происходит |
|---|---|---|
| 0–5 мин | Разминка | Вопрос: что нужно сообщить плате, чтобы она «зажгла светодиод»? Ответы записываются на доске. Раздаются платы, показываются кнопка BOOTSEL и разъём USB. |
| 5–12 мин | Первая команда в REPL | Окно Shell в Thonny на проекторе: from machine import Pin, led = Pin("LED", Pin.OUT), led.on(). Пары вводят те же три строки на своём компьютере, затем выключают светодиод через led.off(). |
| 12–18 мин | Совместное чтение проекта | Открыть в BlueGrays проект «Мигание встроенным светодиодом». Сначала прочитать блоки с включённым «Показать блоками», потом код; обсудить while True и отступы. |
| 18–22 мин | Запуск | Вставить код в Thonny и нажать «Запустить» (F5). Светодиод мигает каждые 0,5 секунды. Показать кнопку «Стоп» для остановки. |
| 22–32 мин | Схема с внешним светодиодом | Отключить USB. GP14 (пин 19) → 220 Ω → длинная ножка светодиода, короткая ножка → GND (пин 18). Запустить код проекта с внешним светодиодом. Роли: сборщик и контролёр. |
| 32–37 мин | Изменить одно значение | Поменять time.sleep(0.5) на 0.1, затем на 2. Желающие пары могут перенести светодиод на GP15 и заменить в коде 14 на 15. |
| 37–40 мин | Вопрос на выходе | Один вопрос на листке: что было бы, если бы строки под while True: не начинались с отступом? Платы отключаются и возвращаются в пронумерованные коробки. |
Три коротких примера на MicroPython для урока
Больше всего путаницы между Pico и Pico W вызывает встроенный светодиод. На классической Pico светодиод подключён к GP25, поэтому в старых примерах встречается Pin(25). На Pico W светодиод подключён к микросхеме Wi-Fi и не имеет номерного пина GP, так что Pin(25) там его не зажжёт. Способ, который работает на обеих, — обращаться к светодиоду по имени: Pin("LED"). В актуальных версиях MicroPython это имя определено для Pico, Pico W и Pico 2, поэтому проект со встроенным светодиодом в BlueGrays использует именно его. Если в классе платы вперемешку, всем можно раздать один и тот же код. Если старая прошивка не знает имени «LED», нужно обновить файл UF2.
1from machine import Pin
2import time
3
4# "LED" adı Pico, Pico W ve Pico 2'de karttaki LED'i bulur / The name "LED" finds the onboard LED on Pico, Pico W and Pico 2
5led = Pin("LED", Pin.OUT)
6# Eski firmware'li klasik Pico'da: Pin(25, Pin.OUT) / Classic Pico with old firmware: Pin(25, Pin.OUT)
7# Pico W'de Pin(25) LED'i yakmaz / On the Pico W, Pin(25) does not light the LED
8
9while True:
10 led.toggle() # Durumu tersine çevir / Flip the state
11 time.sleep(0.5) # 0,5 saniye bekle / Wait 0.5 seconds
12Код для внешнего светодиода построен по тому же каркасу, меняется только номер пина. Здесь время ожидания вынесено в переменную WAIT; именно эту строку ученики первой поменяют на 2-й неделе. Переменная count и строка print() при каждом включении светодиода выводят число в окно Shell в Thonny, так что ученики видят на экране, что цикл действительно крутится. 14 в коде — это номер GP, а не номер физического пина; именно это ученики путают чаще всего.
1from machine import Pin
2import time
3
4LED_PIN = 14 # LED'in bağlı olduğu GP pini (fiziksel pin 19) / GP pin the LED is wired to (physical pin 19)
5WAIT = 0.5 # Bekleme süresi, saniye / Wait time in seconds
6
7led = Pin(LED_PIN, Pin.OUT) # Pini çıkış yap / Make the pin an output
8count = 0 # Kaç kez yandığını say / Count how many times it lit
9
10while True:
11 led.on() # LED'i yak / Turn the LED on
12 count = count + 1
13 print("LED", count) # Thonny Shell'e yaz / Print to the Thonny Shell
14 time.sleep(WAIT)
15 led.off() # LED'i söndür / Turn the LED off
16 time.sleep(WAIT)
17Кнопку можно подключить двумя способами, и оба стоит показать. С PULL_UP одна ножка кнопки идёт на GP15, а противоположная — на GND; резистор внутри Pico подтягивает пин к 3,3 V, нажатие соединяет пин с GND, и читается 0. Все проекты с кнопками для Pico в BlueGrays используют этот способ, потому что лишний провод не нужен. С PULL_DOWN противоположная ножка идёт на пин 3V3(OUT) (пин 36), и при нажатии читается 1; логика кажется естественнее, но провод легко по ошибке воткнуть в VBUS (пин 40, 5 V). Какие из четырёх ножек кнопки соединены между собой, мы разобрали в статье Как подключить кнопку к Arduino. 4-ю неделю можно начать с короткого кода ниже, а затем перейти к выбору режимов.
1from machine import Pin
2import time
3
4led = Pin(14, Pin.OUT) # GP14 -> 220 ohm -> LED -> GND / GP14 -> 220 ohm -> LED -> GND
5button = Pin(15, Pin.IN, Pin.PULL_UP) # Buton GP15 ile GND arasında / Button between GP15 and GND
6# PULL_DOWN: Pin(15, Pin.IN, Pin.PULL_DOWN), buton GP15 ile 3V3(OUT) arasında / button between GP15 and 3V3(OUT)
7# PULL_DOWN ile koşul == 1 olur / With PULL_DOWN the condition becomes == 1
8
9while True:
10 if button.value() == 0: # PULL_UP: basınca 0 okunur / PULL_UP: reads 0 when pressed
11 led.on()
12 else:
13 led.off()
14 time.sleep_ms(10) # Döngüyü biraz yavaşlat / Slow the loop down a little
15Как использовать BlueGrays на уроке с Pico
- Справочник по коду, раздел MicroPython: «Справочник по коду» в «Учёбе» рядом с разделом Arduino C++ предлагает раздел MicroPython из 18 карточек: import, print, выход пина, вход пина (PULL_UP, PULL_DOWN), time.sleep, while True, отступы, переменные, if / elif / else, for и range, списки, def и return, ADC, PWM, ticks_ms, Pin.irq, try / except и I2C. В каждой карточке есть «Что делает?», «Синтаксис», пример с вкладками «Блоки · Arduino · MicroPython», «Частая ошибка» и мини-тест. Советуй ученикам читать между уроками карточки по понятию недели; свой прогресс MicroPython x/18 каждый ученик видит на экране «Мой уровень».
- «Посмотреть в проектах»: эта ссылка в конце каждой карточки показывает проекты, в коде которых встречается команда, от простых к сложным. Отсюда ученики переходят от команды, прочитанной в карточке, к её поиску в коде настоящего проекта.
- Вопросы дня: в настройке «Язык кода в вопросах» есть варианты «Оба», Arduino и MicroPython. Если уроки идут на Pico, пусть ученики выберут MicroPython; общие вопросы без кода приходят при любом выборе. Каждый день — набор примерно на 3 минуты, есть тест на уровень из 15 вопросов и 6 уровней от A1 до C2: хорошая привычка для ежедневного повтора между уроками.
- «Показать блоками»: у пяти бесплатных проектов для Pico (встроенный светодиод, внешний светодиод, два попеременно мигающих светодиода, светофор и полицейский стробоскоп) рядом с кодом есть блочное представление. Если тем, кто впервые видит Python, сначала показать блоки, а потом код той же программы, складывается идея «логика та же, запись другая»; этот шаг подробно разобран в статье переход от блоков к MicroPython. Блоки нужны для чтения: в приложении их нельзя редактировать, а на плату всегда загружается код MicroPython.
- «Разбор кода» и «Если не работает»: они есть у каждого бесплатного проекта для Pico. Вкладка «Разбор кода» начинается с краткого итога «Что делает этот код?», продолжается разбором «Шаг за шагом» и заканчивается блоком «Если не получается» и заданием «Твоя очередь». С длинным кодом на 4-й и 6-й неделях это главный помощник для пар, которые пока читают медленно.
- «Собираем вместе» и «Копировать ссылку»: пошаговый режим проходит четыре шага и на шаге с кодом напоминает выбрать в Thonny интерпретатор MicroPython. «Копировать ссылку» в разделе исходного кода даёт ссылку, по которой код открывается на компьютере, так что перепечатывать код с телефона в Thonny не придётся.
Оценивание и дифференциация
| Критерий | 1 – Начало | 2 – Развитие | 3 – Освоено |
|---|---|---|---|
| Сборка схем | Собирает с помощью, забывает GND | Собирает по схеме, сопоставляет номер GP с кодом | Различает физические пины и номера GP, находит ошибку у соседа по парте |
| Чтение кода | Читает строки, но не может объяснить, что они делают | В общих чертах объясняет, что делает программа | Объясняет каждую строку и смысл отступов |
| Изменение и проверка | Меняет значение, но не может объяснить эффект | Предсказывает результат до проверки | Если прогноз не сбылся, находит причину по сообщению об ошибке в Shell |
| Сопоставление с C++ | Не может сопоставить | Сопоставляет Pin, sleep и while True | Сопоставляет также if, for и функции |
- Быстрые группы, аналоговое чтение: отдельной недели про АЦП в плане нет; пары, которые закончили раньше, подключают среднюю ножку потенциометра 10 kΩ к GP26, читают значение от 0 до 65535 через ADC(26).read_u16() и задают им скорость стробоскопа со 2-й недели. Для задачи посложнее подойдёт бесплатный проект Светодиодный костёр на Raspberry Pi Pico (матрица NeoPixel 8x8 + потенциометр + зуммер): тот же потенциометр управляет матрицей NeoPixel 8x8.
- Быстрые группы, объединение: добавить кнопку с 4-й недели к парктронику с 5-й и написать «тихий режим», который включает и выключает звук, — первый настоящий шаг к собственному коду.
- Медленные группы: выдай уже собранную схему или положи на стол крупную распечатку схемы. Пусть идут шаг за шагом по вкладке «Разбор кода» и ставят цель в этот день изменить всего одно значение; это уже достойный результат.
Частые проблемы и быстрые решения
| Проблема | Вероятная причина | Решение |
|---|---|---|
| Компьютер вообще не видит Pico | Кабель только для зарядки, плохой контакт, USB-хаб | Попробуй заведомо рабочий кабель с передачей данных, подключи плату напрямую к компьютеру, попробуй другой USB-порт. |
| При каждом подключении открывается диск RPI-RP2 | На плате нет MicroPython или BOOTSEL залипает | Скопируй файл UF2 на диск; подключи снова, не нажимая кнопку. |
| RPI-RP2 так и не появляется | BOOTSEL нажата уже после подключения кабеля | Отключи кабель, удерживай BOOTSEL, подключи снова, затем отпусти. |
| Thonny не подключается, «Device is busy» (устройство занято) или ошибка порта | Неверный интерпретатор или порт, порт открыт в другой программе, работающий код занят | Выбери «MicroPython (Raspberry Pi Pico)» в правом нижнем углу, нажми Stop/Restart («Стоп»), закрой второе окно Thonny, отключи и снова подключи USB. |
| No module named 'machine' (нет модуля machine) | Код выполняется в Python на компьютере | Выбери интерпретатор MicroPython (Raspberry Pi Pico). |
| IndentationError или SyntaxError | Смешанные отступы, нет двоеточия | Перейди к номеру строки из ошибки; в конце строк с while, if и def нужно двоеточие, а в строках под ними — 4 пробела. |
| Код работает, но светодиод не горит | Светодиод перевёрнут, нет GND, номер GP в коде не совпадает со схемой, Pin(25) на Pico W | Длинную ножку — к резистору (на сторону GP), проверь провод GND, для встроенного светодиода используй Pin("LED"). |
| Код перестаёт работать после отключения от компьютера | Файл сохранён на компьютер или называется не main.py | В Thonny выбери сохранение › Raspberry Pi Pico и назови файл main.py; код будет запускаться сам каждый раз, когда на плату подаётся питание. |
| main.py крутит бесконечный цикл, и Thonny не может подключиться | Код запускается сразу при старте | Нажми «Стоп» несколько раз или Ctrl+C в Shell; если не помогает, сотри флеш-память официальным flash_nuke.uf2 и заново установи MicroPython (все файлы на плате удалятся). |
Чек-лист перед уроком
- MicroPython установлен на все платы, платы и кабели пронумерованы от 1 до 13.
- Thonny открывается на каждом компьютере, интерпретатор — «MicroPython (Raspberry Pi Pico)».
- Каждая пара «плата + кабель» проверена и показывает >>> в Shell.
- Резисторы разложены по коробкам по номиналам: 220 Ω, 1 kΩ, 2 kΩ.
- Проект недели открыт в BlueGrays на проекторе; для первых трёх недель подготовлено «Показать блоками».
- Листки с вопросом на выходе распечатаны, роли (сборщик, контролёр) распределены по парам.
- Перед 5-й неделей резисторы делителя для HC-SR04 отложены для каждой группы.
- В конце урока USB-кабели отключены, детали пересчитаны и сложены в пронумерованные коробки.
Все проекты, которые понадобятся за эти шесть недель, можно бесплатно открыть в приложении BlueGrays со схемой, списком деталей, кодом MicroPython и вкладкой «Разбор кода»; так легко вести урок с проектора, пока ученики следят за ним на своих телефонах. Если через шесть недель захочется перейти к проектам Premium для Pico с яркостью светодиода через ШИМ, сервоприводами, OLED-экраном или матричной клавиатурой, вместо индивидуальных подписок можно раздать коды педагога: это разовая покупка без автопродления.
Частые вопросы
Как вести уроки с Raspberry Pi Pico?
Вводи на каждом уроке одно новое понятие и выстраивай порядок так: выход, переменные, функции, вход и условия, ШИМ и датчики, затем списки и циклы. Пусть каждый урок идёт по одному каркасу: разминка, совместное чтение, прогноз, схема, запуск кода, изменение одного значения и вопрос на выходе. 6-недельный план в этой статье построен именно так, на бесплатных проектах.
Как установить MicroPython на Raspberry Pi Pico?
Удерживай кнопку BOOTSEL, пока подключаешь Pico к компьютеру по USB; появится диск RPI-RP2. Скопируй на этот диск файл MicroPython .uf2 для своей платы, и плата перезагрузится. Установить можно и через пункт «Install or update MicroPython» (установить или обновить MicroPython) в настройках интерпретатора Thonny.
Thonny не видит Raspberry Pi Pico. Что делать?
Сначала убедись, что USB-кабель передаёт данные: через кабель только для зарядки компьютер плату не увидит. Затем выбери в Thonny интерпретатор «MicroPython (Raspberry Pi Pico)» и нажми Stop/Restart. Если при каждом подключении открывается диск RPI-RP2, на плате ещё нет MicroPython, поэтому установи файл UF2.
Raspberry Pi Pico или Arduino для школы?
Обе платы — хорошая отправная точка; выбор зависит от языка и учеников. Если ты преподаёшь Python или хочешь быстрых экспериментов без ожидания компиляции, удобна Pico с MicroPython. С младшими учениками, если хочется начать с блоков, или если набор состоит из модулей на 5 V, с Arduino меньше сюрпризов.
Как запускать код на Pico без компьютера?
В Thonny сохрани код на плату через вариант «Raspberry Pi Pico» под именем main.py. Pico сама запускает main.py при каждой подаче питания, так что хватит USB-зарядки или пауэрбанка. Чтобы остановить код, снова подключи плату к Thonny и нажми «Стоп».
Есть ли разница между Pico и Pico W на уроке?
Все проекты этого плана работают на обеих платах с теми же пинами; единственное отличие — встроенный светодиод. На классической Pico он подключён к GP25, на Pico W — к микросхеме Wi-Fi, поэтому используй Pin("LED"), который работает на обеих. У Pico W есть ещё Wi-Fi и Bluetooth, но в первые шесть недель они не понадобятся.
Что собрать после прочтения
Все проекты
Мигание встроенным светодиодом Raspberry Pi Pico (Pico и Pico W)
Первый проект серии Raspberry Pi Pico! Мигаем зелёным встроенным светодиодом, чтобы проверить, что плата работает, — классический первый опыт «Hello World». НИКАКИХ внешних компонентов, только Pico и USB-кабель. Код написан на MicroPython (официальном языке, поддерживаемом Raspberry Pi Foundation). Изучи в Thonny IDE класс machine.Pin, режим Pin.OUT, методы led.on()/off() и time.sleep(). Каждое переключение видно в выводе (REPL).

Raspberry Pi Pico: управление внешним светодиодом (макетная плата)
Следующий шаг после встроенного светодиода Pico: подключить внешний светодиод на макетной плате и управлять им через пин GP14. В этом проекте ты узнаешь, как использовать любой пин GPIO общего назначения у Pico как выход, какая полярность у светодиода (длинная ножка = анод/+, короткая = катод/–) и зачем нужен токоограничивающий резистор (220Ω). Без резистора через светодиод пойдёт слишком большой ток, и он может сгореть. Схема очень простая: Pico GP14 → резистор 220Ω → светодиод → GND.

Два попеременно мигающих светодиода на Pico (узор мигалки)
Следующий шаг после одного светодиода на Pico: два светодиода мигают попеременно по классическому узору мигалки. Когда один гаснет, другой загорается — самый простой пример согласованной работы нескольких GPIO. В этом проекте два светодиода разных цветов (красный на GP14, зелёный на GP13) меняются состояниями каждые 500ms. Метод MicroPython Pin.toggle() делает код коротким и понятным. Та же логика лежит в основе светофоров, полицейских мигалок, бегущих огней и многих светодиодных анимаций.

Симулятор светофора на Pico (3 светодиода по очереди)
Настоящий светофор на красном, жёлтом и зелёном светодиодах — первый проект серии Pico с 3 светодиодами! Зелёный 4 с «едем», жёлтый 1,5 с «внимание», красный 3 с «стоп» и красный + жёлтый 1 с «приготовиться» (европейская схема светофора). Изучи объявление функций (def all_off()), логику конечного автомата (последовательность) и синхронизацию нескольких GPIO. Простая схема: 3 светодиода на GP11 (зелёный), GP12 (жёлтый), GP13 (красный), у каждого токоограничивающий резистор 220Ω.

Полицейский стробоскоп на Pico (красный + синий)
Имитируем мигалку полицейской машины на Raspberry Pi Pico в самом простом виде! Красный и синий светодиоды работают по очереди (мигалка): пока горит красный, синий погашен, и они меняются каждые 0,3 секунды бесконечно. Код записывает два шага прямо в одном цикле while True; скорость задаёт константа WAIT_MS.

Светофор на Pico с выбором 4 режимов кнопкой (конечный автомат)
4 режима светофора всего одной кнопкой! Каждое нажатие меняет режим: обычный цикл (красный → жёлтый → зелёный по очереди), только красный (сигнал стоп), мигающий жёлтый (внимание/ночной режим) и выключено (обслуживание). Понятия: конечный автомат (переменная mode определяет, какое поведение выполняется), цикл режимов по модулю ((mode + 1) % 4 → 0→1→2→3→0), неблокирующий тайминг (фазы светодиодов отсчитываются через time.ticks_ms() + time.ticks_diff()).

Светодиод с управлением кнопкой на Pico (удержание)
Первый проект Pico с входом — чтение кнопки! Светодиод горит, пока кнопка нажата, и гаснет после отпускания. Это большой шаг после светодиодных анимаций: сигнал из внешнего мира в Pico. Изучи Pin.IN (режим входа), Pin.PULL_UP (встроенный подтягивающий резистор — стандарт для кнопок) и чтение button.value(). Светодиод на GP14, кнопка на GP2 (встроенный PULL_UP). Нажата = LOW (0), отпущена = HIGH (1) — обратная логика сначала путает, но это промышленный стандарт.

Плавное затухание светодиода с PWM на Pico (эффект дыхания)
Светодиод больше не просто мигает — он дышит! С помощью PWM (широтно-импульсной модуляции) Raspberry Pi Pico яркость светодиода медленно растёт и медленно падает, как огонёк спящего MacBook. Изучи класс machine.PWM, duty_u16() (16-битная яркость 0–65535), частоту PWM (freq(1000) — 1000 циклов вкл/выкл в секунду, мерцания не видно), циклы range() с шагом (вверх и вниз) и почти аналоговый выход с цифрового пина.
Другие статьи
Приложение BlueGrays
Собери эту схему шаг за шагом в телефоне
Схема подключения, код и список деталей на одном экране. 200+ проектов на Arduino, ESP32 и Pico готовы к сборке.
Наведи камеру телефона
Наведи камеру на код — откроется магазин приложений на телефоне.
или открыть магазин

