Шины данных и немного математики
В статье "Шины данных" мы разбирали несколько программ для робота с датчиком освещённости. Для того, чтобы робот ехал на разное расстояние в зависимости от показаний датчика, можно использовать такую программу:
Цикл здесь не нужен, потому что робот должен проехать один раз и остановиться. Если датчик будет показывать 10 (на чёрном поле), колёса робота повернутся на 10 градусов, если, например, 80 (на белом) - на 80 градусов. Но 80 и даже 100 градусов - это меньше половины оборота. А если мы хотим, чтобы робот проехал дальше?
Выбирать режим "Обороты" или "Секунды" не стоит - в этом случае даже на чёрном робот уедет очень-очень далеко (за 10 секунд можно пересечь комнату). Нам на помощь придёт блок "Математика":
По этой программе при показаниях 10 или 80 колёса робота провернутся на 1000 градусов (около 3 оборотов) или на 8000 (больше 20 оборотов) - то, что нам нужно. Обратите внимание: здесь показания датчика умножаются на 100 и передаются дальше на блок "Движение".
Также можно подключать шины данных к блоку "Экран": например, чтобы вывести полученное в прошлой программе число на экран блока, нам потребуется добавить ещё один блок:
Блок "Экран" работает в режиме "Текст", и в правом верхнем поле на блоке "Экран" вместо заранее написанного текста мы выбрали режим "Проводной" - он позволяет нам передать текст с помощью проводка (шины данных).
Дополнительное задание на 100 очков: что изменится, если блоки "Экран" и "Движение" поменять местами? Пишите в комментариях к статье!
Теперь основное домашнее задание для младшей группы. Мы будем использовать вот такого робота, у которого датчики расстояния смотрят в разные стороны (датчики расстояния подключены в порты 3 и 4):
Робот ставится в коридоре неизвестной ширины. Мы должны вычислить ширину коридора и вывести её на экран. Присылайте ваши программы в личных сообщениях (Александру Константиновичу); если есть вопросы по пройденному материалу - приглашаем на консультацию в субботу в Discord!