Занятие 9. Датчик линии, движение по линии на двух датчиках

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

Вперёд

2. Если под левым датчиком белый И под правым датчиком чёрный:

Вперёд вправо

3. Если под левым датчиком чёрный И под правым датчиком белый:

Вперёд влево

Детальный алгоритм:
  1. Начало программы
  2. Прописать все переменные движения
  3. Задать Линия правый = 3
  4. Задать Линия левый = 9
  5. Повторять всегда:
  • Движение по линии
  • Определить Движение по линии:
  • Если НЕ цифровой ввод пин Линия левый и НЕ цифровой ввод Линия правый:
  • Вперёд
  • Если цифровой ввод пин Линия левый И НЕ цифровой ввод Линия правый:
  • Вперёд вправо
  • Если НЕ цифровой ввод пин Линия левый И цифровой ввод Линия правый:
  • Вперёд Влево
Made on
Tilda