Table des matières:

Contrôlez le geste de votre drone en 10 $ : 4 étapes
Contrôlez le geste de votre drone en 10 $ : 4 étapes

Vidéo: Contrôlez le geste de votre drone en 10 $ : 4 étapes

Vidéo: Contrôlez le geste de votre drone en 10 $ : 4 étapes
Vidéo: Les 10 CONSEILS pour bien voler avec son DRONE ! 2024, Novembre
Anonim
Image
Image
Contrôlez le geste de votre drone en 10 $
Contrôlez le geste de votre drone en 10 $
Contrôlez le geste de votre drone en 10 $
Contrôlez le geste de votre drone en 10 $

Cette instructable est un guide pour transformer votre drone R/C en un drone à commande gestuelle en moins de 10 $ !

Je suis une personne très inspirée par les films de science-fiction et j'essaie de faire en sorte que la technologie soit montrée dans le film dans la vraie vie. Ce projet est une inspiration de deux de ces films: "STAR WARS: L'Empire contre-attaque" et "Project Almanac". Dans les deux films, vous voyez un objet volant (X-wing Starship et un drone R/C) qui étaient contrôlés par de simples mouvements de la main. Cela m'a inspiré pour faire quelque chose de similaire…

Évidemment, je ne possède pas le X-wing, donc, malheureusement, je dois travailler avec mon Mini R/C Quadcopter.

Le plan est donc - il y aura un script de traitement d'image en cours d'exécution sur mon ordinateur portable qui recherchera en permanence ma main et suivra sa position dans l'image vidéo. Une fois qu'il obtient les coordonnées de la main, il enverra le signal respectif au drone et cela se fera en utilisant Arduino connecté à un ordinateur portable avec un module émetteur-récepteur NRF24L01 2,4 GHz qui peut communiquer directement avec la carte récepteur de n'importe quel drone R/C.

Fournitures

  • Ordinateur portable/de bureau avec webcam et Python installés. (J'utilise mon ordinateur portable Windows avec sa webcam intégrée et j'exécute Python 2.7.14)
  • Tout drone R/C fonctionnant sur une fréquence de 2,4 GHz. (JJRC H36 dans mon cas)
  • Arduino UNO avec son câble de programmation. (J'utilise son clone car il est moins cher)
  • Module émetteur-récepteur sans fil d'antenne NRF24L01 2,4 GHz. (Je l'ai acheté ici pour seulement 99 (1,38 $))
  • Carte adaptateur 3,3 V pour module sans fil 24L01. (Je l'ai acheté ici pour seulement 49 (0,68 $))
  • Fils de cavalier mâle à femelle x7

Étape 1: Rassemblez les fournitures

Rassemblez les fournitures !
Rassemblez les fournitures !

Étape 2: connexion du module NRF avec Arduino

Connexion du module NRF avec Arduino
Connexion du module NRF avec Arduino
Connexion du module NRF avec Arduino
Connexion du module NRF avec Arduino
Connexion du module NRF avec Arduino
Connexion du module NRF avec Arduino
Connexion du module NRF avec Arduino
Connexion du module NRF avec Arduino

Maintenant que vous avez toutes les pièces, commençons par câbler le module NRF avec l'Arduino.

  1. Tout d'abord, insérez le module NRF dans l'emplacement prévu sur l'adaptateur. Vous pouvez vous référer à l'image ci-dessus pour cela.
  2. Après cela, prenez les fils mâle à femelle et connectez l'adaptateur NRF à Arduino comme suit: (reportez-vous au schéma de circuit ci-dessus)

    • Broche d'adaptateur NRF - Broche Arduino
    • VCC - 5v
    • TERRE - TERRE
    • CE - Broche numérique 5
    • CSN - Broche analogique 1
    • SCK - Broche numérique 4
    • MO - Broche numérique 3
    • MI - Broche analogique 0
    • IRQ - Non utilisé
  3. Une fois la connexion effectuée, connectez l'Arduino à votre PC à l'aide du câble USB de programmation Arduino et vous avez presque terminé.

Étape 3: Passons au codage

Passons au codage !
Passons au codage !
Passons au codage !
Passons au codage !

Maintenant, ici commence la partie difficile…!!!

Je n'ai pas fait tout le code moi-même. Au lieu de cela, j'ai pris des parties et des morceaux de code de différents développeurs et les ai tous intégrés en un seul avec un peu de peaufinage. Par conséquent, les crédits appropriés à tous les créateurs originaux sont attribués à l'avance.

Vous pouvez télécharger tous les codes ci-joints et le faire fonctionner. Sinon, vous pouvez accéder à mon référentiel Github, où je mettrai constamment à jour le dernier code pour un meilleur suivi.

Suivi des mains:

Le classificateur Haar Cascade est utilisé pour le suivi manuel dans ce projet. La cascade de Haar est formée en superposant l'image positive sur un ensemble d'images négatives. Et ces données entraînées sont généralement stockées dans des fichiers ".xml". Vous pouvez obtenir des fichiers Classifier de presque tout sur Internet ou vous pouvez même en créer un comme celui-ci. Pour ce projet, comme nous devions le rendre contrôlé par les gestes de la main, j'ai utilisé un classificateur de poing nommé "closed_frontal_palm.xml" conçu par Aravind Nambissan pour la détection de ma main. Vous pouvez tester ce code en exécutant le code "hand_live.py" dans mon repo.

Choisir le code NRF24 correspondant à votre drone:

Ainsi, selon le fabricant et le modèle de votre drone, vous pouvez vous référer au référentiel Github - "nrf24_cx10_pc" créé par Perry Tsao pour sélectionner le bon code Arduino à exécuter qui correspondra à sa fréquence. Il a fait un joli tutoriel pour contrôler son drone CX10 sur PC.

Comme j'utilisais le drone JJRC H36, j'ai fait référence à un autre référentiel Github - "nrf24_JJRC_H36_pc" qui était un fork du repo de Perry Tsao créé par Lewis Cornick pour contrôler son JJRC H36 sur PC.

Préparation pour Arduino:

J'ai transféré le dépôt de Lewis sur mon Github que vous pouvez cloner si vous travaillez sur le même drone. Vous devez télécharger le code "nRF24_multipro.ino" une fois sur votre Arduino Uno pour le coupler à votre drone chaque fois que nous exécutons notre script Python.

Test de la communication série:

Dans le même référentiel, vous pouvez également trouver un code "serial_test.py" qui peut être utilisé pour tester la communication série du script Python avec Arduino et si votre drone est couplé ou non. N'oubliez pas de changer le port COM dans le code en fonction du port COM de votre carte Arduino.

Tout intégrer dans un seul code:

J'ai donc intégré tous ces codes par différents développeurs et fait mon propre code "handserial.py". Si vous faites exactement la même chose que je fais avec exactement le même drone, alors vous pouvez exécuter directement ce code et ensuite vous pouvez contrôler votre drone en déplaçant simplement votre poing en l'air. Le code suit d'abord un poing dans l'image vidéo. En fonction de la coordonnée Y du poing, le code envoie la valeur des gaz au drone en la faisant monter ou descendre et de même en fonction de la coordonnée X du poing, le code envoie la valeur des ailerons au drone pour qu'il aille à gauche ou à droite.

Étape 4: Note de l'auteur

Il y a 4 points que je voudrais particulièrement mentionner concernant ce projet:

  1. Comme spécifié précédemment, ce code n'est pas entièrement créé par moi, mais j'y travaille en permanence et je mettrais à jour le code pour un meilleur suivi sur mon référentiel Github. Donc, pour toute question ou mise à jour, vous pouvez visiter le référentiel ou me faire un ping sur Instagram.
  2. Actuellement, nous utilisons la webcam de l'ordinateur portable qui ne permet pas d'avoir la perspective de la vue du drone, mais si nécessaire, les caméras montées sur le drone peuvent également être utilisées à des fins de suivi. Cela aidera à avoir une meilleure vue et finalement un meilleur contrôle.
  3. Pour ce projet, j'utilise un drone JJRC H36 qui est l'un des drones les moins chers disponibles sur le marché, il manque donc de stabilité gyroscopique. C'est la raison pour laquelle vous pourriez avoir l'impression que le mouvement dans la vidéo est bancal, mais si vous utilisez un drone de bonne qualité avec une bonne stabilité, vous ne rencontrerez pas ce problème.
  4. Je voulais bricoler autour de la vision par ordinateur et du contrôle des drones, c'est pourquoi j'ai commencé avec ce projet. Mais après avoir travaillé sur la vision par ordinateur, je pense que ce n'est pas la solution optimale pour contrôler le drone. Ainsi, je prévois de fabriquer une sorte de dispositif de type gant avec capteur gyroscopique pour contrôler le drone à l'avenir. Alors restez à l'écoute pour les mises à jour…

Si vous avez aimé ce tutoriel, veuillez aimer et partager et aussi voter pour lui.

C'est tout pour le moment.. A bientôt la prochaine fois…

Conseillé: