- Arduino RC Boat için Gerekli Bileşenler
- 433MHz RF Verici ve Alıcı Modülleri
- 433MHZ RF Verici
- Arduino RC Tekne Vericisinin Blok Şeması
- Arduino RC Remote (Verici) Devre Şeması
- RC BOAT Verici Devresinin Oluşturulması
- Arduino RC Tekne Verici Muhafazasını Oluşturma
- 433Mhz Alıcı Modülü
- Arduino RC Tekne Alıcısının Blok Şeması
- Arduino RC Tekne Alıcısının Devre Şeması
- Arduino RC Boat Alıcı Devresini Oluşturmak
- RC-BOAT'ı inşa etmek
- Arduino Air Boat için Motorlar ve Pervaneler
- Arduino RC Boat'un Çalışması
- RC Boat Arduino Programlama
Bu projede 433 MHz RF Radyo Modülleri kullanılarak kablosuz olarak kontrol edilebilen, uzaktan kumandalı bir Arduino Air-Boat inşa edeceğiz. Bu tekneyi kendi 433 MHz vericimizi ve bir alıcı modülünü inşa ederek ev yapımı bir uzaktan kumanda kullanarak kontrol edeceğiz. Uzaktan kumandalı cihazlar veya iki cihaz arasında iletişim durumunda, IR, Bluetooth, internet, RF vb. Gibi birçok seçeneğimiz var. Kızılötesi iletişim ile karşılaştırıldığında, radyo iletişiminin daha fazla menzil gibi bazı avantajları var ve yok verici ve alıcı arasında bir görüş hattı bağlantısı gerektirir. Ayrıca, bu modüller aynı anda hem gönderip hem de alabileceği anlamına gelen iki iletişim yolu gerçekleştirebilir. Bu 433MHz RF modülünü kullanarak bir Arduino RC Botu yapalım bu öğreticide.
Daha önce bu 433Mhz RF modüllerini kullanarak, bu RF kontrollü Robot gibi bir Robotu kontrol etmek için veya Ev Otomasyonu uygulamaları için RF kullanarak Ev aletlerini kontrol etmek için birçok uzaktan kumandalı proje inşa etmiştik. RF modüllerini kullanmanın yanı sıra, daha önce Bluetooth Kontrollü Raspberry Pi Araba ve DTMF Cep telefonu kontrollü Arduino Robot da yaptık. Ayrıca ilgileniyorsanız bu projelere de göz atabilirsiniz.
Arduino RC Boat için Gerekli Bileşenler
- 433MHz verici ve alıcı
- Arduino (herhangi bir Arduino, promini kullandığım boyutu küçültmek için)
- HT12E ve HT12D
- Basmalı düğmeler - 4Nos
- Dirençler - 1mega ohm, 47k ohm
- L293d Motor Sürücüsü
- 9V Pil (7.4 voltluk pil kullanıyorum) - 2Nos
- 7805 regülatör - 2Nos
- DC motorlar - 2Nos
- Motor kanadı veya pervaneler (ev yapımı pervaneler kullanıyorum) - 2Nos
- .1 uf kapasitör-2Nos
- Ortak PCB
433MHz RF Verici ve Alıcı Modülleri
Bu tür RF modülleri, üreticiler arasında çok popülerdir. Düşük maliyetleri ve bağlantılardaki basitlikleri nedeniyle. Bu modüller, tüm kısa menzilli iletişim projeleri için idealdir. Bu modüller ASK (Genlik Kaydırma Anahtarlama) tipi RF modülleridir, Genlik kaydırmalı anahtarlama (ASK), dijital verileri bir taşıyıcı dalganın genliğindeki varyasyonlar olarak temsil eden bir genlik modülasyonu biçimidir. Bir ASK sisteminde, ikili sembol (1) sabit genlikli bir taşıyıcı dalga ve T saniyelik bir bit süresi için sabit frekans iletilerek temsil edilir. Sinyal değeri 1 ise, o zaman taşıyıcı sinyal iletilecektir; aksi takdirde, 0 sinyal değeri iletilecektir. Bu, Mantık "sıfır" iletirken genellikle güç çekmedikleri anlamına gelir. Bu düşük güç tüketimi, onları pille çalışan projelerde çok kullanışlı hale getirir.
433MHZ RF Verici
Bu tip modül çok küçüktür ve 3 pinli VCC, toprak ve veri ile birlikte gelir. Diğer bazı modüller ekstra bir anten pimi ile birlikte gelir. Verici modülün çalışma voltajı 3V-12V'tur ve bu modülün herhangi bir ayarlanabilir parçası yoktur. Bu modülün en büyük avantajlarından biri düşük akım tüketimidir, bit sıfır göndermek için neredeyse sıfır akım gerektirir.
Arduino RC Tekne Vericisinin Blok Şeması
Yukarıdaki blok şemada dört adet buton (Kontrol Butonu) vardır, bu butonlar teknenin yönünü kontrol etmek içindir. İleri, geri, sol ve sağ için dört tane var. Basmalı düğmelerden tekneyi kontrol etmek için bir mantık alıyoruz ancak kodlayıcıya doğrudan bağlanamıyoruz, bu yüzden Arduino'yu kullandık. Burada Arduino'yu neden kullandığımı düşünebilirsiniz, bunun nedeni sadece basmalı düğmelerle elde edilemeyen geri ve ileri bir hareket için aynı anda kodlayıcının iki paralel veri girişini aşağı çekmemiz gerektiğidir. Daha sonra kodlayıcı gelen paralel verileri seri çıkışlara kodlar. Daha sonra bu seri veriyi bir RF vericisi yardımıyla iletebiliriz.
Arduino RC Remote (Verici) Devre Şeması
Yukarıdaki devrede, Arduino'nun dört dijital pinine (D6-D9) bağlı dört butonun bir tarafını ve diğer dört tarafın da toprağa bağlı olduğunu görebilirsiniz. Bu, düğmeye bastığımızda, ilgili dijital pinler mantıksal olarak azalır. HT12E kodlayıcının dört paralel girişi, Arduino'nun diğer dört dijital pinine (D2-D5) bağlanmıştır. Yani Arduino yardımıyla kodlayıcının girişine karar verebiliyoruz.
Ve kodlayıcı hakkında konuşmak HT12E, 12 bitlik bir kodlayıcı ve paralel giriş-seri çıkış kodlayıcıdır. 12 bitten 8 bit, birden çok alıcıyı kontrol etmek için kullanılabilen adres bitleridir. A0-A7 pinleri adres giriş pinleridir. Bu projede sadece bir alıcıyı kontrol ediyoruz, bu yüzden adresini değiştirmek istemiyoruz, bu yüzden tüm adres pinlerini toprağa bağladım. Tek bir vericiyle farklı alıcıları kontrol etmek istiyorsanız, burada dip anahtarlarını kullanabilirsiniz. AD8-AD11 kontrol bit girişleridir. Bu girişler, HT12D kod çözücünün D0-D3 çıkışlarını kontrol edecektir. İletişim için bir osilatör bağlamamız gerekiyor ve osilatör frekansı 3KHz olmalı5V operasyon için. Daha sonra direnç değeri 5V için 1.1MΩ olacaktır. Sonra HT12E'nin çıkışını verici modülüne bağladım. Daha önce bahsetmiştik, Arduino ve rf verici modülü, bu cihazların her ikisi de 5V yüksek voltajda çalışarak onu öldürecektir, bu yüzden bunu önlemek için 7805 voltaj regülatörü ekledim. Artık girişe (Vcc) 6-12 volt her tip pil bağlayabiliriz.
RC BOAT Verici Devresinin Oluşturulması
Her bileşeni ortak bir PCB'ye lehimledim. Bir RF projesi üzerinde çalıştığımızı unutmayın, bu nedenle farklı türden girişimler için çok fazla şansımız var, bu nedenle tüm bileşenleri mümkün olduğunca yakından bağlayın. Arduino ve verici modülü için dişi pin başlıkları kullanmak daha iyidir. Ayrıca, fazladan kablo kullanmak yerine bakır pedlerdeki her şeyi lehimlemeye çalışın. Son olarak, verici modülüne toplam aralığı artırmaya yardımcı olacak küçük bir kablo bağlayın. Arduino ve verici modülünü bağlamadan önce, lm7805 çıkışının voltajını iki kez kontrol edin.
Yukarıdaki görüntü, tamamlanmış RC Boat verici devresinin üstten görünümünü ve tamamlanan RC Boat Verici devresinin Alttan görünümü aşağıda gösterilmiştir.
Arduino RC Tekne Verici Muhafazasını Oluşturma
Uzaktan kumanda için düzgün bir vücut gereklidir. Bu adım tamamen fikirlerinizle ilgili, fikirlerinizle uzak bir vücut yaratabilirsiniz. Bunu nasıl yaptığımı açıklıyorum. Uzaktaki bir gövde yapmak için 4mm MDF levhalar seçiyorum, siz de kontrplak, köpük levha veya karton seçebilirsiniz, ondan 10 cm uzunluğunda ve 5 cm genişliğinde iki parça kestim. Sonra düğmelerin yerlerini işaretledim. Yön düğmelerini sol tarafa, ileri, sağ tarafa geri düğmelerini yerleştirdim. Sayfanın diğer tarafında, basmalı düğmeleri ana iletim devresine bağladım. Normal bir düğmenin her iki tarafta iki pim olan 4 pime sahip olduğunu unutmayın. Bir pini Arduino'ya ve diğer pini toprağa bağlayın. Bununla kafanız karıştıysa, lütfen bir multimetre ile kontrol edin veya veri sayfasını kontrol edin.
Tüm bunları bağladıktan sonra, kontrol devresini iki MDF kartı arasına yerleştirdim ve biraz uzun cıvata ile sıktım (isterseniz lütfen aşağıdaki resimlere bakın). Bir kez daha iyi bir vücut yaratmak tamamen fikirlerinizle ilgilidir.
433Mhz Alıcı Modülü
Bu alıcı da çok küçük ve 4 pimli VCC, toprak ve iki orta pim veri çıkışı ile birlikte gelir. Bu modülün çalışma voltajı 5v'dir. Verici modülü gibi, bu da düşük güçlü bir modüldür. Bazı modüller fazladan bir anten pimi ile birlikte gelir, ancak benim durumumda bu mevcut değildir.
Arduino RC Tekne Alıcısının Blok Şeması
Yukarıdaki blok diyagram, RF alıcı devresinin çalışmasını açıklamaktadır. İlk olarak, RF alıcı modülünü kullanarak iletilen sinyalleri alabiliriz. Bu alıcının çıkışı seri veridir. Ancak bu seri verilerle hiçbir şeyi kontrol edemiyoruz, bu yüzden çıkışı kod çözücüye bağladık. Kod çözücü seri verileri orijinal paralel verilerimize çözer. Bu bölümde mikrodenetleyiciye ihtiyaç duymuyoruz, çıkışları doğrudan motor sürücüsüne bağlayabiliyoruz.
Arduino RC Tekne Alıcısının Devre Şeması
HT12D a, bir 12-bit kod çözücü seri giriş paralel çıkış kod çözücü. HT12D'nin giriş pini, seri çıkışı olan bir alıcıya bağlanacaktır. 12 bit arasında, 8 bit (A0-A7) adres bitleridir ve HT12D, yalnızca mevcut adresiyle eşleşirse girişin kodunu çözecektir. D8-D11 çıktı bitleridir. Bu devreyi verici devresiyle eşleştirmek için tüm adres pinlerini toprağa bağladım. Modülden çıkan veriler seri tiptedir ve kod çözücü bu seri verileri orijinal paralel verilere çözer ve D8-D11 üzerinden çıkarız. Salınım frekansını eşleştirmek için 33-56k direnci osilatör pinlerine bağlamalıdır. 17. pin üzerindeki led geçerli iletimi gösterir, ancak alıcı bir vericiye bağlandığında yanar. Alıcının voltaj girişi de 6-12 volttur.
Motorları kontrol etmek için L293D IC'yi kullandım, bu IC'yi seçtim çünkü boyutu ve ağırlığı azaltmak için ve bu IC, iki motoru iki yönde kontrol etmek için en iyisidir. L293D'nin 16 pimi vardır, aşağıdaki şema pin çıkışlarını gösterir.
1, 9 pin etkinleştirme pinidir, 1A, 2A, 3A ve 4A motorlarının kontrol pinlerini etkinleştirmek için 5 v'a bağlarız. 1A pimi düşerse ve 2A yükselirse motor sağa, 1A alçaldığında ve 2A yüksekse motor sola dönecektir. Bu yüzden bu pinleri kod çözücünün çıkış ps'ye bağladık. 1Y, 2Y, 3Y ve 4Y motor bağlantı pimleridir. Vcc2, yüksek voltajlı bir motor kullanıyorsanız, motor tahrik voltajı pimidir, o zaman bu pimi ilgili voltaj kaynağına bağlarsınız.
Arduino RC Boat Alıcı Devresini Oluşturmak
Alıcı devresini kurmadan önce bazı önemli şeyleri hatırlamalısınız. Önemli olan boyut ve ağırlıktır çünkü devreyi kurduktan sonra tekneye sabitlememiz gerekir. Yani ağırlık artarsa, bu kaldırma kuvveti ve hareketi etkiler.
Verici devresinde olduğu gibi, her bileşeni küçük bir ortak PCB'de lehimleyin ve minimum kablo kullanmaya çalışın. 5V motor kullandığım için motor sürücüsünün 8. pinini 5v'ye bağladım.
RC-BOAT'ı inşa etmek
Tekne gövdesini oluşturmak için farklı malzemeler denedim. Ve termokol çarşafla daha iyi sonuç aldım. Bu yüzden vücudu termokol ile yapmaya karar verdim. Önce 3cm kalınlığında bir termokol parçası alıp alıcı devresini üstüne yerleştirdim, ardından teknenin şeklini termokolden işaretleyip kestim. Yani tekneyi bu şekilde inşa ettim, fikirlerinize göre inşa edebilirsiniz.
Arduino Air Boat için Motorlar ve Pervaneler
Bir kez daha kilo önemlidir. Bu yüzden doğru motoru seçmek önemli, küçük ve ağırlıksız 5 volt, n20 tipi normal dc motorları seçiyorum. RF parazitlerini önlemek için motor girişlerine 0,1 uf kapasitör paralel bağlanmalıdır.
Pervanelerde ise plastik levhalar kullanarak pervaneler yaptım. Mağazadan pervane satın alabilir ya da kendi pervanenizi inşa edebilirsiniz, her ikisi de gayet iyi çalışacaktır. Pervaneleri yapmak için önce küçük bir plastik levha alıp ondan iki küçük parça kestim ve mum ısısı yardımıyla parçaları büküyorum. Son olarak, motor için ortasına küçük bir delik açtım ve motora sabitledim.
Arduino RC Boat'un Çalışması
Bu teknenin iki motoru var, sol ve sağ diyelim. Motor saat yönünde de hareket ederse (pervanenin konumu da buna bağlıdır) pervane önden havayı emer ve arka tarafa egzoz yapar. Bu ileriye doğru sürükleme oluşturur.
İleri hareket: Hem sol hem de sağ motorlar saat yönünde dönerse, bu ileri hareket olacaktır.
Geriye doğru hareket: Hem sol hem de sağ motorlar saat yönünün tersine dönerse (yani pervane arkadan hava emer ve ön tarafa egzoz yapar) geriye doğru hareket yapacak
Sol hareket: Yalnızca sağ motor dönerse, yani tekne sadece sağ taraftan sürüklenir, bu da teknenin sol tarafa hareket etmesini sağlar.
Sağ hareket: Yalnızca sol motor dönerse, yani tekne yalnızca sol taraftan sürüklenerek teknenin sağ tarafa hareket etmesini sağlar.
Motor sürücüsünün girişini kod çözücünün dört çıkış bitine (D8-D11) bağladık. AD8-AD11'i uzaktan kumandadaki düğmeler olan toprağa bağlayarak bu 4 çıkışı kontrol edebiliriz. Örneğin, AD8'i D8'i aktive edecek zemine bağlarsak. Yani bu 4 çıkışı kullanarak iki motoru iki yönde kontrol edebiliriz. Ancak iki motoru tek bir düğmeyle kontrol edemiyoruz (ileri ve geri hareket için buna ihtiyacımız var) bu yüzden Arduino'yu kullandık. Arduino yardımıyla giriş veri pinlerini dilediğimiz gibi seçebiliriz.
RC Boat Arduino Programlama
Bu teknenin programlanması çok basit çünkü sadece biraz mantıksal anahtarlama istiyoruz. Ve temel Arduino fonksiyonları ile her şeyi başarabiliriz. Bu proje için eksiksiz program bu sayfanın alt kısmında bulunabilir. Programınızın açıklaması aşağıdaki gibidir
Dört giriş düğmesi ve kod çözücü giriş pini için tamsayıları tanımlayarak programı başlatıyoruz.
int f_button = 9; int b_button = 8; int l_button = 7; int r_button = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
Kurulum bölümünde pin modlarını tanımladım. Yani düğmeler dijital pinlere bağlıdır, bu yüzden bu pinler giriş olarak tanımlanmalı ve dekoderin girişi için çıkış almamız gerekiyor, bu yüzden bu pinleri çıkış olarak tanımlamalıyız.
pinMode (f_button, INPUT_PULLUP); pinMode (b_button, INPUT_PULLUP); pinMode (l_button, INPUT_PULLUP); pinMode (r_button, INPUT_PULLUP); pinMode (m1, OUTPUT); pinMode (m2, ÇIKTI); pinMode (m3, ÇIKIŞ); pinMode (m4, OUTPUT);
Ana döngü işlevinde, Arduino'nun dijital okuma işlevini kullanarak düğme durumunu okuyacağız. Pim durumu düşerse, bu, ilgili pime basıldığı anlamına gelir, ardından aşağıdaki gibi koşulları yerine getireceğiz.
eğer (digitalRead (f_button) == LOW)
Bu, ileri düğmesine basıldığı anlamına gelir
{ digitalWrite (m1, DÜŞÜK); digitalWrite (m3, DÜŞÜK); digitalWrite (m2, YÜKSEK); digitalWrite (m4, YÜKSEK); }
Bu, kodlayıcının m1 ve m2'sini aşağı çekecek, bu alıcı tarafındaki her iki motoru da etkinleştirecektir. Benzer şekilde, geriye doğru hareket için
{ digitalWrite (m1, YÜKSEK); digitalWrite (m3, YÜKSEK); digitalWrite (m2, DÜŞÜK); digitalWrite (m4, DÜŞÜK); }
Sol hareket için
{ digitalWrite (m1, DÜŞÜK); digitalWrite (m3, YÜKSEK); digitalWrite (m2, YÜKSEK); digitalWrite (m4, YÜKSEK); }
Doğru hareket için
{ digitalWrite (m1, YÜKSEK); digitalWrite (m3, DÜŞÜK); digitalWrite (m2, YÜKSEK); digitalWrite (m4, YÜKSEK); }
Kodu derledikten sonra Arduino kartınıza yükleyin.
Sorun giderme: Tekneyi su yüzeyine yerleştirin ve motorların ve pervanelerin kutuplarını değiştirmeye çalışmıyorsanız, doğru hareket edip etmediğini kontrol edin. Ayrıca ağırlığı dengelemeye çalışın.
Projenin tam çalışması, bu sayfanın alt kısmında bağlantısı verilen videoda bulunabilir. Herhangi bir sorunuz varsa yorum bölümüne bırakın.