Интеграция Scratch 3 и LEGO MINDSTORMS EV3 для создания игры по типу «Гонки»

XXII Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Интеграция Scratch 3 и LEGO MINDSTORMS EV3 для создания игры по типу «Гонки»

Бек Л.Э. 1Якушкин Н.М. 1Грилюк М.Д. 1Кузнецов Л.В. 1
1Школа интеллектуального развития Мистер Брейни
Бек М.А. 1
1Школа интеллектуального развития Мистер Брейни
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

В современном мире компьютерные игры стали неотъемлемой частью жизни. Они не только развлекают, но и способствуют развитию логического мышления, креативности и командной работы. В этой связи актуальным становится вопрос создания игр, доступных для широкой аудитории, включая школьников, которые смогут не только играть, но и самостоятельно создавать собственные игровые проекты.

Данная работа посвящена исследованию возможности интеграции Scratch 3 – простой и интуитивно понятной среды программирования, популярной в образовательной сфере, с LEGO MINDSTORMS EV3 – конструктором, позволяющим создавать роботов и автоматизировать процессы.

Целью исследования является разработка игры типа “Гонки”, где игроки управляют роботом LEGO MINDSTORMS EV3, программируя его движение и взаимодействие с игровой средой в Scratch 3.

Задачи:

  1. Разработка алгоритмов управления LEGO MINDSTORMS EV3

  2. Установить программное обеспечение для связи Scratch 3 и LEGO MINDSTORMS EV3

  3. Настроить взаимодействие между Scratch 3 и EV3, обеспечивая передачу команд и данных.

  4. Разработка игровой механики в Scratch 3

  5. Проектировать и собрать два руля управления для LEGO MINDSTORMS EV3 из элементов конструктора

  6. Разработать систему подсчета очков, времени прохождения трассы и определения победителя

  7.  Провести тестирование игры на соответствие требованиям и функциональности.

  8. Оптимизировать алгоритмы и код программы для устранения ошибок и повышения производительности.

  9. Провести игровое тестирование с привлечением нескольких игроков

  10. Выявить преимущества и недостатки созданной игры.

В работе будут рассмотрены теоретические основы создания игр с использованием Scratch 3 и LEGO MINDSTORMS EV3, описаны этапы разработки, а также проведен анализ полученных результатов. Проект направлен на демонстрацию потенциала интеграции Scratch 3 и LEGO MINDSTORMS EV3 в сфере игрового дизайна и образования, способствуя развитию интереса к программированию и робототехнике у молодого поколения.

Глава 1. История возникновения среды программирования Scratch

    1. Рождение Scratch: от идеи до реализации

Scratch - это не просто среда программирования, а целое движение, революционизировавшее подход к обучению программированию. Его появление стало результатом труда многих талантливых людей, но именно Митчелл Резник, профессор Массачусетского технологического института, стал ключевой фигурой в этой истории (Рисунок 1.1.1, Приложения). Резник всегда верил, что программирование должно быть доступно каждому, что оно может стать инструментом для самовыражения, творчества и решения проблем. В 2003 году он запустил проект “Lifelong Kindergarten” (Вечный детский сад), который посвятил изучению нового подхода к образованию, основанного на игре и творчестве. В рамках этого проекта и родилась идея Scratch[4].

Scratch был задуман как простой и интуитивно понятный инструмент, который позволил бы детям создавать свои собственные игры, анимации, музыку и другие интерактивные проекты. В место строгого синтаксиса и сложных команд Scratch использует визуальные блоки кода, которые можно соединять между собой как пазл. Первая версия Scratch была выпущена в 2007 году и сразу же привлекла внимание миллионов пользователей по всему миру. Она стала революцией в доступности программирования для детей. Scratch помог многим ребятам овладеть основами программирования и реализовать свои творческие идеи.

Scratch стал более чем просто средой программирования. Он превратился в живое сообщество людей, объединенных общим интересом к творчеству и технологиям. Пользователи Scratch могут делиться своими проектами, обмениваться идеями, учиться друг у друга и вместе создавать удивительные вещи.

Разработчики Scratch постоянно совершенствуют платформу, добавляя новые возможности, улучшая дизайн и делая ее еще более доступной для всех. Scratch станет еще более популярным в будущем, помогая всему новому поколению освоить программирование и реализовать свои мечты.

1.2. Развитие Scratch: эволюция платформы

С момента своего появления в 2007 году Scratch претерпел значительные изменения, эволюционируя в соответствии с потребностями пользователей и развитием технологий[5].

В начале Scratch представлял собой программу, которая устанавливалась на компьютер(Рисунок 1.2.1, Приложения). Однако в 2011 году была запущена онлайн-версия Scratch 2.0, которая стала доступна для всех пользователей с подключением к интернету. Переход в веб открыл новые возможности: Scratch стал доступен с любого устройства с доступом в сеть, что значительно расширило аудиторию и упростило использование платформы. Scratch 2.0 принес с собой значительные изменения в интерфейсе и функционале(Рисунок 1.2.2, Приложения).. Блоки кода были переработаны для более интуитивного использования, были добавлены новые блоки, расширяющие возможности программирования. Появилась поддержка новых языков программирования, в том числе и русского.

В 2019 году была выпущена Scratch 3.0, которая стала еще более современной и функциональной(Рисунок 1.2.3, Приложения).. Она получила новый дизайн, более яркий и интуитивный интерфейс. Scratch 3.0 адаптирована для работы на различных устройствах, включая планшеты и смартфоны. Она также получила поддержку новых технологий, таких как сенсорные экраны, камеры и микрофоны.

С каждым обновлением Scratch стает более мощным, гибким и доступным. Он продолжает превращать программирование в увлекательную и творческую деятельность для всех, независимо от возраста и опыта.

1.3. Влияние Scratch на мир программирования

Scratch оказал значительное влияние на мир программирования. Вот некоторые аспекты его воздействия:

  1. Визуальная среда программирования: Scratch разработан специально для обучения детей и использует цветные блоки, понятные даже маленьким детям.

  2. Популярность и востребованность: Scratch входит в 20 наиболее популярных и востребованных языков программирования по версии TIOBE.

  3. Обучение основам программирования: дети осваивают логику, основы программирования и практикуют реализацию сложных алгоритмов.

  4. Подготовка к изучению «взрослых» языков программирования: навыки, полученные при работе со Scratch, упрощают дальнейшее изучение текстовых языков программирования.

  5. Международное сообщество: Scratch является крупнейшим сообществом для изучения программирования, где проводятся конкурсы и соревнования.

Глава 2. Создание игры по типу “Гонки” на Scratch 3.0 с использованием конструктора Lego Mindstorms EV3.

2.1. История появления гоночных компьютерных игр

Гонки – один из самых популярных жанров в мире компьютерных игр. Первые гоночные игры появились еще в 1970-х годах, когда компьютеры были большими и дорогими, а графика была крайне примитивной[3].

Одной из первых гоночных игр стала “Gran Trak 10” (1974), которая представляла собой симулятор гонок на трассе с простейшей графикой и управлением(Рисунок 2.1.1, Приложения).. В 1976 году появилась игра “Night Driver”, которая уже имела более реалистичную графику и звук.

В 1980-х годах гоночные игры стали более сложными и реалистичными. Появились игры с 3D-графикой, разнообразными трассами, разными машинами и более интуитивным управлением.

В 1990-х годах гоночные игры достигли нового уровня реализма. Игры стали более динамичными, с лучшей физикой и более детальной графикой. Появились онлайн-гонки, которые позволяли игрокам соревноваться друг с другом в реальном времени(Рисунок 2.1.2, Приложения)..

2.2. Особенности гоночных компьютерных игр

Гоночные игры характеризуются следующими особенностями:

  • Управление: Игроки управляют машиной с помощью клавиатуры, геймпада или руля. Управление может быть разным - от простого до очень сложного, с учетом физических характеристик машины.

  • Трасса: В гоночных играх игроки соревнуются на разнообразных трассах - от прямых участков до сложных извилистых дорог с поворотами, подъемами и спусками.

  • Физика: Современные гоночные игры используют сложные физические модели, которые делают поведение машин более реалистичным.

  • Режим игры: В гоночных играх может быть несколько режимов - гонки на время, гонки на очки, гонки на выбывание, онлайн-гонки.

  • Элементы игры: В гоночных играх могут быть разные элементы - бонусы, препятствия, оружие, искусственный интеллект противников.

2.3. Возможности Scratch для создания гоночных игр

Scratch – это идеальная среда для начинающих разработчиков, желающих попробовать себя в создании игр, особенно гонок[6]. Её простота и интуитивность позволяют создавать увлекательные проекты без глубокого знания программирования. Давайте рассмотрим, какие возможности Scratch предоставляет для этого:

1. Визуальное программирование: Scratch использует блоки кода, которые можно соединять между собой, как пазл. Это делает программирование более доступным и понятным для начинающих, особенно для детей. В контексте гоночной игры, такой подход позволяет легко создавать логику управления машиной, взаимодействия с окружающей средой и даже простой искусственный интеллект для противников.

2. Создание спрайтов: В Scratch можно создавать спрайты (персонажи), которые будут участвовать в игре. Это может быть машина, гонщик, препятствия или другие элементы гоночного мира. Например, можно создать спрайт гоночной машины с помощью инструментов рисования, либо загрузить готовый спрайт из библиотеки. Для создания трассы можно использовать фон Scratch или добавить спрайты с изображением дороги, деревьев и других элементов ландшафта.

3. Управление движением: Scratch позволяет управлять движением спрайтов с помощью следующих блоков:

  • “Переместиться в [число] шагов”: В гоночной игре этот блок можно использовать для движения машины вперед.

  • “Повернуться на [число] градусов”: В гоночной игре этот блок можно использовать для поворота машины влево или вправо.

  • “Изменить направление на [число] градусов”: В гоночной игре этот блок можно использовать для плавного поворота машины.

  • “Установить направление на [число] градусов”: Этот блок позволяет установить точное направление движения спрайта. В гоночной игре этот блок можно использовать для ориентации машины в нужном направлении.

  • “Скорость [число]”: Этот блок позволяет установить скорость движения спрайта. В гоночной игре этот блок можно использовать для управления скоростью машины.

4. События и условия: Scratch предоставляет возможность реагировать на различные события и условия, что делает игру более динамичной и интерактивной. Чаще всего используются следующие блоки:

  • “Когда [событие]”: Этот блок используется для реагирования на конкретное событие, например, нажатие на клавишу или столкновение с другим спрайтом. В гоночной игре этот блок можно использовать для управления машиной с помощью клавиш “стрелки”, либо для реагирования на столкновение с препятствием.

  • “Если [условие]”: Этот блок позволяет выполнить определенный код, только если условие истинно. Например, можно проверить, не столкнулась ли машина с препятствием, и если да, то замедлить ее скорость или изменить направление движения.

5. Звуковые эффекты: Scratch позволяет добавлять звуковые эффекты, что делает игру более увлекательной и живой. В гоночной игре можно добавить звук двигателя, скрип тормозов, сигнал сирены и другие эффекты.

6. Создание интерфейса: Scratch позволяет создавать простой и интуитивный интерфейс для игры. Это могут быть кнопки управления (например, кнопки “Вверх”, “Вниз”, “Влево”, “Вправо”), индикаторы времени, счетчики очков и другие элементы.

2.4 Создание гоночной игры на Scratch 3.0 с использованием Lego Mindstorms EV3

Для управления виртуальной машиной в гоночной игре с помощью Lego Mindstorms EV3 можно использовать руль, собранный из конструктора[7]. В этом руле будет использоваться мотор, который будет поворачивать руль, и два датчика касания, которые можно использовать для старта и торможения.

Для работы с Lego Mindstorms EV3 в Scratch 3.0 нужно использовать специальное расширение. Это расширение предоставляет доступ к датчикам и моторам Lego Mindstorms EV3.

Возможности расширения:

  • Управление моторами: С помощью этого расширения можно управлять моторами Lego Mindstorms EV3 из Scratch 3.0. Можно установить скорость вращения мотора, направление вращения и задать другие параметры.

  • Чтение данных с датчиков: Расширение позволяет считывать данные с датчиков Lego Mindstorms EV3, таких как датчик касания, датчик расстояния, датчик цвета и других.

Чтобы соединить Scratch 3.0 с Lego Mindstorms EV3, необходимо скачать и установить некоторые дополнительные компоненты:

  • Scratch 3.0: Скачайте и установите Scratch 3.0 с официального сайта.

  • Scratch 3.0 Extension for Lego Mindstorms EV3: Скачайтеиустановитерасширение Lego Mindstorms EV3 для Scratch 3.0. Его можно найти на официальном сайте Scratch.

  • Lego Mindstorms EV3 Bluetooth Driver: Скачайте и установите драйвер Bluetooth для Lego Mindstorms EV3. Он позволит Scratch 3.0 подключаться к Lego Mindstorms EV3 по Bluetooth.

Глава 3. Практическая часть.

3.1. Строение руля

В рамках практической части проекта были созданы два варианта руля для управления виртуальной машиной в гоночной игре на Scratch[1].

Руль №1: Средний мотор. Средний мотор был прикреплен к основе так, чтобы он мог вращать руль[2]. Два датчика касания были прикреплены к рулю с двух сторон так, чтобы они замыкались при повороте руля(Рисунок 3.1.6, Приложения). Для придания рулю более реалистичного вида были использованы гусеницы от конструктора Lego Mindstorms EV3(Рисунок 3.1.5, Приложения).. Гусеницы были прикреплены к основе руля, чтобы имитировать обод руля(Рисунок 3.1.6, Приложения).

Руль №2: Большой мотор[8].Конструкция основы была аналогична первому рулю(Рисунок 3.1.1, Приложения).

Схема подключения:

  • Мотор был подключен к порту “A” на Lego Mindstorms EV3.

  • Первый датчик касания был подключен к порту “1”.

  • Второй датчик касания был подключен к порту “2”.

Функциональность:

  • Первый датчик касания используется для старта и ускорения виртуальной машины в игре(Рисунок 3.1.2, Приложения)..

  • Второй датчик касания используется для торможения виртуальной машины в игре.

Управление:

  • Положение виртуальной машины в игре зависит от угла поворота мотора. Угол поворота рассчитывается благодаря энкодерам, встроенным в мотор(Рисунок 3.1.5, Приложения)..

  • В Scratch 3.0 с помощью расширения Lego Mindstorms EV3 можно считывать данные с энкодеров мотора и передавать их в игру для управления виртуальной машиной.

3.2. Описание программы для гоночной игры

Программа для гоночной игры на Scratch 3.0 с использованием Lego Mindstorms EV3 получилась довольно объемной, но интересной. В ней присутствуют спрайты машины, деревьев, камней и ям, которые создают атмосферу гоночной трассы. Для создания иллюзии движения машины создан спрайт разметки, который клонирует сам себя и движется вниз по оси Y до тех пор, пока не достигнет значения “-180”. Это создает ощущение, будто машина едет по дороге, а окружающая среда проносится мимо[9].

Управление машиной осуществляется с помощью Lego Mindstorms EV3, подключенного к Scratch 3.0 через специальное расширение. Для управления движением используются две переменные: “Скорость езды прямо” и “Боковая скорость”. Первая отвечает за скорость движения машины вперед, а вторая - за скорость поворота вправо или влево. Спрайты с препятствиями (камни и ямы) также клонируют сами себя и появляются в случайном порядке на трассе, создавая неожиданные препятствия для игрока. Спрайты деревьев, создающие иллюзию движения фона, движутся сверху вниз по оси Y.

Программа взаимодействует с Lego Mindstorms EV3 через специальные блоки, которые позволяют считывать данные с датчиков касания и управлять мотором. Данные с энкодера мотора используются для расчета угла поворота машины в игре. Таким образом, игрок может управлять машиной с помощью руля, созданного из Lego Mindstorms EV3, и видеть, как виртуальная машина двигается на экране.

Игра предлагает захватывающий вызов - достичь максимальной скорости, проезжая по трассе, усеянной препятствиями. Игрок должен мастерски управлять машиной, избегая столкновений с камнями и ямами, чтобы увеличить свой рекорд скорости и почувствовать настоящий драйв гонок. Чем быстрее вы едете, тем больше очков получаете!

Заключение

Разработка гоночной игры на Scratch 3.0 с использованием Lego Mindstorms EV3 стала увлекательным и познавательным проектом. Мы убедились в том, что Scratch 3.0 – это простое и интуитивное среда для создания игр, а Lego Mindstorms EV3 – отличный инструмент для взаимодействия с компьютером и создания увлекательных игровых устройств. Scratch 3.0 отлично подходит для начинающих разработчиков и идеален для создания простых, но захватывающих игр, а Lego Mindstorms EV3 - мощный инструмент для создания устройств и взаимодействия с компьютером, который может быть использован для управления играми на Scratch 3.0. Совмещение Scratch 3.0 и Lego Mindstorms EV3 открывает широкие возможности для создания интерактивных и увлекательных проектов. В будущем мы планируем улучшить нашу игру, добавив новые функции, например, разнообразные трассы, противников, звуковые эффекты и систему подсчета очков. Также мы хотим исследовать возможности использования других датчиков Lego Mindstorms EV3, таких как датчик расстояния или датчик цвета, в нашей игре. Мы уверены, что проект будет развиваться дальше и принесет нам новые знания и опыт в области программирования и робототехники.

Список использованных источников:

  1. Курс «Машины и механизмы», курс «Основы робототехники», Школа интеллектуального развития «Мистер Брейни», - Режим доступа - https://vk.com/mrbrain_tmn;

  2. Филиппов С.А. Робототехника для детей и родителей, - СПб.: Наука, 2013. 319с;

  3. https://www.playground.ru/misc/news/evolyutsiya_gonochnyh_igr-292403

  4. https://www.progkids.com/blog/istoriya-scratch

  5. https://kursy.ru/znaniya/programmirovanie/chto-takoe-scratch/

  6. https://ru.scratch-wiki.info/wiki/Расширения

  7. https://wikiscratch.miraheze.org/wiki/Дополнения_для_Скретча

  8. https://robotbaza.ru/blogs/blog/vse-o-mindstorms-education-ev3

  9. https://scratch.mit.edu/

ПРИЛОЖЕНИЯ

Рисунок 1.1.1 Основатель Scratch Рисунок 1.2.1 Scratch 1

Рисунок 1.2.2 Scratch 2 Рисунок 1.2.3 Scratch 3

Рисунок 2.1.1Pole Position Рисунок 2.1.2Forza

Рисунок 3.1.1 Руль общий вид Рисунок 3.1.2 Датчик 1 для старта

Рисунок 3.1.3 Мотор для управления рулем Рисунок 3.1.4 расположение датчиков

Рисунок 3.1.5 Руль со средним мотором Рисунок 3.1.6 Руль и игра

Рисунок 3.2.1 Игра общий вид Рисунок 3.2.2 Программа для машины

Рисунок 3.2.3 Программа для разметки Рисунок 3.2.4 Программа для деревьев

Рисунок 3.2.4 Программа для препятствий

Просмотров работы: 90