Оглавление:
- Шаг 1: Список деталей
- Шаг 2: Подключение электронных компонентов
- Шаг 3: Мега-код Arduino
- Шаг 4: Тестирование автоматического захвата
- Шаг 5.Автоматический захват с голосовой активацией
Видео: Автоматический захват с использованием лазерного датчика и голосовых команд: 5 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
Захватывать предметы, которые нам кажутся простыми и естественными, на самом деле является сложной задачей. Человек использует зрение, чтобы определить расстояние до объекта, который он хочет схватить. Рука автоматически открывается, когда находится в непосредственной близости от захватываемого объекта, а затем быстро закрывается, чтобы хорошо схватить объект. Я использовал эту технику в упрощенном виде в этом мини-проекте, но вместо камеры я использовал лазерный датчик для оценки расстояния объекта от захвата и голосовые команды для управления.
Шаг 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А
Расширенная версия:
- Модуль датчика текущего монитора CJMCU-219 x1
-
Плата для разработки светодиодных драйверов 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, доступные на моем 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. Автоматический захват с голосовой активацией
На следующем этапе развития этого проекта я добавил в него голосовое управление. Благодаря голосовой команде я могу управлять закрытием, открытием и скоростью захвата. Голосовое управление в этом случае очень полезно при открытии захвата, удерживающего объект. Он заменяет кнопку и позволяет легко управлять захватом, установленным на мобильном роботе.
Если вам понравился этот проект, не забудьте проголосовать и написать в комментарии, что вы хотели бы видеть в следующем посте как дальнейшее улучшение этого проекта:) Ознакомьтесь с другими моими проектами, связанными с робототехникой, просто посетите:
- YouTube
- мой веб-сайт
Рекомендуемые:
Учебное пособие: как создать модуль лазерного датчика дальности VL53L0X с помощью Arduino UNO: 3 шага
Учебное пособие: Как создать модуль лазерного датчика дальности VL53L0X с помощью Arduino UNO: Описание: В этом руководстве всем вам, ребята, подробно будет показано, как создать датчик расстояния с помощью модуля лазерного датчика дальности VL53L0X и Arduino UNO, и он будет работать так же, как вы хотеть. Следуйте инструкциям, и вы поймете этого репетитора
Захват и отправка изображений с помощью ESP32-Cam с использованием процессора ESP8266 WeMos D1 R1 Wifi с Uno: 7 шагов
Захват и отправка изображений с помощью ESP32-Cam с использованием ESP8266 WeMos D1 R1 Wifi Processor с Uno: Захват изображения с помощью ESP32-Cam (OV2640) с помощью ESP8266 WeMos D1 R1 WiFI Processor с Uno и отправьте его по электронной почте, сохраните на Google Drive и отправьте на Whatsapp с использованием Twilio. Требования: ESP8266 WeMos D1 R1 WiFI Processor с Uno (https: // protosupplies
Visuino - Защита периметра с помощью лазерного детектора с использованием Arduino: 7 шагов
Visuino - Защита периметра с помощью лазерного детектора с использованием Arduino: в этом уроке мы будем использовать модуль фоторезистора, лазерный модуль, светодиод, зуммер, Arduino Uno и Visuino, чтобы определить, когда луч лазера был прерван. Посмотрите демонстрационное видео. Примечание. Фоторезисторы являются одними из самых популярных датчиков уровня освещенности
Управление устройствами с помощью голосовых команд с помощью NodeMCU: 7 шагов (с изображениями)
Управление устройствами с помощью голосовых команд с помощью NodeMCU: я просто хочу сказать всем привет, я впервые пишу обучающий проект. Английский не является моим родным языком, поэтому я постараюсь изложить его как можно короче и понятнее. Управление устройствами с помощью голосовых команд - вещь не странная
Печатные платы с использованием лазерного резака: 5 шагов
Печатные платы с использованием лазерного резака: это новый поворот в существующем процессе, который позволяет изготавливать сверхточные печатные платы. Это в основном включает в себя окраску медной доски распылением, лазерную обрезку краски и затем погружение доски в ванну с хлоридом железа, чтобы удалить нежелательные загрязнения