Робототехника на Hobot L в mBlock Scratch
1. Создайте четыре переменные для скоростей и направлений моторов и две переменные для датчиков — Левый Линия и Правый Линия.
2. Реализуйте в программе общий алгоритм:
1. Начало программы
2. Прописать все переменные
3. Повторять всегда:
___ • Опросить левый датчик линии и правый датчик линии
___ • Если под левым датчиком черное: ехать Вперёд Влево
___ • Если под обоими датчиками белое: ехать Вперёд
___ • Если под правым датчиком черное: ехать Вперёд Вправо
Примечание 1: в программе три функции если, одна над другой.
Примечание 2: также для работы программы потребуется создать через раздел Мои блоки функции Вперёд, Вперёд Влево и Вперёд Вправо, см. предыдущие занятия.
Фрагмент программы с циклом опроса и принятия роботом решения, куда ехать, выглядит вот так:
Код написан для варианта, когда датчик:
Если с Вашим датчиком состояния противоположные (Истина на чёрном, Ложь на белом), нужно изменить в программе отрицания:
Если у Вас есть сомнения, попробуйте оба варианта.
Езда по линии часто используется как составная часть более сложного кода, поэтому можно вывести её в отдельную функцию Движение по линии (созданную через Мои блоки).
Попробуем немного другой алгоритм, однозначно определяющий состояния обоих датчиков (возможно, такой вариант немного надёжнее, чем показанный ранее). Подключаем датчик на порт 2 (с торца, где USB порт, дальше от USB порта). В этом случае и когда датчик стоит двумя отверстиями к корпусу робота, 9 пин датчик слева, 3 пин датчик справа.
Общий алгоритм:
1. Если под левым датчиком чёрный И под правым датчиком чёрный: Вперёд
2. Если под левым датчиком белый И под правым датчиком чёрный: Вперёд вправо
3. Если под левым датчиком чёрный И под правым датчиком белый: Вперёд влево
Детальный алгоритм:
1. Начало программы
2. Прописать все переменные движения
3. Задать Линия правый = 3
4. Задать Линия левый = 9
5. Повторять всегда:
___ • Движение по линии
1. Определить Движение по линии:
2. Если НЕ цифровой ввод пин Линия левый и НЕ цифровой ввод Линия правый:
___ • Вперёд
3. Если цифровой ввод пин Линия левый И НЕ цифровой ввод Линия правый:
___ • Вперёд вправо
4. Если НЕ цифровой ввод пин Линия левый И цифровой ввод Линия правый:
___ • Вперёд Влево