Найти в Дзене

7 Прямолинейное движение

Как на называй это движение - суть не меняется. Я расскажу, что нужно делать, чтобы заставить робота двигаться по прямой. Мы уже умеем создавать новые проекты. Сейчас надо это сделать. Опять предлагаю назвать его "прямолинейное движение", но не настаиваю. Это хороший тон у программистов, давать значимые названия. Но не обязанность. А жаль. Слева от поля, на котором написано название нашего проекта мы можем видеть прямоугольники с вырезами и выпуклостями разных цветов. Присмотревшись, можно заменить какой-то кружок в левой части этих прямоугольников - блоков. Выглядит странно, но, возможно, знакомо. Этот кружок - место крепление вала к двигателю. Так обозначают двигатель в среде разработки. Возможно, чтобы меньше рисовать. В блоках синего цвета изображен один двигатель, в малиновых - пара. Надеюсь, загадка о предназначении уже разгадана: синие блоки управляют одним двигателем, а малиновые - двумя одновременно. Очевидно, что пара двигателей опознается при помощи ума и магии пятой ступени

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

Мы уже умеем создавать новые проекты. Сейчас надо это сделать. Опять предлагаю назвать его "прямолинейное движение", но не настаиваю. Это хороший тон у программистов, давать значимые названия. Но не обязанность. А жаль.

Новый проект
Новый проект

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

Маленький двигатель
Маленький двигатель

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

Очевидно, что пара двигателей опознается при помощи ума и магии пятой ступени, заложенной в хаб. Мы перетащим блок из левой части на поле и расслабимся. Программисту ничего больше делать не нужно. Конечно, это не совсем так. Скорее даже совсем не так. На рисунке видно, что хаб не подключен. Если вдруг не видно, то стоит вернуться к предыдущему материалу. Отсутствие подключенного хаба значит, что среда не знает, к какому порту подключится двигатель. Она поставит буквы портов наобум. Не стоит надеяться, что все само решится. Лучше укажите порты и проверьте себя.

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

Нашими действиями мы "подружим" двигатели. Скорее запишем кто с кем в паре. Или продекларируем. Да, пожалуй, так лучше. Более хитрое слово всегда помогает писать код.

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

Описание пары двигателей
Описание пары двигателей

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

Указание портов
Указание портов

Так указываются параметры в любом блоке. Мудреное слово - залог успеха.

Теперь можно отдохнуть. Все сделано и робот поехал. Но ничего не происходит. Отдыхать рано. Мы ничего не приказывали делать двигателям. Мы просто рассказываем кем мы собираемся управлять. Нам не хватает блока команды.

Блок команды
Блок команды

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

Установка скорости движения
Установка скорости движения

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

Сейчас подключимся к роботу и он у нас уедет вдаль! Не сомневаюсь, что вы вспомнили, как подключаться. Вопрос только почему робот никуда не едет. Ответ довольно прост - ничего само не происходит. Видимо, магия внутри какого-то низкого уровня. Или ее совсем нет. Хаб надо заставлять исполнять команды. А мы этого еще не делали. Для того, чтобы заставить хаб работать надо нажать на кнопку с треугольником в нижней части экрана. Конечно, ожидалось, что это кнопки для бодрой музыки. Но увы. По аналогии с управлением музыкой треугольник служит для включения, а квадратик для остановки. А музыку пишем сами. Вместо нот - блоки. Без подключения кнопки не активны. Что не лишено логики.

Подключаемся, нажимаем на треугольник - запускаем программу. Звук ксилофона должен оповестить нас, что хаб получил команду. А робот на экране должен поехать.

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

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

Автоматическая остановка программы
Автоматическая остановка программы

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

Следующая лекция