Índice:

Faça seu gesto de drone ser controlado em $ 10: 4 etapas
Faça seu gesto de drone ser controlado em $ 10: 4 etapas

Vídeo: Faça seu gesto de drone ser controlado em $ 10: 4 etapas

Vídeo: Faça seu gesto de drone ser controlado em $ 10: 4 etapas
Vídeo: COMO CONECTAR E CALIBRAR O DRONE E88PRO DO JEITO MAIS FÁCIL E RÁPIDO??? 2024, Novembro
Anonim
Image
Image
Faça seu gesto de drone ser controlado em $ 10
Faça seu gesto de drone ser controlado em $ 10
Faça seu gesto de drone ser controlado em $ 10
Faça seu gesto de drone ser controlado em $ 10

Este instrutível é um guia para transformar seu Drone R / C em um Drone Controlado por Gestos em menos de $ 10!

Sou uma pessoa que se inspira muito em filmes de ficção científica e tento fazer com que a tecnologia mostrada no filme na vida real. Este projeto é uma inspiração de dois desses filmes: "STAR WARS: The Empire Strikes Back" e "Project Almanac". Em ambos os filmes, você vê um objeto voador (X-wing Starship e um R / C Drone) que foram controlados apenas por movimentos das mãos. Isso me inspirou a fazer algo semelhante …

Obviamente, não tenho o X-wing, então, infelizmente, tenho que trabalhar com meu Mini R / C Quadcopter.

Portanto, o plano é - haverá um script de processamento de imagem em execução no meu laptop que estará continuamente procurando pela minha mão e rastreando sua posição no quadro do vídeo. Depois de obter as coordenadas da mão, ele enviará o respectivo sinal para o drone e isso será feito usando o Arduino conectado ao laptop junto com um Módulo Transceptor NRF24L01 2.4GHz que pode se comunicar diretamente com a placa receptora de qualquer Drone R / C.

Suprimentos

  • Computador laptop / desktop com webcam e Python instalados. (Estou usando meu laptop W indows com sua webcam embutida e executando o Python 2.7.14)
  • Qualquer Drone R / C rodando na frequência de 2.4Ghz. (JJRC H36 no meu caso)
  • Arduino UNO junto com seu cabo de programação. (Estou usando seu clone porque é mais barato)
  • Módulo transceptor sem fio da antena de 2,4 GHz NRF24L01. (Eu comprei aqui por apenas $ 99 ($ 1,38))
  • Placa adaptadora de 3,3 V para módulo sem fio 24L01. (Eu comprei aqui por apenas $ 49 ($ 0,68))
  • Fios de jumper masculino para feminino x7

Etapa 1: Reúna os suprimentos

Reúna os suprimentos!
Reúna os suprimentos!

Etapa 2: Conexão do Módulo NRF com Arduino

Conexão do Módulo NRF com Arduino
Conexão do Módulo NRF com Arduino
Conexão do Módulo NRF com Arduino
Conexão do Módulo NRF com Arduino
Conexão do Módulo NRF com Arduino
Conexão do Módulo NRF com Arduino
Conexão do Módulo NRF com Arduino
Conexão do Módulo NRF com Arduino

Agora, como você tem todas as peças, vamos começar a conectar o módulo NRF com o Arduino.

  1. Em primeiro lugar, insira o módulo NRF no slot fornecido no adaptador. Você pode consultar a imagem acima para isso.
  2. Depois disso, pegue os fios Macho para Fêmea e conecte o adaptador NRF ao Arduino da seguinte maneira: (Consulte o Diagrama de Circuito acima)

    • Pino Adaptador NRF - Pino Arduino
    • VCC - 5v
    • GND - GND
    • CE - Pino Digital 5
    • CSN - Pino Analógico 1
    • SCK - pino digital 4
    • MO - pino digital 3
    • MI - Pino analógico 0
    • IRQ - Não usado
  3. Assim que a conexão estiver concluída, conecte o Arduino ao seu PC usando o cabo USB de programação do Arduino e você está quase pronto.

Etapa 3: vamos começar a codificar

Vamos começar a codificação!
Vamos começar a codificação!
Vamos começar a codificação!
Vamos começar a codificação!

Agora aqui começa a parte difícil… !!!

Eu não fiz todo o código sozinho. Em vez disso, peguei partes e pedaços de código de diferentes desenvolvedores e integrei todos eles em um com alguns ajustes. Conseqüentemente, os devidos créditos a todos os criadores originais são dados adiante.

Você pode baixar todos os códigos anexados aqui e fazer funcionar. Ou então você pode ir para o meu Repositório Github, onde estarei constantemente atualizando o código mais recente para um melhor rastreamento.

Rastreamento de mão:

O classificador Haar Cascade é usado para rastreamento de mão neste projeto. A cascata Haar é treinada pela sobreposição da imagem positiva sobre um conjunto de imagens negativas. E esses dados treinados geralmente são armazenados em arquivos ".xml". Você pode obter arquivos Classificadores de quase tudo na Internet ou pode até mesmo criar um seu próprio como este. Para este projeto, como precisávamos torná-lo controlado por gestos manuais, usei um classificador de punho denominado "closed_frontal_palm.xml" feito por Aravind Nambissan para minha detecção de mão. Você pode testar este código executando o código "hand_live.py" em meu repo.

Escolhendo o código NRF24 para combinar com seu drone:

Portanto, de acordo com o fabricante e o modelo do seu drone, você pode consultar o repositório Github - "nrf24_cx10_pc" feito por Perry Tsao para selecionar o código Arduino adequado para executar que corresponda à sua frequência. Ele fez um bom tutorial para controlar seu CX10 Drone no PC.

Como eu estava usando o drone JJRC H36, me referi a outro repositório Github - "nrf24_JJRC_H36_pc" que era um fork do repositório de Perry Tsao feito por Lewis Cornick para controlar seu JJRC H36 no PC.

Preparando o Arduino:

Eu fiz um bifurcação do repositório de Lewis para meu Github, que você pode clonar se estiver trabalhando no mesmo drone. Você precisa fazer upload do código "nRF24_multipro.ino" uma vez em seu Arduino Uno para fazê-lo emparelhar com seu Drone toda vez que executarmos nosso script Python.

Teste de comunicação serial:

No mesmo repositório, você também pode encontrar um código "serial_test.py" que pode ser usado para testar a comunicação serial do script Python com o Arduino e se seu drone é pareado ou não. Não se esqueça de alterar a porta COM no código de acordo com a porta COM da placa Arduino.

Integrando tudo em um código:

Então, integrei todos esses códigos de diferentes desenvolvedores e fiz meu próprio código "handserial.py". Se você estiver fazendo exatamente a mesma coisa que eu estou fazendo exatamente com o mesmo drone, poderá executar esse código diretamente e controlar o drone apenas movendo o punho no ar. O código primeiro rastreia um punho no quadro do vídeo. Dependendo da coordenada Y do punho, o código envia o valor do acelerador para o drone fazendo-o subir ou descer e, da mesma forma, dependendo da coordenada X do punho, o código envia o valor do aileron para o drone fazê-lo ir para a esquerda ou direita.

Etapa 4: Nota do Autor

Há 4 pontos que gostaria de mencionar especialmente em relação a este projeto:

  1. Conforme especificado anteriormente, este código não é totalmente feito por mim, mas estou trabalhando nele continuamente e atualizaria o código para um melhor rastreamento em meu Repositório Github. Então, para qualquer dúvida ou atualização, você pode visitar o repositório ou me pingar no Instagram.
  2. Atualmente, estamos usando a webcam do laptop que não permite ter a perspectiva de visão do drone, mas se necessário, as câmeras montadas no drone também podem ser usadas para o propósito de rastreamento. Isso ajudará a ter uma visão melhor e, finalmente, um melhor controle.
  3. Para este projeto, estou usando um drone JJRC H36, que é um dos drones mais baratos disponíveis no mercado, portanto, não tem estabilidade giroscópica. Essa é a razão pela qual você pode sentir que o movimento no vídeo é instável, mas se estiver usando um drone de qualidade decente com boa estabilidade, você não enfrentará esse problema.
  4. Eu queria mexer em visão computacional e controle de drones, por isso comecei com este projeto. Mas depois de trabalhar na visão computacional, sinto que não é a solução ideal para controlar o drone. Portanto, estou planejando fazer algum tipo de dispositivo do tipo luva com sensor Gyro para controlar o drone no futuro. Portanto, fique atento às atualizações …

Se você gostou deste tutorial, por favor, curta e compartilhe e também vote nele.

Isso é tudo por agora.. Até a próxima vez …

Recomendado: