Программы для программирования робота с ультразвуковым датчиком
В этом приложении содержится краткий обзор вариантов использования программирования и датчиков в системе проектирования 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 Uno (купить на AliExpress) или Nano (купить на AliExpress).
- Ультразвуковой датчик HC-SR04 (купить на AliExpress).
- Модуль драйвера двигателя LM298N (купить на AliExpress).
- Электродвигатели постоянного тока, работающие от напряжения 5V.
- Литий-ионная батарея 7.4V (купить на AliExpress).
- Колеса.
- Шасси робота.
- Соединительные провода.
Принцип работы ультразвукового датчика HC-SR04
Ультразвуковой датчик HC-SR04 используется для измерения расстояний в диапазоне 2-400 см с точностью 3 мм. Датчик состоит из ультразвукового передатчика, ультразвукового приемника и схемы управления.
Ультразвуковой датчик HC-SR04 обеспечивает на своем выходе сигнал, пропорциональный дистанции до препятствия. Датчик генерирует звуковые колебания в ультразвуковом диапазоне (после получения управляющего импульса) и после этого ждет когда они вернутся к нему (эхо), отразившись от какого-нибудь препятствия. Затем, основываясь на скорости звука (340 м/с) и времени, необходимом для того чтобы эхо достигло источника (нашего датчика), датчик обеспечивает на своем выходе сигнал, пропорциональный расстоянию до препятствия.
Как показано на рисунке сначала нам нужно инициировать датчик для измерения расстояний, для этого на его триггерный контакт (trigger pin) необходимо подать логический сигнал высокого уровня длительностью не менее 10 мкс, после этого датчик генерирует серию звуковых колебаний и после получения отраженного сигнала (эхо) датчик обеспечивает на своем выходе сигнал, пропорциональный расстоянию между ним и препятствием.
Ультразвуковой сигнал отражается от поверхности, возвращается обратно и улавливается приемником ультразвукового сигнала датчика. После этого на контакте Echo датчика устанавливается напряжение высокого уровня (high) на время, пропорциональное расстоянию до препятствия.
После этого расстояние до препятствия можно рассчитать по следующей формуле:
Distance= (Time x Speed of Sound in Air (343 m/s))/2
Также на нашем сайте вы можете посмотреть другие проекты, в которых был использован ультразвуковой датчик.
Для изготовления робота в этом проекте были использованы компоненты, которые достаточно легко приобрести. Для изготовления шасси робота можно использовать детскую игрушку или можно купить уже готовые шасси робота на AliExpress.
Схема проекта
Схема робота на Arduino, объезжающего препятствия, представлена на следующем рисунке. Как видите, в схеме мы использовали плату Arduino Nano, но эту же схему без изменений можно использовать и в случае использования платы Arduino Uno. Код программы в этом случае также останется без изменений.
После сборки у нас получилась конструкция робота, показанная на следующем рисунке.
Объяснение программы для Arduino
Полный код программы приведен в конце статьи, здесь же мы рассмотрим его основные фрагменты. В программе нам необходимо взаимодействовать с датчиком HC-SR04 и подавать управляющие сигналы на контакты, с которых осуществляется управление двигателями. В этом проекте не будет использовано никаких подключаемых библиотек.
Первым делом в программе необходимо инициализировать контакты, через которые происходит взаимодействие с ультразвуковым датчиком: trig pin датчика подключен к контакту 9 платы Arduino, а echo pin - к контакту 10 платы Arduino.
Вопрос про программирование модуля EV3 без применения компьютера иногда встает перед многими любителями робототехники. Для этого на микрокомпьютер EV3 уже предустановлено программное обеспечение идентичное ПО установленному на микрокомпьютер.
приложения микрокомпьютера EV3
Создать свою программу можно при помощи приложения модуля EV3 находящегося в окне приложений. Это третья вкладка интерфейса микроконтроллера EV3. Приложение называется Brick Program и является четвертым приложением по счету.
Дословно это переводится как кирпичная программа и является средой программирования модуля EV3. Зайти в это приложение можно после включения модуля при помощи кнопок управления модулем.
Среда программирования микрокомпьютера EV3
Если зайти в среду программирования микрокомпьютера EV3, то первое что мы увидим будет блок «Начало» и блок «Цикл». Между этими двумя блоками находится вертикально расположенная прерывистая линия, при помощи которой происходит добавление блоков из палитры блоков.
начало программы
В палитре блоков расположены блоки двух типов:
Также в палитре блоков находится корзина для удаления ненужного блока из программы.
Блоки действия
Всего в палитре блоков находятся шесть блоков действия:
В правом верхнем углу каждого блока действия находится его указатель в виде маленькой стрелки. Блоки действия предназначены для выполнения какого-либо действия. Это может быть включение мотора, изменение цвета подсветки кнопок и прочее.
Блоки ожидания
Имеется одиннадцать блоков ожидания:
- Ожидание температуры;
- Ожидание показаний энкодера;
- Ожидание нажатия управляющей кнопки модуля EV3;
- Ожидание времени;
- Ожидание ультразвукового датчика;
- Ожидание инфракрасного датчика;
- Ожидание инфракрасного маяка;
- Ожидание датчика гироскопа;
- Ожидание датчика касания;
- Ожидание датчика освещенности;
- Ожидание датчика цвета.
В правом верхнем углу каждого блока ожидания находится его указатель в виде маленьких песочных часов. Блоки ожидания предназначены для ожидания наступления какого-либо события. Это может быть достижение нужных показаний датчиков, нажатие на кнопку и так далее.
Как создать программу на модуле EV3
Для того, чтобы на микрокомпьютере EV3 создать программу нужно найти в третьем окне интерфейса модуля приложение Brick Program. Нажав на центральную кнопку блока входим в приложение и видим блок начало и цикл. Между этими двумя блоками можно разместить всего шестнадцать различных блоков ожидания и блоков действия.
Поэтому при помощи интерфейса микроконтроллера EV3 можно писать только несложные программы. В блоках программирования есть возможность изменения одного параметра при помощи кнопок «Вверх» и «Вниз». Количество повторений выполнения программы задается в блоке «Цикл» и может принимать значения 1, 2, 3, 4, 5, 10 и бесконечность.
Пример простой программы микрокомпьютера EV3
Например, стоит задача движения робота с двумя большими моторами вперед пять секунд. Для этого мы выбираем при помощи прерывистой линии переходим в блоки действий и выбираем блок «Рулевое управление». Этот блок выглядит как сдвоенная вращающаяся передняя часть большого мотора. Нажатием на центральную кнопку подтверждаем выбор.
рулевое управление
Блок рулевого управления устанавливается между блоком «Начало» и «Цикл». Повторным нажатием на центральную кнопку мы переходим в настройки блока, где нажатием на кнопки «Вверх» и «Вниз» можно изменять направление движения робота. По умолчанию у нас в блоке выбраны большие моторы в портах B и C. Также по умолчанию у нас стоит движение вперед.
Для того, чтобы робот ехал вперед пять секунд нужно добавить блок ожидания времени. Устанавливаем прерывистую стрелочку между блоком «Рулевое управление» и блоком «Цикл» и переходим при помощи кнопок управления модулем в палитру блоков ожидания. Находим блок ожидания времени, который выглядит как часы и выбираем. Нажатием средней кнопки подтверждаем выбор.
ожидание времени
Блок «Ожидание времени» устанавливается после блока «Рулевое управление» перед блоком «Цикл». Повторное нажатие центральной кнопки на блоке «Ожидания времени» позволяет зайти в настройку времени. Стрелочками «Вверх» и «Вниз» выбираем значение пять секунд и нажатием на центральную кнопку подтверждаем выбор. В своей программе между блоками можно передвигаться при помощи кнопок «Влево» и «Вправо».
На всякий случай нужно проверить значение блока «Цикл» и при необходимости устанавливаем значение в единицу, для того, чтобы программа выполнилась только один раз. Чтобы запустить программу на выполнение переходим в блок «Начало» и нажимаем центральную кнопку. Робот движется вперед пять секунд, после чего останавливается. Программа выполнена.
Как сохранить программу модуля EV3
Для того, чтобы сохранить программу нужно перейти к значку «Сохранить», который находится внизу в левом дальнем конце программы. При нажатии значка откроется окно, где можно дать название программе. Также можно применить название по умолчанию. После этого нужно нажать на кнопку «OK».
как сохранить и открыть программу 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 позволяет моделировать и выводить на экран действия Вашего робота в трехмерном пространстве
Читайте также: