Inhoudsopgave:

Maak uw drone-gebaar gecontroleerd in $ 10: 4 stappen
Maak uw drone-gebaar gecontroleerd in $ 10: 4 stappen

Video: Maak uw drone-gebaar gecontroleerd in $ 10: 4 stappen

Video: Maak uw drone-gebaar gecontroleerd in $ 10: 4 stappen
Video: JUDESKA'S GRAPPIGSTE MOMENTEN 2.0 2024, November
Anonim
Image
Image
Maak uw drone-gebaar gecontroleerd in $ 10
Maak uw drone-gebaar gecontroleerd in $ 10
Maak uw drone-gebaar gecontroleerd in $ 10
Maak uw drone-gebaar gecontroleerd in $ 10

Dit instructable is een gids voor het transformeren van uw R/C Drone in een Gesture Controlled Drone in minder dan $ 10!

Ik ben iemand die erg geïnspireerd is door Sci-Fi-films en die de technologie die in de film wordt getoond, in het echt probeer te maken. Dit project is geïnspireerd op twee van dergelijke films: "STAR WARS: The Empire Strikes Back" en "Project Almanac". In beide films zie je een vliegend object (X-wing Starship & een R/C Drone) die werd bestuurd door alleen handbewegingen. Dit inspireerde mij om iets soortgelijks te maken…

Het is duidelijk dat ik de X-wing niet bezit, dus helaas moet ik werken met mijn Mini R/C Quadcopter.

Dus het plan is - er zal een beeldverwerkingsscript op mijn laptop draaien dat continu naar mijn hand zal zoeken en zijn positie in het videoframe zal volgen. Zodra het de coördinaten van de hand heeft ontvangen, stuurt het het respectieve signaal naar de drone en dit zal worden gedaan met behulp van Arduino aangesloten op de laptop, samen met een NRF24L01 2,4 GHz-zendontvangermodule die rechtstreeks kan communiceren met de ontvangerkaart van elke R / C-drone.

Benodigdheden

  • Laptop/Desktop computer met een webcam en Python geïnstalleerd. (Ik gebruik mijn W indows-laptop met ingebouwde webcam en met Python 2.7.14)
  • Elke R / C-drone die op 2,4 Ghz-frequentie draait. (JJRC H36 in mijn geval)
  • Arduino UNO samen met zijn programmeerkabel. (Ik gebruik zijn kloon omdat het goedkoper is)
  • NRF24L01 2,4 GHz antenne draadloze zendontvangermodule. (Ik heb dit hier gekocht voor slechts ₹ 99 ($ 1,38))
  • 3.3V adapterkaart voor 24L01 draadloze module. (Ik heb dit hier gekocht voor slechts ₹ 49 ($ 0,68))
  • Man-vrouw jumperdraden x7"

Stap 1: Verzamel de benodigdheden

Verzamel de benodigdheden!
Verzamel de benodigdheden!

Stap 2: Aansluiting van NRF-module met Arduino

Aansluiting van NRF-module met Arduino
Aansluiting van NRF-module met Arduino
Aansluiting van NRF-module met Arduino
Aansluiting van NRF-module met Arduino
Aansluiting van NRF-module met Arduino
Aansluiting van NRF-module met Arduino
Aansluiting van NRF-module met Arduino
Aansluiting van NRF-module met Arduino

Nu je alle onderdelen hebt, laten we beginnen met het bedraden van de NRF-module met de Arduino.

  1. Plaats eerst de NRF-module in de daarvoor bestemde sleuf op de adapter. U kunt hiervoor verwijzen naar de afbeelding hierboven.
  2. Neem daarna mannelijke naar vrouwelijke draden en sluit de NRF-adapter als volgt aan op Arduino: (Zie het bovenstaande schakelschema)

    • NRF-adapterpen - Arduino-pen
    • VCC - 5v
    • GND - GND
    • CE - Digitale pin 5
    • CSN - Analoge Pin 1
    • SCK - Digitale pin 4
    • MO - Digitale pin 3
    • MI - Analoge Pin 0
    • IRQ - Niet gebruikt
  3. Zodra de verbinding tot stand is gebracht, sluit u de Arduino aan op uw pc met behulp van de Arduino-programmeer-USB-kabel en bent u bijna klaar.

Stap 3: Laten we beginnen met coderen

Laten we beginnen met coderen!
Laten we beginnen met coderen!
Laten we beginnen met coderen!
Laten we beginnen met coderen!

Nu begint het moeilijke deel…!!!

Ik heb niet de hele code zelf gemaakt. In plaats daarvan heb ik delen en stukjes code van verschillende ontwikkelaars genomen en ze allemaal in één geïntegreerd met een beetje tweaken. Vandaar dat alle oorspronkelijke makers de juiste credits krijgen.

U kunt alle bijgevoegde codes hier downloaden en het laten werken. Of je kunt naar mijn Github-repository gaan, waar ik constant de nieuwste code zal updaten voor een betere tracking.

Hand volgen:

Haar Cascade-classificatie wordt in dit project gebruikt voor het volgen van de hand. De Haar Cascade wordt getraind door het positieve beeld over een reeks negatieve beelden te leggen. En deze getrainde gegevens worden meestal opgeslagen in ".xml"-bestanden. U kunt Classifier-bestanden van bijna alles op internet krijgen of u kunt er zelfs zo een maken. Voor dit project, omdat we het handgebarengestuurd moesten maken, gebruikte ik een vuistclassificatie genaamd "closed_frontal_palm.xml" gemaakt door Aravind Nambissan voor mijn handdetectie. U kunt deze code testen door de code "hand_live.py" in mijn repo uit te voeren.

De NRF24-code kiezen die bij uw drone past:

Dus volgens de fabrikant en het model van je drone, kun je verwijzen naar de Github-repository - "nrf24_cx10_pc" gemaakt door Perry Tsao om de juiste Arduino-code te selecteren die moet worden uitgevoerd die overeenkomt met de frequentie. Hij heeft een mooie tutorial gemaakt om zijn CX10 Drone via pc te besturen.

Omdat ik de JJRC H36-drone gebruikte, verwees ik naar een andere Github-repository - "nrf24_JJRC_H36_pc", een afsplitsing van Perry Tsao's repo gemaakt door Lewis Cornick om zijn JJRC H36 via pc te besturen.

Arduino klaar maken:

Ik heb de repo van Lewis naar mijn Github geforkt die je kunt klonen als je aan dezelfde drone werkt. Je moet de code "nRF24_multipro.ino" één keer uploaden naar je Arduino Uno om hem aan je drone te koppelen telkens wanneer we ons Python-script uitvoeren.

Seriële communicatie testen:

In dezelfde repo vindt u mogelijk ook een code "serial_test.py" die kan worden gebruikt om seriële communicatie van Python-script met Arduino te testen en of uw drone wordt gekoppeld of niet. Vergeet niet om de COM-poort in de code aan te passen aan de COM-poort van je Arduino-bord.

Alles integreren in één code:

Dus ik heb al deze codes van verschillende ontwikkelaars geïntegreerd en mijn eigen code "handserial.py" gemaakt. Als je precies hetzelfde doet als ik met exact dezelfde drone, dan kun je deze code direct uitvoeren en dan kun je je drone besturen door gewoon je vuist in de lucht te bewegen. De code volgt eerst een vuist in het videoframe. Afhankelijk van de Y-coördinaat van de vuist, stuurt de code de gasklepwaarde naar de drone, waardoor deze omhoog of omlaag gaat en op dezelfde manier, afhankelijk van de X-coördinaat van de vuist, stuurt de code de rolroerwaarde naar de drone om hem naar links of rechts te laten gaan.

Stap 4: Notitie van de auteur

Er zijn 4 punten die ik speciaal wil noemen met betrekking tot dit project:

  1. Zoals eerder aangegeven, is deze code niet volledig door mij gemaakt, maar ik werk er continu aan en zou de code bijwerken voor een betere tracking op mijn Github-repository. Dus voor vragen of updates kun je de repository bezoeken of me pingen op Instagram.
  2. Momenteel gebruiken we de webcam van de laptop, waardoor het perspectief van de drone niet kan worden bekeken, maar indien nodig kunnen de camera's die op de drone zijn gemonteerd ook worden gebruikt voor trackingdoeleinden. Dit zal helpen om een beter zicht en uiteindelijk betere controle te hebben.
  3. Voor dit project gebruik ik een JJRC H36-drone, een van de goedkoopste drones die op de markt verkrijgbaar is, vandaar dat het geen gyroscopische stabiliteit heeft. Dat is de reden waarom je misschien voelt dat de beweging in de video wiebelig is, maar als je een drone van behoorlijke kwaliteit met goede stabiliteit gebruikt, zul je dit probleem niet tegenkomen.
  4. Ik wilde sleutelen aan Computer Vision en dronebesturing, vandaar dat ik met dit project begon. Maar na aan computervisie te hebben gewerkt, heb ik het gevoel dat het niet de optimale oplossing is om de drone te besturen. Daarom ben ik van plan om in de toekomst een soort handschoenachtig apparaat met gyrosensor te maken om de drone te besturen. Dus houd ons in de gaten voor updates…

Als je deze tutorial leuk vond, like en deel dan en stem er ook op.

Dat was alles voor nu.. Tot de volgende keer…

Aanbevolen: