Índice:

Carro RC controlado por realidade virtual: 9 etapas
Carro RC controlado por realidade virtual: 9 etapas

Vídeo: Carro RC controlado por realidade virtual: 9 etapas

Vídeo: Carro RC controlado por realidade virtual: 9 etapas
Vídeo: O SURPREENDENTE Micro Carrinho RC com Câmera FPV e ÓCULOS! | Diatone SNT JustAir Q25 2024, Julho
Anonim
Image
Image

Você já quis ser encolhido e pilotar uma nave como a Innerspace ou a Fantastic Voyage? Bem, eu acho que isso é o mais perto que você vai chegar em curto prazo!

Aqui está o argumento de venda:

Um carro de controle remoto Real-Life pilotado a partir de um console de comando de Realidade Virtual. Isso significa que você prenderá um fone de ouvido VR, acione um botão em um carro RC e, em seguida, poderá pilotar de VR com transmissão de vídeo ao vivo direto para o seu rosto.

Existem três coisas que eu implementei que você pode controlar no VR Car.

  1. Rodas
  2. chifre
  3. Luzes

Todos eles têm algum tipo de botão ou alavanca em VR que você pode girar ou mudar para dirigir o carro.

Para o repositório completo e mais informações, verifique meu Github e meu site!

Etapa 1: Materiais e Ferramentas

Materiais e Ferramentas
Materiais e Ferramentas
Materiais e Ferramentas
Materiais e Ferramentas

Mecânico:

Kit de chassi com tração nas 4 rodas

Elétrico:

  • Codificador de roda
  • Bateria 3S 1300mAh
  • Arduino Uno
  • Arduino Motor Shield
  • Piezo Electric Buzzer
  • LED pequeno
  • Conectores XT60
  • Conversor Boost / Buck

Computador:

  • Qualquer sistema de computador embarcado: Raspberry Pi, Jetson Nano, etc.
  • Câmera USB (preferível - câmera de 180 graus)

Ferramentas / extras:

  • Ferro de solda
  • Algumas configurações de VR - eu tenho o Oculus Rift
  • Multímetro

Etapa 2: construir o carro

Construir Carro
Construir Carro
Construir Carro
Construir Carro
Construir Carro
Construir Carro

O chassi do carro é super fácil de construir. Você só precisa conectar os motores à placa principal por meio das guias que eles fornecem. Depois de prender as rodas e os motores, você também precisará de algo para prender a câmera na frente do carro.

Usei a caixa de papelão com a qual veio a câmera para montá-lo. Recortei uma grande forma de L e abri um orifício para a câmera furar. Depois disso, você pode simplesmente inserir a câmera e colocar um pouco de fita adesiva na parte de trás para mantê-la no lugar. Se quiser, você também pode colocar orifícios para os faróis agora ou fazer isso mais tarde, ao medir o comprimento do fio.

Você também precisará conectar o codificador de roda a uma das rodas. Não importa qual, eu coloquei na roda traseira esquerda. Você precisa colocar o disco magnético no eixo real da roda, e o codificador deve ser conectado ao carro próximo a ele. É muito receptivo, então não precisa ser direto, mas o mais próximo possível. Prendi meu codificador com fita adesiva e um zíper. O codificador é o que usaremos para medir a velocidade do nosso carro.

Etapa 3: circuitos de solda

Circuitos de solda
Circuitos de solda
Circuitos de solda
Circuitos de solda

Esta parte é um tanto entediante, mas não complicada. Se você seguir a imagem e medir tudo antes de cortar o fio, não é tão ruim.

Enquanto estiver fazendo isso, você também deve calibrar seu conversor de Buck para produzir a tensão correta. O Raspberry Pi e o Jetson Nano levam 5v, mas nossa bateria é de 11,1v. Portanto, precisamos ter certeza de não fritar nossos eletrônicos. Para fazer isso, conecte sua bateria no lado de entrada do conversor Buck. Enquanto a bateria estiver conectada, use o multímetro para medir o lado da saída do conversor Buck. Use uma pequena chave de fenda para girar o potenciômetro no conversor Buck até que a tensão de saída seja 5v. Assim que a saída estiver correta, você não precisará mais girar o potenciômetro.

Etapa 4: instalar dependências no sistema integrado

Instalar Dependências no Sistema Embutido
Instalar Dependências no Sistema Embutido

Não há muito o que fazer aqui, mas ainda assim extremamente importante.

Primeiro, certifique-se de conectar ao roteador que usará para que ele possa se conectar automaticamente a partir de agora.

Em seguida, abra um terminal e digite o seguinte:

atualização do apt sudo

sudo apt install servidor openssh

sudo apt instalar python-pip pip instalar numpy pip instalar opencv-python pip instalar pyzmq

Depois que essas coisas forem instaladas, precisamos ter certeza de que, não importa a porta em que o arduino esteja conectado, ele sempre será reconhecido. Então, nós escrevemos o que chamamos de regras UDEV. Essas são regras para o seu sistema operacional que governam o que acontece quando você conecta coisas. Queremos identificar o arduino quando ele é conectado e fornecer um nome para acessá-lo. Esse nome será "arduino_0". Para fazer isso, usaremos o número de série interno do arduino para identificá-lo.

udevadm info -a -n / dev / ttyUSB1 | grep '{serial}' | head -n1

Isso cuspirá um valor para o número de série, vá em frente e copie esse valor.

Em seguida, precisamos editar (ou criar se ele não existir) um arquivo chamado "99-usb-serial.rules". Este arquivo reside no seguinte caminho de arquivo "/etc/udev/rules.d/99-usb-serial.rules". Como mencionei, se esse arquivo não existir, apenas crie-o e cole na linha seguinte com VALUE_FROM_ABOVE substituído pelo seu valor anterior.

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

Isso informa ao sistema operacional que, sempre que ele vir esse número de série específico, chame-o de arduino_0.

A última coisa a fazer aqui é baixar o pushArucoVideoPullCommands.py e colocá-lo em um local de fácil acesso. Eu recomendaria o diretório inicial para o seu usuário, pois é onde iremos parar quando fizermos SSH no sistema embarcado mais tarde.

Etapa 5: configurar o endereço IP estático

Configurar endereço IP estático
Configurar endereço IP estático

Agora é a parte que todo mundo adora, o endereçamento IP. Para que este projeto funcione, o código precisa saber para onde enviar imagens e comandos de controle, e isso significa que nossos dispositivos precisam de um IP estático.

Existem muitas maneiras de atribuir um IP estático ao seu dispositivo, mas, como temos um roteador conectando nossa estação terrestre e o sistema embarcado, podemos usá-lo para nos fornecer endereços IP específicos com muita facilidade.

Navegue até a seção de administração do seu roteador, normalmente (para a maioria dos roteadores) isso é feito abrindo um navegador da web e indo para "192.168.1.1". Será solicitado que você se conecte, e o nome de usuário e a senha padrão típicos para a maioria dos roteadores é "admin".

Uma vez lá, navegue até algo que mencione 'Servidor DHCP . Este é um processo executado no seu roteador e rastreia quais dispositivos estão conectados a ele por seu endereço MAC, que é sempre constante. Queremos selecionar os dispositivos de que nos importamos sobre, o computador da estação terrestre e o sistema embarcado, e adicioná-los à seção de cliente reservada. Isso dará a eles um ip estático sempre que estiverem conectados a este roteador.

Certifique-se de definir o IP do Sistema Incorporado como 192.168.1.122 O IP da estação terrestre pode ser definido como qualquer coisa.

Etapa 6: fazer upload do código para o Arduino

Carregar código para o Arduino
Carregar código para o Arduino

Para fazer o upload do código do arduino, precisamos primeiro instalar uma biblioteca para trabalhar com a blindagem do motor.

Em seu Arduino IDE, vá para Sketch-> Incluir Biblioteca-> Gerenciar Bibliotecas … Em seguida, pesquise por Adafruit Motor Shield Library. Instale esta biblioteca e, em seguida, carregue o código para o seu arduino, nada mais deve ser necessário.

Etapa 7: conectar o circuito e o computador ao carro

Anexar circuitos e computador ao carro
Anexar circuitos e computador ao carro

Agora que o circuito está construído, é hora de colocar tudo no carro. Eu não vou mentir, muitas dessas coisas são apenas presas com fita adesiva porque isso foi o que foi mais fácil para eu juntar bem rápido. Dito isso, o tem orifícios de montagem ajustados, conforme mostrado na imagem acima.

A maioria das coisas é muito fácil de deixar em algum lugar em cima do carro, então, não se preocupe se não houver muito espaço.

Etapa 8: configurar o ambiente de VR

Configurar ambiente de VR
Configurar ambiente de VR

Esta seção terá uma aparência um pouco diferente dependendo do tipo de configuração de RV que você está usando. Seja qual for o caso, usei o SteamVR para desenvolver este software, então você pode precisar instalá-lo.

Enquanto você estiver usando o SteamVR, os controles devem se adaptar a diferentes controladores. Mapeei os controles para "Ações", não necessariamente botões, portanto, em teoria, isso se adaptará a todos.

Você só precisa baixar e descompactar o arquivo com o build do mundo Unity e estar pronto para executar o VR_Bot.exe.

Etapa 9: execute tudo junto

Execute tudo junto
Execute tudo junto
Execute tudo junto
Execute tudo junto

Então, agora que configuramos o carro e a estação terrestre conectada e pronta para funcionar, como vamos realmente administrar esse bad boy? Bem, do ponto de vista da Ground Station, basta executar o arquivo VR_Bot.exe que vimos anteriormente.

Ao mesmo tempo, você precisará conectar a bateria ao Sistema Embarcado e que ele inicialize automaticamente e se conecte ao seu roteador. Depois de inicializado, use SSH nele. Para acessá-lo, você precisará de algum tipo de terminal na estação terrestre, recomendo o GitBash.

SSH significa Secure Shell e é um protocolo para acessar sistemas remotos com segurança. No nosso caso, isso nos dará acesso ao Sistema Embarcado da Estação Terrestre. Clique aqui para saber mais.

Você precisa saber o nome de usuário com o qual configurou seu sistema embarcado. Para raspberry pi's, o nome de usuário padrão é 'pi' e a senha 'raspberry'.

Uma vez instalado, abra um terminal e digite o seguinte:

ssh {nome de usuário do sistema incorporado}@192.168.1.122

Isso abrirá um terminal no Sistema Integrado.

Uma vez lá, você só precisa executar o script Python que copiamos anteriormente.

python /path/to/pushArucoVideoPullCommands.py

Depois de fazer isso, o Embedded System começará a enviar imagens e receber comandos de e para a estação terrestre.

Você está pronto para começar a dirigir e se divertir!

Recomendado: