Turinys:
- Prekės
- 1 žingsnis: surinkite reikmenis
- 2 žingsnis: NRF modulio prijungimas prie „Arduino“
- 3 žingsnis: pradėkime nuo kodavimo
- 4 žingsnis: autoriaus pastaba
Video: Padarykite savo drono gestą kontroliuojamą 10 USD: 4 žingsniais
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Šis nurodymas yra vadovas, kaip paversti savo R/C droną gesų valdomu dronu už mažiau nei 10 USD!
Aš esu žmogus, kurį labai įkvepia „Sci-Fi“filmai ir stengiuosi, kad technologijos būtų rodomos filme realiame gyvenime. Šis projektas yra įkvėptas iš dviejų tokių filmų: „STAR WARS: The Empire Strikes Back“ir „Project Almanachas“. Abiejuose filmuose matote skraidantį objektą („X-wing Starship“ir „R/C Drone“), kuris buvo valdomas tik rankos judesiais. Tai mane įkvėpė sukurti kažką panašaus…
Akivaizdu, kad aš neturiu „X-wing“, todėl, deja, turiu dirbti su savo „Mini R/C Quadcopter“.
Taigi planas yra toks - mano nešiojamajame kompiuteryje veiks vaizdo apdorojimo scenarijus, kuris nuolat ieškos mano rankos ir stebės jo vietą vaizdo kadre. Gavęs rankos koordinates, jis nusiųs atitinkamą signalą į droną ir tai bus padaryta naudojant „Arduino“, prijungtą prie nešiojamojo kompiuterio, kartu su NRF24L01 2,4 GHz siųstuvo -imtuvo moduliu, kuris gali tiesiogiai bendrauti su bet kurio R/C drono imtuvo lenta.
Prekės
- Nešiojamasis/stalinis kompiuteris su įdiegta žiniatinklio kamera ir „Python“. (Aš naudoju savo „W indows“nešiojamąjį kompiuterį su įmontuota internetine kamera ir veikiančiu „Python 2.7.14“)
- Bet koks R/C dronas, veikiantis 2,4 GHz dažniu. (JJRC H36 mano atveju)
- „Arduino UNO“kartu su programavimo kabeliu. (Aš naudoju jo kloną, nes jis yra pigesnis)
- NRF24L01 2,4 GHz antenos belaidžio siųstuvo -imtuvo modulis. (Aš nusipirkau tai iš čia tik už 99 ₹ (1,38 USD))
- 3,3 V adapterio plokštė 24L01 belaidžiam moduliui. (Aš nusipirkau tai iš čia tik už 49 ₹ (0,68 USD))
- Sujungimo laidai nuo vyrų iki moterų x7
1 žingsnis: surinkite reikmenis
2 žingsnis: NRF modulio prijungimas prie „Arduino“
Dabar, kai turite visas dalis, pradėkime prijungti NRF modulį prie „Arduino“.
- Pirmiausia įkiškite NRF modulį į adapterio lizdą. Norėdami tai padaryti, galite kreiptis į paveikslėlį aukščiau.
-
Po to paimkite laidus iš „Male to Female“ir prijunkite NRF adapterį prie „Arduino“taip: (Žiūrėkite aukščiau pateiktą schemą)
- NRF adapterio kaištis - „Arduino“kaištis
- VCC - 5v
- GND - GND
- CE - skaitmeninis kaištis 5
- CSN - analoginis kaištis 1
- SCK - skaitmeninis kaištis 4
- MO - skaitmeninis kaištis 3
- MI - analoginis kaištis 0
- IRQ - nenaudojama
- Kai ryšys bus baigtas, prijunkite „Arduino“prie kompiuterio naudodami „Arduino“programavimo USB kabelį ir beveik baigsite.
3 žingsnis: pradėkime nuo kodavimo
Dabar prasideda sunkioji dalis … !!!
Aš pats nesukūriau viso kodo. Vietoj to, aš paėmiau skirtingų kūrėjų kodo dalis ir bitus ir visus juos sujungiau į vieną, šiek tiek pataisydamas. Taigi, visi originalūs kūrėjai yra tinkamai įskaitomi.
Galite atsisiųsti visus čia pridėtus kodus ir priversti juos veikti. Arba galite eiti į mano „Github“saugyklą, kur aš nuolat atnaujinsiu naujausią kodą, kad galėčiau geriau sekti.
Rankų sekimas:
Šiame projekte rankiniam sekimui naudojamas „Haar Cascade“klasifikatorius. „Haar Cascade“mokomas uždėjus teigiamą vaizdą ant neigiamų vaizdų rinkinio. Ir šie apmokyti duomenys paprastai saugomi „.xml“rinkmenose. Internete galite gauti beveik bet ko klasifikatoriaus failus arba netgi galite sukurti tokį savo. Šiam projektui, nes mums reikėjo, kad jis būtų valdomas gestais, rankoms aptikti naudojau kumščio klasifikatorių, pavadintą „closed_frontal_palm.xml“, kurį pagamino Aravind Nambissan. Šį kodą galite išbandyti paleisdami „hand_live.py“kodą mano repo.
NRF24 kodo pasirinkimas, atitinkantis jūsų droną:
Taigi, atsižvelgiant į jūsų drono gamintoją ir modelį, galite kreiptis į „Github“saugyklą - „nrf24_cx10_pc“, kurią sukūrė Perry Tsao, kad pasirinktumėte tinkamą paleisti „Arduino“kodą, atitinkantį jo dažnį. Jis sukūrė gražią pamoką, kaip valdyti savo CX10 droną per kompiuterį.
Kai naudojau JJRC H36 droną, aš kreipiausi į kitą „Github“saugyklą - „nrf24_JJRC_H36_pc“, kuri buvo Lewiso Cornicko sukurto Perry Tsao repo šakutė, skirta valdyti savo JJRC H36 per kompiuterį.
„Arduino“paruošimas:
Aš sukūriau Lewiso repą savo „Github“, kurį galite klonuoti, jei dirbate su tuo pačiu dronu. Turite vieną kartą įkelti „nRF24_multipro.ino“kodą į „Arduino Uno“, kad jis būtų suporuotas su „Drone“kiekvieną kartą, kai vykdome „Python“scenarijų.
Serijinio ryšio testavimas:
Toje pačioje atpirkimo vietoje taip pat galite rasti kodą „serial_test.py“, kurį galima naudoti norint patikrinti „Python“scenarijaus nuoseklųjį ryšį su „Arduino“ir ar jūsų dronas bus suporuotas, ar ne. Nepamirškite pakeisti kodo COM prievado pagal savo „Arduino“plokštės COM prievadą.
Viską integruoti į vieną kodą:
Taigi aš integravau visus šiuos skirtingų kūrėjų kodus ir sukūriau savo kodą „handserial.py“. Jei darote tą patį, ką aš darau su tuo pačiu dronu, tuomet galite tiesiogiai paleisti šį kodą ir tada galite valdyti savo droną tiesiog judindami kumštį ore. Kodas pirmiausia seka kumštį vaizdo įrašo kadre. Priklausomai nuo kumščio Y koordinatės, kodas siunčia drono droselio vertę, kad ji pakiltų arba sumažėtų, ir panašiai, atsižvelgiant į kumščio X koordinatę, kodas siunčia sraigto reikšmę į droną, kad jis eitų į kairę arba į dešinę.
4 žingsnis: autoriaus pastaba
Kalbant apie šį projektą, norėčiau išskirti 4 dalykus:
- Kaip nurodyta anksčiau, šį kodą sukūriau ne aš, bet aš nuolat su juo dirbu ir atnaujinsiu kodą, kad būtų lengviau sekti „Github“saugykloje. Taigi, jei turite klausimų ar atnaujinimų, galite apsilankyti saugykloje arba ping man „Instagram“.
- Šiuo metu mes naudojame nešiojamojo kompiuterio internetinę kamerą, kuri neleidžia matyti drono vaizdo, tačiau, jei reikia, stebėjimo tikslais taip pat gali būti naudojamos ant drono sumontuotos kameros. Tai padės geriau matyti ir galiausiai geriau kontroliuoti.
- Šiam projektui aš naudoju JJRC H36 droną, kuris yra vienas pigiausių dronų rinkoje, todėl jam trūksta giroskopinio stabilumo. Dėl šios priežasties vaizdo įrašo judesys gali atrodyti nestabilus, tačiau jei naudojate tinkamos kokybės bepiločių orlaivių stabilumą, su šia problema nesusidursite.
- Norėjau apsispręsti dėl „Computer Vision“ir bepiločių orlaivių valdymo, todėl pradėjau nuo šio projekto. Tačiau padirbėjęs prie kompiuterinio regėjimo jaučiu, kad tai nėra optimalus sprendimas valdyti droną. Taigi ateityje planuoju pagaminti tam tikrą pirštinių tipo prietaisą su giroskopo jutikliu, kad valdytų droną. Taigi sekite naujienas…
Jei jums patiko ši pamoka, pamėgkite, pasidalykite ir balsuokite už ją.
Tai kol kas viskas.. Iki greito pasimatymo kitą kartą …
Rekomenduojamas:
Kontroliuojama dirvožemio drėgmės grįžtamojo ryšio lašelinė drėkinimo sistema (ESP32 ir Blynk): 5 žingsniai
Kontroliuojama dirvožemio drėgmės grįžtamojo ryšio lašelinė drėkinimo sistema (ESP32 ir Blynk): susirūpinkite savo sodu ar augalais, kai einate į ilgas atostogas, arba pamirškite kasdien laistyti augalą. Na, čia yra sprendimas - dirvožemio drėgmės kontroliuojama ir visame pasaulyje prijungta lašelinė laistymo sistema, valdoma ESP32 programinės įrangos priekyje
Sukurkite skaitmeninį logikos analizatorių mažiau nei 1 USD: 5 žingsniais
Sukurkite skaitmeninį logikos analizatorių už mažiau nei 1 USD: loginio lygio jutiklis yra įrenginys, kuris nustato, ar komponento išėjimas yra 1 arba 0 (teigiamas arba neigiamas). Ar žinote tuos gražius lygio jutiklius su LCD ekranais, kurie kainuoja apie 25 USD? Šis yra juokingai pigesnis ir daro tą patį (tai aš
Paleiskite „Doom“savo „iPod“5 paprastais žingsniais !: 5 žingsniai
Paleiskite „Doom“savo „iPod“5 paprastais žingsniais !: Žingsnis po žingsnio vadovas, kaip dukart paleisti „Rockbox“„iPod“, kad galėtumėte žaisti „Doom“ir daugybę kitų žaidimų. Tai padaryti labai paprasta, tačiau daugelis žmonių vis tiek nustemba, kai pamato mane grojantį „doom“savo „iPod“, ir susipainioja su instrukcija
Temperatūros kontroliuojama vakcina ir insulino aušintuvas: 9 žingsniai (su nuotraukomis)
Temperatūros kontroliuojama vakcina ir insulino aušintuvas: vėsiai išgelbėti gyvybes Besivystančiame pasaulyje vakcinos yra pirmoji gynybos linija nuo pavojingų ligų, tokių kaip Ebola, gripas, cholera, tuberkuliozė ir dengės karštligė. Vežti vakcinas ir kitas gyvybę gelbstinčias medžiagas, tokias kaip
Sukurkite savo „Cushtop“(2,00 USD, o ne 40,00 USD): 4 žingsniai
Sukurkite savo „Cushtop“(2,00 USD, o ne 40,00 USD): Lengvai pasidarykite kitą stalviršį be jokių tikrų medžiagų