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

Программируем робота для движения по линии. Snap4Arduino #2

Продолжим. Ранее мы настроили проект для работы с роботом на линии. Теперь - программирование в среде Snap4Arduino. Вариант от А.Григорьева. • Снова откройте среду Snap4arduino. • Загрузите проект "Робот на линии.xml" командой "Файл", "Открыть". Далее мы будем составлять программу для робота, убедитесь, что выбран именно спрайт "Робот". Обратите внимание, что поле скриптов спрайта "Робот" уже содержит блок "Установить размер в", который мы туда ранее поместили. Масштаб отображения сцены можно менять кнопкой, расположенной над сценой слева, это позволяет с большим удобством работать со скриптами. В нашем проекте мы будем использовать пропорциональное регулирование: чем дальше линия отклонилась от средней позиции, тем быстрее робот будет поворачиваться в соответствующую сторону, чтобы линия оказалась снова посередине. Давайте для наглядности создадим необходимые переменные и назовём их понятными именами. Нам нужны 4 переменные: "яркость1", "яркость2", "ошибка_положения_линии", "управляющ

Продолжим. Ранее мы настроили проект для работы с роботом на линии. Теперь - программирование в среде Snap4Arduino. Вариант от А.Григорьева.

• Снова откройте среду Snap4arduino.

• Загрузите проект "Робот на линии.xml" командой "Файл", "Открыть".

Далее мы будем составлять программу для робота, убедитесь, что выбран именно спрайт "Робот".

Обратите внимание, что поле скриптов спрайта "Робот" уже содержит блок "Установить размер в", который мы туда ранее поместили.

Масштаб отображения сцены можно менять кнопкой, расположенной над сценой слева, это позволяет с большим удобством работать со скриптами.

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

Давайте для наглядности создадим необходимые переменные и назовём их понятными именами.

Нам нужны 4 переменные: "яркость1", "яркость2", "ошибка_положения_линии", "управляющее_воздействие". Обратите внимание, что большинство языков программирования не позволяют использовать в именах пробелы, поэтому мы заменяем их символами подчеркивания.

• Щелкните по кнопке "Объявить переменную".

-2

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

• Итак, создайте 4 локальных переменных.

-3

• Снимите маркеры, чтобы значения переменных не отображались на сцене и не мешали нам.

-4

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

-5

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

-6

• Запустите программу и проверьте её функционирование. Робот должен уверенно следовать по линии.

-7

или другой вариант линии (можно подготовить несколько вариантов фонов для сцены и пробовать по очереди)

-8

• Переключитесь на режим "Турбо". Посмотрите, как будет двигаться робот.

-9

• Попробуйте запустить робота вне линии, проверьте, что получится. Экспериментируйте, меняя время задержки цикла, скорость движения (количество шагов за один цикл), а также коэффициент пропорциональности, превращающий ошибку положения линии в управляющее воздействие.

• Сохраните свой проект. При сохранении в новое место опять выберите "Computer", при необходимости дайте новое имя.

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

PS. На всякий случай - в электронном архиве можно загрузить полный вариант текущего проекта - Робот на линии.