Программа по линии лего

Обновлено: 28.04.2024

Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.

Обращаем Ваше внимание, что c 1 сентября 2022 года вступают в силу новые федеральные государственные стандарты (ФГОС) начального общего образования (НОО) №286 и основного общего образования (ООО) №287. Теперь требования к преподаванию каждого предмета сформулированы предельно четко: прописано, каких конкретных результатов должны достичь ученики. Упор делается на практические навыки и их применение в жизни.

Мы подготовили 2 курса по обновлённым ФГОС, которые помогут Вам разобраться во всех тонкостях и успешно применять их в работе. Только до 30 июня Вы можете пройти дистанционное обучение со скидкой 40% и получить удостоверение.

Столичный центр образовательных технологий г. Москва

Получите квалификацию учитель математики за 2 месяца

от 3 170 руб. 1900 руб.

Количество часов 300 ч. / 600 ч.

Успеть записаться со скидкой

Форма обучения дистанционная

Движение по линии с двумя датчиками освещенности.

Органы чувств помогают человеку ориентироваться в окружающем его мире. У робота для ориентации есть специальные устройства, которые называются – датчики.
В комплект NXT входят датчики звука, касания, расстояния и освещенности. Каждый из них предназначен для определенных целей.
С помощью этого датчика робот способен отличать свет от темноты настолько хорошо, насколько позволяет освещение в комнате. Датчик может по яркости отраженного света различать цвета (градация по шкале серого).

Датчик освещенности позволяет определить освещенность помещения и, что чаще всего используется, способность поверхности отразить поток света.
Рассмотрим различие, как видит линию на траектории человек и робот.

Так видит её робот:

Есть много способов научить робота видеть линию и передвигаться по ней. Есть сложные программы и совсем простые.

Я хочу рассказать о способе программирования, который освоят даже дети 2-3 классов. В этом возрасте им гораздо легче дается сборка конструкций по инструкциям, а программирование робота - для них сложная задача. Но этот способ позволит ребенку запрограммировать робота на любой маршрут трассы за 15-30 минут (с учетом поэтапной проверки и подгонки некоторых особенностей траектории).

Данный способ был проверен на муниципальных и региональных соревнованиях по робототехнике в Сургутском районе и ХМАО-Югре и принес нашей школе первые места. Там же я убедился, что эта тема весьма актуальна для многих команд.

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

Рассмотрим вариант робота с двумя датчиками света, так как он более понятен ученикам младших классов.

Датчики освещенности подключены ко 2 и 3 портам. Моторы к портам В и С.
Датчики выставлены по краям линии (попробуйте поэкспериментировать, располагая датчики на разном расстоянии друг от друга и на разной высоте).
Важный момент. Для лучшей работы такой схемы пару датчиков желательно подобрать по параметрам. Иначе, необходимо будет вводить блок корректировки значений датчиков.
Установка датчиков на шасси по классической схеме (треугольник), примерно, как на рисунке.

Программа будет состоять из небольшого количества блоков:

Для управления роботом используется два мотора. Мощность каждого 100 единиц. Для нашей схемы мы возьмем среднее значение мощности мотора равным 50. То есть, средняя скорость при движении по прямой, будет равна 50 единицам. При отклонении от прямолинейного движения мощность моторов будет пропорционально увеличиваться или уменьшаться, в зависимости от угла отклонения.

В результате всех этих действий вы получите такую программу:

Так как это все будет работать в цикле, то добавляем «Цикл», выделяем и переносим это все в «Цикл».

Теперь давайте попробуем разобраться, как будет работать программа и как ее настроить.

Пока робот едет по прямой линии значения датчиков совпадают, значит, на выходе блока «Вычитание» будет значение 0. Выход блока «Умножение» дает тоже значение 0. Это значение подается параллельно на пару управления моторами. Так как в этих блоках выставлено значение 50, то прибавление или вычитание 0 не влияет на мощность моторов. Оба мотора работают с одинаковой мощностью 50, и робот катит по прямой.

Предположим, что трасса делает поворот или робот отклоняется от прямой. Что будет происходить?

По рисунку видно, что освещенность датчика, подключенного к порту 2 (далее по тексту –датчики 2 и 3) увеличивается, так как он съезжает на белое поле, а освещенность датчика 3 уменьшается. Предположим, значения этих датчиков становятся : датчик 2 – 55 единиц, а датчик 3 – 45 единиц.
Блок «Вычитания» определит разницу между значениями двух датчиков (10) и подаст его в блок коррекции ( умножение на коэффициент(10*2,5=25)) и далее в блоки управления
моторами.
В блоке математики (Сложение) управления мотором В к значению средней скорости 50
добавится 25 и значение мощности 75 будет подано на мотор В.
В блоке математики (Вычитание) управления мотором С от значения средней скорости 50 будет вычтено 25 и значение мощности 25 будет подано на мотор С.
Таким образом, будет скорректировано отклонение от прямой линии.

Если трасса резко поворачивает в сторону и датчик 2, оказывается на белом, а датчик 3 на черном. Значения освещенности этих датчиков становятся : датчик 2 – 70 единиц, а датчик 3 – 50 единиц.
Блок «Вычитания» определит разницу между значениями двух датчиков (20) и подаст ее в блок коррекции (20*2,5=50) и далее в блоки управления моторами.
Теперь в блоке математики (Сложение) управления мотором В значение мощности 50 +50 =100 будет подано на мотор В.
В блоке математики (Вычитание) управления мотором С значение мощности 50 – 50 = 0 будет подано на мотор С.
И робот выполнит крутой разворот.

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

Теперь создадим новый блок и будем его использовать для движения робота по любой трассе.
Выделим цикл, далее в меню «Правка» выберем команду «Создать мой блок».

В диалоговом окне «Конструктор блоков» дадим название нашему блоку, например, «Go», выберем иконку для блока и нажмем «ГОТОВО».


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

Рассмотрим простейший алгоритм движения по черной линии на одном датчике цвета на EV3.

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

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

Алгоритм очень простой: если датчик видит черный цвет, то робот поворачивает в одну сторону, если белый — в другую.

Реализация в среде Lego Mindstorms EV3

В обоих блоках движения выбираем режим «включить». Переключатель настраиваем на датчик цвета — измерение — цвет. В нижней части не забудьте изменить «нет цвета» на белый.

Также, необходимо правильно указать все порты.

Не забудьте добавить цикл, без него робот никуда не поедет.

Проверьте. Для достижения лучшего результата попробуйте изменить значения рулевого управления и мощности.

Алгоритм:

Действие алгоритма основано на том, что в зависимости от степени перекрытия, пучка подсветки датчика чёрной линией, возвращаемые датчиком показания градиентно варьируются. Робот сохраняет положение датчика света на границе чёрной линии. Преобразовывая входные данные от датчика света, система управления формирует значение скорости поворота робота.

Так как на реальной траектории датчик формирует значения во всём своём рабочем диапазоне (0-100), то значением к которому стремиться робот, выбрано 50. В этом случае значения передаваемые функции поворота формируются в диапазоне -50 - 50, но этих значений недостаточно для крутого поворота траектории. По этому следует расширить диапазон в полтора раза до -75 - 75

Более устойчиво алгоритм работает, если использовать моторы с управлением скоростью –100. 100.

В этом случае есть возможность отрегулировать плавность поворота в соответствии с кривизной линии

Так как на реальной траектории датчик формирует значения во всём своём рабочем диапазоне (0-100), то значением к которому стремиться робот, выбрано 50. В этом случае значения передаваемые функции поворота формируются в диапазоне -50 - 50, но этих значений недостаточно для крутого поворота траектории. По этому следует расширить диапазон в полтора раза до -75 - 75

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

Напишем программу для движения робота по черной линии для Lego Ev3. Познакомимся с логическими операциями Ev3.

Для того, чтобы робот Ev3 двигался постоянно вдоль черной линии в программе используется бесконечный цикл в нем происходит считывание данных с датчиков цвета, освещенности, анализ данных датчиков и сооствесвующие маневры робота. В нашем роботе левый датчик цвета подключен к порту 3, правый датчик подсоединен к порту 1. Левый мотор подключен к порту В, правый мотор к порту А.

На рисунке показан блок считывания данных с датчика освещенности.


Если значение меньше 5 (знак сравнения 4) , то значит датчиком мы заехали на черную линию.

Если значение больше 5 (знак сравнения 2), то заехали на белое поле

Алгоритм движения по черной линии для робота с двумя датчиками следующий.

Если робот заехал левым датчиком на черную линию, то робот сворачивает (съезжает с линии) налево. Если робот заехал правым датчиком на черную линию, то поворачивает направо. Если обоими датчиками видит белое поле, то робот едет вперёд. Если обоими датчиками он видит чёрную линию, то это перекрёсток, он едет вперёд и съезжает с перекрестка.

Чтобы обрабатывать одновременно данные с нескольких датчиков, необходимо использовать логические операции. Для того чтобы выполнялись оба условия, используется логическая операция И.


Напишем программу для движения вдоль черной линии для робота Ev3.

У нашего робота левый датчик освещенности подключен к порту 3, правый датчик освещенности подключен к порту 1.

1 действие. Считываем данные с датчиков освещенности заходим в яркость, отраженного света Записываем их в логический блок И ( Красный блок)


2 действие. Соединяем логический блок с переключателем, который выставлен в логическое значение.



3 действие. В условие ставим поворот налево. Смотри урок 1 Повороты Ev3

движение робота по черной линии налево

4 Действие. Повторяем считывание датчиков освещенности и логический блок

Значение датчика освещенности 1 становится меньше 5, а датчика с портом 3 больше 5. В этом случае чёрную линию видит правый датчик. Поворот делается направо, поэтому правый мотор (порт А) вращается назад , мощность со знаком минус , а левый мотор (порт B) вращается вперед. Осуществляется поврот направо. В цикле движения выставите не очень большое время порядка 0,1 секунды, чтобы робот реагировал быстрее на изменение траектории.


движение по черной линии

5 действие. Если оба датчика освещенности фиксируют белое поле, то робот движется вперед. Опять считываем данные с обоих датчиков. Ставим в считывании датчиков знак больше, мощность обоих моторов положительная.

движение по черной линии

6 действие. Если оба датчика освещенности фиксируют чёрную линию, то движемся вперёд. Считывание датчиков, для обоих датчиков ставим меньше 5, для обоих моторов выставляем движение вперед

движение по черной линии

Для изменения скорости движения по черной линии необходимо поменять мощность моторов при дивжении вперед. Если траектория будет слишком крута и робот будет слетать с черной линии, необходимо уменьшить мощность при движении вперед и увеличить мощность при поворотах.

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

Робот за 3 минуты

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

Для робота Lego EV3 количество оборотов большого мотора составляет 160 – 170 оборотов в минуту.

Поэтому вычисление времени будет приблизительным т.к. у каждого мотора количество оборотов в минуту может быть разным.

Ломанная траектория представляет из себя комбинацию из прямолинейных и криволинейных участков. Криволинейные участки можно вычислять, используя формулу вычисления длины окружности.

Расчет числа оборотов

Для того, чтобы рассчитать количество оборотов колеса для движения на заданное расстояние по прямой нужно использовать длину окружности колеса. Она вычисляется по формуле L = π * d. Где π – число Пи, равное 3,14, а d –диаметр колеса. Для базового набора Lego EV3 диаметр колеса составляет 56 мм.

Пусть робот EV3 оснащен двумя передними колесами и шаровой опорой сзади и должен проехать 1 метр. За один оборот колеса робот преодолевает расстояние L = π * d = 3.14 * 56 = 175,84 мм. Пусть n – количество оборотов, k – заданное расстояние. Тогда количество оборотов n = k / L =>

n = 1000 мм / 175,84 мм = 5,69 оборотов.

Программа для Lego EV3 для движения робота на заданное количество оборотов.

  1. Во вкладке «Движение» выбираю блок «Рулевое управление».

Устанавливаю режим «Включить на количество оборотов», «Рулевое управление» установлено в 0 – это означает движение по прямой линии. Большие моторы установлены в порты B и C.

Программа для движения робота EV3 на 1 метр рулевое управление

рулевое управление движение по прямой на один метр

Скорость движения моторов – 50 условных единиц. Значение оборотов ставлю вычисленное выше. Тормозить в конце – значение «Истина». При нажатии на блок «Начало» робот Lego EV3 проедет по прямой 1 метр со скоростью 50 у.е. и остановиться.

Все настройки блока такие же, как и настройки у блока «Рулевое управление». Для того чтобы робот ехал по прямой необходимо скорость моторов установить одинаковой.

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

  1. Разворачиваться на месте – колеса робота крутятся в разные стороны с одинаковой скоростью;
  2. Разворачиваться вокруг одного колеса – одно колесо машинки Lego EV3 стоит на месте, другое крутится с заданной скоростью;
  3. Описывать произвольную окружность – оба колеса крутятся в одном направлении с разной скоростью.

Пусть параметры тележки EV3 будут такими: робот представляет из себя платформу с двумя колесами и шаровой опорой, расположенной сзади. Тележка симметрична и расстояние между центральными осями колес и шаровой опорой является равнобедренным треугольником.

Робот тележка Lego EV3

робот тележка лего

Для упрощения расчетов, задам расстояние между центрами колес по оси, но которой они расположены равным 20 см. На многих соревнованиях по робототехнике одним из условий являются габариты робота. Например, нужно чтобы размеры робота были не более 20 см в ширину, 20 см в длину и 20 см в высоту.

Если робот не подходит по габаритам, то его не допускают к соревнованиям. Диаметр колеса 0,56 см – это стандартный размер колеса из базового набора Lego EV3. Левый большой мотор подключен к порту В, правый к порту С. Теперь вычислим количество оборотов колеса для каждого случая и для разворота робота Lego EV3 на определенный угол.

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

Разворот на месте

В этом случае нужно чтобы у робота колеса вращались в разных направлениях с одинаковой скоростью. Для того чтобы робот совершил полный разворот вычислим необходимую длину окружности. Разворот будет на месте, поэтому диаметр между осями будет равен 20 см =>

Длина описываемой окружности будет равна
L = π * d = 3.14 * 0,2 м = 0,628 метра

Количество оборотов будет равно пройденному расстоянию L деленному на длину окружности колеса n = Lокр / L колеса, где длина окружности колеса равна L = π * d = 3.14 * 56 = 175,84 мм = 0,176 м.

А значит количество оборотов для разворота на 360° будет равно

n = L окр / L колеса = 0,628 / 0,176 = 3,568 оборота.

Для блока программирования «Рулевое управление» можно задать разворот на 100 условных единиц (или — 100), что означает разворот на месте. Скорость 50 у.е. и 3,568 оборота.

Рулевое управление разворот на месте

разворот робота на месте рулевое управление

Для блока программирования «Независимое управление моторами» просто скорость одного мотора ставим 50 у.е., а другого – 50 у.е. При этом количество оборотов колес остается 3,568.

  1. Для того, чтобы повернуть робота тележку Lego EV3 на произвольное количество градусов нужно составить пропорцию, где нужное количество градусов нужно разделить на 360 градусов и учесть эту пропорцию в расчете.

Например, для разворота на 180 градусов. Обозначим нужную длину части окружности L1 =>

L1 = L * (нужное к-во градусов / 360 градусов) = L * (180 / 360) = L / 2 = 0,628 / 2 = 0,314, а значит к-во оборотов

n = L1 / L колеса = 0,314 / 0,176 = 1,784 оборота.

Поворот вокруг одного колеса

В этом случае у нас радиус поворота будет 20 см, а диаметр описываемой окружности 40 см. Поэтому длина описываемой окружности будет в два раза больше и как для полной окружности, так и для ее части нужно просто предыдущие вычисления умножить на два.

Поворот робота вокруг одного колеса

Поворот робота вокруг одного колеса

Для того чтобы сделать поворот вокруг одного колеса на 360 градусов нам понадобится в предыдущей формуле d умножить на 2, а значит и количество оборотов колеса увеличится вдвое.

L = π * 2 * d = 3.14 *2 * 0,2 м = 1,256 метра

Для робота собранного на базе набора Lego EV3 целесообразно применить программирование с помощью блока «Независимое управление моторами». Где одному мотору задать нулевое значение оборотов, а другому вычисленное. При повороте на 360 градусов это будет 7,136 оборота.

Движение по окружности произвольного диаметра

Пусть расстояние от центра окружности до середины первого колеса будет R1. Расстояние от центра окружности до середины второго колеса R2.

В этом случае мы получаем движение колес по окружностям разного диаметра за одинаковое время. Регулировать такое передвижение можно за счет разности скоростей внешнего и внутреннего колеса.

Длина окружности, которую проезжает правое колесо обозначим как L1

Движение робота по окружности произвольного размера

Движение робота по окружности произвольного размера

L1 = 2 * π * R1

Длина окружности для левого колеса

L1 = 2 * π * (R1 + R2)

Скорость правого колеса V1, а скорость правого колеса V2.
Время за которое заданное расстояние пройдет правое колесо t1.

t1 = L1 / V1 = (2 * π * R1) / V1

Время, за которое заданное расстояние пройдет левое колесо t2.

t2 = L2 / V2 = (2 * π * (R1 + R2)) / V2

Время проезда окружности или ее части левым и правым колесом у нас одинаковое t = t1 = t2, а значит и правые части выражений равны.

L1 / V1 = L2 / V2 ó (2 * π * R1) / V1 = (2 * π * (R1 + R2)) / V2 ó

Упрощаем выражение и получаем следующую пропорцию

V2 / V1 = (R1 + R2) / R1

Сейчас можно вычислить скорости левого и правого колеса для заданной окружности. Пусть у нас R1 = 20 см и R2 = 20 см, для упрощения скорость левого колеса возьмем 100 условных единиц. Тогда

V2 / V1 = (R1 + R2) / R1 ó 100 / V1 = (20 + 20) / 20

100 / V1 = 2 ó V1 = 100 / 2 ó V1 = 50 условных единиц.

Имея вычисленные значения скоростей можно составить программу прохождения участка. Для робота Lego EV3 можно использовать блок программирования «Независимое управление моторами». Скорость левого двигателя устанавливаем 100 у.е., скорость правого двигателя устанавливаем 50 у.е.

Независимое управление моторами Lego EV3 произвольная окружность

Независимое управление моторами Lego EV3 произвольная окружность

Режим устанавливаем «Включить на количество секунд». Произвольно установим 10 секунд. Для того, чтобы точно проходить заданное расстояние нужно замерить время прохождения одного круга секундомером. Зная это время можно задавать нужное нам расстояние.

Часто на соревнованиях одним из заданий является движение робота по черной линии с объездом препятствий. И для успешного преодоления трассы необходимо вычислить траекторию объезда. При помощи таких вычислений это сделать достаточно легко.

Одним из часто встречающихся видов соревнований является соревнование “Движение робота вдоль черной линии”. В последнее время активно развивается робототехника, открывается множество кружков. Как следствие проводится множество соревнований и конкурсов по робототехнике различного уровня. Это направление называется соревновательная робототехника.

Движение робота по линии

Это соревнование проводится в разных номинациях и категориях. Есть движение по широкой линии (5 см), по узкой линии (1,5 см), включают в движение по линии участки с прерывистой линией. Часто еще используется объезд роботом препятствий (например объезд кирпича) или преодоление препятствий (например, качающийся мост). После преодоления препятствий робот должен вернуться на линию и успешно финишировать.

Так как сейчас есть много типов робототехнических конструкторов, то соревнования также разделяют по категориям. Т.е. движение по линии Lego EV3, отдельно движение по линии Arduino и т.д. Побеждает робот, преодолевший дистанцию за минимальное время не потеряв трассу.

Алгоритмы движения робота

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

  • Релейный регулятор
  • Пропорциональный регулятор
  • Пропорциональный дифференциальный регулятор
  • Кубический регулятор
  • Пропорциональный интегральный регулятор
  • Пропорциональный интегральный дифференциальный регулятор

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

Зрение робота EV3

Робот EV3 не обладает зрением и может воспринимать информацию о линии при помощи датчика цвета EV3.

Зрение робота Lego EV3

Робот и человек по разному видят черную линию. У человека границы черного и белого четко различимы. Робот же видит размытую картину границы черного и белого. Для того, чтобы более точно определить линию, датчик робота должен быть расположен на границе черной линии и белого поля посередине.

Расположение датчика цвета над линией

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

Калибровка датчика цвета

Для того, чтобы применить указанные алгоритмы нужно откалибровать датчик цвета на реальном поле. Есть два способа калибровки:

  • ручной способ — все вычисления проводятся самостоятельно
  • автоматическая калибровка — вычисления производятся при помощи блоков операций с данными

Датчик работает в режиме отраженного света. Суть метода состоит в том, что мы находим пороговое значение белого и черного цвета.

На практике нужно измерить значение белого цвета, затем черного цвета, суммировать их и разделить на два. Т.е. если обозначить пороговое значение буквой C, значение белого цвета буквой A и значение черного цвета буквой B, то формула будет выглядеть следующим образом:

С = ( A + B ) / 2

Измерить значение белого и черного цвета можно просто поочередно расположив датчик над белой и черной линией и записать значения.

Ручной режим калибровки датчика цвета EV3

В ручном режиме делается это просто, при помощи меню, расположенном на экране блока Lego EV3. Для этого нужно на экране блока EV3 зайти в третью вкладку и открыть первое приложение из пяти. Это приложение называется представление порта.

Здесь можно быстро посмотреть к какому порту присоединены датчики или сервомоторы. При помощи кнопок управления микроконтроллером EV3 нужно перейти к любому из занятых портов, и тогда можно посмотреть текущие показания, которые в данный момент получены с сенсоров или сервомоторов.

Для примера установлю датчик цвета в порт под номером 3 и сниму показания на белом поле.

Пример калибровки датчика

На экране блока EV3 отобразилось показание в 43 условных единицы. Таким же образом определяем показания датчика на черной линии. Например показания будут 3 условных единицы. Подставляем эти значения в формулу.

С = ( A + B ) / 2 = (43 + 3) / 2 = 46 / 2 = 23

В результате получаем пороговое значение 23 условных единицы.

Автоматическая калибровка датчика цвета

Таким же точно образом измеряем пороговое значение (его еще называют значение серого) при автоматической калибровке, но на этот раз значение записывается в переменную. Назовем переменную, например, porog. В среде программирования Lego EV3 пишем программу для калибровки.

Программа с автоматической калибровкой датчика цвета

В первой части программы нужно расположить датчик над белым фоном. Датчик касания расположен в 1 порту. В программе используется блок ожидания действия с датчиком касания. В данном случае установлен параметр “щелчок” — цифра 2 в нижней части блока ожидания. Т.е. нужно нажать и отпустить кнопку датчика.

После этого датчик цвета в режиме отраженного света измеряет значение белого цвета и значение записывается в переменную A.

Во второй части программы нужно расположить датчик над черной линией и также нажать на кнопку датчика касания. Значения черного цвета записываются в переменную B.

В третьей части программы мы считываем значения датчиков из переменной A и B и передаем их значения в блок математики, который находится в режиме “Дополнения”. В этом блоке происходит вычисление по формуле С = ( A + B ) / 2 ирезультат вычисления записывается в переменную С.

Теперь значение переменной С можно использовать в качестве порогового значения серого для дальнейшего использования в алгоритмах движения по линии.

Движение по тонкой линии Arduino

Фрагмент соревнований по робототехнике «Движение по тонкой линии». Также это соревнование называют «Тонкий Триал». Этот очень быстрый робот в номинации роботов Arduino является победителем региональных соревнований.

По условиям соревнований робот Arduino должен совершить объезд кирпича и преодолеть качающийся мост. После преодоления препятствий робот должен вернуться на линию и финишировать не сойдя с трассы. Тонкий триал есть и в категории Lego EV3 роботов.

Читайте также: