Innehållsförteckning:

Gör din drone gest kontrollerad i $ 10: 4 steg
Gör din drone gest kontrollerad i $ 10: 4 steg

Video: Gör din drone gest kontrollerad i $ 10: 4 steg

Video: Gör din drone gest kontrollerad i $ 10: 4 steg
Video: Milan, Italy Evening Walking Tour - 4K60fps with Captions - Prowalk Tours 2024, November
Anonim
Image
Image
Gör din Drone Gest kontrollerad i $ 10
Gör din Drone Gest kontrollerad i $ 10
Gör din Drone Gest kontrollerad i $ 10
Gör din Drone Gest kontrollerad i $ 10

Denna instruerbara är en guide för att omvandla din R/C Drone till en Gest Controlled Drone på under $ 10!

Jag är en person som är mycket inspirerad av Sci-Fi-filmer och försöker göra tekniken som visades i filmen i verkligheten. Detta projekt är en inspiration från två sådana filmer: "STAR WARS: The Empire Strikes Back" och "Project Almanac". I båda filmerna ser du ett flygande föremål (X-wing Starship & en R/C Drone) som styrdes av bara handrörelser. Detta inspirerade mig att göra något liknande …

Självklart äger jag inte X-wing, så tyvärr måste jag arbeta med min Mini R/C Quadcopter.

Så planen är - det kommer att köras ett bildbehandlingsskript på min bärbara dator som kontinuerligt kommer att leta efter min hand och spåra dess position i videoramen. När den väl fått koordinaterna för handen skickar den respektive signal till drönaren och detta kommer att göras med Arduino ansluten till bärbar dator tillsammans med en NRF24L01 2,4 GHz sändtagarmodul som direkt kan kommunicera med mottagarkortet på alla R/C -drönare.

Tillbehör

  • Bärbar/stationär dator med en webbkamera och Python installerat. (Jag använder min W indows-bärbara dator med sin inbyggda webbkamera och kör Python 2.7.14)
  • Alla R/C Drone som körs på 2,4 GHz frekvens. (JJRC H36 i mitt fall)
  • Arduino UNO tillsammans med dess programmeringskabel. (Jag använder sin klon eftersom den är billigare)
  • NRF24L01 2,4 GHz antenn trådlös sändtagarmodul. (Jag köpte den här härifrån för bara 99 kr (1,38 dollar))
  • 3.3V adapterkort för 24L01 trådlös modul. (Jag köpte den här härifrån för bara 49 kr (0,68 dollar))
  • Manliga till kvinnliga bygeltrådar x7

Steg 1: Samla förbrukningsmaterial

Samla tillbehör!
Samla tillbehör!

Steg 2: Anslutning av NRF -modul med Arduino

Anslutning av NRF -modul med Arduino
Anslutning av NRF -modul med Arduino
Anslutning av NRF -modul med Arduino
Anslutning av NRF -modul med Arduino
Anslutning av NRF -modul med Arduino
Anslutning av NRF -modul med Arduino
Anslutning av NRF -modul med Arduino
Anslutning av NRF -modul med Arduino

Nu när du har alla delar, låt oss komma igång med att koppla ihop NRF -modulen med Arduino.

  1. För in först NRF -modulen i facket på adaptern. Du kan hänvisa till bilden ovan för det.
  2. Efter det, ta han- till honkablar och anslut NRF -adaptern till Arduino enligt följande: (Se kretsdiagrammet ovan)

    • NRF Adapter Pin - Arduino Pin
    • VCC - 5v
    • GND - GND
    • CE - Digital stift 5
    • CSN - Analog stift 1
    • SCK - Digital stift 4
    • MO - Digital stift 3
    • MI - Analog stift 0
    • IRQ - Används inte
  3. När anslutningen är klar, anslut Arduino till din dator med Arduino Programmering USB -kabel och du är nästan klar.

Steg 3: Låt oss komma i kodning

Låt oss komma i kodning!
Låt oss komma i kodning!
Låt oss komma i kodning!
Låt oss komma i kodning!

Nu börjar här den tuffa delen … !!!

Jag har inte gjort hela koden själv. Istället har jag tagit delar och bitar av kod från olika utvecklare och integrerat dem alla i en med lite tweaking. Därför ges korrekta krediter till alla de ursprungliga skaparna i förväg.

Du kan ladda ner alla koder som bifogas här och få det att fungera. Eller så kan du gå till mitt Github -arkiv, där jag ständigt kommer att uppdatera den senaste koden för bättre spårning.

Handspårning:

Haar Cascade classifier används för handspårning i detta projekt. Haarkaskaden tränas genom att lägga den positiva bilden över en uppsättning negativa bilder. Och dessa utbildade data lagras vanligtvis i ".xml" -filer. Du kan få Classifier -filer med nästan vad som helst på internet eller så kan du till och med skapa en av dina egna så här. För det här projektet, eftersom vi behövde göra det handrörelsekontrollerat, använde jag en näveklassificering som heter "closed_frontal_palm.xml" gjord av Aravind Nambissan för min handdetektering. Du kan testa den här koden genom att köra "hand_live.py" -koden i min repo.

Välja NRF24 -koden för att matcha din Drone:

Så enligt tillverkaren och modellen för din drönare kan du hänvisa till Github -förvaret - "nrf24_cx10_pc" som gjorts av Perry Tsao för att välja rätt Arduino -kod att köra som matchar dess frekvens. Han har gjort en trevlig handledning för att styra sin CX10 Drone över PC.

När jag använde JJRC H36 -drönare hänvisade jag till ett annat Github -förråd - "nrf24_JJRC_H36_pc" som var en gaffel av Perry Tsaos repo gjord av Lewis Cornick för att styra sin JJRC H36 över PC.

Gör dig redo för Arduino:

Jag gafflade Lewis repo till min Github som du kan klona om du arbetar på samma drönare. Du måste ladda upp "nRF24_multipro.ino" -koden en gång på din Arduino Uno för att få den att kopplas till din Drone varje gång vi kör vårt Python -skript.

Testar seriell kommunikation:

I samma repo kan du också hitta en kod "serial_test.py" som kan användas för att testa seriell kommunikation av Python -skript med Arduino och om din drone kopplas ihop eller inte. Glöm inte att ändra COM -porten i koden enligt COM -porten på ditt Arduino -kort.

Integrera allt i en kod:

Så jag integrerade alla dessa koder av olika utvecklare och skapade min egen kod "handserial.py". Om du gör exakt samma sak som jag gör med exakt samma drönare, kan du direkt köra den här koden och sedan kan du styra din drönare genom att bara flytta näven i luften. Koden spårar först en näve i videoramen. Beroende på knytnävens Y-koordinat skickar koden gasvärdet till drönaren så att den går upp eller ner och på samma sätt beroende på knytnäve X-koordinaten skickar koden aileron-värdet till drönaren så att den går åt vänster eller höger.

Steg 4: Författarens anmärkning

Det finns 4 punkter jag särskilt vill nämna angående detta projekt:

  1. Som angetts tidigare är denna kod inte helt gjord av mig, men jag arbetar kontinuerligt med den och skulle uppdatera koden för bättre spårning på mitt Github -arkiv. Så för frågor eller uppdateringar kan du besöka förvaret eller pinga mig på Instagram.
  2. För närvarande använder vi webbkameran på den bärbara datorn som inte tillåter att ha perspektivet för drönarens syn, men om det behövs kan kamerorna monterade på drönaren också användas för spårning. Detta kommer att bidra till att få en bättre överblick och i slutändan bättre kontroll.
  3. För detta projekt använder jag en JJRC H36 -drönare som är en av de billigaste drönarna som finns på marknaden, därför saknar den gyroskopisk stabilitet. Det är anledningen till att du kan känna att rörelsen i videon är vinglig, men om du använder en drone av anständig kvalitet med bra stabilitet kommer du inte att möta detta problem.
  4. Jag ville pyssla med Computer Vision och drönarkontroll, därför började jag med det här projektet. Men efter att ha arbetat med datorsyn känner jag att det inte är den optimala lösningen för att styra drönaren. Således planerar jag att göra någon slags handsktyp med Gyrosensor för att styra drönaren i framtiden. Så håll utkik efter uppdateringar …

Om du gillade den här handledningen, gilla och dela och rösta också på den.

Det är allt för nu.. Vi ses snart nästa gång …

Rekommenderad: