Программирование в Scratch 1.4

14 posts / 0 новых
Последнее сообщение
rae
Программирование в Scratch 1.4

 

В этой теме мы узнаем, какие есть возможности у среды Scratch 1.4 для программирования моделей собранных из конструктора LEGO WeDo.

 

Среда Scratch 1.4 содержит набор специальных блоков для управления мотором и снятия показаний с датчиков и включения. Программа поддерживает работу с одним коммутатором (USB Hub), в отличие от стандартной программы LEGO Education WeDo Software, которая поддерживает работу с тремя коммутаторами. Эта версия программы поддерживает управление только одним мотором, если вы подключите два мотора, то они будут работать синхронно. В Scratch датчик расстояния показывает значения от 0 до 100 в зависимости от расстояния до объекта (чем больше объект, тем больше расстояние на котором датчик фиксирует его наличие), в стандартной программе он только фиксирует факт наличия в зоне видимости объекта. Датчик наклона имеет такие же возможности, как и в стандартной программе, выдаёт значения 0, 1, 2, 3, 4, для соответствующих положений датчика наклона – прямо, вверх, влево, вниз, направо.

 

Блоки команд, программирующие работу мотора, находятся в разделе «движение», если они там не отображаются, то их нужно отобразить, для этого во вкладке «Редактировать» надо нажать кнопку «Показать блоки мотора». Сами команды простые и понятные:

  • включить мотор на 1 сек – включает мотор на указанное число секунд, причём число может быть дробным;
  • мотор вкл – включает мотор;
  • мотор откл – отключает мотор;
  • мощность мотора 100 – устанавливает мощность мотора на указанное значение от 0 до 100;
  • мотор в (туда, сюда, перевернуть) – устанавливает направление вращения вала мотора.

 

За работу датчика расстояния, датчика наклона отвечает один блок «… значение сенсора», находящийся в разделе «сенсоры». В раскрывающемся списке данного блока выбираем наклон или расстояние, соответственно для датчика наклона и датчика расстояния. Если нужно вывести значения датчика на экран, то ставим рядом с блоком «галочку».

 

Рассмотрим различные примеры совместного использования конструктора LEGO WeDo и среды программирования Scratch 1.4. Можно выделить три варианта совместного использования:

  • непосредственно программирование моделей LEGO WeDo в Scratch;
  • взаимодействие физической модели LEGO WeDo и виртуальных «спрайтов»;
  • управление виртуальными «спрайтами» при помощи датчиков LEGO WeDo.

 

Непосредственно программирование моделей LEGO WeDo в Scratch.

 

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

На рисунке показано два варианта программирования вращение вала мотора в одну сторону в течение одной секунды и в течение одной секунды в другую сторону. Время вращения мотора может быть не целым числом, например, вал мотора может вращаться половину секунды - 0,5 сек.

Теперь те же самые действия, повторяются 10 раз.

На рисунке показано два варианта программы реализующей управление вращением вала мотора при помощи клавиш клавиатуры. В первом случае, программа запускается на выполнение нажатием на «флажок». Цикл «всегда» нужен для организации ожидания, в данном случае, ожидания нажатия клавиш. При нажатии клавиши «стрелка вверх» вал мотора вращается в одну сторону, при нажатии – «стрелки вниз» вал мотора начинает вращаться в другую сторону, при нажатии на «пробел», мотор отключается. При этом мощность мотора, а значит и скорость вращения его вала всегда постоянна.

 

Во второй программе, которая запускается нажатием кнопки с цифрой «0», добавлена возможность управления мощность=скоростью вращения вала мотора, для этого добавлена переменная «мощность» (названа так для удобства). Если при её создании поставить рядом с ней «галочку», то текущее значение переменной будет отображаться на экране. Изначально значение переменной равно 0, затем в ходе работы программы можно увеличить или уменьшить значение мощности, в данном примере на 5 единиц, нажав соответственно «стрелка направо» или «стрелка влево». Так же добавлена проверка на значение мощности, так как мощность мотора изменяется от 0 до 100, то мы не можем её увиливать больше 100 и уменьшать больше чем до 0.

На рисунке показана программа, которая реализует равноускоренное и равнозамедленное вращение вала мотора. Остановить работу мотора можно в любой момент, нажатием на «пробел».

 

Давайте теперь подключим к компьютеру через контроллер мотор и датчик расстояния, и посмотрим, какие варианты программирования возможны в Scratch в этом случае.

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

 

Во второй программе мощность работы мотора задаётся сразу и не меняется при работе мотора. Но направление вращения вала мотора меняется в зависимости от показаний датчика расстояния. Так при значениях меньших 35, вал вращается в одну сторону, при значениях больших 65 вал вращается в другую сторону, при остальных значениях датчика расстояния мотор отключается.

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

 

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

На рисунке показана программа, которая для контроля направления и мощности=скорости вращения вала мотора использует значения показаний датчика наклона. Программа аналогична программе приведённой выше, в которой такое же управление осуществлялось при помощи «стрелок» на клавиатуре. Такое решение позволит придумать, например, модель машины управляемой джойстиком, или крана который поднимает и опускает грузы с регулируемой скоростью.

 

Взаимодействие физической модели LEGO WeDo и виртуальных «спрайтов» мы рассмотрим в следующих темах  - Модель «Автоматический шлагбаум» и   Модель «Езда до препятствия».

 

Управление виртуальными «спрайтами» при помощи датчиков LEGO WeDo

 

Используя датчик расстояния и датчик наклона из набора LEGO WeDo можно управлять виртуальными «спрайтами», элементами, на взаимодействии которых основаны проекты среды  Scratch. Вариантов использования датчиков можно придумать множество. Например, можно использовать датчики для перемещения «спрайта» на экране, для изменения их размена (цвета, изменения эффектов), для смены «костюмов» «спрайтов».

 

Рассмотрим несколько примеров. Подключим к компьютеру через контроллер датчик расстояния и датчик наклона.

Чтобы удобнее было манипулировать датчиками, можно собрать какой-нибудь джойстик, например, такой как на фотографии.

На рисунке показана программа, которая определяет движение и размер «спрайта». Управление перемещением осуществляется при помощи датчика наклона, спрайт перемещается на заданный шаг. От значений датчика расстояния напрямую зависит размер «спрайта». Программу можно усложнить, добавив смену костюмов. Этот вопрос мы рассмотрим в другой теме.

На рисунке показана программа, в которой при помощи датчика расстояния изменяется положение «спрайта» вдоль оси x (горизонта). Причём расстояния меняется от -240 до 240, то есть в границах, по х, экрана. Используемая формула в программе, задаёт линейную зависимость между множеством значений показаний датчика расстояния (0..10) и множеством значений координаты x «спрайта» (-240..240). Программа интересна тем, что позволяет перемещать «спрайт» движениями руки.

 

Приведу в качестве примера, несколько игр, созданных в Scratch 1.4,  управление в которых реализовано с использованием датчиков LEGO WeDo. Скачать игру можно «кликнув» по картинке, чтобы запустить игру, просто откройте скаченный файл, он автоматически откроется в Scratch 1.4.

 

 

Уважаемые участники мастер-класса, проделайте самостоятельно, все приведённые в данной теме примеры программ. Какие у Вас появились вопросы?  

rae
Романенко Владимир Валерьевич

Спасибо за дополнительный материал, очень интересно, увидел новые модели.

rae

Рекомендую хороший сайт, посвящённый LEGO WeDo - http://www.wedobots.com/ 
Если Вам интересны новые модели, то можете посмтреть - здесь

Романенко Владимир Валерьевич

По приведенным примерам вопросов нет. Scratch манит своей простотой. Но работать по инструкции всегда легко. Игры не удалось открыть.

rae

Игры должны открываться. Надо скачать и установить Scratch 1.4, скачать можно по этой ссылке. Для управления в играх необходимо подключить через контоллер датчики расстояния и наклона.

rae

Рекомендую всем участникам мастер-класса опробовать в работе предложенные в пункте "Непосредственно программирование моделей LEGO WeDo в Scratch" программы, на модели машины, например, такой как в теме - Модель «Езда до препятствия».

Оксана
Аватар пользователя Оксана

Извините за задержку, не смогла закончить работу в срок. Программки все проверила. Сходила в Дом детского творчества, взяла конструктор, чтобы их проверить. Радовались на работе Все! Вопросов нет, объяснено всё понятно. Конечно нужно набираться опыта, чтобы чувствовать себя увереннее.

rae

К сожалению никто, из участников мастер-класса не уложился в отведённый срок.  Считаю, что это не страшно, важнее в удобном для себя ритме познакомиться с тем материалом, который тебе интересен. Вы можете и дальше знакомится с материалами мастер-класса, задавать вопросы можно как в комментариях, так и по почте rae@oblcit.ru.

aleksvk

Scratch нам в школе интерен ещё и тем, что есть версия под Linux. Родное ПО WeDo создано только в Windows. У меня всего 2 ПК с Windows для интерактивных досок. Зато 2 компьютерных класса на Linux и 6 комплектов Lego Wedo. Спасибо за мастер-класс! Хоть с отставанием, но всё пройдём. В Linux одна игра полноценно не заработала, пока не разобрали почему.

rae

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

Оксана
Аватар пользователя Оксана

Спасибо за мастер-класс! Очень много полезного материала было предложено. Для новичков, конечно, недели было маловато на осваивание информации, но с таким багажом, надеюсь и мы дойдём до реализации своих проектов.

rae

Пожалуйста! Проходите, мастер-класс в удобном для Вас темпе, сроки были ограничены в рамках «конференции». Жду ваших проектов!

Инна

Dctv ghbdtn