Публикации сообщества

Ольга Тузова • 15 марта 2019

Программируем игру на микроконтроллере BBC micro:bit

Слова «переворот в сознании» уже звучали в отношении BBC micro:bit.  Но они возникают вновь и вновь по мере освоения этого миниатюрного, изящного и вместе с тем мощного микроконтроллера. Его несомненные достоинства — самодостаточность и доступность — ориентированы на обычного ребёнка-школьника, и дают возможность ввести его в цифровой мир, где он примерит роль не потребителя, а любопытного и заинтересованного создателя, например, компьютерной игры.

Для разработки увлекательной micro:bit-игры не потребуется никаких дополнительных аксессуаров, кроме самого микроконтроллера и источника питания. При этом игра может быть всегда под рукой – микроконтроллер легко помещается в небольшом кармане. Можно поиграть с одноклассниками, родителями, которые по достоинству оценят не только ваше мастерство игрока, но в большей степени – мастерство разработчика. Отличная мотивация для новых свершений!

Самодостаточность микроконтроллера обеспечивается небольшим (5х5) светодиодным дисплеем, программируемыми кнопками, встроенными датчиками и Bluetooth-антенной. Bluetooth-коммуникация в игровом пространстве как собственная разработка «рядового»  шести- или семиклассника, воспринимаемая без удивления, — вот это и есть «переворот в сознании».

Компьютерная игра – это STEM-проект, в котором естественным образом переплетаются и не разделяются различные предметные области. Например, в простой, казалось бы, игре «Камень, ножницы, бумага», над которой мы работали с 5-классниками, возникают и решаются вопросы кодирования, симметрии, беспроводной передачи сигналов, помехоустойчивости и другие. Разрабатывая игру от простого варианта к более сложному, более интересному (а это означает, что есть сильный мотивирующий фактор) дети проходят по циклическому пути инженерного проектирования, осваивая его не как теорию, которую нужно выучить, а на реальной практике.

Разработчики ПО микроконтроллера хорошо позаботились о будущих проектировщиках игр. В блочном редакторе есть встроенная библиотека «Игра», которая позволяет простыми средствами достичь сложных эффектов и, кроме того, содержит модули для работы со спрайтами. Это означает, что светодиод может быть описан как объект с управляемыми координатами, который можно пошагово перемещать, в том числе, по диагонали, создавать и удалять, и который реагирует на столкновение с другими спрайтами.

Ниже - несколько примеров игровых программ. Если у вас ещё нет микроконтроллера BBC micro:bit, вы можете использовать для игры эмулятор, встроенный в редактор кода.

  1. Популярная игра «Поймай яйцо».
    С заданным временным интервалом в верхней строчке дисплея в случайной позиции появляется спрайт «яйцо», которое немедленно начинает падать вниз. В нижней строчке дисплея находится спрайт «корзина», который может перемещаться по горизонтали, повинуясь наклонам микроконтроллера (работает акселерометр!). Задача игрока поймать как можно больше яиц в свою корзину.
    Игра начинается нажатием кнопки A и останавливается одновременным нажатием кнопок A и B. Эмулятор акселерометра реагирует на перемещение курсора мыши справа налево и слева направо.
    https://makecode.microbit.org/_YgjM712rEa1X
  2. «Космический корабль и метеоры». (Первоисточник: https://youtu.be/m5vFKOAFOIw)
    Игра похожа на предыдущую, но здесь надо «космическому кораблю», который находится на нижней строчке дисплея, увернуться от метеоров, попав в узкий просвет между ними. С точки зрения программирования задача немного сложнее, так как программируется одновременное движение группы светодиодов-метеоров.
    Запускается игра жестом «встряхивание», останавливается одновременным нажатием кнопок A и B. «Космический корабль» управляется кнопками A и B.
    https://makecode.microbit.org/_2o56PaHoiJLJ
  3. «Космические войны». (Первоисточник: https://youtu.be/l7LTg15KPgE). Игра для двух микроконтроллеров. Кнопками A и B можно перемещать свой космический корабль вправо и влево. Одновременное нажатие кнопок A и B – выстрел по противнику. Выстрел с помощью радиосигнала передаётся на второй микроконтроллер. Жестом «встряхивание» на дисплей выводятся набранные в игре очки.
    https://makecode.microbit.org/_Cpk8URX9sfiY

Это – несложные проекты для начинающих. В дальнейшем можно попробовать свои силы в проектировании «micro:bit-тетриса» или «micro:bit-змейки», например.

Кол-во комментариев: (8)

Екатерина Алексеева
Мы вчера с коллегами обсуждали проблему самостоятельности выполнения проектов. Ольга, а у Вас ребята в 7 классе от старта до финиша программируют все сами или роль консультанта-тьютора - заинтересовавшего и мягко ведущего к выполнению проекта необходима?
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Ольга Тузова
    Екатерина, спасибо за комментарий. У меня - 5-классники. У них ещё очень маленький опыт самостоятельной работы, так что бывает, что приходится и "жёстко вести" :). Я работаю ещё в 10-11 классах. Там у нас особая система: курс программирования разбит на блоки, и после каждого блока ученик должен сначала сдать зачёт, который проверяет то, что в пирамиде Блума лежит на нижних уровнях - Знает, Понимает, Применяет... После этого все в обязательном порядке выполняют и защищают проектную работу. И здесь уже работа абсолютно самостоятельная, начиная от детализации самой постановки задачи. "Мягкое ведение" включается на защите, где работа может быть не принята и должна быть доработана. Но это 10-11 класс. У старших ребят опыт проектной деятельности (по крайней мере в программировании), даже если до этого он не был получен в полной мере, достаточно быстро приобретается.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Ольга Тузова
    Лора Кравченко Лора, собственно реализована (как выполненное учебное задание и как проект) на данный момент только игра "Камень, ножницы, бумага". Другие описанные здесь и не описанные ждут своей очереди. Как мы работали с "Камень, ножницы, бумага" в 5-м классе описано здесь: https://drive.google.com/file/d/1okWlIdYPVKUaWkxSAkErxi_0CbVkNvOy/view. В 10-м классе - по-другому. В 10-м классе у нас каждый учебный блок заканчивается проектом, который выполняется самостоятельно. Мы изучаем язык программирования Паскаль, но в качестве проектного задания может быть предложено что-либо из другой области программирования. Так, после блока "Условный оператор" толковым ребятам было предложено разработать игру "Камень, ножницы, бумага" для двух микроконтроллеров. Была поставлена задача, какая-то минимальная вводная часть с моей стороны была сделана - возможности micro:bit, в какой среде программировать, как получить справку по командам... Когда по ходу работы возникали какие-то конкретные вопросы, я на них отвечала или показывала, где найти ответ. Всё. В итоге мы получили игру в более законченном виде, чем было предложено 5-классникам.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Ольга Тузова
    Лора Кравченко Лора, разработка была подготовлена для районного фестиваля. Ниже - ссылка на все (ну почти все) материалы, которые использовались на уроке, но все их надо переделывать, во-первых, по результатам проведённых занятий, во-вторых, потому что изменился редактор кодов, блоки сейчас выглядят иначе, да и работать мы стали в русской версии. Это не проект, скорее, лабораторная работа, учебное задание. Предусмотрены 2 уровня. Для учеников посильнее формулируется словесный алгоритм, по которому надо собрать код (Рабочий лист1-С0), для ребят послабее даются картинки-инструкции (Рабочий лист1-С1). Уроки нанизываются на презентацию, на слайдах которой формулируются вопросы для обсуждения и задания. Ссылка>> https://drive.google.com/drive/folders/1tcT90niVxMEQlc47y3VMaxtJZGtwMz_…
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии