Образовательная галактика Intel®

Блог Участника

Запись блога

Робототехника... без роботов. Scratch и имитационное программирование. Движение по линии

Добрый день. Поскольку в этом году мы стали работать в рамках внеурочной деятельности с 3-4 классами, то появились некоторые наработки, которыми хотелось бы поделиться, вдруг кому-то помогут в подборе заданий для занятий. Итак, идея от А.Григорьева,
ну а расскажу о реализации я, ибо он сейчас занят в проекте с роботом БХВ. Итак, суть: перед тем, как давать детям программировать робоплатформы на ScratchDuino, мы традиционно учимся программировать на самом языке Scratch. Движение персонажа, игры там всякие... И вот тут как раз и родилась идея - а почему бы не решать с ребятами задачи, которые потом возникнут в робототехнике? Вот так и появились проекты движения по линии, робофутбол и т.д. Ну, а для тех, у кого в школе вообще нет роботов, это неплохой вариант "потрогать" робототехнику виртуально. Конечно, есть виртуальный исполнитель в той же среде Trik Studio, я уже писал о нем. Там все по взрослому, и если планировать далее работать с Трик или Lego - очень хороший вариант. Но для начальных классов и с прицелом на программирование в ScratchDuino, mBlock или Snap! - очень интересными оказались имитационные проекты именно в среде Scratch.

Итак. Проект 1. Движение по линии.
У нас было два варианта. В первом мы брали спрайт, создавали два шарика - датчика, указывали их расположение впереди спрайта симметрично, потом задавали поведение этих "датчиков" при касании линии. Но это оказалось довольно сложно для быстрой работы в третьем классе, поэтому проект был изменен. Теперь мы берем спрайт с уже существующими "как-бы датчиками"))) Для желающих посмотреть второй вариант - приложу и файл в таком исполнении. Мы же рассмотрим простой.

задача: создать имитацию движения робота по линии. В качестве робота будет выступать жук, в качестве датчиков - его усы.
1. запускаем Scratch
2. Удаляем текущий спрайт (кота).
3. Добавляем новый спрайт - Beetle (раздел Животные)

4. Переходим во вкладку Костюмы и перекрашиваем все лапы жука в черный цвет (можно и без этого, но ошибок будет меньше)

5. Перекрашиваем усы жука в два разных цвета, например, как на рисунке ниже. Желательно, чтобы эти цвета не повторялись в костюме жука или цвете будущей линии.

6. Переходим на Сцену, выбираем вкладку Фон и рисуем зеленым цветом кисточкой средней толщины линию движения жука. Изначально с детьми проговариваем, что линия не должна слишком близко поджиматься к краям, иначе жук не пройдет, и не иметь острых углов стыковки. Плавная замкнутая линия. Да, при рисовании лучше уменьшить область показа спрайтов, и масштаб поля, чтобы рисовать линию на всем поле сцены.

7. Жук довольно громоздкий, по сравнению с линией. Поэтому при создании программы используем масштабирование. Здесь мы обычно обсуждаем, каким должен быть жук по размеру. По ходу споров выясняем, что линия должна быть чуть уже, чем голова жука между усами, чтобы они не касались линии просто так. Можно, конечно, изменить размер спрайта в Костюмах, но с масштабированием правильнее. Можно легко подбирать размер, да и лишний повод обсудить, что это такое. На удивление, идея масштаба прошла легко, как, впрочем и понимание градусов поворота, которые мы отрабатывали раньше, создавая игры с управлением персонажем.
Опять же, по ходу разговора выясняется, что жук должен действовать по принципу - "Если цвет (правого уса) касается цвета (линии) то..." , и создается программа. Например, такая:


Обратите внимание: сначала спрайт масштабируется, затем идут блоки ручного управления спрайтом(стрелками влево-вправо) - чтобы можно было уводить жука с линии и ставить эксперименты на углах входа, заодно, чтобы жук не убегал, добавлен блок отталкивания от края сцены. Ну и блоки работы сенсоров - "датчиков линии". Цвет сенсоров и линии задается просто - щелкаем по квадратику цвета в блоке сенсора, затем показываем нужный цвет на спрайте (ус) или линии.

Все, жук ко всеобщему восторгу бегает.


Мне что понравилось: потом мы начали увеличивать скорость (меняя количество шагов за цикл) и поняли, что при большой скорости жук сходит с линии. И при такой скорости приходиться менять угол доворота на линию.... Обсудили, что так же обстоит дело и с реальным роботом. Прозвучало название Регуляторы.
Затем попробовали нарисовать несколько сцен с разными линиями. Поняли, что при резких углах поворота жук вылетает с трассы. Опять же обсудили, что именно поэтому перед соревнованиями вывешиваются параметры трассы.
С заданием справились все, а у меня группы по 14 человек. радует)))

Ну вот, такое вот имитационное задание с кучей возможностей для обсуждения.
Дальше - можно развлекаться: линия с перекрестками и т.д.
Все, до новых встреч! Файлы с рассмотренным вариантом и с двумя датчиками - шариками, прикладываю. Beetle - мой вариант, Line Follover - вариант А.Григорьева с двумя датчиками. Интересный вариант для более взрослых учащихся.
Прикрепленный файл  Scratch.zip ( 21.91 килобайт ) Кол-во скачиваний: 106


PS Обратите внимание, что программы можно запускать не только в Scratch 2.0 но и в его клонах, например в mBlock.

Теги к этой записи:

Комментарии

Новичок

  • Группа: Пользователи
  • Сообщений: 1
  • Регистрация: 13.4.2010
  • Из: Глазов
  • Номер участника: 84535
Предупреждение

Коллеги - мы придумали похожие вещи с женой еще в 2012 году, как раз при разработке ScratchDuino:
Вот цикл статей в LXF
http://www.linuxformat.ru/download/LXF156.school.pdf
http://www.linuxformat.ru/download/LXF157.school.pdf

И много других вещей - к примеру имитацию на Scratch робота-пылесоса, физический движок Робо-сумо, перенос на Snap! и т.п., которые у нас постепенно дорабатываются: https://goo.gl/WJU2jL

Сообщение отредактировал akdengi - 15.12.2016, 21:06

Активный пользователь

  • Группа: Пользователи
  • Сообщений: 321
  • Регистрация: 29.9.2010
  • Из: Санкт-Петербург
  • Номер участника: 93026
Предупреждение

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


--------------------
www.sch169.ru

Новичок

  • Группа: Пользователи
  • Сообщений: 0
  • Регистрация: 20.2.2016
  • Номер участника: 185878
Предупреждение

Цитата(akdengi @ 15.12.2016, 20:49)
Коллеги - мы придумали похожие вещи с женой еще в 2012 году, как раз при разработке ScratchDuino:


"Робототехника без роботов" в среде Scratch появилась не в 2016 и не в 2012 году, а с момента появления самого Scratch smile.gif Не зря с самого начала соответствующая категория блоков называлась "Sensors". Не говоря уже о том, что сама идея имитационного моделирования стара как мир:
lego-mindstorms-ev3-virtual-robotics-toolkit
Тестируем робота без самого робота
VirtualBrick
roboforum

Вот то, чего действительно не хватает, это материалов, доступных не только для гиков, но и для обычных учителей, которым есть чем заняться. Поэтому спасибо и Юрию, и Татьяне, и всем остальным!


--------------------
Александр Григорьев

Активный пользователь

  • Группа: Пользователи
  • Сообщений: 321
  • Регистрация: 29.9.2010
  • Из: Санкт-Петербург
  • Номер участника: 93026
Предупреждение

И Александру)))) Привет!


--------------------
www.sch169.ru

Статьи по этой теме

« Апрель 2017 »
ВПВСЧПС
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
21
22
23
24
25
26
27
28
29
30

Последние записи

Мои ссылки в блоге

Последние комментарии
scar169 в Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.
LaraKrav в Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.
scar169 в Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.
LaraKrav в Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.
p&t в Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.
scar169 в Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.
p&t в Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.
Раков Андрей Егорович в Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.
scar169 в Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.
p&t в Стандарты для Arduino-роботов как возможность занять правильную нишу в образовательной робототехнике.

Мое изображение

3 пользователей просматривает
3 гостей
0 участников
0 анонимных участников

Категории

Поиск в блоге


Наверх