Índice:

Robô de eliminação e busca remota controlada por movimento Leap: 5 etapas
Robô de eliminação e busca remota controlada por movimento Leap: 5 etapas

Vídeo: Robô de eliminação e busca remota controlada por movimento Leap: 5 etapas

Vídeo: Robô de eliminação e busca remota controlada por movimento Leap: 5 etapas
Vídeo: The Apogee Solstice | Critical Role | Campaign 3, Episode 51 2024, Novembro
Anonim
Image
Image

Como parte da minha inscrição para o Leap Motion # 3D Jam, eu estava animado para construir este robô de busca / resgate controlado por gestos sem fio baseado no Raspberry Pi. Este projeto demonstra e fornece um exemplo minimalista de como gestos 3D sem fio com as mãos podem ser usados para controlar e interagir com coisas físicas.

Uma vez que este projeto usa a popular estrutura WebIOPi IoT no Raspberry Pi, ele pode ser facilmente expandido para controlar e fazer interface normalmente com qualquer Sensor / Hardware / Eletrônica que possa ter interface com o Raspberry Pi.

Alguns cenários possíveis que eu imagino que outros Makers podem usar este projeto como sua estrutura de base para construir:

1. Robô de eliminação de bomba operado por gestos remotos (usando talvez um braço OWI etc)

2. Operação cirúrgica remota por um médico

3. Exposições de arte interativas controladas por gestos ou conteúdo educacional

4. Outras possibilidades / integrações infinitas (estou limitado pela minha imaginação:))

Etapa 1: Visão geral

Compreendendo a estrutura WebIOPi
Compreendendo a estrutura WebIOPi

Este projeto permite que um usuário controle interativamente um robô usando gestos 3D com as mãos por meio de um Leap Motion conectado a um PC.

O Raspberry Pi a bordo do Robot também possui uma webcam USB que transmite vídeo ao vivo de volta para o usuário, que pode ser visto em um navegador da web. A biblioteca LeapMotion JavaScript embutida nesta página da Web processa gestos manuais e envia sinais de controle de volta para o robô, que então se move de acordo.

O Raspberry Pi no Robot é configurado como um Hotspot (modo AP) com a ajuda do dongle USB WiFi conectado a ele. Isso permite que nossos PCs / dispositivos se conectem diretamente ao Raspberry Pi e o controlem por meio de uma página da web. O Raspberry Pi também pode ser configurado para operar no modo cliente, em que se conecta sem fio ao AP do roteador WiFi ao qual o PC / dispositivos já estão conectados.

Este projeto é baseado no WebIOPi (https://webiopi.trouch.com/), que é uma estrutura de IoT popular para Raspberry Pi. Ao usar o Weaved IoT Kit (ou por meio de encaminhamento de porta no roteador), este robô pode ser controlado remotamente e / ou receber dados de qualquer parte do mundo.

Os seguintes componentes foram usados para construir o projeto:

  1. Raspberry Pi B (100% compatível com Raspberry Pi B +)
  2. Logitech USB Webcam (insignificantes 1,3 megapixels)
  3. L293D Motor Driver IC e Breakout Shield
  4. Dongle USB WiFi para Raspberry Pi
  5. USB Power Bank para Raspberry Pi
  6. Bateria externa 4V / 1,5A para acionar os motores do robô

Etapa 2: construção do projeto

Instalando WebIOPi, escrevendo código personalizado e configurando a webcam:

Instruções de instalação do WebIoPi, fundamentos da estrutura e muitos exemplos estão disponíveis na página do projeto aqui:

Para incorporar as funções do LeapMotion na página da web, acionar ações GPIO no Raspberry Pi, usamos macros, cujos detalhes podem ser encontrados aqui:

Também escrevi algumas notas de introdução sobre o processo acima, que podem ser encontradas em anexo.

Instalando e configurando a webcam

Estamos usando o MJPG-Streamer para transmitir o feed de vídeo do Raspberry Pi de volta ao navegador por meio da webcam USB conectada ao Pi. Siga as instruções de configuração e construção indicadas aqui https://blog.miguelgrinberg.com/post/how-to-build-… para fazer o MJPG-Streamer funcionar no Raspberry Pi.

Configurando o Raspberry Pi como um AP / Hotspot

Para configurar o Raspberry Pi como um Hostpot, siga as instruções fornecidas aqui: https://elinux.org/RPI-Wireless-Hotspot. Eu configurei o IP estático do Raspberry Pi como 192.168.42.1 que é o que digitaríamos no navegador assim que o Pi inicializar no modo AP.

WebIOPi, MJPG-Streamer e serviço de ponto de acesso WiFi foram configurados para execução automática na inicialização e isso nos permite abrir diretamente um navegador da Web e conectar-se ao robô após a inicialização. O arquivo rc.local disponível no repo é usado para executar a webcam na inicialização.

Etapa 3: Instruções de construção / fiação

4 GPIOs do Raspberry Pi, a saber, GPIO 9, 11, 23 e 24, estão conectados ao L293D Motor Driver IC, que aciona os motores de acordo com o recebimento de solicitações de macro da página da Web servida pela estrutura Webiopi. O dongle USB WiFi e a USB Logitech Webcam são conectados às 2 portas USB disponíveis no Raspberry Pi. Um banco de energia de 5V 4000 Mah fornece a energia principal para o Pi. Uma bateria de ácido-chumbo 4V 1,5A é usada para acionar os motores.

Observação: como a corrente de saída máxima do banco de potência que usei foi de míseros 1000 Mah, tive que usar a bateria de ácido-chumbo externa para acionar os motores. Se você tiver um banco de potência que forneça> = 2000Mah, você pode acionar os motores diretamente do trilho de 5 V no Pi (eu não recomendaria isso para motores com grande consumo de energia)

As três subseções principais do projeto LeapMotion Javascript API, WebIOPi e MJPG-Streamer e seu funcionamento / configuração básico são resumidas a seguir.

Etapa 4: Compreendendo a estrutura WebIOPi

O frontend que é mostrado no navegador é escrito em HTML (nome do arquivo: index.html) e Javascript, enquanto o backend que conduz os GPIOs é escrito em Python (nome do arquivo: script.py). Notas detalhadas sobre a criação de um WebApp customizado com base na estrutura WebIOPi estão anexadas como notas no repositório Bitbucket.

Macros personalizadas definidas no script Python podem ser acionadas a partir do arquivo HTML.

Ex: webiopi (). CallMacro ("go_forward"); Esta é uma chamada personalizada para uma macro go_forward definida no script Python que lida com o processo de direcionar ambos os motores para a frente.

A hierarquia do diretório de onde os arquivos são armazenados no Pi é mostrada na imagem anexada.

A pasta Robot contém estas subpastas:

  • html: contendo index.html
  • python: contendo script.py
  • mjpg-streamer-r63: contendo os arquivos de compilação e o executável para executar a webcam

MJPG-Streamer: O fluxo de vídeo ao vivo da webcam USB é executado na porta 8080 do Pi por padrão. Para visualizar o fluxo manualmente, navegue até RASPBERRYPI_IP: 8080 no navegador após ligar a webcam.

Código LeapMotion:

Trechos de código dos exemplos fornecidos no LeapMotion SDK foram incorporados ao arquivo index.html. O arquivo leap.js do LeapMotion deve ser adicionado à pasta html no diretório do projeto no Raspberry Pi.

O parâmetro palmPosition enviado pelo LeapMotion é usado para determinar qual macro acionar no Raspberry Pi.

Etapa 5: Executando o Projeto

Simplesmente LIGUE o Raspberry Pi e espere cerca de um minuto. Você verá um novo hotpsot RaspberryPi aparecer. Conecte-se a este ponto de acesso e abra este endereço IP estático no navegador: 192.168.42.1:8000. 8000 é a porta padrão do WebIOPi.

O Raspberry Pi também pode ser configurado para se conectar à rede WiFi local como um cliente em vez de aparecer como um ponto de acesso. Em seguida, você precisaria determinar o IP dinâmico atribuído ao Raspberry Pi pelo roteador e acessá-lo no navegador para brincar com o bot.

Você pode deixar um comentário se precisar de ajuda ou tiver alguma dúvida sobre o projeto. Happy Leaping!

Todos os códigos-fonte foram anexados. Você pode deixar um comentário se precisar de ajuda em qualquer parte da construção do projeto. Happy Leaping!

Recomendado: