пятница, 8 сентября 2017 г.

Робототехника ... без роботов. 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

 

1 комментарий:

  1. Спасибо, что поделились идеями! Отличный пример работы с детьми в данной сфере.

    ОтветитьУдалить