İçindekiler:

10 $: 4 Adımda Drone Hareketinizi Kontrol Edin
10 $: 4 Adımda Drone Hareketinizi Kontrol Edin

Video: 10 $: 4 Adımda Drone Hareketinizi Kontrol Edin

Video: 10 $: 4 Adımda Drone Hareketinizi Kontrol Edin
Video: Ne Silahı Polis Bey 😃🐬 2024, Kasım
Anonim
Image
Image
Drone Hareketinizi 10 Dolarla Kontrol Edin
Drone Hareketinizi 10 Dolarla Kontrol Edin
Drone Hareketinizi 10 Dolarla Kontrol Edin
Drone Hareketinizi 10 Dolarla Kontrol Edin

Bu talimat, R/C Drone'unuzu 10 doların altında bir Hareket Kontrollü Drone'a dönüştürmek için bir rehberdir!

Ben bilim kurgu filmlerinden çok ilham alan ve filmde gösterilen teknolojiyi gerçek hayatta yapmaya çalışan bir insanım. Bu proje, bu tür iki filmden ilham almıştır: "STAR WARS: The Empire Strikes Back" ve "Project Almanac". Her iki filmde de sadece el hareketleriyle kontrol edilen uçan bir cisim (X-wing Starship & R/C Drone) görüyorsunuz. Bu bana benzer bir şey yapmak için ilham verdi…

Açıkçası X-wing'e sahip değilim, bu yüzden ne yazık ki Mini R/C Quadcopter'ımla çalışmak zorundayım.

Yani plan - dizüstü bilgisayarımda sürekli olarak elimi arayacak ve video karesindeki konumunu takip edecek bir görüntü işleme komut dosyası olacak. Elin koordinatlarını aldığında, ilgili sinyali drone'a gönderecek ve bu, herhangi bir R/C Drone'nun alıcı kartı ile doğrudan iletişim kurabilen bir NRF24L01 2.4GHz Alıcı-Verici Modülü ile birlikte dizüstü bilgisayara bağlı Arduino kullanılarak yapılacaktır..

Gereçler

  • Web kamerası ve Python yüklü dizüstü/masaüstü bilgisayar. (Yerleşik web kamerası ve Python 2.7.14 çalıştıran Windows dizüstü bilgisayarımı kullanıyorum)
  • 2.4Ghz Frekansta çalışan herhangi bir R/C Drone. (Benim durumumda JJRC H36)
  • Arduino UNO, Programlama Kablosu ile birlikte. (Daha ucuz olduğu için klonunu kullanıyorum)
  • NRF24L01 2.4GHz Anten Kablosuz Alıcı-Verici Modülü. (Bunu buradan sadece 99 Yen'e (1.38 $) satın aldım)
  • 24L01 Kablosuz Modül için 3.3V Adaptör Kartı. (Bunu buradan sadece 49 ₹ (0,68 $) karşılığında aldım)
  • Erkek - Dişi Jumper Telleri x7

Adım 1: Malzemeleri Toplayın

Malzemeleri toplayın!
Malzemeleri toplayın!

Adım 2: NRF Modülünün Arduino ile Bağlantısı

NRF Modülünün Arduino ile Bağlantısı
NRF Modülünün Arduino ile Bağlantısı
NRF Modülünün Arduino ile Bağlantısı
NRF Modülünün Arduino ile Bağlantısı
NRF Modülünün Arduino ile Bağlantısı
NRF Modülünün Arduino ile Bağlantısı
NRF Modülünün Arduino ile Bağlantısı
NRF Modülünün Arduino ile Bağlantısı

Şimdi tüm parçalara sahip olduğunuza göre, NRF Modülünü Arduino ile kablolamaya başlayalım.

  1. İlk olarak, NRF modülünü adaptör üzerinde sağlanan yuvaya yerleştirin. Bunun için yukarıdaki resme bakabilirsiniz.
  2. Bundan sonra, Erkek - Dişi kabloları alın ve NRF adaptörünü Arduino'ya aşağıdaki gibi bağlayın: (Yukarıdaki Devre Şemasına bakın)

    • NRF Adaptör Pimi - Arduino Pimi
    • VCC - 5v
    • GND - GND
    • CE - Dijital Pim 5
    • CSN - Analog Pin 1
    • SCK - Dijital Pin 4
    • MO - Dijital Pin 3
    • MI - Analog Pin 0
    • IRQ - Kullanılmıyor
  3. Bağlantı yapıldıktan sonra, Arduino Programlama USB Kablosunu kullanarak Arduino'yu PC'nize bağlayın ve neredeyse bitirdiniz.

Adım 3: Kodlamaya Geçelim

Gelelim Kodlamaya!
Gelelim Kodlamaya!
Gelelim Kodlamaya!
Gelelim Kodlamaya!

Şimdi zor kısım başlıyor…!!!

Kodun tamamını kendim yapmadım. Bunun yerine, farklı geliştiricilerden parça ve kod parçaları aldım ve hepsini biraz ince ayar yaparak bir araya getirdim. Bu nedenle, tüm orijinal içerik oluşturuculara uygun krediler önceden verilmiştir.

Buraya eklenmiş tüm kodları indirebilir ve çalışmasını sağlayabilirsiniz. Veya daha iyi izleme için sürekli olarak en son kodu güncelleyeceğim Github Depoma gidebilirsiniz.

El İzleme:

Bu projede el takibi için Haar Cascade sınıflandırıcı kullanılmıştır. Haar Cascade, pozitif görüntünün bir dizi negatif görüntü üzerine bindirilmesiyle eğitilir. Ve bu eğitilmiş veriler genellikle ".xml" dosyalarında saklanır. İnternetteki hemen hemen her şeyin Classifier dosyalarını alabilir veya bunun gibi kendinize ait bir tane bile oluşturabilirsiniz. Bu proje için el hareketi kontrollü yapmamız gerektiğinden, el algılamam için Aravind Nambissan tarafından yapılmış "closed_frontal_palm.xml" adlı bir yumruk sınıflandırıcı kullandım. Bu kodu depomda "hand_live.py" kodunu çalıştırarak test edebilirsiniz.

Drone'nuza uygun NRF24 Kodunu Seçme:

Bu nedenle, dronunuzun üreticisine ve modeline göre, frekansına uyacak uygun Arduino kodunu seçmek için Perry Tsao tarafından yapılan Github deposuna - "nrf24_cx10_pc" başvurabilirsiniz. CX10 Drone'unu PC üzerinden kontrol etmek için güzel bir eğitim hazırladı.

JJRC H36 drone kullanırken, başka bir Github deposuna atıfta bulundum - "nrf24_JJRC_H36_pc", bu, Perry Tsao'nun Lewis Cornick tarafından PC üzerinden JJRC H36'sını kontrol etmek için yaptığı deposunun bir çatalıydı.

Arduino'yu Hazırlamak:

Lewis'in deposunu aynı drone üzerinde çalışıyorsanız klonlayabileceğiniz Github'uma çatalladım. Python betiğimizi her çalıştırdığımızda Drone'nuzla eşleşmesi için Arduino Uno'nuza bir kez "nRF24_multipro.ino" kodunu yüklemeniz gerekir.

Seri İletişimin Test Edilmesi:

Aynı depoda, Arduino ile Python betiğinin Seri İletişimini test etmek için kullanılabilecek bir "serial_test.py" kodunu ve drone'nuzun eşleştirilip eşleştirilmediğini de bulabilirsiniz. Arduino kartınızın COM portuna göre koddaki COM portunu değiştirmeyi unutmayınız.

Her Şeyi Tek Bir Kodda Entegre Etmek:

Bu yüzden tüm bu kodları farklı geliştiriciler tarafından entegre ettim ve kendi kodumu "handserial.py" yaptım. Aynı drone ile benim yaptığımın aynısını yapıyorsanız direkt olarak bu kodu çalıştırabilir ve daha sonra sadece yumruğunuzu havada hareket ettirerek drone'unuzu kontrol edebilirsiniz. Kod ilk önce video karesinde bir yumruk için izler. Yumruğun Y koordinatına bağlı olarak, kod dronun yukarı veya aşağı gitmesini sağlamak için gaz kelebeği değerini gönderir ve benzer şekilde yumruğun X koordinatına bağlı olarak, kod uçağın sola veya sağa gitmesini sağlamak için kanatçık değerini gönderir..

Adım 4: Yazarın Notu

Bu proje ile ilgili özellikle belirtmek istediğim 4 nokta var:

  1. Daha önce belirtildiği gibi, bu kod tamamen benim tarafımdan yapılmamıştır, ancak üzerinde sürekli çalışıyorum ve Github Depomda daha iyi izleme için kodu güncelleyeceğim. Bu nedenle, herhangi bir sorunuz veya güncellemeniz için depoyu ziyaret edebilir veya Instagram'da bana ping atabilirsiniz.
  2. Halihazırda dizüstü bilgisayarın drone görüş perspektifine sahip olmasına izin vermeyen web kamerasını kullanıyoruz ancak istenildiği takdirde drone üzerine monte edilen kameralar da takip amaçlı kullanılabilmektedir. Bu, daha iyi bir görüşe ve nihayetinde daha iyi kontrole sahip olmanıza yardımcı olacaktır.
  3. Bu proje için piyasada bulunan en ucuz dronelardan biri olan JJRC H36 drone kullanıyorum, dolayısıyla jiroskopik stabilitesi yok. Bu nedenle videodaki hareketin titrek olduğunu hissedebilirsiniz, ancak iyi kalitede ve stabilitesi iyi bir drone kullanıyorsanız bu sorunla karşılaşmazsınız.
  4. Computer Vision ve drone kontrolü ile uğraşmak istedim, bu yüzden bu projeye başladım. Ancak bilgisayar görüşü üzerinde çalıştıktan sonra, drone'yu kontrol etmenin en uygun çözüm olmadığını hissediyorum. Bu nedenle, gelecekte drone'u kontrol etmek için Gyro sensörlü bir tür eldiven tipi cihaz yapmayı planlıyorum. Bu yüzden güncellemeler için bizi takip etmeye devam edin…

Bu öğreticiyi beğendiyseniz, lütfen beğenin ve paylaşın ve ayrıca oy verin.

Şimdilik bu kadar.. Bir dahaki sefere görüşmek üzere…

Önerilen: