Table des matières:
- Fournitures
- Étape 1: Rassemblez les fournitures
- Étape 2: connexion du module NRF avec Arduino
- Étape 3: Passons au codage
- Étape 4: Note de l'auteur
Vidéo: Contrôlez le geste de votre drone en 10 $ : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
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
Étape 2: 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.
- 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.
-
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é
- 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
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:
- 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.
- 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.
- 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.
- 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é:
Contrôlez votre ordinateur avec votre tête ! : 6 étapes (avec photos)
Contrôlez votre ordinateur avec votre tête ! : Bonjour, j'ai créé un système qui vous permet de contrôler la souris de votre ordinateur simplement en bougeant la tête. Si vous aimez mon projet, n'hésitez pas à voter pour moi au concours Arduino 2017.;) Pourquoi j'ai fait ça ?Je voulais faire un objet qui rend les jeux vidéo m
Contrôlez la disposition de votre train miniature avec votre CLAVIER ! : 12 étapes
Contrôlez la disposition de votre train miniature avec votre clavier ! : Dans l'un de mes précédents Instructable, je vous ai montré comment vous pouvez contrôler votre train miniature avec la télécommande de votre téléviseur. Vous pouvez également consulter une version améliorée ici. Dans ce Instructable, je vais vous montrer comment contrôler une disposition de train miniature avec un clavier thr
Contrôlez la disposition de votre train miniature avec votre téléphone portable ! : 11 étapes (avec photos)
Contrôlez votre configuration de train miniature avec votre téléphone portable ! : Contrôler une configuration de train miniature avec une manette des gaz et des contrôleurs d'aiguillage filaires peut être un bon début pour les débutants, mais ils posent un problème de non-portabilité. De plus, les contrôleurs sans fil disponibles sur le marché ne peuvent contrôler que certains locom
Android Home (contrôlez votre maison depuis votre téléphone) : 4 étapes
Android Home (contrôlez votre maison depuis votre téléphone) : mon plan final est d'avoir ma maison sur ma poche, ses commutateurs, ses capteurs et sa sécurité. puis auto mate itIntroduction : Salut, Ich bin zakriya et cette "Maison Android" est mon projet, ce projet est d'abord de quatre instructables à venir, dans
Contrôlez votre ordinateur avec votre Ipod Touch ou votre Iphone : 4 étapes
Contrôlez votre ordinateur avec votre Ipod Touch ou Iphone : c'est mon premier instructable donc je suis désolé si ce n'est pas le meilleur. Avez-vous déjà eu envie de vous asseoir sur votre canapé ou votre lit et de contrôler vos appareils Mac ou Windows en toute simplicité. Cette instructable vous apprendra comment contrôler complètement votre ordinateur avec votre Ipo