Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
Ovo uputstvo je vodič za pretvaranje vašeg R/C drona u bespilotnu letjelicu za manje od 10 USD!
Ja sam osoba koja je jako inspirirana Sci-Fi filmovima i trudi se da tehnologiju prikazanu u filmu učini stvarnim životom. Ovaj projekat je inspiracija za dva takva filma: "STAR WARS: The Empire Strikes Back" i "Project Almanac". U oba filma vidite leteći objekt (X-wing Starship & R/C Drone) koji je kontroliran samo pokretima ruke. Ovo me je inspirisalo da napravim nešto slično …
Očigledno da ne posjedujem X-wing, pa, nažalost, moram raditi sa svojim Mini R/C Quadcopterom.
Dakle, plan je - na mom prijenosnom računaru bit će pokrenuta skripta za obradu slike koja će neprestano tražiti moju ruku i pratiti njenu poziciju u okviru za video. Nakon što dobije koordinate ruke, poslat će odgovarajući signal dronu, a to će se učiniti pomoću Arduina spojenog na prijenosno računalo zajedno s NRF24L01 2.4GHz primopredajnikom koji može izravno komunicirati s prijemnom pločom bilo kojeg R/C Drone -a.
Supplies
- Laptop/Desktop računar sa instaliranom Web kamerom i Pythonom. (Koristim svoj laptop W indows sa ugrađenom web kamerom i sa Pythonom 2.7.14)
- Bilo koji R/C Drone radi na frekvenciji 2,4 GHz. (JJRC H36 u mom slučaju)
- Arduino UNO zajedno sa svojim kablom za programiranje. (Koristim njegov klon jer je jeftiniji)
- NRF24L01 Bežični primopredajnik antene na 2,4 GHz. (Ovo sam kupio odavde za samo 99 JPY (1,38 USD))
- Adapterska ploča 3.3V za bežični modul 24L01. (Ovo sam kupio odavde za samo 49 JPY (0,68 USD))
- Žice kratkospojnika muški na ženski x7
Korak 1: Prikupite potrepštine
Korak 2: Povezivanje NRF modula s Arduinom
Pošto imate sve dijelove, počnimo s povezivanjem NRF modula s Arduinom.
- Prvo umetnite NRF modul u utor koji se nalazi na adapteru. Za to se možete obratiti gornjoj slici.
-
Nakon toga povežite žice muški i ženski i spojite NRF adapter na Arduino na sljedeći način: (Pogledajte dijagram kola iznad)
- NRF adapter adapter - Arduino pin
- VCC - 5v
- GND - GND
- CE - digitalni pin 5
- CSN - Analogni pin 1
- SCK - digitalni pin 4
- MO - digitalni pin 3
- MI - analogni pin 0
- IRQ - Ne koristi se
- Nakon povezivanja, povežite Arduino s računalom pomoću Arduino programirajućeg USB kabela i gotovo ste gotovi.
Korak 3: Prijeđimo na kodiranje
Sada počinje teži dio … !!!
Nisam sam napravio ceo kôd. Umjesto toga, uzeo sam dijelove i dijelove koda od različitih programera i sve ih integrirao u jedan uz malo dotjerivanja. Stoga se odgovarajućim zaslugama svim originalnim stvaraocima daju unaprijed.
Ovdje možete preuzeti sve priložene kodove i omogućiti im da funkcioniraju. Ili možete otići u moje Github spremište, gdje ću stalno ažurirati najnoviji kôd radi boljeg praćenja.
Ručno praćenje:
Haar Cascade klasifikator se koristi za praćenje ruku u ovom projektu. Haar kaskada se trenira postavljanjem pozitivne slike na skup negativnih slika. I ovi obučeni podaci obično se čuvaju u ".xml" datotekama. Na Internetu možete dobiti bilo koje datoteke klasifikatora ili čak možete stvoriti neku svoju poput ove. Za ovaj projekt, kako nam je bilo potrebno da ga kontroliramo pokretima rukom, upotrijebio sam klasifikator šake nazvan "closed_frontal_palm.xml" proizvođača Aravind Nambissan za moju detekciju ruke. Ovaj kôd možete testirati pokretanjem koda "hand_live.py" u mom repo -u.
Odabir koda NRF24 koji odgovara vašem dronu:
Dakle, prema proizvođaču i modelu vašeg drona, možete se pozvati na spremište Github - "nrf24_cx10_pc" koje je izradio Perry Tsao kako biste odabrali odgovarajući Arduino kod za izvođenje koji će odgovarati njegovoj frekvenciji. Napravio je lijep vodič za upravljanje svojim CX10 Droneom preko računara.
Dok sam koristio bespilotnu letjelicu JJRC H36, referirao sam se na drugo skladište Github -a - "nrf24_JJRC_H36_pc" koje je bilo viljuška repo Perryja Tsaoa koju je napravio Lewis Cornick za kontrolu svog JJRC H36 preko računara.
Priprema Arduina:
Ja sam proslijedio Lewisov repo na moj Github koji možete klonirati ako radite na istom dronu. Morate jednom učitati kôd "nRF24_multipro.ino" na svoj Arduino Uno da bi se upario s vašim Drone -om svaki put kada pokrenemo našu Python skriptu.
Testiranje serijske komunikacije:
U istom repo -u možete pronaći i kôd "serial_test.py" koji se može koristiti za testiranje serijske komunikacije Python skripte s Arduinom i ako se vaš dron upari ili ne. Ne zaboravite promijeniti COM port u kodu u skladu s COM portom vaše Arduino ploče.
Integriranje svega u jednom kodu:
Zato sam integrirao sve ove kodove od strane različitih programera i napravio svoj vlastiti kod "handserial.py". Ako radite potpuno isto što i ja sa istim bespilotnim letjelicom, tada možete izravno pokrenuti ovaj kôd, a zatim možete kontrolirati svoj dron samo pomicanjem šake u zrak. Kod prvi put prati pesnicu u video kadru. Ovisno o Y-koordinati šake, kôd šalje vrijednost leptira za gas dronom čineći ga gore-dolje i slično, ovisno o X-koordinati šake, kôd šalje vrijednost elerona dronu kako bi krenuo lijevo ili desno.
Korak 4: Napomena autora
Postoje 4 točke koje bih posebno želio spomenuti u vezi ovog projekta:
- Kao što je ranije navedeno, ovaj kod nisam u potpunosti napravio ja, ali neprestano radim na njemu i ažurirao bih kôd radi boljeg praćenja na mom Github spremištu. Dakle, za sve upite ili ažuriranja možete posjetiti spremište ili me pingati na Instagramu.
- Trenutno koristimo web kameru prijenosnog računara koja ne dopušta perspektivu pogleda drona, ali ako je potrebno, kamere postavljene na dronu mogu se koristiti i za praćenje. To će pomoći u boljem pogledu i na kraju boljoj kontroli.
- Za ovaj projekt koristim bespilotnu letjelicu JJRC H36 koja je jedna od najjeftinijih dronova na tržištu pa mu nedostaje žiroskopska stabilnost. To je razlog zašto biste mogli osjetiti da je kretanje u videu klimavo, ali ako koristite bespilotnu letjelicu pristojne kvalitete s dobrom stabilnošću, nećete se suočiti s ovim problemom.
- Htio sam se pozabaviti računarskim vidom i kontrolom dronova, pa sam počeo s ovim projektom. Ali nakon rada na računarskom vidu, osjećam da to nije optimalno rješenje za upravljanje dronom. Stoga planiram napraviti neku vrstu uređaja u obliku rukavica sa žiroskopom za kontrolu drona u budućnosti. Zato pratite ažuriranja …
Ako vam se svidio ovaj vodič, lajkujte ga, podijelite i glasajte za njega.
To je sve za sada.. Vidimo se uskoro sledeći put …
Preporučuje se:
Krila za cosplay pokretom aktivirana pomoću Circuit Playground Express - 1. dio: 7 koraka (sa slikama)
Krilca za cosplay pokretom aktivirana korištenjem Circuit Playground Express - 1. dio: Ovo je prvi dio projekta iz dva dijela, u kojem ću vam pokazati moj postupak izrade para automatiziranih vilinskih krila. Prvi dio projekta je mehaniku krila, a drugi dio čini ga nosivim i dodaje krila
Dizajn igre brzim pokretom u 5 koraka: 5 koraka
Dizajn igre u Flick -u u 5 koraka: Flick je zaista jednostavan način da napravite igru, posebno nešto poput zagonetke, vizuelnog romana ili avanturističke igre
Neopixel RGB cipele pokrenute pokretom!: 5 koraka (sa slikama)
Neopixel RGB cipele pokrenute pokretom!: NeoPixel -i su odlični, možemo kontrolirati stotine svjetala sa 3 žice, tj. 5V, Din & GND iu ovom vodiču pokazat ću kako možete napraviti NeoPixel RGB cipele pokrenute pokretom
Robot za daljinsko pretraživanje i uklanjanje s kontroliranim pokretom: 5 koraka
Robot za daljinsko pretraživanje i uklanjanje s Leap Motion -om, kontroliran: Kao dio mog unosa za Leap Motion #3D Jam, bio sam uzbuđen što sam napravio ovog bežičnog robota za pretraživanje/spašavanje pokretima temeljenog na Raspberry Pi -u. Ovaj projekt demonstrira i pruža minimalistički primjer kako bežični 3D pokreti rukama mogu
Jednostavna kontrola pokretima - kontrolirajte svoje RC igračke pokretom ruke: 4 koraka (sa slikama)
Jednostavna kontrola gestama - Kontrolirajte svoje RC igračke pokretom ruke: Dobro došli u moju 'ible' #45. Prije nekog vremena napravio sam potpuno ispravnu RC verziju BB8 koristeći dijelove Lego Star Wars … https://www.instructables.com/id/Whats-Inside-My-R … Kad sam vidio kako je super Force Band koji je napravio Sphero, pomislio sam: " Ok, ja