Оглавление:

Автоматический захват с использованием лазерного датчика и голосовых команд: 5 шагов (с изображениями)
Автоматический захват с использованием лазерного датчика и голосовых команд: 5 шагов (с изображениями)

Видео: Автоматический захват с использованием лазерного датчика и голосовых команд: 5 шагов (с изображениями)

Видео: Автоматический захват с использованием лазерного датчика и голосовых команд: 5 шагов (с изображениями)
Видео: У Кремля снесло строительные леса , обрушившие зубцы ( 2024, Ноябрь
Anonim
Image
Image
Список частей
Список частей

Захватывать предметы, которые нам кажутся простыми и естественными, на самом деле является сложной задачей. Человек использует зрение, чтобы определить расстояние до объекта, который он хочет схватить. Рука автоматически открывается, когда находится в непосредственной близости от захватываемого объекта, а затем быстро закрывается, чтобы хорошо схватить объект. Я использовал эту технику в упрощенном виде в этом мини-проекте, но вместо камеры я использовал лазерный датчик для оценки расстояния объекта от захвата и голосовые команды для управления.

Шаг 1: Список деталей

Список частей
Список частей

В этом небольшом проекте вам понадобится всего несколько частей, перечисленных ниже. В качестве контроллера я использовал Arduino mega 2560, но вы также можете использовать UNO или любой другой Arduino. В качестве датчика расстояния я использовал лазерный датчик VL53L0X, который имеет хорошую точность (около нескольких миллиметров) и дальность действия до 2 метров. В этом проекте вы можете использовать для тестирования любого захвата и сервопривода, но вы должны питать его от отдельного источника питания, например: источника питания 5 В или LiPo батареи (7,4 В или 11,1 В) через понижающий преобразователь, который снижает напряжение. до 5В.

Детали, необходимые для этого проекта:

  • Лазерный датчик ToF VL53L0X x1
  • Цифровой сервопривод x1
  • Arduino мега 2560 x1
  • Металлический захват робота x1
  • Макетная плата x1
  • Тактильная кнопка x1
  • Bluetooth HC-06
  • Резистор 10к x1
  • Блок питания 5В / 2А

Расширенная версия:

  1. Модуль датчика текущего монитора CJMCU-219 x1
  2. Плата для разработки светодиодных драйверов WS2812 RGB x1

Шаг 2: Подключение электронных компонентов

Подключение электронных компонентов
Подключение электронных компонентов
Подключение электронных компонентов
Подключение электронных компонентов
Подключение электронных компонентов
Подключение электронных компонентов

На первом рисунке показаны все необходимые подключения. На следующих фотографиях вы можете увидеть следующие этапы подключения отдельных модулей. Сначала кнопка была подключена к контакту 2 Arduino, затем сервопривод к контакту 3 и, наконец, к лазерному датчику расстояния VL53L0X через шину I2C (SDA, SCL).

Подключения электронных модулей следующие:

Лазерный датчик VL53L0X -> Arduino Mega 2560

  • ПДД - ПДД
  • SCL - SCL
  • VCC - 5 В
  • GND - GND

Сервопривод -> Arduino Mega 2560

Сигнальный (оранжевый провод) - 3

Сервопривод -> Источник питания 5 В / 2 А

  • GND (коричневый провод) - GND
  • VCC (красный провод) - 5В

Кнопка -> Arduino Mega 2560

  • Контакт 1 - 3,3 или 5 В
  • Контакт 2-2 (и через резистор 10 кОм на землю)

Bluetooth (HC-06) -> Arduino Mega 2560

  • TXD - TX1 (19)
  • RXD - RX1 (18)
  • VCC - 5 В
  • GND - GND

Шаг 3: Мега-код Arduino

Мега-код Arduino
Мега-код Arduino

Я подготовил следующие образцы программ Arduino, доступные на моем GitHub:

  • VL53L0X_gripper_control
  • Voice_VL53L0X_gripper_control

Первая программа под названием «VL53L0X_gripper_control» выполняет задачу автоматического захвата объекта, обнаруженного лазерным датчиком VL53L0X. Перед компиляцией и загрузкой примера программы убедитесь, что вы выбрали «Arduino Mega 2560» в качестве целевой платформы, как показано выше (Arduino IDE -> Инструменты -> Плата -> Arduino Mega или Mega 2560). Программа Arduino проверяет в основном цикле - «void loop ()», пришло ли новое показание с лазерного датчика (функция readRangeContinuousMillimeters ()). Если расстояние, считываемое датчиком «distance_mm», больше значения «THRESHOLD_CLOSING_DISTANCE_FAR» или меньше «THRESHOLD_CLOSING_DISTANCE_NEAR», сервопривод начинает закрываться. В остальных случаях он начинает открываться. В следующей части программы, в функции digitalRead (gripperOpenButtonPin), состояние кнопки постоянно контролируется, и при ее нажатии захват откроется, несмотря на то, что он закрыт из-за близости объекта. (distance_mm меньше THRESHOLD_CLOSING_DISTANCE_NEAR).

Вторая программа «Voice_VL53L0X_gripper_control» позволяет управлять захватом с помощью голосовых команд. Голосовые команды обрабатываются приложением BT Voice Control для Arduino из Google Play и затем отправляются через Bluetooth в Arduino. Программа Arduino проверяет в основном цикле - «void loop ()», была ли новая команда (символ) отправлена из приложения Android через Bluetooth. Если есть какой-либо входящий символ из последовательного порта bluetooth, программа считывает последовательные данные, пока не встретит конец голосовой инструкции "#". Затем запускается выполнение функции «void processInput ()» и в зависимости от голосовой команды вызывается определенная функция управления.

Шаг 4: Тестирование автоматического захвата

Тестирование автоматического захвата
Тестирование автоматического захвата
Тестирование автоматического захвата
Тестирование автоматического захвата

На видео из «Шага 1» показаны испытания робота-захвата на основе программы из предыдущего раздела «Мега-код Arduino». На этом видео показано, как он автоматически открывается, когда объект приближается к нему, а затем захватывает этот объект, если он находится в пределах досягаемости захватного устройства. Обратная связь от используемого здесь лазерного датчика расстояния четко видна в дальнейшей части видео, когда я перемещаю бутылку вперед и назад, что вызывает быструю реакцию и изменение управления захватом.

Шаг 5. Автоматический захват с голосовой активацией

Image
Image
Эпилог Вызов 9
Эпилог Вызов 9

На следующем этапе развития этого проекта я добавил в него голосовое управление. Благодаря голосовой команде я могу управлять закрытием, открытием и скоростью захвата. Голосовое управление в этом случае очень полезно при открытии захвата, удерживающего объект. Он заменяет кнопку и позволяет легко управлять захватом, установленным на мобильном роботе.

Если вам понравился этот проект, не забудьте проголосовать и написать в комментарии, что вы хотели бы видеть в следующем посте как дальнейшее улучшение этого проекта:) Ознакомьтесь с другими моими проектами, связанными с робототехникой, просто посетите:

  • facebook
  • YouTube
  • мой веб-сайт

Рекомендуемые: