Talaan ng mga Nilalaman:

Gawing Kinokontrol ang Iyong Drone Gesture sa $ 10: 4 na Mga Hakbang
Gawing Kinokontrol ang Iyong Drone Gesture sa $ 10: 4 na Mga Hakbang

Video: Gawing Kinokontrol ang Iyong Drone Gesture sa $ 10: 4 na Mga Hakbang

Video: Gawing Kinokontrol ang Iyong Drone Gesture sa $ 10: 4 na Mga Hakbang
Video: SURPRISING SIGNS Na Nag Chi-CHEAT na Ang Partner mo Ng Hindi mo Alam | Cherryl Ting 2024, Nobyembre
Anonim
Image
Image
Gawing Kinokontrol ang Iyong Drone Gesture sa $ 10
Gawing Kinokontrol ang Iyong Drone Gesture sa $ 10
Gawing Kinokontrol ang Iyong Drone Gesture sa $ 10
Gawing Kinokontrol ang Iyong Drone Gesture sa $ 10

Ang itinuturo na ito ay isang gabay sa pagbabago ng iyong R / C Drone sa isang Gesture Controlled Drone sa ilalim ng $ 10!

Ako ay isang tao na lubos na inspirasyon ng mga pelikula sa Sci-Fi at sinubukan kong ipakita ang tech sa pelikula sa totoong buhay. Ang proyektong ito ay isang inspirasyon mula sa dalawang kagaya ng mga pelikula: "STAR WARS: The Empire Strikes Back" at "Project Almanac". Sa parehong mga pelikula, nakikita mo ang isang lumilipad na bagay (X-wing Starship at isang R / C Drone) na kinokontrol ng mga paggalaw lamang ng kamay. Ito ang nagbigay inspirasyon sa akin na gumawa ng katulad na bagay…

Malinaw na hindi ako nagmamay-ari ng X-wing, kaya, sa kasamaang palad, kailangan kong magtrabaho kasama ang aking Mini R / C Quadcopter.

Kaya't ang plano ay - magkakaroon ng script ng pagpoproseso ng imahe na tumatakbo sa aking laptop na patuloy na hinahanap ang aking kamay at susubaybayan ang posisyon nito sa frame ng video. Sa sandaling makuha nito ang mga koordinasyon ng kamay, magpapadala ito ng kani-kanilang signal sa drone at magagawa ito gamit ang Arduino na konektado sa laptop kasama ang isang NRF24L01 2.4GHz Transceiver Module na maaaring direktang makipag-usap sa board ng tatanggap ng anumang R / C Drone.

Mga gamit

  • Laptop / Desktop computer na may naka-install na Webcam at Python. (Gumagamit ako ng aking W indows laptop kasama ang built-in na webcam at pagpapatakbo ng Python 2.7.14)
  • Anumang R / C Drone na tumatakbo sa 2.4Ghz Frequency. (JJRC H36 sa aking kaso)
  • Arduino UNO kasama ang Programming Cable nito. (Ginagamit ko ang clone nito dahil mas mura ito)
  • NRF24L01 2.4GHz Antenna Wireless Transceiver Module. (Binili ko ito mula dito sa halagang ₹ 99 ($ 1.38))
  • 3.3V Adapter Board para sa 24L01 Wireless Module. (Binili ko ito mula dito sa halagang $ 49 ($ 0.68))
  • Mga Wires ng Jumper ng Lalaki hanggang Babae x7

Hakbang 1: Ipunin ang Mga Pantustos

Ipunin ang mga Pantustos!
Ipunin ang mga Pantustos!

Hakbang 2: Koneksyon ng NRF Module Sa Arduino

Koneksyon ng NRF Modyul Sa Arduino
Koneksyon ng NRF Modyul Sa Arduino
Koneksyon ng NRF Modyul Sa Arduino
Koneksyon ng NRF Modyul Sa Arduino
Koneksyon ng NRF Modyul Sa Arduino
Koneksyon ng NRF Modyul Sa Arduino
Koneksyon ng NRF Modyul Sa Arduino
Koneksyon ng NRF Modyul Sa Arduino

Ngayon dahil mayroon ka ng lahat ng mga bahagi, magsimula tayo sa mga kable ng NRF Module sa Arduino.

  1. Una, ipasok ang module ng NRF sa puwang na ibinigay sa adapter. Maaari kang mag-refer sa larawan sa itaas para dito.
  2. Pagkatapos nito, kunin ang Male to Female wires at ikonekta ang NRF adapter sa Arduino tulad ng sumusunod: (Refer the Circuit Diagram sa itaas)

    • NRF Adapter Pin - Arduino Pin
    • VCC - 5v
    • GND - GND
    • CE - Digital Pin 5
    • CSN - Analog Pin 1
    • SCK - Digital Pin 4
    • MO - Digital Pin 3
    • MI - Analog Pin 0
    • IRQ - Hindi nagamit
  3. Kapag tapos na ang koneksyon, ikonekta ang Arduino sa iyong PC gamit ang Arduino Programming USB Cable at halos tapos ka na.

Hakbang 3: Magsagawa tayo sa Coding

Magsimula Tayo sa Coding!
Magsimula Tayo sa Coding!
Magsimula Tayo sa Coding!
Magsimula Tayo sa Coding!

Ngayon narito nagsisimula ang matigas na bahagi … !!!

Hindi ko nagawa ang buong code sa aking sarili. Sa halip, kumuha ako ng mga bahagi at piraso ng code mula sa iba't ibang mga developer at isinama ang lahat sa kanila sa isa na may kaunting pag-aayos. Samakatuwid, ang mga tamang kredito sa lahat ng mga orihinal na tagalikha ay nauna nang ibinigay.

Maaari mong i-download ang lahat ng mga code na nakakabit dito, at gawin itong gumana. O kung hindi man maaari kang pumunta sa aking Github Repository, kung saan patuloy akong mag-a-update ng pinakabagong code para sa mas mahusay na pagsubaybay.

Pagsubaybay sa Kamay:

Ang classifier ng Haar Cascade ay ginagamit para sa pagsubaybay sa kamay sa proyektong ito. Ang Haar Cascade ay sinanay ng pag-superimpose ng positibong imahe sa isang hanay ng mga negatibong imahe. At ang sanay na data na ito ay karaniwang nakaimbak sa mga ".xml" na mga file. Maaari kang makakuha ng mga file ng Classifier ng halos anumang bagay sa internet o maaari ka ring lumikha ng isa sa iyong sarili tulad nito. Para sa proyektong ito, tulad ng kinakailangan namin upang makontrol ito ng kilos ng kamay, gumamit ako ng isang fist classifier na pinangalanan bilang "closed_frontal_palm.xml" na ginawa ni Aravind Nambissan para sa pagtuklas ng aking kamay. Maaari mong subukan ang code na ito sa pamamagitan ng pagpapatakbo ng "hand_live.py" code sa aking repo.

Pagpili ng NRF24 Code upang tumugma sa iyong Drone:

Kaya ayon sa tagagawa at modelo ng iyong drone, maaari kang mag-refer sa imbakan ng Github - "nrf24_cx10_pc" na ginawa ni Perry Tsao upang piliin ang tamang Arduino code na tatakbo na tutugma sa dalas nito. Gumawa siya ng isang magandang tutorial upang makontrol ang kanyang CX10 Drone sa PC.

Habang gumagamit ako ng drone ng JJRC H36, sumangguni ako sa isa pang imbakan ng Github - "nrf24_JJRC_H36_pc" na isang tinidor ng repo ni Perry Tsao na ginawa ni Lewis Cornick upang makontrol ang kanyang JJRC H36 sa PC.

Pagkuha ng Arduino Ready:

Tinanggi ko ang repo ni Lewis sa aking Github na maaari mong i-clone kung nagtatrabaho ka sa parehong drone. Kailangan mong i-upload ang "nRF24_multipro.ino" code nang isang beses sa iyong Arduino Uno upang gawin itong pares sa iyong Drone tuwing pinapatakbo namin ang aming script sa Python.

Pagsubok sa Serial na Komunikasyon:

Sa parehong repo, maaari mo ring makita ang isang code na "serial_test.py" na maaaring magamit upang subukan ang Serial Communication ng Python script sa Arduino at kung ang iyong drone ay ipinares o hindi. Huwag kalimutang baguhin ang COM port sa code alinsunod sa COM port ng iyong Arduino board.

Pagsasama ng Lahat sa Isang Code:

Kaya isinama ko ang lahat ng mga code na ito ng iba't ibang mga developer at gumawa ng aking sariling code na "handserial.py". Kung ginagawa mo ang eksaktong parehong bagay na ginagawa ko sa eksaktong parehong drone, pagkatapos ay maaari mong direktang patakbuhin ang code na ito at pagkatapos ay makontrol mo ang iyong drone sa pamamagitan lamang ng paglipat ng iyong kamao sa hangin. Sinusubaybayan muna ng code ang isang kamao sa frame ng video. Nakasalalay sa koordinasyong Y ng kamao, ipinapadala ng code ang halaga ng throttle sa drone na ginagawa itong pataas o pababa at katulad na nakasalalay sa X-coordinate ng kamao, ipinapadala ng code ang halaga ng aileron sa drone gawin itong pakaliwa o pakanan.

Hakbang 4: Tandaan ng May-akda

Mayroong 4 na puntos na nais kong espesyal na banggitin tungkol sa proyektong ito:

  1. Tulad ng tinukoy nang mas maaga, ang code na ito ay hindi ganap na ginawa sa akin, ngunit patuloy akong nagtatrabaho nito at maa-update ang code para sa mas mahusay na pagsubaybay sa aking Github Repository. Kaya para sa anumang mga query o update, maaari mong bisitahin ang imbakan o i-ping sa akin sa Instagram.
  2. Sa kasalukuyan, gumagamit kami ng webcam ng laptop na hindi pinapayagan na magkaroon ng pananaw ng pagtingin ng drone, ngunit kung kinakailangan, ang mga camera na naka-mount sa drone ay maaari ding magamit para sa layunin ng pagsubaybay. Makakatulong ito upang magkaroon ng isang mas mahusay na pagtingin at sa huli ay mas mahusay na kontrol.
  3. Para sa proyektong ito, gumagamit ako ng isang drone ng JJRC H36 na kung saan ay isa sa pinakamurang mga drone na magagamit sa merkado kaya't wala itong katatagan ng gyroscopic. Iyon ang dahilan na maaari mong maramdaman na gumalaw ang paggalaw sa video, ngunit kung gumagamit ka ng disenteng kalidad na drone na may mahusay na katatagan, hindi mo haharapin ang problemang ito.
  4. Nais kong mag-tinker sa paligid ng Computer Vision at kontrol ng drone, kaya nagsimula ako sa proyektong ito. Ngunit pagkatapos magtrabaho sa paningin ng computer, nararamdaman ko na hindi ito ang pinakamainam na solusyon upang makontrol ang drone. Sa gayon, nagpaplano akong gumawa ng isang uri ng aparato na uri ng guwantes na may sensor na Gyro upang makontrol ang drone sa hinaharap. Kaya't manatiling nakasubaybay sa mga update …

Kung nagustuhan mo ang tutorial na ito, mangyaring magustuhan at ibahagi at iboto din ito.

Iyon lang ang para sa ngayon.. Magkita ulit tayo sa susunod …

Inirerekumendang: