Оглавление:
- Шаг 1. Обзор
- Шаг 2: Сборка проекта
- Шаг 3: Инструкции по сборке / подключению
- Шаг 4: понимание WebIOPi Framework
- Шаг 5: Запуск проекта
Видео: Робот для удаленного поиска и утилизации с управляемым движением Leap Motion: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
В рамках моей заявки на Leap Motion # 3D Jam я был рад создать этого поисково-спасательного робота с беспроводным управлением жестами на основе Raspberry Pi. Этот проект демонстрирует и предоставляет минималистичный пример того, как беспроводные трехмерные жесты рук могут использоваться для управления физическими объектами и взаимодействия с ними.
Поскольку в этом проекте используется популярная структура WebIOPi IoT на Raspberry Pi, его можно очень легко расширить для управления и взаимодействия, как правило, с любым датчиком / оборудованием / электроникой, которые могут взаимодействовать с Raspberry Pi.
Некоторые возможные сценарии, которые я предполагаю, коллеги-создатели могут использовать этот проект в качестве своей базовой структуры для развития:
1. Робот для уничтожения бомб, управляемый удаленными жестами (возможно, с помощью OWI Arm и т. Д.)
2. Дистанционная хирургическая операция врача.
3. Интерактивные художественные выставки или образовательный контент, контролируемые жестами.
4. Бесконечные другие возможности / интеграции (я ограничен своим воображением:))
Шаг 1. Обзор
Этот проект позволяет пользователю интерактивно управлять роботом с помощью трехмерных жестов рук с помощью Leap Motion, подключенного к ПК.
Raspberry Pi на борту робота также имеет веб-камеру USB, которая передает потоковое видео в реальном времени обратно пользователю, которое можно увидеть в веб-браузере. Библиотека LeapMotion JavaScript, встроенная в эту веб-страницу, обрабатывает жесты рук и отправляет управляющие сигналы обратно роботу, который затем перемещается соответствующим образом.
Raspberry Pi на роботе настроен как точка доступа (режим AP) с помощью подключенного к нему USB-ключа WiFi. Это позволяет нашим ПК / устройствам напрямую подключаться к Raspberry Pi и управлять ими через веб-страницу. Raspberry Pi также можно настроить для работы в клиентском режиме, при этом он подключается по беспроводной сети к точке доступа WiFi-маршрутизатора, к которой уже подключены ПК / устройства.
Этот проект основан на WebIOPi (https://webiopi.trouch.com/), который является популярным фреймворком IoT для Raspberry Pi. Используя комплект Weaved IoT Kit (или через переадресацию портов на маршрутизаторе), этим роботом можно дистанционно управлять и / или получать данные из любой точки мира.
При создании проекта использовались следующие компоненты:
- Raspberry Pi B (100% прямая совместимость с Raspberry Pi B +)
- Веб-камера Logitech USB (всего 1,3 мегапикселя)
- Микросхема драйвера двигателя L293D и защитный экран
- USB-ключ Wi-Fi для Raspberry Pi
- USB Power Bank для Raspberry Pi
- Внешний аккумулятор 4 В / 1,5 А для управления двигателями роботов
Шаг 2: Сборка проекта
Установка WebIOPi, написание пользовательского кода и настройка веб-камеры:
Инструкции по установке WebIoPi, основы фреймворка и множество примеров доступны на странице проекта здесь:
Чтобы встроенные в веб-страницу функции LeapMotion запускали действия GPIO на Raspberry Pi, мы использовали макросы, подробности которых можно найти здесь:
Я также написал несколько заметок о начале работы по вышеупомянутому процессу, которые можно найти в приложении.
Установка и настройка веб-камеры
Мы используем MJPG-Streamer для потоковой передачи видеопотока с Raspberry Pi обратно в браузер через веб-камеру USB, подключенную к Pi. Следуйте инструкциям по установке и сборке, указанным здесь https://blog.miguelgrinberg.com/post/how-to-build-…, чтобы MJPG-Streamer работал на Raspberry Pi.
Настройка Raspberry Pi в качестве точки доступа / точки доступа
Чтобы настроить Raspberry Pi в качестве Hostpot, следуйте инструкциям, приведенным здесь: https://elinux.org/RPI-Wireless-Hotspot. Я настроил статический IP-адрес Raspberry Pi как 192.168.42.1, который мы вводим в браузер, когда Pi загружается в режим AP.
WebIOPi, MJPG-Streamer и служба точки доступа Wi-Fi настроены для автоматического запуска при загрузке, и это позволяет нам напрямую открывать веб-браузер и подключаться к роботу после его загрузки. Файл rc.local, доступный в репозитории, используется для запуска веб-камеры при загрузке.
Шаг 3: Инструкции по сборке / подключению
4 GPIO Raspberry Pi, а именно GPIO 9, 11, 23 и 24, подключены к микросхеме драйвера двигателя L293D, которая соответственно управляет двигателями после получения макросов с веб-страницы, обслуживаемой фреймворком Webiopi. Ключ USB WiFi и веб-камера USB Logitech подключаются к 2 портам USB, доступным на Raspberry Pi. Блок питания 5 В 4000 мАч подает основное питание на Pi. Свинцово-кислотная батарея 4V 1.5A используется для привода двигателей.
Примечание. Поскольку максимальный выходной ток используемого мною блока питания составлял всего 1000 мАч, мне пришлось использовать внешнюю свинцово-кислотную батарею для управления двигателями. Если у вас блок питания, который дает> = 2000 мАч, вы можете напрямую управлять двигателями от шины 5 В на Pi (хотя я бы не рекомендовал это для энергоемких двигателей).
Три ключевых подраздела проекта LeapMotion Javascript API, WebIOPi и MJPG-Streamer и их базовая работа / настройка кратко описаны ниже.
Шаг 4: понимание WebIOPi Framework
Интерфейс, отображаемый в браузере, написан на HTML (имя файла: index.html) и Javascript, тогда как серверная часть, управляющая GPIO, написана на Python (имя файла: script.py). Подробные примечания по созданию пользовательского WebApp на основе инфраструктуры WebIOPi прилагаются в виде примечаний в репозитории Bitbucket.
Пользовательские макросы, определенные в скрипте Python, могут запускаться из файла HTML.
Например: webiopi (). CallMacro ("go_forward"); Это специальный вызов макроса go_forward, определенного в скрипте Python, который обрабатывает процесс вращения обоих двигателей в прямом направлении.
Иерархия каталогов, в которой хранятся файлы на Pi, показана на прикрепленном изображении.
Папка Robot содержит следующие подпапки:
- html: содержащий index.html
- python: содержащий script.py
- mjpg-streamer-r63: содержащий файлы сборки и исполняемый файл для запуска веб-камеры
MJPG-Streamer: поток видео в реальном времени с веб-камеры USB по умолчанию работает через порт 8080 Pi. Чтобы просмотреть поток вручную, перейдите к RASPBERRYPI_IP: 8080 в браузере после включения веб-камеры.
Код LeapMotion:
Фрагменты кода из примеров, представленных в LeapMotion SDK, были встроены в файл index.html. Файл leap.js LeapMotion необходимо добавить в папку html в каталоге проекта на Raspberry Pi.
Параметр palmPosition, отправляемый LeapMotion, используется для определения того, какой макрос запускать на Raspberry Pi.
Шаг 5: Запуск проекта
Просто включите Raspberry Pi и подождите примерно минуту. Вы увидите новый хот-дог RaspberryPi. Подключитесь к этой точке доступа и откройте в браузере статический IP-адрес: 192.168.42.1:8000. 8000 - порт по умолчанию для WebIOPi.
Raspberry Pi также можно настроить для подключения к локальной сети Wi-Fi в качестве клиента, а не в качестве точки доступа. Затем вам нужно будет определить динамический IP-адрес, назначенный Raspberry Pi маршрутизатором, а затем нажать его в браузере, чтобы поиграть с ботом.
Вы можете оставить комментарий, если вам понадобится помощь или возникнут вопросы по проекту. Счастливого прыжка!
Полные исходные коды прилагаются. Вы можете оставить комментарий, если вам нужна помощь с какой-либо частью строительства проекта. Счастливого прыжка!
Рекомендуемые:
Светодиодные ленты для досок для серфинга с реактивным движением: 8 шагов (с изображениями)
Светодиодные полосы для досок для серфинга с реактивным движением: недавно мы с друзьями открыли для себя речной серфинг. Живя в Мюнхене, нам повезло, что среди знаменитого места для серфинга в Айсбахе есть три речные волны, пригодные для серфинга. Обратной стороной речного серфинга является то, что он вызывает привыкание, и поэтому я редко нахожу время для
Жесткий футляр для пульта Apple TV Siri Remote с функцией поиска плитки Bluetooth: 7 шагов (с изображениями)
Жесткий футляр для пульта Apple TV Siri Remote с Bluetooth Tile Finder: однажды я прочитал описание iPhone как «палочку масла, залитого маслом и сбрызнутого WD40 для хорошей меры!»; Я думаю, это было, когда вышла 6-я модель, и все роняли свои дорогие новые телефоны и разбивали стекла
Использование расширения "Сундук надежды" для поиска незавершенных храмовых таинств в вашем семейном древе в семейном поиске: 11 шагов
Использование расширения "Сундук надежды" для поиска незавершенных храмовых таинств в вашем семейном древе по семейному поиску: цель этого руководства - продемонстрировать, как искать в семейном древе в Семейном поиске предков с незавершенными храмовыми таинствами с помощью расширения "Сундук надежды". Использование Сундука Надежды может значительно ускорить поиск
Картонный робот для управления движением: 8 шагов
Картонный робот-диспетчер: меня ждут соревнования по картону. Если вам нравится моя инструкция, пожалуйста, проголосуйте за нее! Изучив эту инструкцию, вы узнаете, как создавать и использовать Cruizmo Cis. Cruizmo Cis - интеллектуальный робот, контролирующий движение. Он управляет обеими машинами
Создание Bookhuddle.com, веб-сайта для поиска, систематизации и обмена информацией о книгах: 10 шагов
Создание Bookhuddle.com, веб-сайта для поиска, систематизации и обмена информацией о книгах: в этом сообщении описаны шаги, необходимые для создания и запуска Bookhuddle.com, веб-сайта, призванного помочь читателям находить, систематизировать и обмениваться информацией о книгах. Шаги, описанные здесь будет применяться к разработке других веб-сайтов