İçindekiler:

GPS'li Arduino Drone: 16 Adım
GPS'li Arduino Drone: 16 Adım

Video: GPS'li Arduino Drone: 16 Adım

Video: GPS'li Arduino Drone: 16 Adım
Video: ARDUINO GPS TRACKER WITH GOOGLE MAPS 2024, Temmuz
Anonim
GPS'li Arduino Uçağı
GPS'li Arduino Uçağı

Eve dönüş, koordinata gitme ve GPS tutma işlevlerine sahip, Arduino kontrollü ve stabilize, GPS özellikli birinci şahıs görüşlü (FPV) bir quadcopter drone inşa etmek için yola çıktık. Varolan Arduino programlarını ve GPS'siz bir quadcopter için kabloları bir GPS iletim sistemininkilerle birleştirmenin nispeten basit olacağını ve daha karmaşık programlama görevlerine hızla geçebileceğimizi safça varsaydık. Bununla birlikte, bu iki projeyi birbirine bağlamak için şaşırtıcı bir miktarın değişmesi gerekiyordu ve bu nedenle, herhangi bir ek işlevsellik olmadan, GPS özellikli bir FPV dörtlü helikopter yaptık.

Daha sınırlı quadcopter'dan memnunsanız, ürünümüzün nasıl kopyalanacağına dair talimatlar ekledik.

Daha otonom bir quadcopter yolunda attığımız tüm adımları da dahil ettik. Arduino'nun derinliklerine inmekte kendinizi rahat hissediyorsanız veya zaten çok fazla Arduino deneyiminiz varsa ve kendi keşfiniz için bir başlangıç noktası olarak durma noktamızı almak istiyorsanız, o zaman bu Eğitilebilir Kitap da sizin için.

Bu, ne kadar deneyime sahip olursanız olun, Arduino için derleme ve kodlama hakkında bir şeyler öğrenmek için harika bir proje. Ayrıca, umarım bir drone ile uzaklaşırsınız.

Kurulum aşağıdaki gibidir:

Malzeme listesinde, her iki amaç için de yıldız işareti olmayan parçalar gereklidir.

Bir yıldız işaretli parçalar, yalnızca daha özerk bir quadcopter'ın bitmemiş projesi için gereklidir.

İki yıldızlı parçalar yalnızca daha sınırlı quadcopter için gereklidir.

Her iki projede de ortak olan adımlar, başlıktan sonra işaretlenmez

Yalnızca daha sınırlı özerk olmayan quadcopter için gerekli olan adımlar, başlıktan sonra "(Uno)" ifadesini içerir.

Yalnızca devam etmekte olan otonom quadcopter için gerekli olan adımların başlığından sonra "(Mega)" ifadesi bulunur.

Uno tabanlı dörtlü oluşturmak için, başlıktan sonra "(Mega)" ile herhangi bir adımı atlayarak adımları sırayla izleyin.

Mega tabanlı dörtlü üzerinde çalışmak için, başlıktan sonra "(Uno)" ile herhangi bir adımı atlayarak adımları sırayla izleyin.

Adım 1: Materyalleri Toplayın

Bileşenler:

1) Bir quadcopter çerçevesi (tam çerçeve muhtemelen önemli değil) (15 $)

2) Dört adet 2830, 900kV fırçasız motor (veya benzeri) ve dört adet montaj aksesuar paketi (4x6$ + 4x4$ = toplam 40$)

3) Dört adet 20A UBEC ESC (4x10$ = toplam 40$)

4) Bir adet güç dağıtım panosu (XT-60 bağlantılı) (20$)

5) XT-60 bağlantılı bir adet 3s, 3000-5000mAh LiPo pil (3000mAh yaklaşık 20 dakikalık uçuş süresine karşılık gelir) (25$)

6) Çok sayıda pervane (bunlar çok kırılır) (10$)

7) Bir Arduino Mega 2560* (40 $)

8) Bir Arduino Uno R3 (20$)

9) İkinci bir Arduino Uno R3** (20 $)

10) Bir Arduino Ultimate GPS Kalkanı (kalkana ihtiyacınız yoktur, ancak farklı bir GPS kullanmak farklı kablolama gerektirir) (45 $)

11) İki HC-12 kablosuz alıcı-verici (2x$5 = $10)

12) Bir MPU-6050, 6DOF (serbestlik derecesi) cayro/ivmeölçer (5$)

13) Bir Turnigy 9x 2.4GHz, 9 kanallı verici/alıcı çifti (70$)

14) Arduino dişi (istiflenebilir) başlıklar (20 $)

15) LiPo Pil Dengesi şarj cihazı (ve 12V DC adaptör, dahil değildir) (20$)

17) USB A'dan B'ye erkekten erkeğe adaptör kablosu (5 $)

17) Koli bandı

18) Shrink boru

Teçhizat:

1) Bir havya

2) lehim

3) Plastik Epoksi

4) Çakmak

5) Tel striptizci

6) Alyan anahtarı takımı

Gerçek zamanlı FPV (birinci şahıs görünümü) video iletimi için isteğe bağlı bileşenler:

1) Küçük bir FPV kamera (bu, kullandığımız oldukça ucuz ve kötü kaliteli olana bağlantı verir, daha iyisini değiştirebilirsiniz) (20 $)

2) 5.6GHz video verici/alıcı çifti (832 model kullanıldı) (30$)

3) 500mAh, 3s (11.1V) LiPo pil (7 $) (biz muz fişle kullandık, ancak geçmişe bakıldığında TS832 vericisi ile uyumlu bir konektöre sahip olduğundan bağlantılı pili kullanmanızı öneririz ve bu nedenle ' t lehimleme gerektirir).

4) 2 1000mAh 2s (7.4V) LiPo pil veya benzeri (5$). 1000 mAh'den fazla olduğu sürece mAh sayısı kritik değildir. Yukarıdaki ile aynı ifade, iki pilden birinin fiş tipi için geçerlidir. Diğeri monitöre güç sağlamak için kullanılacak, bu yüzden ne olursa olsun lehimlemeniz gerekecek. Muhtemelen bunun için bir XT-60 fişli bir tane almak en iyisidir (biz de öyle yaptık). Bu tür için bir bağlantı burada: XT-60 fişli 1000mAh 2s (7.4V) LiPo

5) LCD monitör (isteğe bağlı) (15$). Doğrudan bir dizüstü bilgisayarda görüntülemek için bir AV-USB adaptörü ve DVD kopyalama yazılımı da kullanabilirsiniz. Bu aynı zamanda video ve fotoğrafları gerçek zamanlı olarak görüntülemek yerine kaydetme seçeneği de sunar.

6) Bağlantılı olanlardan farklı fişlere sahip piller satın aldıysanız, uygun adaptörlere ihtiyacınız olabilir. Ne olursa olsun, monitöre güç sağlayan pilin fişine karşılık gelen bir adaptör edinin. XT-60 adaptörlerini nereden alacağınız burada

* = yalnızca daha gelişmiş proje için

** = sadece daha temel proje için

Maliyetler:

Sıfırdan başlıyorsanız (ancak bir havya vb. ile), FPV sistemi yok: ~370$

Halihazırda bir RC verici/alıcınız, LiPo pil şarj cihazınız ve LiPo piliniz varsa: ~260$

FPV sisteminin maliyeti: 80 $

Adım 2: Çerçeveyi Birleştirin

Çerçeveyi Birleştirin
Çerçeveyi Birleştirin
Çerçeveyi Birleştirin
Çerçeveyi Birleştirin
Çerçeveyi Birleştirin
Çerçeveyi Birleştirin

Bu adım, özellikle de kullandığımız önceden hazırlanmış çerçeveyi kullanıyorsanız oldukça basittir. Sadece verilen vidaları kullanın ve çerçeveniz için uygun bir alyan anahtarı veya tornavida kullanarak çerçeveyi gösterildiği gibi bir araya getirin. Aynı renkteki kolların (bu resimdeki gibi) yan yana olduğundan emin olun ki drone önü ve arkası net olsun. Ayrıca, alt plakanın uzun kısmının zıt renkli kolların arasından dışarı çıktığından emin olun. Bu daha sonra önem kazanır.

Adım 3: Motorları Monte Edin ve Esc'leri Bağlayın

Motorları Bağlayın ve Escs'i Bağlayın
Motorları Bağlayın ve Escs'i Bağlayın
Motorları Bağlayın ve Escs'i Bağlayın
Motorları Bağlayın ve Escs'i Bağlayın
Motorları Bağlayın ve Escs'i Bağlayın
Motorları Bağlayın ve Escs'i Bağlayın
Motorları Bağlayın ve Escs'i Bağlayın
Motorları Bağlayın ve Escs'i Bağlayın

Çerçeve monte edildiğine göre, dört motoru ve dört montaj aksesuarını çıkarın. Motorları ve bağlantıları yerine vidalamak için montaj setlerinde bulunan vidaları veya quadcopter çerçevesinden kalan vidaları kullanabilirsiniz. Bağlantısını verdiğimiz bağlantıları satın alırsanız, yukarıda resmedilen iki ekstra bileşen alacaksınız. Bu parçalar olmadan iyi bir motor performansı elde ettik, bu yüzden ağırlığı azaltmak için onları bıraktık.

Motorlar yerine vidalandığında, güç dağıtım kartını (PDB) quadcopter çerçevesinin üst plakasının üzerine epoksi ile yerleştirin. Pil konektörü, yukarıdaki resimde olduğu gibi farklı renkteki kollar arasında (alt plakanın uzun kısımlarından birine paralel) bakacak şekilde yönlendirdiğinizden emin olun.

Ayrıca dişi dişli dört pervane konisine sahip olmalısınız. Bunları şimdilik bir kenara koyun.

Şimdi ESC'lerinizi çıkarın. Bir tarafta, biri kırmızı diğeri siyah olmak üzere iki kablo çıkacaktır. Dört ESC'nin her biri için kırmızı kabloyu PDB üzerindeki pozitif konektöre ve siyah kabloyu negatife takın. Farklı bir PDB kullanıyorsanız, bu adımın lehimleme gerektirebileceğini unutmayın. Şimdi her motordan çıkan üç kablonun her birini bağlayın. Bu noktada hangi ESC kablosunu hangi motor kablosuna bağladığınızın bir önemi yoktur (tek bir ESC'nin tüm kablolarını aynı motora bağladığınız sürece!) Daha sonra ters polariteyi düzelteceksiniz. Tellerin ters çevrilmesi tehlikeli değildir; sadece motorun geri dönmesine neden olur.

Adım 4: Arduino ve Shield'ı Hazırlayın

Arduino ve Shield'ı hazırlayın
Arduino ve Shield'ı hazırlayın
Arduino ve Shield'ı hazırlayın
Arduino ve Shield'ı hazırlayın

Başlamadan önce bir not

İlk olarak, tüm telleri doğrudan birlikte lehimlemeyi seçebilirsiniz. Ancak, sorun giderme ve projeyi uyarlamak için çok fazla esneklik sağladıkları için pin başlıklarını kullanmanın paha biçilmez olduğunu gördük. Aşağıda, yaptıklarımızın bir açıklaması yer almaktadır (ve başkalarının yapmasını tavsiye ederiz).

Arduino ve kalkanı hazırlayın

Arduino Mega'nızı (veya özerk olmayan dörtlü yapıyorsanız bir Uno), GPS kalkanınızı ve istiflenebilir başlıkları çıkarın. İstiflenebilir başlıkların erkek ucunu, yukarıdaki resimde gösterildiği gibi, önceden lehimlenmiş pimlere paralel pim sıralarında GPS kalkanı üzerindeki yerinde lehimleyin. Ayrıca 3V, CD, … RX etiketli pin sırasına istiflenebilir başlıklarda lehimleyin. Alttan yapışan pimlerdeki fazla uzunluğu kesmek için bir tel kesici kullanın. Üstleri bükülmüş erkek başlıkları tüm bu istiflenebilir başlıklara yerleştirin. Bunlar, bileşenlerin geri kalanı için telleri lehimleyeceğiniz şeydir.

Pinlerin Arduino'dakilerle (Mega veya Uno) eşleştiğinden emin olarak GPS kalkanını üste takın. Mega kullanıyorsanız, kalkanı yerine yerleştirdikten sonra birçok Arduino'nun açıkta kalacağını unutmayın.

Arduino PDB üzerinde dururken herhangi bir kısa devreyi önlemek için, açıktaki tüm pin lehimlerini kaplayacak şekilde Arduino'nun altına elektrik bandı yerleştirin.

Adım 5: Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Uno)

Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Uno)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Uno)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Uno)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Uno)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Uno)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Uno)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Uno)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Uno)

Yukarıdaki şema, tasarımımızı ağırlıklı olarak onunkine dayandırdığımız için Joop Brooking tarafından yapılan şema ile neredeyse aynıdır.

*Bu şemanın uygun şekilde monte edilmiş bir GPS kalkanı olduğunu varsaydığını ve dolayısıyla GPS'in bu şemada görünmediğini unutmayın.

Yukarıdaki şema, özellikle Arduino içeren şemalar için şiddetle tavsiye edilen Fritzing yazılımı kullanılarak hazırlanmıştır. Parçalarımız genellikle Fritzing'in içerdiği parça kitaplığında bulunmadığından, çoğunlukla esnek bir şekilde düzenlenebilen genel parçalardan yararlandık.

-GPS kalkanındaki anahtarın "Doğrudan Yazma" olarak değiştirildiğinden emin olun.

-Şimdi tüm bileşenleri yukarıdaki şemaya göre bağlayın (pil hariç!) (Aşağıdaki GPS veri kabloları ile ilgili önemli not).

-ESC'leri motorlara ve PDB'ye bağladığınızı unutmayın, bu nedenle şemanın bu kısmı yapılır.

-Ayrıca, GPS verilerinin (sarı teller) Arduino'daki 0 ve 1 pinlerinden (GPS'deki ayrı Tx ve Rx pinlerinden değil) çıktığını unutmayın. Bunun nedeni, "Doğrudan Yazma" (aşağıya bakın) için yapılandırılan GPS'in doğrudan uno üzerindeki donanım seri bağlantı noktalarına (0 ve 1 numaralı pinler) çıkış vermesidir. Bu, en açık şekilde, komple kablolamanın üstündeki ikinci resimde gösterilmektedir.

-RC alıcısını bağlarken yukarıdaki resme bakın. Vin ve Gnd sırasıyla ikinci ve üçüncü sıralarda (ve ikinci ila en uzak pin sütununda) iken veri kablolarının en üst sıraya girdiğini gözlemleyin.

- HC-12 alıcı-vericisi, RC alıcısı ve PDB'den Arduino'nun Vin'ine 5Vout için kablolama yapmak için istiflenebilir başlıklar kullandık, gyro için ise kabloları doğrudan panoya lehimledik ve etrafında ısıyla daralan borular kullandık. lehim. Bileşenlerden herhangi biri için yapmayı seçebilirsiniz, ancak küçük parçanın monte edilmesini kolaylaştıran yerden tasarruf sağladığı için doğrudan jiroskopa lehimleme önerilir. Başlıkları kullanmak, ön tarafta küçük bir miktar daha fazla çalışmadır, ancak daha fazla esneklik sağlar. Telleri doğrudan lehimlemek uzun vadede daha güvenli bir bağlantıdır, ancak bu bileşeni başka bir projede kullanmak daha zor olduğu anlamına gelir. GPS kalkanında başlıklar kullandıysanız, ne yaparsanız yapın hala yeterli miktarda esnekliğe sahip olduğunuzu unutmayın. En önemlisi, GPS üzerindeki 0 ve 1 pinlerindeki GPS veri kablolarının çıkarılmasının ve değiştirilmesinin kolay olduğundan emin olun.

Projemizin sonunda, tüm bileşenlerimizi çerçeveye takmak için iyi bir yöntem tasarlayamadık. Sınıfımızın zaman baskısı nedeniyle, çözümlerimiz genellikle çift taraflı köpük bant, koli bandı, elektrik bandı ve zip bağları etrafında dönüyordu. Bunu daha uzun vadeli bir proje olarak planlıyorsanız, sabit montaj yapıları tasarlamak için daha fazla zaman harcamanızı şiddetle tavsiye ederiz. Tüm bunlarla birlikte, sadece hızlı bir prototip yapmak istiyorsanız, sürecimizi takip etmekten çekinmeyin. Ancak jiroskopun güvenli bir şekilde monte edildiğinden emin olun. Arduino'nun quadcopter'ın ne yaptığını bilmesinin tek yolu budur, bu yüzden uçuşta hareket ederse sorun yaşarsınız.

Her şey bağlı ve yerindeyken, LiPo pilinizi alın ve çerçevenin üst ve alt plakaları arasına kaydırın. Bağlayıcısının PDB'nin bağlayıcısıyla aynı yönü gösterdiğinden ve aslında bağlanabildiklerinden emin olun. Pili yerinde tutmak için koli bandı kullandık (cırt bant da işe yarar, ancak koli bandından daha can sıkıcıdır). Koli bandı, pili kolayca değiştirebildiği veya şarj için çıkarabildiği için iyi çalışır. Ancak pili SIKÇA bantladığınızdan emin olmalısınız, sanki pil uçuş sırasında hareket ediyormuş gibi bu dronun dengesini ciddi şekilde bozabilir. Pili henüz PDB'ye BAĞLAMAYIN.

Adım 6: Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Mega)

Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Mega)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Mega)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Mega)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Mega)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Mega)
Bileşenleri Birbirine Bağlayın ve Pili Yerleştirin (Mega)

Yukarıdaki şema, özellikle arduino içeren şemalar için şiddetle tavsiye edilen Fritzing yazılımı kullanılarak hazırlanmıştır. Parçalarımız genellikle Fritzing'in içerdiği parça kitaplığında olmadığı için çoğunlukla genel parçalardan yararlandık.

-Bu şemanın uygun şekilde monte edilmiş bir GPS kalkanı olduğunu varsaydığını ve dolayısıyla GPS'in bu şemada görünmediğini unutmayın.

-Mega 2560'ınızdaki anahtarı "Yumuşak Seri"ye çevirin.

-Şimdi tüm bileşenleri yukarıdaki şemaya göre bağlayın (pil hariç!)

-ESC'leri motorlara ve PDB'ye bağladığınızı unutmayın, bu nedenle şemanın bu kısmı yapılır.

-Pin 8'den Rx'e ve Pin 7'den Tx'e atlama kabloları oradadır çünkü (bu kalkanın yapıldığı Uno'nun aksine), mega, pim 7 ve 8'de evrensel bir asenkron alıcı-vericiden (UART) yoksundur ve bu nedenle donanım seri pinlerini kullanmalıyız. Daha sonra tartışılacak olan donanım seri pinlerine ihtiyaç duymamızın daha fazla nedeni var.

-RC alıcısını bağlarken yukarıdaki resme bakın. Vin ve Gnd sırasıyla ikinci ve üçüncü sıralarda (ve ikinci ila en uzak pin sütununda) iken veri kablolarının en üst sıraya girdiğini gözlemleyin.

- HC-12 alıcı-vericisi, RC alıcısı ve PDB'den Arduino'nun Vin'ine 5Vout için kablolama yapmak için istiflenebilir başlıklar kullandık, jiroskop için telleri doğrudan lehimledik ve lehimin etrafında ısıyla daralan borular kullandık. Herhangi bir bileşen için yapmayı seçebilirsiniz. Başlıkları kullanmak, ön tarafta küçük bir miktar daha fazla çalışmadır, ancak daha fazla esneklik sağlar. Telleri doğrudan lehimlemek uzun vadede daha güvenli bir bağlantıdır, ancak bu bileşeni başka bir projede kullanmak daha zor olduğu anlamına gelir. GPS kalkanında başlıklar kullandıysanız, ne yaparsanız yapın hala yeterli miktarda esnekliğe sahip olduğunuzu unutmayın.

Projemizin sonunda, tüm bileşenlerimizi çerçeveye takmak için iyi bir yöntem tasarlayamadık. Sınıfımızın zaman baskısı nedeniyle, çözümlerimiz genellikle çift taraflı köpük bant, koli bandı, elektrik bandı ve zip bağları etrafında dönüyordu. Bunu daha uzun vadeli bir proje olarak planlıyorsanız, sabit montaj yapıları tasarlamak için daha fazla zaman harcamanızı şiddetle tavsiye ederiz. Tüm bunlarla birlikte, sadece hızlı bir prototip yapmak istiyorsanız, sürecimizi takip etmekten çekinmeyin. Ancak jiroskopun güvenli bir şekilde monte edildiğinden emin olun. Arduino'nun quadcopter'ın ne yaptığını bilmesinin tek yolu budur, bu yüzden uçuşta hareket ederse sorun yaşarsınız.

Her şey bağlı ve yerindeyken, LiPo pilinizi alın ve çerçevenin üst ve alt plakaları arasına kaydırın. Bağlayıcısının PDB'nin bağlayıcısıyla aynı yönü gösterdiğinden ve aslında bağlanabildiklerinden emin olun. Pili yerinde tutmak için koli bandı kullandık (cırt bant da işe yarar, ancak koli bandından daha can sıkıcıdır). Koli bandı, pili kolayca değiştirebildiği veya şarj için çıkarabildiği için iyi çalışır. Ancak pili SIKÇA bantladığınızdan emin olmalısınız, sanki pil uçuş sırasında hareket ediyormuş gibi bu dronun dengesini ciddi şekilde bozabilir. Pili henüz PDB'ye BAĞLAMAYIN.

Adım 7: Alıcıyı Bağlayın

Alıcıyı Bağla
Alıcıyı Bağla
Alıcıyı Bağla
Alıcıyı Bağla

RC alıcısını alın ve geçici olarak 5V güç kaynağına bağlayın (Arduino'yu USB veya 9V güç ile veya ayrı bir güç kaynağı ile çalıştırarak. LiPo'yu Arduino'ya henüz bağlamayın). RC alıcısı ile birlikte gelen bağlama pimini alın ve alıcı üzerindeki BIND pimlerine yerleştirin. Alternatif olarak, yukarıdaki fotoğrafta gösterildiği gibi BIND sütunundaki üst ve alt pimleri kısaltın. Alıcıda kırmızı bir ışık hızla yanıp sönmelidir. Şimdi kumandayı alın ve yukarıda gösterildiği gibi kapalıyken arkadaki düğmeye basın. Düğmeye basıldığında, denetleyiciyi açın. Şimdi alıcıdaki yanıp sönen ışık sabit yanmalıdır. Alıcı bağlı. Bağlama kablosunu çıkarın. Farklı bir güç kaynağı kullanıyorsanız, alıcıyı Arduino'dan 5V'a yeniden bağlayın.

Adım 8: (Opsiyonel) Kabloları Birlikte Bağlayın ve FPV Kamera Sistemini Monte Edin

(Opsiyonel) Kabloyu Birlikte Bağlayın ve FPV Kamera Sistemini Monte Edin
(Opsiyonel) Kabloyu Birlikte Bağlayın ve FPV Kamera Sistemini Monte Edin
(Opsiyonel) Kabloyu Birlikte Bağlayın ve FPV Kamera Sistemini Monte Edin
(Opsiyonel) Kabloyu Birlikte Bağlayın ve FPV Kamera Sistemini Monte Edin

İlk olarak, monitördeki güç ve topraklama kablolarıyla XT-60 adaptörünü birlikte lehimleyin. Bunlar monitörden monitöre değişebilir, ancak güç neredeyse her zaman kırmızı, zemin neredeyse her zaman siyah olacaktır. Şimdi lehimli telleri olan adaptörü XT-60 fişli 1000mAh LiPo'nuza takın. Monitör (genellikle) mavi arka planla açılmalıdır. İşte en zor adım!

Şimdi alıcınızdaki ve vericinizdeki antenleri vidalayın.

Küçük 500mAh Lipo'nuzu vericiye bağlayın. En sağdaki pim (antenin hemen altındaki) pilin topraklamasıdır (V_), soldaki bir sonraki pim V+'dır. Kameraya giden üç kablo geliyor. Kameranız, vericiye uyan üçü bir arada fişle birlikte gelmelidir. Ortada sarı veri kablosunun olduğundan emin olun. Bağladığımız pilleri bunun için fişlerle kullandıysanız, bu adım herhangi bir lehimleme gerektirmemelidir.

Son olarak, diğer 1000 mAh pilinizi alıcınızla birlikte gelen DC çıkış kablosuyla bağlayın ve ardından bunu alıcınızdaki DC giriş bağlantı noktasına takın. Son olarak, alıcınızla birlikte gelen AVin kablosunun siyah ucunu alıcınızdaki AVin bağlantı noktasına, diğer ucunu (sarı, dişi) monitörünüzün AVin kablosunun sarı erkek ucuna bağlayın.

Bu noktada, monitörde bir kamera görüntüsü görebilmeniz gerekir. Eğer yapamıyorsanız, hem alıcının hem de vericinin açık olduğundan (küçük ekranlarında sayıları görmelisiniz) ve aynı kanalda olduklarından emin olun (her ikisi için de kanal 11'i kullandık ve başarılı olduk). Ayrıca, monitördeki kanalı değiştirmeniz gerekebilir.

Bileşenleri çerçeveye monte edin.

Kurulumu tamamladıktan sonra uçmaya hazır olana kadar pilleri fişten çekin.

9. Adım: GPS Veri Alımını Ayarlayın

GPS Veri Alımını Ayarlayın
GPS Veri Alımını Ayarlayın
GPS Veri Alımını Ayarlayın
GPS Veri Alımını Ayarlayın

İkinci Arduino'nuzu, yukarıdaki şemada gösterildiği gibi ikinci HC-12 alıcı-vericinizle bağlayın, kurulumun yalnızca bir bilgisayara takılıysa görüntülendiği gibi çalıştırılacağını unutmayın. Sağlanan alıcı-verici kodunu indirin, seri monitörünüzü 9600 baud'a açın.

Daha temel kurulumu kullanıyorsanız, GPS kalkanınıza güç verilmişse ve diğer HC-12 alıcı-vericisine doğru şekilde bağlanmışsa (ve kalkandaki anahtar "Doğrudan Yazma" konumundaysa) GPS cümlelerini almaya başlamalısınız.

Mega ile anahtarın "Yumuşak Seri" açık olduğundan emin olun.

Adım 10: Kurulum Kodunu Gerçekleştirin (Uno)

Bu kod, Joop Brokking'in Arduino quadcopter eğitiminde kullandığı kodla aynıdır ve yazdığı için tüm övgüyü hak ediyor.

Pil takılı değilken, bilgisayarınızı Arduino'ya bağlamak için USB kablosunu kullanın ve ekteki Kurulum Kodunu yükleyin. RC vericinizi açın. Seri monitörünüzü 57600 baud'a açın ve komutları izleyin.

Genel hatalar:

Kod yüklenemezse, UNO/GPS kalkanındaki 0 ve 1 pinlerinin çıkarıldığından emin olun. Bu, aygıtın bilgisayarla iletişim kurmak için kullandığı donanım bağlantı noktasıyla aynıdır, bu nedenle boş olmalıdır.

Kod aynı anda birçok adımı atlarsa, GPS anahtarınızın "Doğrudan Yazma" açık olduğundan emin olun.

Herhangi bir alıcı algılanmazsa, verici açıkken alıcınızda sabit (ancak loş) bir kırmızı ışık olduğundan emin olun. Eğer öyleyse, kablolamayı kontrol edin.

Herhangi bir jiroskop algılanmazsa, bunun nedeni jiroskopun hasar görmüş olması veya kodun yazılması için tasarlanandan farklı bir jiroskop tipine sahip olmanız olabilir.

Adım 11: Kurulum Kodunu Gerçekleştirin (Mega)

Bu kod, Joop Brokking'in Arduino quadcopter eğitiminde kullandığı kodla aynıdır ve yazdığı için tüm övgüyü hak ediyor. Alıcı girişlerinin doğru Pin Change Interrupt pinlerine karşılık gelmesi için kablolamayı Mega'ya uyarladık.

Pil takılı değilken, bilgisayarınızı Arduino'ya bağlamak için USB kablosunu kullanın ve ekteki Kurulum Kodunu yükleyin. Seri monitörünüzü 57600 baud'a açın ve komutları izleyin.

Adım 12: ESC'leri kalibre edin (Uno)

Bir kez daha, bu kod Joop Brokking'in koduyla aynıdır. Tüm değişiklikler, GPS ve Arduino'yu entegre etme çabasıyla yapıldı ve daha sonra, daha gelişmiş quadcopter yapımının açıklamasında bulunabilir.

Ekli ESC kalibrasyon kodunu yükleyin. Seri monitörde 'r' harfini yazın ve geri dönün. Listelenen gerçek zamanlı RC kontrolör değerlerini görmeye başlamalısınız. Gaz kelebeği, yuvarlanma, eğim ve sapmanın uç noktalarında 1000 ile 2000 arasında değiştiğini doğrulayın. Ardından 'a' yazın ve geri dönün. Gyro kalibrasyonunu bırakın ve jironun dörtlü hareketini kaydettiğini doğrulayın. Şimdi arduino'yu bilgisayardan çıkarın, kontrol ünitesindeki gazı sonuna kadar itin ve pili bağlayın. ESC'ler farklı bip tonları arasında geçiş yapmalıdır (ancak bu, ESC'ye ve donanım yazılımına bağlı olarak farklı olabilir). Gazı sonuna kadar itin. ESC'ler daha düşük bip sesleri çıkarmalı, ardından sessiz kalmalıdır. Pili çıkarın.

Opsiyonel olarak bu noktada motor montaj aksesuar paketlerinizle birlikte gelen konileri kullanarak pervaneleri sıkıca vidalayabilirsiniz. Ardından 1 - 4 numaralı motorları en düşük güçte çalıştırmak için sırasıyla 1 - 4 arasındaki sayıları seri monitöre girin. Program, sahne dengesizliğinden kaynaklanan sallama miktarını kaydedecektir. Aksesuarın bir tarafına veya diğer tarafına az miktarda scotch bant ekleyerek bunu düzeltmeyi deneyebilirsiniz. Bu adım olmadan iyi bir uçuş gerçekleştirebileceğimizi gördük, ancak belki de dengeleyicileri dengelediğimizden biraz daha az verimli ve daha yüksek sesle.

Adım 13: ESC'leri kalibre edin (Mega)

Bu kod Brokking'in koduna çok benzer, ancak onu (ve ilgili kablolamayı) Mega ile çalışacak şekilde uyarladık.

Ekli ESC kalibrasyon kodunu yükleyin. Seri monitörde 'r' harfini yazın ve geri dönün. Listelenen gerçek zamanlı RC kontrolör değerlerini görmeye başlamalısınız. Gaz kelebeği, yuvarlanma, eğim ve sapmanın uç noktalarında 1000 ile 2000 arasında değiştiğini doğrulayın.

Ardından 'a' yazın ve geri dönün. Gyro kalibrasyonunu bırakın ve jironun dörtlü hareketini kaydettiğini doğrulayın.

Şimdi arduino'yu bilgisayardan çıkarın, kontrol ünitesindeki gazı sonuna kadar itin ve pili bağlayın. ESC'ler üç düşük bip sesi ve ardından yüksek bir bip sesi çıkarmalıdır (ancak bu, ESC'ye ve donanım yazılımına bağlı olarak farklı olabilir). Gazı sonuna kadar itin. Pili çıkarın.

Bu kodda yaptığımız değişiklikler, ESC pinleri için PORTD kullanmaktan PORTA kullanmaya geçmek ve ardından bu portlara yazılan baytları değiştirerek kablolama şemasında gösterildiği gibi uygun pinleri aktif hale getirmekti. Bu değişiklik, PORTD kayıt pinlerinin Mega'da Uno'da olduğu gibi aynı konumda olmamasından kaynaklanmaktadır. Okulumuzun mağazasında bulunan eski bir marka dışı Mega ile çalıştığımız için bu kodu tam olarak test edemedik. Bu, bazı nedenlerden dolayı tüm PORTA kayıt pinlerinin ESC'leri düzgün şekilde etkinleştiremediği anlamına geliyordu. Bazı test kodlarımızda veya eşittir operatörünü (|=) kullanmakta da sorun yaşadık. ESC pin voltajlarını ayarlamak için bayt yazarken bunun neden sorunlara yol açtığından emin değiliz, bu yüzden Brooking'in kodunu mümkün olduğunca az değiştirdik. Bu kodun işlevselliğe çok yakın olduğunu düşünüyoruz, ancak kilometreniz değişebilir.

Adım 14: Havadan Alın!! (Yok)

Ve yine, bu üçüncü dahiyane kod parçası Joop Brokking'in eseridir. Tüm bu üç kod parçasındaki değişiklikler, yalnızca GPS verilerini Arduino'ya entegre etme girişimimizde mevcuttur.

Pervaneleriniz çerçeveye sıkıca monte edilmiş ve tüm bileşenler bağlanmış, bantlanmış veya başka bir şekilde monte edilmiş haldeyken, uçuş kontrol kodunu Arduino'nuza yükleyin, ardından Arduino'yu bilgisayarınızdan çıkarın.

Quadcopter'inizi dışarı çıkarın, pili takın ve vericinizi açın. İsteğe bağlı olarak, GPS alma kurulumunuzun yanı sıra video alım kurulum ve monitörünüze bağlı bir dizüstü bilgisayar getirin. Alıcı-verici kodunu karasal Arduino'nuza yükleyin, seri monitörünüzü 9600 baud'a açın ve GPS veri akışını izleyin.

Artık uçmaya hazırsınız. Quadcopter'i devreye almak için gazı aşağı doğru bastırın ve sola doğru yalpalayın, ardından havada asılı kalmak için gazı yavaşça yukarı kaldırın. Rahatlayana kadar yere ve çimen gibi yumuşak yüzeylere doğru alçaktan uçarak başlayın.

Drone ve GPS'i aynı anda çalıştırmayı başardığımızda, drone'u heyecanla uçurduğumuzu gösteren gömülü videoyu izleyin.

Adım 15: Havadan Alın!! (Mega)

Mega'nın ESC kalibrasyon koduyla sorunumuz nedeniyle, bu kart için hiçbir zaman uçuş kontrol kodu oluşturamadık. Bu noktaya geldiyseniz, Mega için çalışmasını sağlamak için en azından ESC kalibrasyon koduyla uğraştığınızı hayal ediyorum. Bu nedenle, muhtemelen son adımda yaptığınız gibi uçuş kontrol kodunda benzer değişiklikler yapmanız gerekecektir. Mega için ESC kalibrasyon kodumuz başka hiçbir değişiklik yapmadan sihirli bir şekilde çalışıyorsa, bu adım için çalışması için stok koduna yapmanız gereken yalnızca birkaç şey vardır. Önce tüm PORTD örneklerini gözden geçirmeniz ve PORTA ile değiştirmeniz gerekecektir. Ayrıca, DDRD'yi DDRA olarak değiştirmeyi unutmayın. Ardından, uygun pinleri etkinleştirmeleri için PORTA kaydına yazılan tüm baytları değiştirmeniz gerekecektir. Bunu yapmak için, pimleri yüksek olarak ayarlamak için B11000011 baytını ve pimleri düşük olarak ayarlamak için B00111100 baytını kullanın. İyi Şanslar ve bir Mega kullanarak başarılı bir şekilde uçarsanız lütfen bize bildirin!

Adım 16: Mega Tasarımla Şu Anda Bulunduğumuz Yere Nasıl Geldik?

Bu proje, Arduino ve elektronik hobisine yeni başlayanlar olarak bizler için muazzam bir öğrenme deneyimi oldu. Bu nedenle, GPS'i Joop Brokking'in kodunu etkinleştirmeye çalışırken karşılaştığımız her şeyin destanını dahil etmeyi düşündük. Brokking'in kodu, yazdığımız her şeyden çok daha kapsamlı ve çok daha karmaşık olduğu için, onu mümkün olduğunca az değiştirmeye karar verdik. Arduino'ya veri göndermek için GPS kalkanını almaya çalıştık ve ardından Arduino'nun uçuş kodunu veya kablolamayı herhangi bir şekilde değiştirmeden HC12 alıcı-verici aracılığıyla bu bilgileri bize göndermesini sağladık. Hangi pinlerin mevcut olduğunu bulmak için Arduino Uno'muzun şemalarına ve kablolarına baktıktan sonra, mevcut tasarımın etrafında çalışmak için kullandığımız GPS alıcı-verici kodunu değiştirdik. Sonra her şeyin çalıştığından emin olmak için test ettik. Bu noktada, işler umut verici görünüyordu.

Bir sonraki adım, yeni değiştirdiğimiz ve test ettiğimiz kodu Brokking'in uçuş kontrolörü ile entegre etmekti. Bu çok zor değildi, ancak çabucak bir hatayla karşılaştık. Brokking'in uçuş kontrolörü, GPS kodumuz hem Yazılım Seri kitaplığını hem de Arduino GPS kitaplığını kullanırken Arduino Wire ve EEPROM kitaplıklarına güveniyor. Wire Library, Software Serial kitaplığına atıfta bulunduğundan, "_vector 3_ için birden çok tanım" olduğu için kodun derlenmediği bir hatayla karşılaştık, bu ne anlama geliyorsa. Google'a baktıktan ve kütüphaneleri araştırdıktan sonra, sonunda bu kütüphane çakışmasının bu kod parçalarını bir arada kullanmayı imkansız hale getirdiğini fark ettik. Bu yüzden alternatifler aramaya gittik.

Anladığımız şey, bize hata vermeyen tek kitaplık kombinasyonunun standart GPS kitaplığını neoGPS'e geçirmek ve ardından Seri Yazılım yerine AltSoftSerial kullanmaktı. Ancak bu kombinasyon işe yaradı, ancak AltSoftSerial sadece tasarımımızda bulunmayan belirli pinlerle çalışabilir. Bizi Mega'yı kullanmaya iten şey budur. Arduino Megas'ın birden fazla donanım seri bağlantı noktası vardır, bu da yazılım seri bağlantı noktalarını hiç açmaya gerek duymadan bu kitaplık çakışmasını atlayabileceğimiz anlamına geliyordu.

Ancak Mega'yı kullanmaya başladığımızda pin konfigürasyonunun farklı olduğunu hemen anladık. Uno'daki kesintileri olan pimler, Mega'da farklıdır. Benzer şekilde, SDA ve SCL pinleri farklı konumlardaydı. Her Arduino tipi için pin diyagramlarını inceledikten ve kodda adı geçen registerleri yeniden tanımladıktan sonra, uçuş kurulum kodunu sadece minimum yeniden kablolama ve yazılım değişikliği olmadan çalıştırabildik.

ESC kalibrasyon kodu, sorunlarla karşılaşmaya başladığımız yerdir. Buna daha önce kısaca değinmiştik, ancak temel olarak kod, ESC'leri kontrol etmek için kullanılan pinleri düzenlemek için pin registerlarını kullanır. Bu, kodun okunmasını standart pinMode() işlevini kullanmaktan daha zor hale getirir; ancak, kodun daha hızlı çalışmasını ve pinleri aynı anda etkinleştirmesini sağlar. Bu önemlidir çünkü uçuş kodu dikkatlice zamanlanmış bir döngüde çalışır. Arduinolar arasındaki pin farklılıklarından dolayı Mega üzerinde port register A kullanmaya karar verdik. Ancak, testlerimizde, yüksek çalıştırmamız söylendiğinde tüm pinler bize aynı çıkış voltajını vermedi. Bazı pinler 4.90V civarında bir çıkışa sahipti ve diğerleri bize 4.95V'a daha yakın verdi. Görünüşe göre sahip olduğumuz ESC'ler biraz titiz ve bu yüzden sadece daha yüksek voltajlı pinleri kullandığımızda düzgün çalışacaklardı. Bu daha sonra bizi doğru pinlerle konuşabilmemiz için A kaydına yazdığımız baytları değiştirmeye zorladı. ESC kalibrasyonu bölümünde bununla ilgili daha fazla bilgi var.

Bu, projenin bu bölümünde aldığımız kadarıyla. Bu değiştirilmiş ESC kalibrasyon kodunu test etmeye gittiğimizde, bir şey kısa devre yaptı ve Arduino ile iletişimimizi kaybettik. Bu bizi çok şaşırttı çünkü kabloların hiçbirini değiştirmemiştik. Bu bizi geri adım atmaya ve haftalarca uyumsuz parçalarımızı birleştirmeye çalıştıktan sonra uçan bir drone almak için sadece birkaç günümüz olduğunu fark etmeye zorladı. Bu yüzden geri döndük ve Uno ile daha basit projeyi yarattık. Ancak yine de yaklaşımımızın Mega ile biraz daha fazla zaman ayırmaya yakın olduğunu düşünüyoruz.

Amacımız, Brokking'in kodunu değiştirmeye çalışıyorsanız, karşılaştığımız engellerin bu açıklamasının size yardımcı olmasıdır. Ayrıca GPS'e dayalı herhangi bir otonom kontrol özelliğini kodlamayı deneme şansımız da olmadı. Bu, bir Mega ile çalışan bir drone oluşturduktan sonra çözmeniz gereken bir şey. Ancak, bazı ön Google araştırmalarına göre, bir Kalman filtresi uygulamak, uçuştaki konumu belirlemenin en kararlı ve doğru yolu olabilir. Bu algoritmanın durum tahminlerini nasıl optimize ettiği hakkında biraz araştırma yapmanızı öneririz. Bunun dışında, iyi şanslar ve yapabildiğimizden daha ileri giderseniz bize bildirin!

Önerilen: