Taula de continguts:

Controleu el vostre gest de dron en 10: 4 passos
Controleu el vostre gest de dron en 10: 4 passos

Vídeo: Controleu el vostre gest de dron en 10: 4 passos

Vídeo: Controleu el vostre gest de dron en 10: 4 passos
Vídeo: Не выбрасывайте двигатель постоянного тока автомобильного вентилятора 12 В 2024, De novembre
Anonim
Image
Image
Feu que el vostre gest de dron sigui controlat en 10 dòlars
Feu que el vostre gest de dron sigui controlat en 10 dòlars
Feu que el vostre gest de dron sigui controlat en 10 dòlars
Feu que el vostre gest de dron sigui controlat en 10 dòlars

Aquesta instrucció és una guia per transformar el vostre dron R / C en un dron controlat per gestos en menys de 10 dòlars.

Sóc una persona que s’inspira molt en les pel·lícules de ciència ficció i intento que la tecnologia mostrada a la pel·lícula sigui real. Aquest projecte s’inspira en dues pel·lícules d’aquest tipus: "STAR WARS: The Empire Strikes Back" i "Project Almanac". A les dues pel·lícules, es veu un objecte volador (X-wing Starship i un R / C Drone) que eren controlats només amb moviments de mans. Això em va inspirar a fer alguna cosa similar …

Obbviament, no tinc l’ala X, així que, per desgràcia, he de treballar amb el meu quadricòpter Mini R / C.

Per tant, el pla és que hi haurà un script de processament d’imatges que s’executarà al meu ordinador portàtil que continuarà buscant la meva mà i rastrejar la seva posició al marc del vídeo. Un cop obtingui les coordenades de la mà, enviarà el senyal respectiu al dron i això es farà mitjançant Arduino connectat al portàtil juntament amb un mòdul transceptor NRF24L01 de 2,4 GHz que es pot comunicar directament amb la placa del receptor de qualsevol dron R / C..

Subministraments

  • Ordinador portàtil / d’escriptori amb càmera web i Python instal·lats. (Estic fent servir el portàtil W indows amb la seva càmera web integrada i amb Python 2.7.14)
  • Qualsevol dron R / C que funcioni amb una freqüència de 2,4 Ghz. (JJRC H36 en el meu cas)
  • Arduino UNO juntament amb el seu cable de programació. (Estic fent servir el seu clon, ja que és més barat)
  • Mòdul de transceptor sense fils d'antena NRF24L01 a 2,4 GHz. (Ho he comprat aquí per només 99 € (1,38 dòlars))
  • Taula d'adaptador de 3,3 V per a mòdul sense fils 24L01. (Ho he comprat aquí per només ₹ 49 (0,68 dòlars))
  • Cavalls de pont masculí a femení x7

Pas 1: reuniu els subministraments

Reuneix els subministraments!
Reuneix els subministraments!

Pas 2: Connexió del mòdul NRF amb Arduino

Connexió del mòdul NRF amb Arduino
Connexió del mòdul NRF amb Arduino
Connexió del mòdul NRF amb Arduino
Connexió del mòdul NRF amb Arduino
Connexió del mòdul NRF amb Arduino
Connexió del mòdul NRF amb Arduino
Connexió del mòdul NRF amb Arduino
Connexió del mòdul NRF amb Arduino

Ara, ja que teniu totes les parts, comencem a connectar el mòdul NRF amb l'Arduino.

  1. En primer lloc, inseriu el mòdul NRF a la ranura que es proporciona a l'adaptador. Podeu fer referència a la imatge de més amunt.
  2. A continuació, agafeu els cables mascle a femella i connecteu l'adaptador NRF a Arduino de la següent manera: (Consulteu el diagrama de circuits anterior)

    • Pin adaptador NRF: pin Arduino
    • VCC - 5v
    • GND - GND
    • CE - Pin digital 5
    • CSN - Pin analògic 1
    • SCK - Pin digital 4
    • MO - Pin digital 3
    • MI - Pin analògic 0
    • IRQ: no s'utilitza
  3. Un cop feta la connexió, connecteu l'Arduino al vostre PC mitjançant el cable USB de programació Arduino i gairebé heu acabat.

Pas 3: Comencem a codificar

Entrem a la codificació!
Entrem a la codificació!
Entrem a la codificació!
Entrem a la codificació!

Ara comença la part dura … !!!

No he creat tot el codi jo sol. En canvi, he pres parts i bits de codi de diferents desenvolupadors i els he integrat en un de sol amb una mica de modificació. Per tant, es donen crèdits adequats a tots els creadors originals.

Podeu descarregar tots els codis adjunts aquí i fer que funcioni. O bé, podeu anar al meu dipòsit de Github, on actualitzaré constantment el codi més recent per fer un millor seguiment.

Seguiment manual:

El classificador Haar Cascade s’utilitza per al seguiment manual en aquest projecte. La Cascada Haar s’entren sobreposant la imatge positiva sobre un conjunt d’imatges negatives. I aquestes dades entrenades solen emmagatzemar-se en fitxers ".xml". És possible que obtingueu fitxers classificadors de gairebé qualsevol cosa a Internet o fins i tot podeu crear-ne un de semblant. Per a aquest projecte, com que havíem de controlar-lo amb les mans, vaig utilitzar un classificador de punys anomenat "closed_frontal_palm.xml" fet per Aravind Nambissan per a la detecció de mans. Podeu provar aquest codi executant el codi "hand_live.py" a la meva reposició.

Trieu el codi NRF24 que coincideixi amb el vostre dron:

Per tant, segons el fabricant i el model del vostre dron, podeu consultar el dipòsit de Github - "nrf24_cx10_pc" realitzat per Perry Tsao per seleccionar el codi Arduino adequat que s'executarà i que coincideixi amb la seva freqüència. Ha fet un bon tutorial per controlar el seu CX10 Drone per PC.

Mentre feia servir un dron JJRC H36, em vaig referir a un altre dipòsit de Github: "nrf24_JJRC_H36_pc", que era una bifurcació del repositori de Perry Tsao realitzat per Lewis Cornick per controlar el seu JJRC H36 a través de PC.

Preparant Arduino:

Vaig bifurcar la reposició de Lewis al meu Github, que podeu clonar si esteu treballant al mateix dron. Heu de penjar el codi "nRF24_multipro.ino" una vegada al vostre Arduino Uno per fer-lo pair amb el vostre Drone cada vegada que executem el nostre script Python.

Prova de la comunicació en sèrie:

Al mateix dipòsit, també podeu trobar un codi "serial_test.py" que es pot utilitzar per provar la comunicació en sèrie de script Python amb Arduino i si el vostre dron està emparellat o no. No oblideu canviar el port COM al codi segons el port COM de la vostra placa Arduino.

Integrar tot en un codi:

Així que vaig integrar tots aquests codis de diferents desenvolupadors i vaig crear el meu propi codi "handserial.py". Si feu exactament el mateix que faig amb el mateix dron, podeu executar aquest codi directament i controlar el dron simplement movent el puny a l'aire. El codi primer fa un seguiment d’un puny al marc del vídeo. Depenent de la coordenada Y del puny, el codi envia el valor de l’accelerador al dron fent-lo pujar o baixar i, de manera similar, depenent de la coordenada X del puny, el codi envia el valor de l’aleró al dron fent que vagi cap a l’esquerra o cap a la dreta.

Pas 4: Nota de l'autor

Hi ha 4 punts que voldria mencionar especialment sobre aquest projecte:

  1. Com s’ha especificat anteriorment, aquest codi no l’he creat completament, però hi estic treballant contínuament i actualitzaria el codi per fer un millor seguiment al meu dipòsit Github. Per tant, per a qualsevol consulta o actualització, podeu visitar el dipòsit o fer-me un ping a Instagram.
  2. Actualment, estem utilitzant la càmera web de l'ordinador portàtil que no permet tenir la perspectiva de la vista del dron, però, si cal, les càmeres muntades al dron també es poden utilitzar per al seguiment. Això ajudarà a tenir una millor visió i, en última instància, un millor control.
  3. Per a aquest projecte, estic fent servir un dron JJRC H36, que és un dels drons més barats disponibles al mercat, per la qual cosa no té estabilitat giroscòpica. Aquest és el motiu pel qual és possible que el moviment del vídeo sigui vacil·lant, però si utilitzeu un dron de qualitat decent amb una bona estabilitat, no us enfrontareu a aquest problema.
  4. Volia jugar amb la visió per computador i el control de drons, de manera que vaig començar amb aquest projecte. Però després de treballar en la visió per ordinador, sento que no és la solució òptima per controlar el dron. Per tant, tinc previst fer algun tipus de dispositiu tipus guant amb sensor Gyro per controlar el dron en el futur. Així que estigueu atents a les actualitzacions …

Si t’ha agradat aquest tutorial, agrada i comparteix-lo i també vota-ho.

Això és tot per ara … Ens veiem aviat la propera vegada …

Recomanat: