İçindekiler:
- Gereçler
- Adım 1: İlk Deneyimim
- 2. Adım: Fiziksel Parçaları Birleştirme ve Hata Ayıklama İle İlgili İpuçları
- Adım 3: Arduino Denetleyicisi
- Adım 4: MPU-6050
- Adım 5: HC-05 Bluetooth Modülü
- Adım 6: Parçaların Bağlanması
- Adım 7: RemoteXY'nin Güzelliği
- Adım 8: Test Etme
- Adım 9: Kod Üzerinde Çalışıyorum. Eğitilebilirliği Birkaç Gün İçinde Bitirecek
Video: Arduino Drone Yaparken Sahip Olmak İstediğim Rehber: 9 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Bu belge, cep telefonumdan kontrol edebileceğim basit bir quadcopter yapma hedefime ulaşmak için kavramları anlamamı sağlayan süreçten geçen bir tür "Nasıl yönlendirilir" eğik çizgi belgesidir.
Bu projeyi yapmak için bir dronun gerçekte ne olduğu hakkında bir fikir edinmek istedim, benim durumumda bir quadcopter, bu yüzden biraz araştırma yapmaya başladım. Bir sürü YouTube videosu izledim, bir sürü makale ve Insructible sayfası okudum ve elimdeki bu.
Esasen bir drone'u iki parçaya bölebilirsiniz. Ben ona “Fiziksel” ve “Kontrolör” adını verdim. Fiziksel, esasen drone'u uçuran mekanikle ilgili olan her şeydir. Bunlar motor, şasi, pil, pervaneler ve drone'a fiziksel olarak uçma kabiliyeti veren diğer her şey gibi şeyler.
Kontrolör esasen uçuş kontrolörüdür. Drone'un düşmeden bir bütün olarak uçabilmesi için fiziksel olanı kontrol eden şey. Esasen mikrodenetleyici, üzerindeki yazılım ve yataklarını üçgenleştirmesine yardımcı olan sensörler. Sonuç olarak, bir drone'a sahip olmak için bir Kontrolöre ve kontrolörün "kontrol etmesi" için bir sürü fiziksel parçaya ihtiyacım vardı.
Gereçler
Proje için bütçe: 250$
Zaman Çerçevesi: 2 hafta
Satın alınacak şeyler:
- Fiziksel Çerçeve $20
- Bıçaklar 0 $ (Çerçeve ile birlikte gelir)
- Pil Paketi 25$
- ESC (Elektronik hız kontrol cihazları) 0 $ (Motorlarla birlikte gelir)
- Motorlar 70 $
uçuş kontrolörü
- Arduino nano 20$
- Arduino USB Kablosu $2
- Bluetooth Modülü (HC-05) 8 $
- 3 mm LED ve 330 Ohm dirençler ve teller 13 $
- GY-87 (İvmeölçer, Jiroskop) $5
- Prototip Panosu $10
- Erkek ve Dişi başlıklar $5
Başka
- Lehimleme takımı 10$
- multimetre 20$
Bir Mühendis olarak bu projeyi yapmaktan zevk almak istedim, bu yüzden mecbur olmadığım başka şeyler satın aldım.
Toplam: 208$
Adım 1: İlk Deneyimim
Tüm bileşenlerimi satın aldıktan sonra hepsini bir araya getirdim ve ardından Multiwii'yi (birçok DIY drone topluluğunun kullandığı yazılıma git) kullanarak drone'u başlatmaya çalıştım, ancak ne yaptığımı tam olarak anlamadığımı çabucak fark ettim. Yapıyordu çünkü çok fazla hata vardı ve onları nasıl düzelteceğime dair hiçbir fikrim yoktu.
Bundan sonra drone'u parçalara ayırmaya ve her bir bileşeni parça parça anlamaya ve olup biten her şeyi tamamen anlayacağım şekilde yeniden inşa etmeye karar verdim.
İlerleyen bölümlerde bulmacayı bir araya getirme sürecinden geçeceğim. Ondan önce hızlı bir genel bakış yapalım.
Fiziksel
Fiziksel olarak şunlara sahip olmalıyız: çerçeve, pervaneler, pil ve escs. Bunları bir araya getirmek oldukça kolay olacaktır. Bu parçaları ve hangilerini almanız gerektiğini anlamak için bu bağlantıyı ziyaret edebilirsiniz. Listelediğim parçaların her birini satın alma hakkında bilmeniz gerekenleri açıklıyor. Bu Youtube videosunu da izleyin. Parçaları bir araya getirmekte zorlanıyorsanız size yardımcı olacaktır.
2. Adım: Fiziksel Parçaları Birleştirme ve Hata Ayıklama İle İlgili İpuçları
Pervaneler ve Motorlar
- Pervanelerinizin doğru yönde olup olmadığını kontrol etmek için (Çevrilmiş veya değil), motorların gösterdiği yönde döndürdüğünüzde (çoğu motorda nasıl dönmesi gerektiğini gösteren oklar vardır), pervanelerin altında bir esinti hissetmelisiniz, yukarıda değil..
- Karşı pervanelerdeki vidalar aynı renkte olmalıdır.
- Bitişik pervanelerin rengi aynı olmalıdır.
- Ayrıca motorları yukarıdaki resimdeki gibi dönecek şekilde ayarladığınızdan emin olun.
- Bir motorun yönünü çevirmeye çalışıyorsanız, sadece telleri zıt uçlarda değiştirin. Bu, motorun yönünü tersine çevirecektir.
Pil ve Güç
- Herhangi bir nedenle bir şeyler parlıyorsa ve nedenini bulamıyorsanız, bunun nedeni büyük olasılıkla pozitif ve negatifleri değiştirmiş olmanızdır.
- Pillerinizi ne zaman şarj etmeniz gerektiğinden emin değilseniz, voltajı kontrol etmek için bir voltmetre kullanabilirsiniz. Pilde belirtilen özelliklerden daha düşükse, şarj edilmesi gerekir. Pillerinizi şarj etmek için bu bağlantıya göz atın.
- Çoğu LIPO pil, pil şarj cihazlarıyla birlikte gelmez. Onları ayrı olarak satın alırsınız.
Adım 3: Arduino Denetleyicisi
Bu, şüphesiz tüm bu projenin en zor kısmıdır. Bileşenleri havaya uçurmak çok kolaydır ve ne yaptığınızı bilmiyorsanız hata ayıklama son derece sinir bozucu olabilir. Ayrıca bu projede drone'umu bluetooth ve nasıl yapıldığını göstereceğim bir uygulama kullanarak kontrol ettim. Bu, projeyi özellikle daha da zorlaştırdı çünkü oradaki öğreticilerin %99'u radyo denetleyicileri kullanıyor (bu bir gerçek lol değil), ama endişelenmeyin, sizin için hayal kırıklığı yaşadım.
Bu yolculuğa çıkmadan önce ipuçları
- Cihazınızı bir PCB üzerinde sonlandırmadan önce bir devre tahtası kullanın. Bu, değişiklikleri kolayca yapmanızı sağlar.
- Bir bileşeni kapsamlı bir şekilde test ettiyseniz ve çalışmıyorsa, muhtemelen çalışmıyordur!
-
Bir cihazın fişini takmadan önce kaldırabileceği voltajlara bakın!
- Arduino 6 ila 20V arasında çalışabilir, ancak 12V'da kapatmaya çalışın, böylece onu havaya uçurmazsınız. Özellikleri hakkında daha fazla bilgiyi buradan okuyabilirsiniz.
- HC-05 5V'a kadar çalışabilir ancak bazı pinler 3.3V'da çalışır, bu yüzden buna dikkat edin. Bunu daha sonra konuşacağız.
- IMU(GY-521, MPU-6050) ayrıca 5V'de çalışır.
- Uygulamamızı oluşturmak için RemoteXY kullanacağız. Bir iOS cihazında kurmak istiyorsanız, farklı bir bluetooth modülü (HM-10) kullanmanız gerekir. Bununla ilgili daha fazla bilgiyi RemoteXY web sitesinde bulabilirsiniz.
Umarım ipuçlarını okumuşsunuzdur. Şimdi kontrolörün parçası olacak her bir bileşeni ayrı ayrı test edelim.
Adım 4: MPU-6050
Bu cihazın bir jiroskopu ve bir ivmeölçeri vardır, bu nedenle esasen size bir yöndeki (X, Y, Z) ivmeyi ve bu yönler boyunca açısal ivmeyi söyler.
Bunu test etmek için, bununla ilgili öğreticiyi kullanabiliriz, bu öğreticiyi Arduino web sitesinde kullanabiliriz. İşe yararsa, siz eğdikçe, döndürdükçe ve kurulumu hızlandırdıkça değişen bir ivmeölçer ve jiroskop değerleri akışı almalısınız. Ayrıca, neler olduğunu anlamak için kodu değiştirmeye ve değiştirmeye çalışın.
Adım 5: HC-05 Bluetooth Modülü
Bu kısmı yapmak zorunda değilsiniz ancak büyük olasılıkla modülün ayarlarından birini değiştirmeniz gerekeceğinden AT moduna (ayarlar modu) gidebilmeniz önemlidir. Bu, bu projenin en sinir bozucu kısımlarından biriydi. Modülümü AT moduna nasıl alacağımı bulmak için çok araştırma yaptım çünkü cihazım komutlarıma yanıt vermiyordu. Modülümün bozulduğu sonucuna varmam 2 günümü aldı. Bir tane daha sipariş ettim ve işe yaradı. AT moduna girmeyle ilgili bu eğiticiye göz atın.
HC-05 farklı türlerde gelir, bazılarında düğmeli, bazılarında ise her türlü tasarım değişkeni vardır. Sabit olanlardan biri, hepsinin bir "Pin 34"e sahip olmasıdır. Bu eğiticiye göz atın.
Bilmen gereken şeyler
- AT moduna geçmek için, gücü bağlamadan önce bluetooth modülünün 34 pinine 5V basılı tutun.
- 3.3V üzerinde çalıştığı için modülün RX pinine bir potansiyel bölücü bağlayın. Yine de 5V'ta kullanabilirsiniz, ancak bir şeyler ters giderse bu pimi kızartabilir.
- Pin 34'ü kullanırsanız (düğme veya çevrimiçi bulduğunuz başka bir yol yerine), modül bluetooth'un baud hızını 38400'e ayarlayacaktır. Bu nedenle, yukarıdaki öğreticinin bağlantısında kodda şöyle bir satır var:
BTSerial.başla(38400); // AT komutunda HC-05 varsayılan hız daha fazla
Modül hala "OK" ile yanıt vermiyorsa, tx ve rx pinlerini değiştirmeyi deneyin. Olmalı:
Bluetooth =>Arduino
RXD =>TX1
TDX =>RX0
Bu hala işe yaramazsa, koddaki pinleri diğer Arduino pinleriyle değiştirmeyi seçin. Test edin, işe yaramazsa tx ve rx pinlerini değiştirin, ardından tekrar test edin
YazılımSeri BTSerial(10, 11); // RX | TX
Yukarıdaki satırı değiştirin. RX = 2, TX = 3 veya diğer geçerli kombinasyonları deneyebilirsiniz. Arduino pin numaralarına yukarıdaki resimden bakabilirsiniz.
Adım 6: Parçaların Bağlanması
Artık her şeyin çalıştığından emin olduğumuza göre, onları bir araya getirmenin zamanı geldi. Parçaları devrede gösterildiği gibi bağlayabilirsiniz. Bunu Electronoobs'tan aldım. Bu projede bana gerçekten yardımcı oldu. Projenin onun versiyonuna buradan göz atın. Bu öğreticiyi izliyorsanız, alıcı bağlantıları hakkında endişelenmenize gerek yok: input_Yaw, input_Pitch, vb. Tüm bunlar bluetooth ile halledilecek. Ayrıca bluetooth'u önceki bölümde yaptığımız gibi bağlayın. Tx ve rx pinlerim bana biraz sıkıntı veriyordu, bu yüzden Arduino'yu kullandım:
Normal pinler yerine RX 2 ve TX 3 olarak. Ardından, nihai ürüne sahip olana kadar geliştirmeye devam edeceğimiz basit bir uygulama yazacağız.
Adım 7: RemoteXY'nin Güzelliği
Uzun zamandır drone'u kontrol etmeme izin verecek kullanışlı bir Remote uygulaması oluşturmanın kolay bir yolunu düşünüyordum. Çoğu kişi MIT App Inventor kullanıyor, ancak kullanıcı arayüzü istediğim kadar güzel değil ve ayrıca resimli programlama hayranı değilim. Android Studio kullanarak tasarlayabilirdim ama bu çok fazla iş olurdu. RemoteXY'yi kullanan bir öğretici bulduğumda çok heyecanlandım. İşte web sitesine bağlantı. Kullanımı son derece kolaydır ve dokümantasyon çok iyidir. Drone'muz için basit bir kullanıcı arayüzü oluşturacağız. Sizinkini istediğiniz gibi özelleştirebilirsiniz. Sadece ne yaptığınızı bildiğinizden emin olun. Buradaki talimatları izleyin.
Bunu yaptıktan sonra, helikopterimizin gaz kelebeğini değiştirebilmemiz için kodu düzenleyeceğiz. /**** Yapmanız gereken şeyler ve neden ***/ içeren satırları kodunuza ekleyin.
Derlemiyorsa, kitaplığı indirdiğinizden emin olun. Ayrıca örnek bir çizim açın ve sizde olmayanları karşılaştırın.
//////////////////////////////////////////RemoteXY dahil kütüphane // /////////////////////////////////////////////
// RemoteXY bağlantı modunu seç ve kitaplığı dahil et
#define REMOTEXY_MODE_HC05_SOFTSERIAL
#include #include #include
// RemoteXY bağlantı ayarları
#define REMOTEXY_SERIAL_RX 2 #define REMOTEXY_SERIAL_TX 3 #define REMOTEXY_SERIAL_SPEED 9600
// Pervaneler
Servo L_F_prop; Servo L_B_prop; Servo R_F_prop; Servo R_B_prop;
// RemoteXY yapılandır
#pragma pack(push, 1) uint8_t RemoteXY_CONF = { 255, 3, 0, 0, 0, 61, 0, 8, 13, 0, 5, 0, 49, 15, 43, 43, 2, 26, 31, 4, 0, 12, 11, 8, 47, 2, 26, 129, 0, 11, 8, 11, 3, 17, 84, 104, 114, 111, 116, 116, 108, 101, 0, 129, 0, 66, 10, 7, 3, 17, 80, 105, 116, 99, 104, 0, 129, 0, 41, 34, 6, 3, 17, 82, 111, 108, 108, 0 }; // bu yapı, kontrol arayüzünüzün tüm değişkenlerini tanımlar struct {
// giriş değişkeni
int8_t Joystick_x; // -100..100 x-koordinat joystick konumu int8_t Joystick_y; // -100..100 y-koordinat joystick konumu int8_t ThrottleSlider; // 0..100 kaydırıcı konumu
// diğer değişken
uint8_t connect_flag; // =1 kablo bağlıysa, yoksa =0
} RemoteXY;
#pragma paketi(pop)
/////////////////////////////////////////////
// RemoteXY'yi BİTİR // /////////////////////////////////////// /
/********** Gaz kelebeği değerini tutmak için bu satırı ekleyin**************/
int input_THROTTLE;
geçersiz kurulum() {
RemoteXY_Init();
/**********Motorları Pinlere bağlayın Değerleri kendinize göre değiştirin **************/
L_F_prop.attach(4); // sol ön motor
L_B_prop.attach(5); //sol arka motor R_F_prop.attach(7); //sağ ön motor R_B_prop.attach(6); // sağ arka motor
/*************esc'nin programlama moduna girmesini engelle********************/
L_F_prop.writeMicroseconds(1000); L_B_prop.writeMicroseconds(1000); R_F_prop.writeMicroseconds(1000); R_B_prop.writeMicroseconds(1000); gecikme(1000);
}
boşluk döngüsü () {
RemoteXY_Handler();
/****** Uygulamadan aldığınız kısma değerini, çoğu ESC'nin çalıştığı değerler olan 1000 ve 2000 ile eşleştirin *********/
input_THROTTLE = map(RemoteXY. ThrottleSlider, 0, 100, 1000, 2000);
L_F_prop.writeMicroseconds(input_THROTTLE);
L_B_prop.writeMicroseconds(input_THROTTLE); R_F_prop.writeMicroseconds(input_THROTTLE); R_B_prop.writeMicroseconds(input_THROTTLE); }
Adım 8: Test Etme
Her şeyi doğru yaptıysanız, gaz kelebeğini yukarı ve aşağı kaydırarak helikopterinizi test edebilmelisiniz. Bunu dışarıda yaptığınızdan emin olun. Ayrıca pervaneleri açık tutmayın çünkü bu helikopterin zıplamasına neden olur. Henüz dengelemek için kodu yazmadık, bu yüzden BUNU PERVANELER AÇIKKEN TEST ETMEK KÖTÜ BİR FİKİR olurdu! Bunu sadece lmao için yaptım.
Gösteri sadece gaz kelebeğini uygulamadan kontrol edebilmemiz gerektiğini göstermek içindir. Motorların kekelediğini fark edeceksiniz. Bunun nedeni, ESC'lerin kalibre edilmemiş olmasıdır. Bunu yapmak için bu Github sayfasındaki talimatlara bir göz atın. Talimatları okuyun, ESC-Calibration.ino dosyasını açın ve bu talimatları izleyin. Neler olduğunu anlamak istiyorsanız, Electronoobs'un bu eğitimine göz atın.
Programı çalıştırırken, drone'yu tam gaz gideceği için iplerle bağladığınızdan emin olun. Ayrıca pervanelerin açık olmadığından emin olun. Benimkini sadece yarı deli olduğum için bıraktım. PERVANELERİNİZİ AÇIK BIRAKMAYIN!!! Bu gösterim ikinci videoda gösterilmiştir.
Adım 9: Kod Üzerinde Çalışıyorum. Eğitilebilirliği Birkaç Gün İçinde Bitirecek
Bu öğreticiyi kullanıyorsanız ve beni bekliyorsanız, hala üzerinde çalıştığımı eklemek istedim. Sadece hayatımda başka şeyler de ortaya çıktı, ben de üzerinde çalışıyorum, ama merak etmeyin yakında yayınlayacağım. En geç 10 Ağustos 2019'a kadar diyelim.
10 Ağustos Güncellemesi: Sizi asılı bırakmak istemedim. Maalesef geçen hafta proje üzerinde çalışmak için zamanım olmadı. Başka şeylerle çok meşguldü. Seni yönlendirmek istemiyorum. Umarım yakın gelecekte talimatı tamamlayacağım. Herhangi bir sorunuz varsa veya herhangi bir yardıma ihtiyacınız varsa, aşağıya bir yorum ekleyebilirsiniz, size geri döneceğim.
Önerilen:
Hiç Görüntülü Diyafona Sahip Olmak İstediniz mi?: 12 Adım
Hiç Görüntülü Diyafona Sahip Olmak İstiyor muydunuz?: Giriş İlk başta, Windows 10 bilgisayarımın video ve ses bağlantısını kurmak için gerçek Windows 10 Phone ve Windows Sanal Kalkanlarımı kullanmak istedim. Ama benim gibi yeni başlayanlar için bunu anlamak çok zordu, çünkü en azından yazmam gerekecekti
Aşı Olmak ya da Olmamak? Hastalık Simülasyonu ile Sürü Bağışıklığının Gözlenmesi Projesi: 15 Adım
Aşı Olmak ya da Olmamak? Hastalık Simülasyonu Yoluyla Sürü Bağışıklığını Gözlemleme Projesi: Projeye Genel Bakış: Projemiz, sürü bağışıklığını araştırıyor ve topluluklarımızdaki enfeksiyon oranlarını azaltmak için insanları aşı olmaya teşvik etmeyi umuyor. Programımız, bir hastalığın farklı aşı yüzdelerine sahip bir popülasyona nasıl bulaştığını simüle eder
Schizophyllum Komünü ile Olmak: Bulunan Mantarlardan Steril Bir Kültür Yaratmak: 3 Adım (Resimlerle)
Schizophyllum Komünü ile Olmak: Bulunan Mantarlardan Steril Bir Kültür Yaratın: Bu talimat, bulunan mantarları kullanarak bir petri kabında mantar Schizophyllum Komünü'nün (genel adı Split Gill mantarı) steril bir kültürünün nasıl oluşturulacağını açıklamaya odaklanmıştır. Schizophyllum Komünü'nün 28.000'den fazla cinsiyete sahip olduğu tespit edildi,
Ipod Touch'ta Mac OS 7'ye Sahip Olmak: 4 Adım
Mac OS 7'yi Ipod Touch'a Almak.: Tamam beyler. Diğer talimatlarımı okuduysanız, sadece ipod touch işletim sistemini tek başına çalıştırmaktan çok sıkıldığımı anlayacaksınız. daha fazlasına ihtiyacım var. bu yüzden, benim gibi bazı dikizciler için bu eğlenceli küçük öğreticiyi yapmaya karar verdim.Tabii ki
Elektrikli Zambak veya Çengelli İğne: Nasıl Güvende Olunur ve İyi Görünün Bunu Yaparken: 9 Adım (Resimlerle)
Elektrikli Zambak veya Emniyet Pimi: Nasıl Güvende Olunur ve Bunu Yaparken İyi Görün: Bu talimat hem yürüyüşçüler hem de bisikletçiler içindir. Kim geceleri görülmek ve hala iyi görünmek isterse. Kız arkadaşına, kız kardeşine, erkek kardeşine, ev arkadaşına ve hatta annene ver. Şık olup yürüyen, koşan veya bisiklete binen herkes geceleyin!!!