Добавить в корзинуПозвонить
Найти в Дзене

Проект "Движение по линии". Snap4arduino #1

В прошлой статье мы познакомились с очень интересной средой - Snap4arduino. Теперь применим ее для создания проекта по виртуальной робототехнике. Одно из классических соревнований роботов – движение по линии. Роботы ориентируются на сигналы с датчиков, определяя положение линии и стараются как можно быстрее пройти дистанцию. Мы создадим проект в среде Snap4arduino для моделирования поведения виртуального робота при перемещении по чёрной разметке. На сцене мы нарисуем линию, и наш виртуальный робот будет следовать по этой линии автоматически. В данном проекте мы работаем в среде Snap4Arduino, установленной на компьютер. Если вы используете он-лайн версию, то отличий будет немного, разве что с сохранением проектов в виде файлов (в онлайн версии все сохраняется в папку Загрузки, а в стационарной можно сразу указывать название файла и путь сохранения). В новом пустом проекте сейчас лишь два объекта - Сцена и спрайт с костюмом стрелки и названием "Спрайт". Измените размер Сцены. В этом про
Оглавление

В прошлой статье мы познакомились с очень интересной средой - Snap4arduino. Теперь применим ее для создания проекта по виртуальной робототехнике.

Общее описание проекта

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

Мы создадим проект в среде Snap4arduino для моделирования поведения виртуального робота при перемещении по чёрной разметке. На сцене мы нарисуем линию, и наш виртуальный робот будет следовать по этой линии автоматически. В данном проекте мы работаем в среде Snap4Arduino, установленной на компьютер. Если вы используете он-лайн версию, то отличий будет немного, разве что с сохранением проектов в виде файлов (в онлайн версии все сохраняется в папку Загрузки, а в стационарной можно сразу указывать название файла и путь сохранения).

Этап 1: Готовим объекты, рисуем и компонуем

  • Запустите среду Snap4arduino.

В новом пустом проекте сейчас лишь два объекта - Сцена и спрайт с костюмом стрелки и названием "Спрайт".

Измените размер Сцены. В этом проекте нам будет удобнее иметь 640х480 пикселей (точек) вместо 480х360. Используйте пункт меню "Настройки", "Размер сцены".

-2

При необходимости в будущем мы сможем сделать сцену ещё больше.

• Теперь отредактируйте фон, нарисуйте линию разметки, по которой будет ездить робот. Выберите объект "Сцена".

-3

• Переключитесь на вкладку "Фоны", щёлкните по кнопке "Нарисовать новый костюм".

-4

Откроется окно простого графического редактора:

-5

• Выберите светло-серый, почти белый цвет и, используя инструмент "Заливка", заполните им весь фон. Затем нарисуйте линию разметки (трассу) чёрным или почти чёрным цветом при помощи инструмента "Кисть" размером 10 пикселей. Если нужно отменить последнее действие, используйте кнопку "отменить" в левом верхнем углу, не путайте её с кнопкой закрытия всего окна.

Должно получиться примерно так, как на рисунке.

-6

Закройте окно редактора кнопкой "ОК".

Трасса готова, теперь займёмся созданием робота.

• Щёлкните по объекту "Спрайт", переименуйте его. Мы будем использовать имя "Робот".

-7

Не обязательно рисовать все объекты самостоятельно, воспользуемся готовым изображением "EV3-mini.png" из электронного архива.

-8

• Сохраните изображение выше с использованием контекстного меню (щёлкнув правой кнопкой мыши по изображению и выбрав "Сохранить как…"), или воспользуйтесь готовым файлом из электронного архива к главе (EV3-mini.png)

Обратите внимание, что на вкладке "Костюмы" есть надпись: "Вы можете перенести и бросить сюда изображение со своего компьютера".

• Откройте в окне проводника папку, в которой лежит файл с нужным рисунком, перетащите этот файл на вкладку "Костюмы" среды Snap4arduino.

-9

Изображение спрайта изменилось. Теперь появился и стал использоваться новый костюм с названием "EV3-mini". Мы сразу же отредактируем его, чтобы поведение робота при разворотах было более естественным.

• Щёлкните по костюму правой кнопкой мыши и выберите "редактировать".

-10

• Теперь при помощи инструмента "Установка центра вращения" выберите точку, вокруг которой будет вращаться робот. Она должна располагаться на оси его ведущих колёс.

-11

Нажмите на кнопку "ОК".

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

• Создайте новый спрайт, щёлкнув по кнопке "нарисовать новый спрайт".

-12

Вновь появилось окно графического редактора.

• Выберите серый цвет, нарисуйте кружок диаметром, примерно равным двойной ширине линии разметки (20 пикселей), ориентируясь на расположенное рядом изображение. Используйте инструмент "Закрашенный эллипс". Чтобы кружок получился ровным, держите зажатой клавишу "Shift".

-13

• При помощи инструмента "Установка центра вращения" убедитесь, что перекрестье лежит в центре круга, закончите редактирование, нажав на кнопку "ОК".

• Переименуйте новый спрайт, дав ему название "Сенсор1". Передняя часть робота в настоящий момент направлена направо, перетащите мышкой сенсор, поменяв его положение так, чтобы он был расположен впереди слева по направлению движения робота.

-14

• Сдублируйте спрайт сенсора (используем правую кнопку мыши, щелкнув по нужному по спрайту).

-15

• Дайте дублю название "Сенсор2". Перетащите второй сенсор, чтобы он располагался впереди справа по направлению движения робота.

-16

Теперь мы сделаем очень интересную операцию - объединим несколько спрайтов, чтобы они стали одним целостным объектом. После этого все спрайты, составляющие объект, будут перемещаться вместе.

• "Ухватите" мышкой иконку спрайта "Сенсор2" на панели спрайтов и "бросьте" её на изображение робота на сцене.

-17

Иконка вернулась на панель спрайтов, но кое-что изменилось: появились дополнительные значки, обозначающие взаимосвязанность спрайтов. Главным спрайтом ("хозяином") является спрайт "Робот".

-18

• Повторите операцию для спрайта "Сенсор1", "зацепите" его иконку и "бросьте" на изображение робота на сцене. Готово, все три спрайта взаимосвязаны, и теперь при перемещении робота будут перемещаться и его сенсоры. Проверьте это, перетащив робота и поставив на линию.

-19

Давайте чуть уменьшим размер робота.

• Выберите спрайт "Робот"

-20

• Переключитесь на вкладку "Скрипты". Найдите на панели скриптов блок "установить размер в" (категория "Внешность") и вытяните на рабочее поле.

-21

• Отредактируйте значение и щёлкните по блоку, задав размер 50%. И сам робот, и его сенсоры стали меньше, пропорционально поменяв свой размер.

-22

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

• Откройте меню "Файл", "Сохранить как".

-23

• Выберите "Компьютер", напечатайте имя проекта, нажмите кнопку "Сохранить".

-24

• В стандартном диалоговом окне выберите папку, в которую будет помещён сохраняемый файл "Робот на линии.xml". Обратите внимание, что заголовок нашего проекта тоже изменился.

Внимание! Если вы используете он-лайн версию среды, запуская ее прямо в Интернет-браузере, то файл просто сохранится в папку по умолчанию (Загрузки) и вам придется вручную задать ему имя и потом (для удобства) перенести в то расположение, где вы будете хранить все файлы проекта.

-25

Теперь среду Snap4arduino можно закрывать, результаты нашей работы сохранятся.

Пока все. В следующей статье рассмотрим программирование робота на линии.