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

Обновлено: 04.07.2024

В этом приложении содержится краткий обзор вариантов использования программирования и датчиков в системе проектирования VEX Robotics Design System.

Программирование

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

Подсистема датчиков

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

Ограничительный переключатель VEX

При срабатывании, ограничительные переключатели VEX отсылают сигналы микроконтроллеру. Эти переключатели идеально подходят для индикации достижения верхнего или нижнего предельного положения руки робота, а также могут применяться в триггерных схемах. Когда ограничительный переключатель находится в исходном (свободном) положении, датчик отправляет своему порту ВЫСОКИЙ сигнал. Этот высокий сигнал исходит от микроконтроллера. При воздействии на переключатель внешней силы (например, при столкновении со стеной), сигнал изменяется на НИЗКИЙ до момента освобождения переключателя. Находясь в свободном положении, переключатель не различим для открытого порта, как если бы он был вообще не подключен!


Бамперный переключатель VEX

Бамперные переключатели VEX представляют собой ударопрочные бамперы, срабатывающие (но не разрушающиеся) от сильного ударного воздействия. Эти переключатели используются для индикации контакта и создания реакции робота на контакт, например, изменение курса. Принцип действия этого переключателя не отличается от принципа действия ограничительного переключателя, их различие заключается только в форме срабатывающего устройства.


Потенциометр VEX

Потенциометры VEX определяют положение и направления вращения вала. Этот датчик используется для выполнения аналогового измерения углового положения. Данное измерение позволяет определять положение руки робота или других его механизмов. Использование потенциометра VEX в конструкции робота позволяет упростить реализацию автономных схем его поведения. Робот, оборудованный потенциометром, получает данные об угловом положении и движении различных элементов, чем обеспечивается повышенная точность управления. Потенциометр является электрическим устройством и применяется для измерения углового положения. С его помощью пользователь может настраивать предел, до которого потенциометр противодействует электрическому току, протекающему через него, путем простого поворота оси, присоединенной к центру потенциометра. При изменении сопротивления потенциометра, напряжение также изменяется, чем провоцирует работу потенциометра в качестве делителя переменного напряжения. Микроконтроллер Cortex измеряет это переменное напряжение, значение которого прямо пропорционально угловому положению вала, присоединенного к центру потенциометра. Этим достигается аналоговое измерение углового положения.


Ультразвуковой дальномер VEX

Ультразвуковой дальномер VEX позволяет определять наличие препятствий на пути робота путем распространения высокочастотных звуковых волн. Датчик генерирует звуковую волну 40 кГц, которая отражается от любых поверхностей и возвращается к датчику Затем, на базе времени, потребовавшегося волне на то, чтобы вернуться, определяется расстояние до объекта. Ультразвуковые дальномеры могут использоваться для расчета расстояния до объектов. Они также могут применяться для определения наличия любых препятствий на пути робота. Для увеличения диапазона действия датчика, его можно устанавливать на серво или электромоторе, обеспечивающем его вращение. Ультразвуковой дальномер VEX работает в диапазоне от 1,5 до 115 дюймов.


Отслеживатели траектории VEX

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


Световые датчики VEX

Световые датчики VEX используют фотоэлемент, позволяющий роботу определять присутствие света и реагировать на него. Робот может быть запрограммирован на определенную реакцию на каждое полученное значение объема света. В конструкцию светового датчика входит резистивный фотоэлемент на основе сульфоеленида кадмия (CdS). Фотоэлемент на основе CdS является фоторезистором, что означает, что его значение сопротивления изменяется в зависимости от объема выявленного света. Спроектируйте простое устройство слежения, позволяющее отслеживать луч света, или используйте световой датчик в конструкции робота, способного избегать затененных пространств. Установите на световые датчики цветные фильтры, с помощью которых робот сможет различать несколько цветов.


Оптические датчики положения вала VEX

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


Встроенные сенсорные модули VEX

Встроенный сенсорный модуль VEX устанавливается вместо пластиковой крышки на задней стенке 2-проводного электромотора 269 или 393 и представляет собой импульсный датчик. Установите это изделие и присоедините его к микроконтроллеру Cortex через порт I2C для получения отклика непосредственно от электромотора. Этот датчик предоставляет данные от скорости работы электромотора, проделанном им пути, а также направлении движения. Эти датчики могут использоваться по аналогии с оптическими датчиками положения вала, но при этом они занимают меньше места.



Гироскопический датчик VEX

Гироскопический датчик VEX измеряет угловое смещение робота VEX, за счет чего обеспечивается отслеживание ориентации или направления движения робота. Этот датчик с одной осью определят вращение до 1000 градусов в секунду. Гироскопы могут использоваться для обеспечения автономного перемещения робота по прямой линии и корректировки курса для оператора. При использовании в паре с другими датчиками, устройство позволяет запрограммировать непрерывное определение точного положения относительно стартового положения.


Аналоговый акселерометр VEX

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

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

Внешний вид объезжающего препятствия робота на основе платы Arduino

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

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress) или Nano (купить на AliExpress).
  2. Ультразвуковой датчик HC-SR04 (купить на AliExpress).
  3. Модуль драйвера двигателя LM298N (купить на AliExpress).
  4. Электродвигатели постоянного тока, работающие от напряжения 5V.
  5. Литий-ионная батарея 7.4V (купить на AliExpress).
  6. Колеса.
  7. Шасси робота.
  8. Соединительные провода.

Принцип работы ультразвукового датчика HC-SR04

Ультразвуковой датчик HC-SR04 используется для измерения расстояний в диапазоне 2-400 см с точностью 3 мм. Датчик состоит из ультразвукового передатчика, ультразвукового приемника и схемы управления.

Внешний вид ультразвукового датчика HC-SR04

Ультразвуковой датчик HC-SR04 обеспечивает на своем выходе сигнал, пропорциональный дистанции до препятствия. Датчик генерирует звуковые колебания в ультразвуковом диапазоне (после получения управляющего импульса) и после этого ждет когда они вернутся к нему (эхо), отразившись от какого-нибудь препятствия. Затем, основываясь на скорости звука (340 м/с) и времени, необходимом для того чтобы эхо достигло источника (нашего датчика), датчик обеспечивает на своем выходе сигнал, пропорциональный расстоянию до препятствия.

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

Ультразвуковой сигнал отражается от поверхности, возвращается обратно и улавливается приемником ультразвукового сигнала датчика. После этого на контакте Echo датчика устанавливается напряжение высокого уровня (high) на время, пропорциональное расстоянию до препятствия.

Принцип определения расстояния с помощью ультразвукового датчика HC-SR04

После этого расстояние до препятствия можно рассчитать по следующей формуле:

Distance= (Time x Speed of Sound in Air (343 m/s))/2

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

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

Схема проекта

Схема робота на Arduino, объезжающего препятствия, представлена на следующем рисунке. Как видите, в схеме мы использовали плату Arduino Nano, но эту же схему без изменений можно использовать и в случае использования платы Arduino Uno. Код программы в этом случае также останется без изменений.

Схема робота на Arduino, объезжающего препятствия

После сборки у нас получилась конструкция робота, показанная на следующем рисунке.

Внешний вид собранной конструкции робота

Объяснение программы для Arduino

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

Первым делом в программе необходимо инициализировать контакты, через которые происходит взаимодействие с ультразвуковым датчиком: trig pin датчика подключен к контакту 9 платы Arduino, а echo pin - к контакту 10 платы Arduino.

Вопрос про программирование модуля EV3 без применения компьютера иногда встает перед многими любителями робототехники. Для этого на микрокомпьютер EV3 уже предустановлено программное обеспечение идентичное ПО установленному на микрокомпьютер.

Приложения микрокомпьютера EV3

приложения микрокомпьютера EV3

Создать свою программу можно при помощи приложения модуля EV3 находящегося в окне приложений. Это третья вкладка интерфейса микроконтроллера EV3. Приложение называется Brick Program и является четвертым приложением по счету.

Дословно это переводится как кирпичная программа и является средой программирования модуля EV3. Зайти в это приложение можно после включения модуля при помощи кнопок управления модулем.

Среда программирования микрокомпьютера EV3

Если зайти в среду программирования микрокомпьютера EV3, то первое что мы увидим будет блок «Начало» и блок «Цикл». Между этими двумя блоками находится вертикально расположенная прерывистая линия, при помощи которой происходит добавление блоков из палитры блоков.

Начало программы

начало программы

В палитре блоков расположены блоки двух типов:

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

Блоки действия

Всего в палитре блоков находятся шесть блоков действия:

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

Блоки ожидания

Имеется одиннадцать блоков ожидания:

  1. Ожидание температуры;
  2. Ожидание показаний энкодера;
  3. Ожидание нажатия управляющей кнопки модуля EV3;
  4. Ожидание времени;
  5. Ожидание ультразвукового датчика;
  6. Ожидание инфракрасного датчика;
  7. Ожидание инфракрасного маяка;
  8. Ожидание датчика гироскопа;
  9. Ожидание датчика касания;
  10. Ожидание датчика освещенности;
  11. Ожидание датчика цвета.

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

Как создать программу на модуле EV3

Для того, чтобы на микрокомпьютере EV3 создать программу нужно найти в третьем окне интерфейса модуля приложение Brick Program. Нажав на центральную кнопку блока входим в приложение и видим блок начало и цикл. Между этими двумя блоками можно разместить всего шестнадцать различных блоков ожидания и блоков действия.

Среда программирования модуля EV3

среда программирования модуля EV3

Поэтому при помощи интерфейса микроконтроллера EV3 можно писать только несложные программы. В блоках программирования есть возможность изменения одного параметра при помощи кнопок «Вверх» и «Вниз». Количество повторений выполнения программы задается в блоке «Цикл» и может принимать значения 1, 2, 3, 4, 5, 10 и бесконечность.

Пример простой программы микрокомпьютера EV3

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

Блок Рулевое управление

рулевое управление

Блок рулевого управления устанавливается между блоком «Начало» и «Цикл». Повторным нажатием на центральную кнопку мы переходим в настройки блока, где нажатием на кнопки «Вверх» и «Вниз» можно изменять направление движения робота. По умолчанию у нас в блоке выбраны большие моторы в портах B и C. Также по умолчанию у нас стоит движение вперед.

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

Блок ожидания времени

ожидание времени

Блок «Ожидание времени» устанавливается после блока «Рулевое управление» перед блоком «Цикл». Повторное нажатие центральной кнопки на блоке «Ожидания времени» позволяет зайти в настройку времени. Стрелочками «Вверх» и «Вниз» выбираем значение пять секунд и нажатием на центральную кнопку подтверждаем выбор. В своей программе между блоками можно передвигаться при помощи кнопок «Влево» и «Вправо».

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

Как сохранить программу модуля EV3

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

Сохранить и открыть программу EV3

как сохранить и открыть программу EV3 на блоке

Программа с этим названием будет сохранена в папке BrkProg SAVE. Эта папка расположена во втором окне интерфейса модуля EV3 выбор файла.

Как открыть программу модуля EV3

Над значком «Сохранить» находится значок «Открыть». Чтобы отрыть любую программу, которая существует в блоке нужно нажать на этот значок. После этого можно кнопками «Вверх» и «Вниз» выбрать программу. Нажатие на центральную кнопку откроет выбранную программу

Как удалить блок модуля EV3

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

Удаление блока

как удалить блок

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

Программирование EV3 без компьютера. Приложение Brick Program

Не хватает блока в программном обеспечении? Здесь ты можешь загрузить блоки для дополнительных датчиков. Загрузи эти обновления программного обеспечения, чтобы активировать каждый из этих дополнительных датчиков с помощью приложения EV3 Programmer (только для ПК/MAC).

ПРИЛОЖЕНИЯ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ ОТ LEGO (IOS/ANDROID)

Теперь ты можешь программировать EV3-роботов самым быстрым, интеллектуальным и увлекательным способом. Используй свой смартфон или планшет как пульт управления роботом. Построй любого из пяти основных роботов EV3 в 3D!

ПРИЛОЖЕНИЕ EV3 PROGRAMMER

УПРАВЛЯЮЩЕЕ ПРИЛОЖЕНИЕ ROBOT COMMANDER

ПРИЛОЖЕНИЕ 3D BUILDER

ИГРА «ПОЧИНИ ФАБРИКУ»









ЗАГРУЗКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ LEGO DIGITAL DESIGNER

Программа для создания различных 3D-объектов на основе виртуальных деталей конструктора LEGO от самих разработчиков этого популярного конструктора

ЗАГРУЗИТЬ ПО LEGO DIGITAL DESIGNER (PC/MAC)

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ LEGO DIGITAL DESIGNER 4.3

РУКОВОДСТВО ПО МОДЕЛИРОВАНИЮ В LEGO DIGITAL DESIGNER 4.3

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ VIRTUAL BRICK

Если у Вас нет робота, то это не проблема! Программа VIRTUAL BRICK позволяет моделировать и выводить на экран действия Вашего робота в трехмерном пространстве

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