Sommario:

Rendi il tuo gesto controllato dal drone in $ 10: 4 passaggi
Rendi il tuo gesto controllato dal drone in $ 10: 4 passaggi

Video: Rendi il tuo gesto controllato dal drone in $ 10: 4 passaggi

Video: Rendi il tuo gesto controllato dal drone in $ 10: 4 passaggi
Video: Mio Padre che mi Controlla 👀 2024, Dicembre
Anonim
Image
Image
Rendi il tuo gesto controllato dal drone in $ 10
Rendi il tuo gesto controllato dal drone in $ 10
Rendi il tuo gesto controllato dal drone in $ 10
Rendi il tuo gesto controllato dal drone in $ 10

Questa guida è una guida per trasformare il tuo drone R/C in un drone controllato da gesti in meno di $ 10!

Sono una persona molto ispirata dai film di fantascienza e cerco di rendere la tecnologia mostrata nel film nella vita reale. Questo progetto è ispirato a due di questi film: "STAR WARS: The Empire Strikes Back" e "Project Almanac". In entrambi i film, vedi un oggetto volante (X-wing Starship e un Drone R/C) che erano controllati solo dai movimenti della mano. Questo mi ha ispirato a fare qualcosa di simile…

Ovviamente non possiedo l'X-wing, quindi, sfortunatamente, devo lavorare con il mio Mini Quadricottero R/C.

Quindi il piano è: ci sarà uno script di elaborazione delle immagini in esecuzione sul mio laptop che cercherà continuamente la mia mano e seguirà la sua posizione nel fotogramma video. Una volta ottenute le coordinate della mano, invierà il rispettivo segnale al drone e ciò avverrà utilizzando Arduino collegato al laptop insieme a un modulo ricetrasmettitore NRF24L01 a 2,4 GHz che può comunicare direttamente con la scheda ricevente di qualsiasi drone R/C.

Forniture

  • Computer portatile/desktop con una webcam e Python installati. (Sto usando il mio laptop Windows con la sua webcam integrata ed eseguendo Python 2.7.14)
  • Qualsiasi drone R/C in esecuzione su una frequenza di 2,4 GHz. (JJRC H36 nel mio caso)
  • Arduino UNO insieme al suo cavo di programmazione. (Sto usando il suo clone perché è più economico)
  • Modulo ricetrasmettitore wireless antenna NRF24L01 2,4 GHz. (Ho comprato questo da qui per soli ₹ 99 ($ 1,38))
  • Scheda adattatore 3,3 V per modulo wireless 24L01. (Ho comprato questo da qui per soli ₹ 49 ($ 0,68))
  • Cavi jumper maschio-femmina x7

Passaggio 1: raccogli i rifornimenti

Raccogli i rifornimenti!
Raccogli i rifornimenti!

Passaggio 2: collegamento del modulo NRF con Arduino

Collegamento del modulo NRF con Arduino
Collegamento del modulo NRF con Arduino
Collegamento del modulo NRF con Arduino
Collegamento del modulo NRF con Arduino
Collegamento del modulo NRF con Arduino
Collegamento del modulo NRF con Arduino
Collegamento del modulo NRF con Arduino
Collegamento del modulo NRF con Arduino

Ora che hai tutte le parti, iniziamo con il cablaggio del modulo NRF con Arduino.

  1. Innanzitutto, inserire il modulo NRF nello slot previsto sull'adattatore. Puoi fare riferimento all'immagine sopra per questo.
  2. Successivamente, prendi i cavi da maschio a femmina e collega l'adattatore NRF ad Arduino come segue: (Fai riferimento allo schema del circuito sopra)

    • Pin adattatore NRF - Pin Arduino
    • VCC - 5v
    • GND - GND
    • CE - Pin digitale 5
    • CSN - Pin analogico 1
    • SCK - Pin digitale 4
    • MO - Pin digitale 3
    • MI - Pin analogico 0
    • IRQ - Non utilizzato
  3. Una volta effettuata la connessione, collega l'Arduino al PC utilizzando il cavo USB di programmazione Arduino e hai quasi finito.

Passaggio 3: entriamo nella programmazione

Entriamo nella codifica!
Entriamo nella codifica!
Entriamo nella codifica!
Entriamo nella codifica!

Ora qui inizia la parte difficile…!!!

Non ho creato l'intero codice da solo. Invece, ho preso parti e frammenti di codice da diversi sviluppatori e li ho integrati tutti in uno con un po' di modifiche. Quindi, vengono dati in anticipo crediti adeguati a tutti i creatori originali.

Puoi scaricare tutti i codici allegati qui e farlo funzionare. Oppure puoi andare al mio repository Github, dove aggiornerò costantemente il codice più recente per un migliore monitoraggio.

Monitoraggio della mano:

Il classificatore Haar Cascade viene utilizzato per il tracciamento manuale in questo progetto. L'Haar Cascade viene addestrato sovrapponendo l'immagine positiva su una serie di immagini negative. E questi dati addestrati vengono solitamente archiviati in file ".xml". Puoi ottenere file Classifier di quasi tutto su Internet o puoi persino crearne uno tuo come questo. Per questo progetto, poiché dovevamo renderlo controllato dai gesti della mano, ho usato un classificatore di pugno chiamato "closed_frontal_palm.xml" realizzato da Aravind Nambissan per il rilevamento della mia mano. Puoi testare questo codice eseguendo il codice "hand_live.py" nel mio repository.

Scegliendo il Codice NRF24 da abbinare al tuo Drone:

Quindi, in base al produttore e al modello del tuo drone, puoi fare riferimento al repository Github - "nrf24_cx10_pc" realizzato da Perry Tsao per selezionare il codice Arduino corretto da eseguire che corrisponderà alla sua frequenza. Ha realizzato un bel tutorial per controllare il suo Drone CX10 su PC.

Mentre stavo usando il drone JJRC H36, ho fatto riferimento a un altro repository Github - "nrf24_JJRC_H36_pc" che era un fork del repository di Perry Tsao creato da Lewis Cornick per controllare il suo JJRC H36 su PC.

Preparare Arduino:

Ho inoltrato il repository di Lewis al mio Github che puoi clonare se stai lavorando sullo stesso drone. Devi caricare il codice "nRF24_multipro.ino" una volta sul tuo Arduino Uno per farlo accoppiare al tuo Drone ogni volta che eseguiamo il nostro script Python.

Test della comunicazione seriale:

Nello stesso repository, potresti anche trovare un codice "serial_test.py" che può essere utilizzato per testare la comunicazione seriale dello script Python con Arduino e se il tuo drone viene accoppiato o meno. Non dimenticare di cambiare la porta COM nel codice in base alla porta COM della tua scheda Arduino.

Integrare tutto in un codice:

Quindi ho integrato tutti questi codici di diversi sviluppatori e ho creato il mio codice "handserial.py". Se stai facendo esattamente la stessa cosa che sto facendo io con lo stesso identico drone, puoi eseguire direttamente questo codice e quindi puoi controllare il tuo drone semplicemente muovendo il pugno in aria. Il codice traccia prima un pugno nel fotogramma video. A seconda della coordinata Y del pugno, il codice invia il valore dell'acceleratore al drone facendolo andare su o giù e allo stesso modo a seconda della coordinata X del pugno, il codice invia il valore dell'alettone al drone facendolo andare a sinistra o a destra.

Passaggio 4: nota dell'autore

Ci sono 4 punti che vorrei menzionare in particolare riguardo a questo progetto:

  1. Come specificato in precedenza, questo codice non è stato creato completamente da me, ma ci sto lavorando continuamente e aggiornerei il codice per un migliore monitoraggio sul mio repository Github. Quindi, per qualsiasi domanda o aggiornamento, puoi visitare il repository o inviarmi un ping su Instagram.
  2. Attualmente stiamo utilizzando la webcam del portatile che non permette di avere la prospettiva della visuale del drone, ma se necessario le telecamere montate sul drone possono essere utilizzate anche per il tracking. Ciò contribuirà ad avere una visione migliore e, in definitiva, un controllo migliore.
  3. Per questo progetto, sto usando un drone JJRC H36 che è uno dei droni più economici disponibili sul mercato, quindi manca di stabilità giroscopica. Questo è il motivo per cui potresti sentire che il movimento nel video è traballante, ma se stai usando un drone di qualità decente con una buona stabilità, non dovrai affrontare questo problema.
  4. Volevo armeggiare con la Computer Vision e il controllo dei droni, quindi ho iniziato con questo progetto. Ma dopo aver lavorato sulla visione artificiale, ritengo che non sia la soluzione ottimale per controllare il drone. Pertanto, ho intenzione di realizzare una sorta di dispositivo tipo guanto con sensore giroscopico per controllare il drone in futuro. Quindi rimanete sintonizzati per gli aggiornamenti…

Se ti è piaciuto questo tutorial, metti mi piace, condividi e vota anche per questo.

Per ora è tutto.. Alla prossima volta…

Consigliato: