Başa dön
Arduino ile RC Uçak Yapımı (Strafordan Model Planör)

Arduino ile RC Uçak Yapımı (Strafordan Model Planör)

Merhaba arkadaşlar, bu yazımızda Arduino ile Köpük Strafordan Model Planör RC Uçak Yapımı nasıl olur birlikte öğreneceğiz.

Videoyu izleyerek Projeyi Baştan Sona İnceleyebilirsiniz.

Uçak tamamen strafordan yapılmıştır. Köpük strafordan uçak parçalarını üretmek için bir önceki makalemizde bahsettiğimiz Arduino CNC Köpük Kesme Makinesini kullanacağız.

Ayrıca Bakınız

Arduino Sıcak Kesim Teli ile CNC Köpük Strafor Kesme Makinesi Yapımı

Ayrıca, uçağın kontrol joystick’i de Arduino ve radyo iletişimi için NRF24L01 modülüne dayanan % 100 DIY tasarımdır. Joystick Yapımı için Buraya Göz Atabilirsiniz.

Rc Uçak için Gereken Malzemeler:

Bu proje için gerekli bileşenleri aşağıdaki bağlantılardan alabilirsiniz:

Vericinin sağ kumanda kolunu kullanarak kanatçıkları ve uçağın yükselip alçalmasını kontrol edebiliriz ve sol kumanda kolunu kullanarak dümeni ve gazı kontrol edebiliriz. Buna ek olarak, doğru potansiyometreyi kullanarak kontrollerin tepkisini ayarlayabilir veya servo hareket miktarını azaltabiliriz.

Arduino RC uçağının ana özelliği uçuyor olması. Evet bu uçak basit bir model değil ve gerçekten uçabiliyor.

RC Uçak Tasarımı – 3D Model

Uçağı bir 3D modelleme yazılımı olan Fusion 360 kullanarak tasarlayarak başladım. Bazı ticari RC uçaklarına bakarak ve model uçak parametreleri için bazı temel kuralları veya genel kurallara uyarak tasarımı yaptım.

Kanat açıklığını 80 cm olarak ayarladım. Basit bir hesap ile kanat açıklığının % 75’i olan gövde uzunluğunu elde ederiz. Aerodinamik kanat profili yani kanat kesim şekli olarak, RC uçaklar için popüler bir seçim olan CLARK Y Airfoil‘i seçtim.

Airfoiltools.com adresinden airfoilto şeklini .SVG dosyası olarak indirdim ve Fusion 360’a aktardım. Boyutu uygun şekilde, kanat akoru veya rüzgar akış yönünde kanat açıklığının 1 / 5’i kadar olacak şekilde ayarladım.

Yatay ve dikey dengeleyici de bu temel yönergelere göre boyutlandırılır. İşte bazı temel RC model uçak tasarım parametreleri:

Uçağın gövdesi, iki adet 10mm kenar kalınlığına sahip strafordan ve elektronik parçaları yerleştirmek için içi 50mm’lik bir boşluktan oluşacak şekilde yapılacaktır.

Arduino RC Uçak V1 – 3D Model Fusion 360

Arduino Planör V1 – 3D Fusion 360 Model Dosyası  Arduino Planör V1 İNDİR

Arduino RC Uçak V2 – 3D Model Fusion 360

Arduino Planör V2 – 3D Fusion 360 Model Dosyası  Arduino Planör V2 İNDİR

3D modeli yukarıdaki bağlantılardan indirebilirsiniz. Uçağın iki versiyonu vardır. Versiyon 1, burada resimlerde gösterilen versiyondur ve ikinci versiyonun biraz daha küçük bir burnu vardır ve hava akışını iyileştirmek için motor öne daha fazla yerleştirilebilir şekilde ayarlanmıştır.

CNC Köpük Strafor Kesici için G Kodları Oluşturma

Şimdi, Arduino CNC Köpük Kesme Makinesi çalışma alanım 45 cm ile sınırlı olduğundan ve gövde 60 cm uzunluğunda olduğu için gövdeyi iki parça olacak şekilde ayarlamak zorunda kaldım.

Böylece, gövdeyi ön noktadan 34 cm kestim ve şekli yansıtıp yeni bir çizim yaptığım yere yakın bir nokta ekledim. Bu şekilde Fusion 360’ın üretim sekmesinde, şekilleri kesmek için G kodunu oluşturabildim.

Burada, ilk önce model seçimi yaparak projeyi açtım, kurulum için başlangıç ​​noktası olarak daha önce eklediğim X ve Y eksenlerini uygun şekilde ayarladığım yeni bir kurulum yaptım.

Sonra 2B kontur işlemini seçtim ve 3 mm çapında kesim payı ayarladım. Çünkü sıcak telin Strafordan geçerken yaptığı kesiklerin yaklaşık boyutu 3mm’dir. Burada ayrıca sıcak telin kendisine ve Straforun sertliğine bağlı olan kesme hızını da ayarlayabiliriz. Ben 150 mm / m’ye ayarladım.

Ardından geometri kısmında konturu veya kesilmesi gereken şekli seçebiliriz. Yüksekliğe gelince, köpük kesici makinemde Z ekseni hareketi olmadığından hepsini 1 mm’ye ayarladım. Son olarak Linking (Bağlama) sekmesinde bitiş ​​noktasını başlangıç ​​noktasının yakınında olacak şekilde seçtim.

Bununla çizim yolu üretilir ve Simülasyon düğmesine tıklayarak buna göz atabiliriz. Çizim yolunun kapalı döngü tek geçişli olması gerekir ve bu şekilde G kodunu oluşturabiliriz. Bunun için Kayıt İşlemleri’ne gidebiliriz, GRBL ürün yazılımını seçebilir, çıktı klasörünü seçebilir, dosyayı adlandırabilir ve kayıt düğmesine tıklayabiliriz.

Sonra dosyayı kaydedebiliriz ve G kodunu WordPad editöründe veya benzer bir şeyde görebiliriz.

Şimdi G-kodu dosyasına sahip olduktan sonra, Evrensel G kodu göndericisine yükleyebilir ve şekli yapmak için G kodunu CNC makinesine gönderebiliriz.

Size az önce gösterdiğim sürecin muhtemelen en iyisi olmadığını veya hiç profesyonel olmadığını, ancak yine de G-kodlarının DIY CNC Köpük Kesme Makinemle çalışmasını sağlamak için iş yaptığını not edebiliriz. Tabii ki, bu DIY CNC makinesi hakkında daha fazla bilgi için benim özel öğretici kontrol edebilirsiniz, bağlantı video açıklamasında.

G kodu dosyalarını buradan indirebilirsiniz:

RC Uçak Şekilleri G-Code

Arduino Planör Strafor Kesimi için G Kodu  Uçak Parçaları İNDİR

Kanat için 30cm genişliğinde kestiğim 10cm paylı strafor kullandım çünkü sıcak tel makinemin kesebileceği maksimum açıklık bu. Tek bir G kodu dosyasına iki kanat profili yerleştirdim ve kestim.

80 cm kanat açıklığını elde etmek için 3 adet 27 cm parçayı yapıştırdım ve düzleştirmek için parçaların uçlarını elle dik olacak şekilde kestim.

RC Planör Uçağın Montajı

İşte CNC makinesiyle kestiğim tüm strafor parçaları burada. Ön için 3 parça, arka için 3 parça ve kanat için 3 parça. Şimdi onları birleştirmeye başlayabilirim.

Ön kısımdan başlayacağım. Parçaları yapıştırmak için sıcak silikon tabancası kullanıyorum. Sıcak silikon straforu biraz eritiyor ama yine de bu yöntemi kullanarak yapıştırdım.

Strafor yapıştırmanın bir başka yolu japon yapıştırıcısı olabilir. Diğer tarafı yapıştırmadan önce, motorun tutucusunu yapacağım. Bunun için oldukça hafif 30 mm genişliğinde alüminyum profil kullanıyorum. Profili yaklaşık 18 cm kestim, motoru monte etmek için delikler işaretledim ve 3mm matkap ucu kullanarak deldim. Sonra profili 90 derecede büktüm. Motoru M3 cıvata kullanarak tutucuya sabitledim.

Straforun ön kısmından bir delik açtım. Daha sonra, bir maket bıçağı kullanarak, motor çapıyla aynı çapta 30 mm çapa kadar genişlettim.

Sonra, motor tutucusunun diğer tarafında tutucuyu yerine sabitlemek ve iniş takımını takmak için 4 delik açtım. Bu deliklerin gövde üzerindeki yerini işaretledim ve 4 mm’lik bir matkap ucu kullanarak strafordan elle delikler açtım. Aynı deliklerle yaklaşık 7 cm uzunluğunda başka bir alüminyum parça yaptım ve şimdi motor tutucuyu sabitlemek için kullanabilirim.

M4 cıvataları kullanarak straforlara zarar vermeden motor tutucuyu kolayca sabitleyebiliriz. Ancak bunu daha sonra yapacağım, bu yüzden onları kaldırdım ve diğer tarafı yapıştırmaya devam ettim. Aynı yöntemi kullanarak arka parçaları da yapıştırdım.

Bir sonraki adım gövdenin ön ve arka kısmını bağlamaktır. Bağlantıyı daha güçlü hale getirmek için, aralarına basit ahşap çubuklar ekleyeceğim.

Büyük çubuklar kullanmanızı öneririm çünkü uçak düştüğünde kolayca kırılabilir yapıdadır. Bağlantı bölgesine bol miktarda sıcak silikon ekledim ve onları sıktım. Artık gövde hazır ve bence oldukça havalı görünüyor.

Sonra, bir maket bıçağı kullanarak, yatay ve dikey stabilizatörler olacak iki adet 10 mm strafor kesiyorum. Kenarları eğdim, böylece daha iyi görünüyorlar ve biraz daha aerodinamik oluyorlar. Stabilizatörler doğrudan gövdenin arka tarafına yapıştırılacaktır, ancak bunu yapmadan önce kontrolör yüzeylerini yapacağım.

Bu amaçla, uzunluklarının 1 / 3’ünü kestim ve bu hamle onları kontrol yüzeyi veya yatay dengeleyici için asansör ve dikey dengeleyici için dümen olacak şekilde ayarlamış oluyor. Kontrol yüzeylerini stabilizatörlere menteşe olarak ayarlayabilmek için temas yüzeylerini eğmek zorunda kaldım. Maket bıçağı kullanarak yaptım ve bu kesimleri temizlemek için oldukça keskin bir bıçak lazım.

Stabilizatörleri biraz daha aerodinamik hale getirmeye devam ettim. Bu amaçla bir zımpara kağıdı kullandım ve ön kenarlarını yuvarladım. Ayrıca arka kenarları biraz zımparaladım.

Strafor oldukça kırılgan olduğundan, stabilizatörlerin ve kontrol yüzeylerinin tüm alanını basit bir ambalaj bandı ile sardım. Bu sadece parçaları daha güçlü hale getirmekle kalmayacak, aynı zamanda aerodinamiği de artıracaktır, çünkü bant Strafor’un kendisinden çok daha pürüzsüzdür.

Sardıktan sonra, oynar parçanın serbestçe hareket edebilmesi için dümenin alt kısmını 45 derece kestim.

Artık bağlantı noktalarını yapabilirim ve bunu tekrar ambalaj bandını kullanarak yapıyorum. Böylece, iki parçayı bantla birleştirdim ve bu oldukça güçlü bir menteşe görevi görüyor.

Bu işlemi yatay stabilizatör için de tekrarladım. Bağlantı noktalarını daha da güçlü hale getirmek için diğer tarafa da bant ekleyebiliriz. Aynı bandı kullanarak kenarları sardım ve iki dengeleyici yaptım.

Sıcak silikon kullanarak yatay dengeleyiciyi gövdeye yapıştırarak ilerledim. Dikey dengeleyiciyi sabitlemek için, önce yatay dengeleyici ve gövdeye 3 ahşap çubuğu yerleştirip yapıştırdım. Sonra onlara ve temas yüzeyine sıcak silikon koydum ve sabitleyiciyi sıkıca aşağı ittim.

Bununla stabilizatörlerle işimiz bitti ve kanadı yapmaya devam edebiliriz.

Dediğim gibi, CNC köpük kesme makinemin sınırlı çalışma alanı nedeniyle kanat 3 parçadan oluşacak. Yine, parçaları yapıştırırken ek güçler sağlamak için ahşap çubukları kullanıyorum. Onları tam olarak sıraya bağlamak için, parçaları kaydırabileceğim düz bir ahşap masa yüzeyi kullanıyorum.

Bunu yaptıktan sonra, kanat uzun olduğu için oldukça kırılgandır. Bu nedenle, tahta bir çubuk ekleyerek onu güçlendireceğim. Çubuğu boyuta ayarladım ve bir ahşap yuva oyuğu yapmam gereken kanadı işaretledim, böylece çubuk için maket bıçağı ile kanada oyuk yaptım. Üzerine biraz sıcak silikon ekledim ve hava akışını çok fazla bozmayacak şekilde yerine sabitledim.

Bu şekli ile kanat çok daha güçlü. Daha güçlü olmasına rağmen, zemine çarparsa yine de kolayca parçalanacaktır, bu yüzden hepsini stabilizatörlerle yaptığım gibi ambalaj bandı ile saracağım. Bandı, arka taraftan veya kanadın arka kenarından, ön tarafa veya ön kenara eklemeye başladım.

Bu şekilde önden gelen hava, bandı sökmeye meyilli olmaz. Bu işlem oldukça kolay görünse de, yeterince sabırlı değilseniz biraz sinir bozucu olabilir. Bence kanat mükemmel oldu. Şimdi çok daha güçlü, daha aerodinamik ve oldukça iyi görünüyor.

Pekala, bir sonraki adım kanatların veya kanatçıkların kontrol yüzeylerini yapmak. Onları 22 cm genişliğinde ve kanat akorunun yaklaşık 1 / 4’ünü oluşturacak şekilde yapacağım.

Serbestçe hareket edebilmesi için yarım santimetre gibi bir boşlukla kestim.

Sonra, kanatçığın alt kısmına 45 derecede eğim verdim ve daha önce gösterildiği gibi kanala menteşe yapabilirim. Gövde üzerine oturtmak ve kanadı gövdeye kolayca bağlayabilmek için kanadın ortasında bir girinti daha yapmak zorunda kaldım.

Daha sonra, kanatçıkları kontrol etmek için servo motorları kurma zamanı. 9g mikro servo sg90 kullanıyorum. Yerleştirilecekleri yeri işaretledim ve maket bıçağı kullanarak, servoyu sığdırmak için kanatta dikkatlice bir delik açtım. Bu arada, şekli daha basit olacak şekilde servo montaj braketlerini çıkardım. Servoya biraz silikon sıktım ve açıklığa yerleştirdim.

Maket bıçağını kullanarak, servodan kanadın ortasına küçük bir oluk yaptım, böylece servo kablolarını içine sığdırabildim. Sonunda her şeyi bir parça bantla kapattım. Aynı işlemi diğer taraf için de tekrarladım.

Kontrol boynuzlarını yapmaya devam ettim. Onları daha önce motor tutucusunu yapmak için kullandığım alüminyum profilden çıkaracağım. Servo motor boynuz yüksekliğine uydurmak ve menteşe noktasının üzerine asmak için şekli elle çiziyorum. Bir demir testeresi kullanarak şekli kestim.

Kontrol çubuğu olarak 2mm çelik tel kullanacağım, böylece 2.5mm matkap ucu kullanarak boynuzda bir açıklık yaptım. Kanatçıkta küçük bir oluk açtım ve parçayı yerine yapıştırdım. Sonra kontrol çubuğunun ne kadar olması gerektiğini ölçtüm ve pense yardımıyla 2mm çelik telden yaptım. Kontrol çubuklarını ölçerken ve yerleştirirken, servo motorların 0 konumunda olması gerektiğine dikkat etmeliyiz.

Bunu manuel olarak hareket aralığının ortasına yerleştirerek veya bir servo test cihazına bağlayarak veya bir Arduino ile yapabiliriz. Diğer taraf için işlemi tekrarladım ve bununla kanat tamamen tamamlandı.

Sonra, dümeni ve asansörü kontrol etmek için servolar kurmam gerekiyor. Burada aynı 9g mikro servoları kullanıyorum ve bunları kurma işlemi aslında az önce açıkladığımla aynı. İlk olarak, konumu işaretledim, bir maket bıçağı kullanarak açıklığı yaptım ve iki motoru yerine yapıştırdım. Burada, yan yana ama çıkış milleri karşı tarafta.

Yine, servo kablolarını elektronik bölmeye iletmek için gövdede küçük bir oluk yaptım. Servoları bir parça bantla kapattım ve servo boynuzları için açıklıklar yaptım. Daha önce gösterildiği gibi kontrol boynuzlarını yaptım ve bir tutkal tabancası kullanarak yerine yapıştırdım. Son olarak, uygun kontrol çubuğunu yaptım ve uygun şekilde monte ettim.

Şimdi, sonra kanadı gövdeye tutturmaya yarayacak iki adet 8mm ahşap çubuk takacağım. Delikleri 6 mm’lik bir matkap ucu kullanarak elle yaptım. Çubuklar her iki tarafta yaklaşık 1 cm üzerine asılmalıdır. Onları da sıcak tutkalla gövdeye tutturdum.

Kanadı gövdeye sabitlemek için lastik bantlar kullanıyoruz. Bu şekilde kanat kolayca çıkarılabilir ve ezilme durumunda lastik bantlar kanat üzerindeki etkiyi önemli ölçüde azaltır. Aynı zamanda montaj gücü olarak oldukça güçlüdür.

Sonra iniş takımını yapacağım. Bu amaçla, yine, strafordan yapılmış teker ve alüminyum profili ve jantları kullanacağım. Bunları daha önce gösterildiği gibi CNC makinesini kullanarak yaptım. Alüminyum profil üzerinde küçük delikler yaptım, böylece kolayca bükebilirim.

Tekerlekleri profile takmak için M5 cıvataları ve 6mm iç çaplı bir alüminyum boru kullanacağım. Tüp, M5 cıvata ve somun kullanılarak brakete sabitlenir ve yanlarda, tekerleğin tüpün etrafında serbestçe dönebilmesi için M5 rondelaları ekledim. Aynı yöntemle uçağın arka tarafı için tekerleği yaptım. İniş takımlarının böyle görünmesi gerekiyor.

Tüm parçalar hazır ve onları monte etmeden önce elektronik parçalara bakalım.

Arduino RC Uçak Elektroniği – Devre Şeması

Dediğim gibi, bu RC uçağın beyni, kontrolü tamamen Arduino’ya dayanıyor, hem Verici hem de Alıcı Arduino Pro Mini kartı ile çalışan özel yapım NRF24L01 modüllerdir.

Vericinin ve alıcının nasıl oluşturulacağı ve nasıl çalıştığı hakkında ayrıntılı eğitimlere sahibim. Burada, bu Arduino RC uçağının devre şemasını ve çalışma prensibini ve her şeyin nasıl bağlanması gerektiğini açıklayacağım.

 

 

Radyo iletişimi NRF24L01 modüllerini temel alır. Biraz karmaşık görünmesine rağmen, bu DIY Arduino vericisi aslında oldukça basittir. Birkaç kontrolörü, joystickleri, potansiyometreleri ve bazı düğmeleri vardır ve verilerini sürekli olarak alıcıya gönderir. Alıcı bu verileri NRF24L01 modülü aracılığıyla kablosuz olarak kabul eder ve uçağı kontrol etmek için servolara ve fırçasız motora uygun komutlar verir.

Arduino ile servoları ve fırçasız motorları kontrol etmek de oldukça basittir. Bu projede kullandığım fırçasız motor 1000KV dir ve 30A ESC gerektiriyor. ESC, motoru çalıştırır ve ayrıca 5V çıkışlı Pil Eliminator Devresi özelliği ile Arduino ve servolara güç sağlar. ESC’ye ve fırçasız motora giden güç 3S Li-Po pilden geliyor.

Bu uçağa bir özellik daha ekledim ve bu, pilin boş olup olmadığını gösteren basit bir LED. Basit bir voltaj düşürücü kullanarak, Li-Po pilden gelen 12V’yi 5V civarına düşürüyoruz, böylece Arduino analog girişi ile okuyabiliriz ve böylece pilin ne zaman 11V altına düşeceğini biliriz. Alıcının hala birkaç boşta kalan pini var, bu yüzden flaş ışıkları, kanatlar, düşürme mekanizmaları ve benzeri gibi bu uçağa daha fazla özellik ekleyebiliriz.

Montajın Tamamlanması

Artık montajı bitirelim. Her şeyi devre şemasında açıklandığı gibi bağladım. Kanal 1’de dümen, kanal 2 asansör(aşağı-yukarı), kanal 3 ve 4 kanatçıklar ve kanal 6’da LED mevcut.

Burada, motor tutucusundaki iki cıvatayı kullanarak iniş takımının uçağa nasıl bağlandığını not edebiliriz. Birkaç kelimeyle, motoru bu üst açıklıktan tutucu ile basitçe yerleştirdim, daha önce gösterildiği gibi yerine vidaladım ve iniş takımını da taktım. Tutucuyu takarken, pili yerinde tutabilmeleri için bazı lastik bantlar da ekledim.

Böylece, pili ESC’ye bağladıktan sonra, her şeyi sıktım. Son olarak, uzatma kablolarını kullanarak kanatçıkları alıcıya kolayca bağlayabilir ve daha sonra kanadı gövdeye sabitleyebilirim.

Ön tarafta, pervaneyi motora bağladım ve son olarak uçağın ağırlık merkezini kontrol etmek gerekir.

Ağırlık merkezi, uçağın iyi uçup uçmayacağı ya da uçup farklı yerlere kontrolsüzce gitmeyeceği gibi en önemli faktörleri kontrol etmemizi ve ayarlamamızı sağlar.

Başlangıçta kuyruk ağırdı, bu yüzden pili öne taşıdım ve ağırlığı dengelemek için biraz ağırlık ekledim (cıvatalar ve somunlar gibi) ve dengelendi.

Arduino merkezli RC uçağımız artık bitti ve denemek için dışarı çıkabiliyoruz.

Arduino RC Uçağını Test Etme

İlk deneme ya da ilk uçuş çok güzel değildi. Özellikle çarpma sonucunu gördükten sonra 🙂

Buradaki sonucum, uçağın hala çok ağır olduğu ve motorun yeterli güce sahip olmadığı yönünde. Denemek için başka bir motorum veya pervanem olmadığı için, uçağın burnunu biraz daha küçük olacak şekilde değiştirdim, motoru daha öne doğru aldım, böylece daha iyi hava akışı elde edebilirim ve ön taraftaki kenarları yuvarladım. Yapıya gelince, gövdenin iç kısmına yapıştırdığım bazı ahşap çubuklar ve alüminyum profillerle güçlendirdim.

Elektronik bölmenin altında, biri ön açıklıktan gelen havanın geçmesi, diğeri de NRF24L01 antenini daha iyi menzile sahip olmak için dışarıya çıkaran iki delik açtım.

2. deneme de gövde tekrar kırıldı, bu da bu Straforun bu amaç için oldukça zayıf olduğunu gösteriyor. Yeni bir gövde yaptım ve bu sefer takviye için biraz koli bandı kullandım.

3. deneme umut vericiydi ama kalkış için arazi aslında hiç iyi değildi. Uçak sağa doğru hareket etmeye başladı, yolun kenarına çarptı ve tekrar kırdı.

Tamir ettim ve bu sefer neredeyse tüm gövdeyi kanal ve ambalaj bandı ile sardım. Aslında bunu çok daha önce yapmalıydım.

Sorun şu ki, birkaç çarpma sonrasında 4 pervanenin hepsini kırdım, son denemede yapıştırılmış bir pervane kullanıyorum.

Zaten kırılmış iki pervaneden yapılmış toplama pervane ile denedim ve bu sefer gerçekten şanslıydım uçak nihayet düzgün bir şekilde kalktı.

Ancak pervane havada tekrar patladığında uçuş uzun sürmedi.

Bu bir RC uçağı uçurma konusundaki ilk deneyimim olduğundan, sanırım RC uçaklarını kontrol etmek için tamamen Arduino tabanlı bir sistem yapma kavramını kanıtlamayı başardığım için bu projeyi başarılı olarak değerlendirebilirim.

Bunun dışında, Uçuş esnasında vericiden gelen kontrollerin aslında çok sert olduğunu belirtebiliriz. Çünkü ucuz joystickler böyle bir kullanım için hiç iyi değil, küçük hareketler gereken noktalarda kötü tepki veriyorlar.

Bunu çözmek için, vericideki doğru potansiyometreyi kullanarak kontrollerin yanıt verebilirliğini kontrol edebileceğimiz bir özellik ekledim. Ayrıca, sol potansiyometreyi kullanarak dümeni kırpabileceğimiz bir fonksiyon ekledim.

RC Uçak Arduino Kodu

RC uçağın Arduino koduna bir göz atalım ve bu projeyi tamamlayalım. Kod, NRF24L01 alıcı-verici modüllerini kullanarak servoları ve fırçasız motorları kontrol etmek için önceki öğreticide açıklananla tamamen aynıdır.

Arduino RC uçak projesi için tam kod:

/*
   Arduino RC Airplane
   == Receiver Code =
  by Dejan, www.HowToMechatronics.com
  Library: TMRh20/RF24, https://github.com/tmrh20/RF24/
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>
#define led 9
RF24 radio(3, 2);   // nRF24L01 (CE, CSN)
const byte address[6] = "00001";
unsigned long lastReceiveTime = 0;
unsigned long currentTime = 0;
Servo throttle;  // create servo object to control the ESC
Servo rudderServo;
Servo elevatorServo;
Servo aileron1Servo;
Servo aileron2Servo;
int throttleValue, rudderValue, elevatorValue, aileron1Value, aileron2Value, travelAdjust;
// Max size of this struct is 32 bytes - NRF24L01 buffer limit
struct Data_Package {
 byte j1PotX;
 byte j1PotY;
 byte j1Button;
 byte j2PotX;
 byte j2PotY;
 byte j2Button;
 byte pot1;
 byte pot2;
 byte tSwitch1;
 byte tSwitch2;
 byte button1;
 byte button2;
 byte button3;
 byte button4;
};
Data_Package data; //Create a variable with the above structure
void setup() {
 Serial.begin(9600);
 radio.begin();
 radio.openReadingPipe(0, address);
 radio.setAutoAck(false);
 radio.setDataRate(RF24_250KBPS);
 radio.setPALevel(RF24_PA_MAX);
 radio.startListening(); //  Set the module as receiver
 resetData();
 throttle.attach(10);
 rudderServo.attach(4);   // CH1
 elevatorServo.attach(5); // CH2
 aileron1Servo.attach(6); // CH3
 aileron2Servo.attach(7); // CH4
 pinMode(led, OUTPUT);    // CH6
}
void loop() {
 // Check whether we keep receving data, or we have a connection between the two modules
 currentTime = millis();
 if ( currentTime - lastReceiveTime > 1000 ) { // If current time is more then 1 second since we have recived the last data, that means we have lost connection
   resetData(); // If connection is lost, reset the data. It prevents unwanted behavior, for example if a drone jas a throttle up, if we lose connection it can keep flying away if we dont reset the function
 }
 // Check whether there is data to be received
 if (radio.available()) {
   radio.read(&data, sizeof(Data_Package)); // Read the whole data and store it into the 'data' structure
   lastReceiveTime = millis(); // At this moment we have received the data
 }
 // Controlling throttle - brushless motor with ESC
 throttleValue = constrain(data.j1PotY, 80, 255); // Joysticks stays in middle. So we only need values the upper values from 130 to 255
 throttleValue = map(throttleValue, 80, 255, 1000, 2000);
 throttle.writeMicroseconds(throttleValue);
 // Adjusting the servos responsiveness
 travelAdjust = map(data.pot2, 0, 255, 0, 25);  
 
 // Elevator control
 elevatorValue = map(data.j2PotY, 0, 255, (85 - travelAdjust), (35 + travelAdjust));
 elevatorServo.write(elevatorValue);
 
 // Ailerons control
 aileron1Value = map(data.j2PotX, 0, 255, (10 + travelAdjust), (80 - travelAdjust));
 aileron1Servo.write(aileron1Value);
 aileron2Servo.write(aileron1Value);
 // Rudder trimming function
 if (data.j1PotX > 127) {
   rudderValue = data.pot1 + (data.j1PotX - 127);
 }
 if (data.j1PotX < 127) {
   rudderValue = data.pot1 - (127 - data.j1PotX);
 }
 // Rudder control
 rudderValue = map(rudderValue, 0, 255, (10 + travelAdjust), (90 - travelAdjust));
 rudderServo.write(rudderValue);
 // Monitor the battery voltage
 int sensorValue = analogRead(A3);
 float voltage = sensorValue * (5.00 / 1023.00) * 3; // Convert the reading values from 5v to suitable 12V i
 // If voltage is below 11V turn on the LED
 if (voltage < 11) {
   digitalWrite(led, HIGH);
 }
 else {
   digitalWrite(led, LOW);
 }
}
void resetData() {
 // Reset the values when there is no radio connection - Set initial default values
 data.j1PotX = 127;
 data.j1PotY = 80; // Motors stops // the central point of the joystick is not starting point for the throttle, its at value of 80 instead of 127
 data.j2PotX = 127;
 data.j2PotY = 127;
 data.j1Button = 1;
 data.j2Button = 1;
 data.pot1 = 1;
 data.pot2 = 1;
 data.tSwitch1 = 1;
 data.tSwitch2 = 1;
 data.button1 = 1;
 data.button2 = 1;
 data.button3 = 1;
 data.button4 = 1;
}

Açıklama: Kodun ana işlevlerini hızlı bir şekilde açıklayacağım ve diğer tüm ayrıntılar için bu makaleyi kontrol edebilirsiniz. Vericiden gelen verileri aldıktan sonra, uçağın gaz kelebeğini kontrol etmek için Joystick 1 Y ekseni değerini kullanıyoruz. Vericiden gelen 80 ila 255 arasındaki değerleri, fırçasız motoru kontrol etmek için kullanılan 1000 ila 2000 arasındaki değerlere dönüştürüyoruz.

Asansörü kontrol etmek için 85 ila 35 arasındaki değerlere dönüştürdüğümüz Joystick 2 Y ekseni değerini kullanıyoruz. Bu değerler doğrudan servo motorun konumunu derece olarak ayarlar. Hemen yanında, sağ potansiyometrenin konumuna bağlı olan travelAdjust değişkenlerine sahip olduğumuzu belirtebiliriz. Bu değeri, kumanda kollarının maksimum konumlarına gidecek olmasına rağmen, servoların konumunu veya hareketini azaltmak için kullanırız.

Aynı prensip kanatçıkların ve dümenin kontrolü için de uygulanır. Ayrıca, dümenin 0 noktasını ayarlamak için sol potansiyometreden gelen verileri kullanırız.

Son olarak, analogRead () fonksiyonunu ve biraz matematik kullanarak akü voltajı gösterge LED’ini kontrol ediyoruz.

 

Hepsi bu kadar. Umarım Arduino ile Köpük Strafordan RC Model Planör Uçak Yapımı makalemizi beğenmiş ve yeni bir şeyler öğrenmişsinizdir.

Memnun kaldıysanız aşağıda bulunan “yukarı ok“a tıklayarak +1 puan verebilirsiniz.

Diğer Güncel Arduino Projeleri için BURAYA TIKLAYABİLİRSİNİZ.

Sizde Robotlara ve Maker’lığa Meraklıysanız Robotik Marketimiz ROBOCOMBO‘yu Ziyaret Edebilirsiniz.

 

Robot El Yapımı – İlginç Arduino Projeleri

Videodaki Robot El Ürünümüzü Satın Almak İsterseniz Bağlantıya Göz Atabilirsiniz.

Okuduğunuz İçin Teşekkürler.

Kaynak:  howtomechatronics.com/projects/arduino-rc-airplane-diy/