Оглавление:

Машинка с дистанционным управлением, управляемая виртуальной реальностью: 9 шагов
Машинка с дистанционным управлением, управляемая виртуальной реальностью: 9 шагов

Видео: Машинка с дистанционным управлением, управляемая виртуальной реальностью: 9 шагов

Видео: Машинка с дистанционным управлением, управляемая виртуальной реальностью: 9 шагов
Видео: Машинка с камерой для дома. Гоняем по видео шлему на Diatone Q33 Karting RC FPV 2024, Ноябрь
Anonim
Image
Image

Вы когда-нибудь хотели сжаться и пилотировать такой корабль, как Innerspace или Fantastic Voyage? Что ж, я думаю, это так близко, как вы собираетесь получить в ближайшее время!

Вот подача:

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

Я реализовал следующие вещи, которыми вы можете управлять на VR Car.

  1. Колеса
  2. Рог
  3. Огни

У всех них есть какая-то кнопка или рычаг в VR, которые вы можете щелкнуть или переключить, чтобы управлять автомобилем.

Чтобы получить полное репо и дополнительную информацию, посетите мой Github и мой веб-сайт!

Шаг 1. Материалы и инструменты

Материалы и инструменты
Материалы и инструменты
Материалы и инструменты
Материалы и инструменты

Механический:

Комплект шасси с приводом на 4 колеса

Электрооборудование:

  • Колесный энкодер
  • Аккумулятор 3S 1300mAh
  • Ардуино Уно
  • Моторный щит Arduino
  • Пьезоэлектрический зуммер
  • Маленький светодиод
  • Разъемы XT60
  • Повышающий / понижающий преобразователь

Компьютер:

  • Любая встраиваемая компьютерная система: Raspberry Pi, Jetson Nano и т. Д.
  • USB-камера (желательно - камера на 180 градусов)

Инструменты / Дополнительно:

  • Паяльник
  • Некоторые настройки VR - у меня есть Oculus Rift
  • Мультиметр

Шаг 2: построить автомобиль

Построить Автомобиль
Построить Автомобиль
Построить Автомобиль
Построить Автомобиль
Построить Автомобиль
Построить Автомобиль

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

Я использовал картонную коробку, в которой шла камера, чтобы установить ее. Я вырезал большую L-образную форму и вырезал отверстие, чтобы камера полностью проткнула его. После этого вы можете просто прорезать камеру и приклеить липкую ленту сзади, чтобы удерживать ее на месте. Если хотите, вы также можете проделать отверстия для фар прямо сейчас или сделать это позже, при измерении длины провода.

Вам также нужно будет прикрепить кодировщик колеса к одному из колес. Неважно какой, я положил его на заднее левое колесо. Вам нужно надеть магнитный диск на собственно вал колеса, а энкодер должен быть прикреплен к автомобилю рядом с ним. Он довольно восприимчив, поэтому не должен быть прямо на нем, но как можно ближе. Я закрепил свой кодировщик лентой и застежкой-молнией. Кодировщик - это то, что мы будем использовать для измерения скорости нашей машины.

Шаг 3: паять схемы

Цепи припоя
Цепи припоя
Цепи припоя
Цепи припоя

Эта часть довольно утомительна, но не сложна. Если вы проследите за рисунком и все измерите, прежде чем перерезать провод, это не так уж и плохо.

Пока вы делаете это, вам также следует откалибровать понижающий преобразователь для вывода правильного напряжения. Raspberry Pi и Jetson Nano потребляют 5 Вольт, а наша батарея - 11,1 В. Итак, нам нужно убедиться, что мы не поджарим нашу электронику. Для этого подключите аккумулятор к входу понижающего преобразователя. Пока батарея подключена, используйте мультиметр для измерения выходной стороны понижающего преобразователя. Используйте небольшую отвертку с плоской головкой, чтобы повернуть потенциометр на понижающем преобразователе, пока выходное напряжение не станет 5 В. Как только выходной сигнал будет правильным, вам больше не придется поворачивать потенциометр.

Шаг 4. Установите зависимости во встроенной системе

Установить зависимости во встроенной системе
Установить зависимости во встроенной системе

Здесь не так много дел, но все же невероятно важно.

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

Затем откройте терминал и введите следующее:

sudo apt update

sudo apt установить openssh-server

sudo apt установить python-pip pip установить numpy pip установить opencv-python pip установить pyzmq

После того, как все это установлено, нам нужно убедиться, что независимо от того, к какому порту подключен Arduino, он всегда распознается. Итак, мы пишем так называемые правила UDEV. Это правила для вашей операционной системы, которые определяют, что происходит, когда вы подключаете что-либо. Мы хотим идентифицировать arduino, когда он подключен, и дать ему имя для доступа к нему. Это имя будет «arduino_0». Для этого мы будем использовать внутренний серийный номер Arduino, чтобы идентифицировать его.

udevadm info -a -n / dev / ttyUSB1 | grep '{serial}' | голова -n1

Это выдаст значение для серийного номера, скопируйте это значение.

Затем нам нужно отредактировать (или создать, если он не существует) файл с именем «99-usb-serial.rules». Этот файл находится по следующему пути к файлу "/etc/udev/rules.d/99-usb-serial.rules". Как я уже упоминал, если этот файл не существует, просто создайте его и вставьте в следующую строку, заменив VALUE_FROM_ABOVE на ваше предыдущее значение.

SUBSYSTEM == "tty", ATTRS {serial} == "VALUE_FROM_ABOVE", SYMLINK + = "arduino_0"

Это говорит операционной системе, что всякий раз, когда она видит этот конкретный серийный номер, вызывать его arduino_0.

Последнее, что нужно сделать здесь, - это загрузить pushArucoVideoPullCommands.py и поместить его в легкодоступное место. Я бы порекомендовал домашний каталог для вашего пользователя, так как именно там мы закончим, когда позже подключимся к встроенной системе по SSH.

Шаг 5: Настройте статический IP-адрес

Настроить статический IP-адрес
Настроить статический IP-адрес

Теперь это то, что всем нравится, - IP-адресация. Чтобы этот проект работал, код должен знать, куда отправлять изображения и команды управления, а это означает, что нашим устройствам нужен статический IP-адрес.

Есть много способов назначить вашему устройству статический IP-адрес, но, поскольку у нас есть маршрутизатор, соединяющий нашу наземную станцию и встроенную систему, мы можем использовать его, чтобы очень легко дать нам конкретные IP-адреса.

Перейдите в раздел администратора вашего маршрутизатора, обычно (для большинства маршрутизаторов) это делается путем открытия веб-браузера и перехода к «192.168.1.1». Вам будет предложено войти в систему, а типичное стандартное имя пользователя и пароль для большинства маршрутизаторов - «admin».

Оказавшись там, перейдите к чему-то, что упоминает «DHCP-сервер». Это процесс, который выполняется на вашем маршрутизаторе и отслеживает, какие устройства подключены к нему, по их MAC-адресу, который всегда постоянен. Мы хотим выбрать устройства, которые нам небезразличны. about, компьютер наземной станции и встроенная система, и добавьте их в раздел зарезервированных клиентов. Это даст им статический IP-адрес при каждом подключении к этому маршрутизатору.

Убедитесь, что вы установили IP-адрес встроенной системы на 192.168.1.122. IP-адрес наземной станции может быть любым.

Шаг 6: загрузите код в Arduino

Загрузить код в Arduino
Загрузить код в Arduino

Чтобы загрузить код Arduino, нам нужно сначала установить библиотеку для работы с моторным щитом.

В вашей среде разработки Arduino перейдите в Sketch-> Include Library-> Manage Libraries… Затем найдите Adafruit Motor Shield Library. Установите эту библиотеку, затем загрузите код на свой arduino, больше ничего не требуется.

Шаг 7: прикрепите схему и компьютер к автомобилю

Прикрепите схему и компьютер к автомобилю
Прикрепите схему и компьютер к автомобилю

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

Большинство вещей довольно просто оставить где-нибудь на крыше машины, поэтому не волнуйтесь, если места мало.

Шаг 8: настройка среды VR

Настройка среды VR
Настройка среды VR

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

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

Вам просто нужно скачать и распаковать файл со сборкой Unity world и быть готовым к запуску VR_Bot.exe.

Шаг 9: запустите все вместе

Запускаем все вместе
Запускаем все вместе
Запускаем все вместе
Запускаем все вместе

Итак, теперь, когда у нас есть машина, и наземная станция подключена и готова к работе, как нам на самом деле управлять этим плохим парнем? Что ж, с точки зрения наземной станции, все, что вам нужно сделать, это запустить файл VR_Bot.exe, который мы видели ранее.

В то же время вам нужно будет подключить аккумулятор к встроенной системе, и она автоматически загрузится и подключится к вашему маршрутизатору. Как только он загрузится, подключитесь к нему по SSH. Чтобы получить к нему доступ, вам понадобится какой-то терминал на наземной станции, я рекомендую GitBash.

SSH означает Secure Shell, и это протокол для безопасного доступа к удаленным системам. В нашем случае это даст нам доступ к встроенной системе с наземной станции. Кликните сюда, чтобы узнать больше.

Вам необходимо знать имя пользователя, с которым вы настраиваете свою встроенную систему. Для raspberry pi имя пользователя по умолчанию - «pi», а пароль - «raspberry».

После установки откройте терминал и введите следующее:

ssh {имя пользователя встроенной системы}@192.168.1.122

Это откроет терминал во встроенной системе.

Оказавшись там, вам просто нужно выполнить скрипт python, который мы скопировали ранее.

python /path/to/pushArucoVideoPullCommands.py

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

Тогда вы можете начать водить машину и получать удовольствие!

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