Índice:
- Suprimentos
- Etapa 1: Reúna os suprimentos
- Etapa 2: Conexão do Módulo NRF com Arduino
- Etapa 3: vamos começar a codificar
- Etapa 4: Nota do Autor
Vídeo: Faça seu gesto de drone ser controlado em $ 10: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
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
Etapa 2: 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.
- Em primeiro lugar, insira o módulo NRF no slot fornecido no adaptador. Você pode consultar a imagem acima para isso.
-
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
- 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
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:
- 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.
- 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.
- 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.
- 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:
DIY -- Como fazer um robô aranha que pode ser controlado usando um smartphone usando o Arduino Uno: 6 etapas
DIY || Como fazer um robô aranha que pode ser controlado com smartphone usando o Arduino Uno: Ao fazer um robô aranha, pode-se aprender muitas coisas sobre robótica. Como fazer robôs é divertido e também desafiador. Neste vídeo vamos mostrar a vocês como fazer um robô aranha, que podemos operar usando nosso smartphone (Androi
Velocidade e direção de controle de gesto de mão DC MOTOR usando Arduino: 8 etapas
DC MOTOR Controle de gesto de mão com velocidade e direção usando Arduino: neste tutorial, aprenderemos como controlar um motor DC com gestos de mão usando arduino e Visuino. Assista ao vídeo! Confira também: Tutorial de gestos de mão
Medição de proximidade de distância com sensor de gesto APDS9960: 6 etapas
Medição de proximidade de distâncias com sensor de gestos APDS9960: Neste tutorial, aprenderemos como medir a distância usando um sensor de gestos APDS9960, arduino e Visuino. Assistir ao vídeo
Faça painéis frontais com aparência profissional para seu próximo projeto faça você mesmo: 7 etapas (com fotos)
Faça painéis frontais com aparência profissional para seu próximo projeto DIY: Fazer painéis frontais com aparência profissional para projetos DIY não precisa ser difícil ou caro. Com algum software GRATUITO, material de escritório e um pouco de tempo você pode fazer painéis frontais com aparência profissional em casa para enfeitar seu próximo projeto
Faça um ornamento de LED que pode ser hackeado: 10 etapas
Faça um enfeite de LED que possa ser hackeado: Faça um enfeite de LED que permita embaralhar diferentes cores e tipos de LEDs a qualquer momento, dependendo do que você quiser. Para um efeito realmente excelente, experimente usar os LEDs de mudança de cor baratos do ebay. Este projeto pode ser executado em uma bateria ou de um ma