İçindekiler:

NRF24 Telemetri için İki Yönlü Telsiz: 9 Adım (Resimlerle)
NRF24 Telemetri için İki Yönlü Telsiz: 9 Adım (Resimlerle)

Video: NRF24 Telemetri için İki Yönlü Telsiz: 9 Adım (Resimlerle)

Video: NRF24 Telemetri için İki Yönlü Telsiz: 9 Adım (Resimlerle)
Video: nRf24l01 Kablosuz İletişim Modülü - Ders 1 2024, Haziran
Anonim
Telemetri için NRF24 İki Yönlü Telsiz
Telemetri için NRF24 İki Yönlü Telsiz

Merhaba arkadaşlar, benim adım Pedro Castelani ve size ilk talimatımı getiriyorum: neye ihtiyacınız olursa olsun, arduino ile iki yönlü bir telsiz inşa etmek.

Bu projede hem alıcı hem de verici görevi görecek iki ayrı devre yapacağız. En önemli bileşenler iki arduino kartı (tümü çalışır) ve iki nrf24 alıcı modülüdür. Benim durumumda, diğer arduinodan bir potansiyometre ile bir servo kontrol ediyorum ve iki hücreli bir lipo pilin voltajlarını ilkine geri gönderiyorum.

Telemetri veya servo gimbal kontrolü olmayan drone'um için eklenti olarak kullanmayı düşünüyorum. Bununla birlikte, kendi quadcopter'inizi, uçağınızı, rc arabanızı vb. yapmak gibi başka şeyler için de kullanabilirsiniz. Sağlanan koddan ihtiyaçlarınıza göre istediğiniz değişiklikleri de yapabilirsiniz. Ayrıca nasıl doğru bir şekilde değiştirileceğini açıklamaya çalışacağım (nrf24 çipinin başka bir kullanımına alışkın olduğum için kendi başıma öğrenmem biraz zaman aldı).

Adım 1: Malzemeler

Malzemeler
Malzemeler
Malzemeler
Malzemeler
Malzemeler
Malzemeler

Projemize başlamak için gerekli tüm parçaları bilmemiz gerekiyor. Aşağıda, ihtiyaç duyulan temellerin bir listesi bulunmaktadır. Çoğunu yaşadığım yerdeki yerel bir elektronik mağazasından aldım, bu yüzden satın alabileceğiniz herhangi bir yer öneremeyeceğim. Amazon'u veya başka bir yeri deneyebilirsiniz. Oradan sipariş vermelisin demiyorum, bu sadece bir öneri.

  1. İki Arduino kartı (herkes çalışmalı. İki arduino pro mini'm var, 13 dijital pinleri ve 8 analogları olduğu için çok seviyorum, Uno'da ise sadece 6 analogları var).
  2. İki Nrf24 modülü. Daha geniş iletim aralığına sahip harici antenleri olan bazıları vardır. En çok beğendiklerinizi seçin.
  3. Dişi-Dişi ve Dişi-Erkek jumper kabloları.
  4. Prototip tahtası.
  5. Arduino Programcısı (arduino pro mini için, eğer usb bağlantılı bir tane varsa, buna ihtiyacınız olmayacak).
  6. Arduino IDE (Yazılım). Buradan indirin.
  7. Benim durumumda da kullandım:
  • Servo. Alabileceğin herkes. Arduino için tasarlanmış küçük bir SG90'ı seviyorum.
  • Potansiyometre (10k ile 20k ohm arasında). Yerel bir elektronik mağazasından satın alınabilir veya arduino için yapılmış joystick'i kullanabilirsiniz. Elimdekilerin birkaç resmi var. Ayrıca size birkaç fikir vermek için bozuk bir drone rc denetleyicisinden bir tane aldım.
  • 4 eşit normal direnç. Dedemin evinden aldığım 10k olanı kullandım. Onları voltaj bölücü olarak kullanıyorum.
  • Dirençleri birlikte lehimlemek için küçük bakır ped perfboard (dedemden de aldım).
  • Pimler. Arduino'dan gelen jumper kablolarını dirençlere kolayca bağlamak için kullanılır.
  • 2s lipo pil. Arduino'larımdan birine güç sağlamak için kullanıyorum. Dirençler ona bağlanır ve voltajlarını okur. Arduino'mun harici bir güç kaynağına ihtiyaç duymayacağı ve aynı zamanda bana ne kadar pil kaldığını söylediği için drone'umun 2s piline bağlanmasını istiyorum.
  • Havya ve lehim. Dirençleri, perfboard ve pinleri birlikte lehimlemek için gerekli.

2. Adım: İşlev ve Kod

İşlev ve Kod
İşlev ve Kod

Tüm malzemelerden bahsettikten sonra modüllerin işlevinden bahsetmeye başlayalım.

Nasıl çalışır: Bir arduinoya "A" ve diğerine "B" diyelim. Benim durumumda, her ikisini de programladıktan sonra, onları karşılık gelen radyo çipine bağladım ve potansiyometreyi arduino A'ya ve dirençleri ve servoyu arduino B'ye ekledim. Modül A, B'ye değer gönderir ve Servoyu hareket ettirir. B, 2s pilin voltajlarını okur ve bunları A'ya geri gönderir. Ardından tüm daire yeniden başlar. A, mekanik olarak ifade edilmeyen değerler aldığından, programlayıcıya bağlanır, bu sayede seri bir monitör (Arduino IDE'de bulunur) ile bunları okuyabiliriz

Kod: arduino A için taslağı (programlayıcı ve potansiyometre ile bağlantılı) TwoWayRadio_1 ve arduino B için taslağı TwoWayRadio_2WithServo olarak adlandırıyorum

TwoWayRadio_1 ve TwoWayRadio_2WithServo bu paragrafın hemen altında bulunabilir. Her şeyin anlaşılmasını kolaylaştırmak için her kodun içinde bir açıklama vardır.

Adım 3: Lehimleme Modülleri: Voltaj Bölücü ve Potansiyometre

Lehimleme Modülleri: Voltaj Bölücü ve Potansiyometre
Lehimleme Modülleri: Voltaj Bölücü ve Potansiyometre
Lehimleme Modülleri: Voltaj Bölücü ve Potansiyometre
Lehimleme Modülleri: Voltaj Bölücü ve Potansiyometre
Lehimleme Modülleri: Voltaj Bölücü ve Potansiyometre
Lehimleme Modülleri: Voltaj Bölücü ve Potansiyometre
Lehimleme Modülleri: Voltaj Bölücü ve Potansiyometre
Lehimleme Modülleri: Voltaj Bölücü ve Potansiyometre

Bu adım isteğe bağlıdır, çünkü sadece arduino için özel olarak tasarlanmış potansiyometre-joystick'i kullanmak ve voltaj bölücü yerine başka bir modül kullanmak isteyebilirsiniz. Ancak bu modüller için her şeyi (kodlar dahil) planladım.

Potansiyometre:

Bu kısım, lehimleme adımındaki hemen hemen en kolay olanıdır. Potansiyometrenize bazı jumper kabloları lehimlemeniz gerekecek. İsterseniz potansiyometreyi önce perfboard'a lehimleyebilir, ardından pinlerin bir kısmını lehimleyebilirsiniz. Kullanmanız gerektiğinde, jumper kablolarını arduino'ya ve ardından perfboard üzerindeki pinlere bağlamanız yeterlidir. Kullanılmadığı zaman kabloları çıkarıp başka bir proje için kullanabilirsiniz. Ancak benim yaptığım gibi yaparsanız, potansiyometreyi doğrudan kablolara lehimlenmiş halde bırakabilirsiniz

  • Eğer benim gibi yapıyorsanız, üç adet dişi-dişi jumper kablosu alın, uçlarından birini kesin ve oradaki yalıtımı çıkarın, her bir telde küçük bir parça bakır kablo bırakın.
  • Havyanızı ısıtın ve değiştirilmiş jumperları potansiyometre pimlerine lehimleyin. Mümkünse farklı renkler elde etmeye çalışın, böylece hangisinin vcc, gnd ve hangisinin "sinyal" (ortadaki) olduğunu hatırlayabilirsiniz. Bu kabloları arduino üzerindeki ilgili analog pinlere bağlayın. Adımın başında, nasıl göründüğüne dair bazı görüntüler var. Potansiyometre normal değil, aslında beş pimli küçük bir tekerlek. Hangisinin hangisi olduğunu bulmam biraz zaman aldı. MALZEME adımında gösterildiği gibi daha kolay yapmaya çalışın ve normal bir potansiyometre kullanın.
  • Bir perfboard'a lehimliyorsanız, potansiyometreyi ve perfboard'u alın ve havyanızla birlikte lehimleyin.
  • Pimleri (üç) alın ve en uygun şekilde yerleştirin. Her bir pim ile potansiyometre pimleri arasında bağlantı kurmak için lehim kullanın. İkiden fazla pin arasında bağlantı yapmayın yoksa çalışmayacaktır (kısa devre görevi görecektir).
  • Bazı dişi-dişi veya dişi-erkek jumper kabloları alın ve bunları arduino'nuzdan yeni potansiyometre modülünüze bağlayın (hangisi olduğunu unutmayın).

2. Gerilim Bölücü:

  • Bu kısım biraz daha karmaşık. Dört direnç, beş pim ve perfboard almanız gerekecek. Kodu 2s pil (iki hücre) için kullanılacak şekilde tasarladım, ancak arduino taslağını ve donanımı biraz değiştirerek 1s için de kullanabilirsiniz. Yaptığım iki voltaj bölücünün resimlerini ekledim, biri sadece 2 dirençli (1s piller için) ve diğeri dörtlü (tahmin ettiniz: 2s piller).
  • 2s ile başlayalım. Lehimlemeyi bitirdikten bir süre sonra bu talimatı yazmaya başladığımdan beri yapım sürecinin görüntülerine sahip değilim. Nihai sonucun resimlerini ekliyorum, bu yüzden mümkün olduğunca net olmaya çalışacağım.
  • Perfboard ve 5 pin alarak başlayın. Yanlara yakın lehimleyin ve birbirlerine dokunmalarına izin vermeyin.
  • Adımın başlangıcında (küçük devre şeması) son resimde gösterildiği gibi dirençleri lehimleyin. Her direnç ve pin arasındaki bağlantılar lehim ile yapılır. Mümkün olan en az alanı işgal etmeye çalışın.
  • İşiniz bittiğinde, yukarıda yayınladığım bitmiş voltaj bölücünün resimleri gibi görünmelidir.
  • 1s Voltaj bölücü, yalnızca üç pin ve iki direnç kullanmanız dışında temelde aynıdır. Bittiğinde nasıl göründüğüne dair resimler ekledim. Sadece 2'lerin şemasına bakın ve sinyal kablosu 1, orta kablo ve r2 ve r3 dirençleri olmadan hayal edin ve işte bu!
  • Yani, 1s'lik bir voltaj bölücü istiyorsanız, sadece 2s'lik bir voltaj bölücü kullanmaktan biraz daha karmaşık olabilir.

Adım 4: Arduino'nuzu Programlama

Arduino'nuzu Programlama
Arduino'nuzu Programlama
  1. Neredeyse bitirdik!
  2. MATERIALS adımında link verilen siteden Arduino IDE yazılımını indirdikten sonra FUNCTION AND CODE adımından eskizleri indirin.
  3. Ardından, bunları Arduino IDE'de açın.
  4. Her iki sekmeden herhangi birinde "Araçlar"ı açın ve "Panolar"ı tıklayın. Listeden panonuzu seçin. Her birini panonuza göre seçerek "İşlemci" ve ardından "Programcı" yı tıklayın. Ardından krokiye dönün. Panonuzun bilgilerine internetten bakmak oldukça uygundur. Sadece isme bakın ve özellikleri görün.
  5. "Çizim"e (üstte), ardından "kütüphaneyi dahil et"e, ardından "kütüphaneleri yönet"e tıklayın. Ekranın ortasında küçük bir pencere açılmalıdır. "rf24" arama seçeneğine girin. İstediğiniz kütüphaneyi indirin. Kodu arduino kartına yükleyebilmek gerekli olacaktır.
  6. Sadece emin olmak için, herhangi bir hata olmadığını doğrulamak için "Tick" sembolüne (sol üstte) tıklayın. Ardından, "Tick" sembolünün yanında sağı gösteren oka basarak yüklemeye devam edin.
  7. Panonuz Pro Mini ise, her şeyi nasıl bağlayacağınızı birazdan anlatacağım. Değilse, sadece yükleyin ve her iki arduinoyu da programlamayı bitirdiğinizde, aşağıdaki uyarıyı okuduktan sonra bir sonraki adıma geçin.
  8. İki kartınız olduğundan, ileride sorun yaşamamak için her birinin hangi kodla programlandığını UNUTMAYIN.
  9. Yani, bir Pro Mini'niz varsa, bir programcıya ihtiyacınız olacak. İki tür programcı vardır: 5 pinli ve 6 pinli olanlar. Benimkiler onlar olduğu için 5 pinli olanlara odaklanacağım. Bağlantılar şu şekildedir (ilk pin programcıdan, sonra arduinodan): Gnd--Gnd; 5v-Vcc (Pro Mini'nizin 3.3v olması ve bu durumda 3.3v--Vcc olması dışında); Rxd--Txo; Txd--Rxi. Kontrol etmeniz gerekebilir diye hem panonun hem de programcının resmini ekledim.
  10. Arduino'nuzu programlayıcıya ve programlayıcıyı bilgisayarınıza bağlayın. IDE'yi açın ve yükle düğmesine tıklayın. Ekranın sol alt kısmına bakarsanız "derleniyor" yazan bir mesaj göreceksiniz. Bu mesaj "yükleniyor"a dönüştüğü an, arduino Pro Mini'deki sıfırlama düğmesine basın. Bir süre sonra çizim bitecek ve "Yükleme tamamlandı" yazan bir mesaj görünecektir. Bu gerçekleştiğinde, işiniz bitti ve bir sonraki adıma geçmeye hazırsınız.

Adım 5: Her Şeyi Bağlama

Her Şeyi Bağlamak
Her Şeyi Bağlamak
Her Şeyi Bağlamak
Her Şeyi Bağlamak
Her Şeyi Bağlamak
Her Şeyi Bağlamak
Her Şeyi Bağlamak
Her Şeyi Bağlamak
  1. Her iki arduinoyu da programladıktan sonra, çalışması için her şeyi bağlamamız gerekiyor. Burada daha önce bahsedilen her şeye ihtiyacımız olacak: arduinolar, nrf24 modülleri, kablolar, servo, programlayıcı, voltaj bölücü, potansiyometre, vb.
  2. İlk önce programcı ile çalışan arduino'yu bağlayacağız. Adımın başında nrf24'ün bağlantılarının görüntüleri bulunmaktadır. Arduino üzerinde pin 8'e gideceği söylenen irq pini hiç bağlı değil. Gerisi her iki arduino için de görseldeki gibidir (daha fazla bilgi için görsellerin içindeki notları okuyabilirsiniz)
  3. Telsiz için Vcc, 3.3 veya 5v'ye bağlanabilir. Bazen sadece biri ile çalışır. Çalışmazsa 3.3 ve ardından 5 ile deneyin. 3.3 için programlayıcının 3.3v pinini kullanın. Bitmiş ürünün resimlerinde de göreceğiniz gibi bunu yapmak zorunda kaldım.
  4. Programlayıcıyı bir önceki adımda söylendiği gibi arduinoya bağlayın.
  5. Potansiyometrenin "sinyal" kablosunu analog pin A0'a bağlayın.
  6. Potansiyometrenin "Pozitif"ini Vcc'ye (yalnızca 5v, 3.3 değil) ve "Negatif"ini Gnd'ye bağlayın.
  7. Diğer arduinoya geçin.
  8. Telsizi resimlere göre daha önce söylendiği gibi bağlayın.
  9. Servonun sinyal kablosunu (turuncu-sarı-beyaz. Servo için teknik özellikleri kontrol edin) dijital pin 2'ye ve gnd'sini arduino'nun Gnd'sine ve pozitif ucunu arduino'nun Vcc'sine bağlayın.
  10. Voltaj bölücüden gelen sinyal kablosu 1'i pim A0'a ve sinyal kablosu 2'yi pim A1'e bağlayın.
  11. Protokolü, voltaj bölücünün negatif kablosunu, arduino'nun gnd'sini ve pilin gnd'sini (jst fişindeki siyah kablo) kullanarak bağlayın.
  12. Voltaj bölücüden gelen "orta kabloyu" akünün ortasındaki kabloya, jst fişinin (beyaz renk) kırmızı ve siyah kabloları arasına bağlayın.
  13. Voltaj bölücüden gelen 'pozitif' kabloyu akünün pozitif terminaline ve arduino'nun Raw'ına bağlayın. Bu pin özellikle 5v için olduğundan doğrudan Vcc'ye bağlamayın. Raw pin 3,3 veya 5v ila 12v üzerindeki herhangi bir voltajı kullanır ve düzenler. Vcc pinleri daha sonra 5v ile çıkış olur.

Neredeyse bitti! Bitmiş ürünleriniz yukarıdaki resimler gibi görünmelidir. Kısa devreleri önlemek için her bağlantıyı yeniden kontrol edin.

Adım 6: Projenizi Güçlendirin

  • Pili tüm devreye bağladığınızda, servo ile arduino'nuz son adıma güç verdi. Yani, sadece diğer arduino'yu bir usb portuna bağlamanız gerekiyor ve işiniz bitti!
  • Potansiyometreyi hareket ettirin ve servonun da nasıl hareket ettiğini görmelisiniz. Benim durumumda servo, açıyı sınırlayan 1 eksenli bir kamera gimbalına bağlı, bu yüzden parametreleri ayarlamak zorunda kaldım. Bunu zaten kodda bulacaksınız.
  • Voltajları görmek için programlayıcıyı bilgisayara bağladıktan sonra arduino yazılımını açın ve "Ctrl+Shift+m" tuşlarına basın. "Seri Monitör" yazan bir pencere açılacaktır. Bu pencerenin altında "(sayı) baud" yazan bir seçenek vardır. Üzerine tıklayın ve "9600" seçeneğini seçin. Monitörü kapatın ve aynı tuşlara basarak tekrar açın ve bir çok değerin geldiğini görmeye başlamalısınız. Bu değerlerin ne hızla geldiğini göremeyeceksiniz, ancak bağlantıyı keserseniz bu değerlerin ne olduğunu göremezsiniz. programlayıcı dururlar ve onları okuyabilirsiniz. Voltajları görüntülemek veya led'lerle temsil etmek için bunları otomatik olarak grafiklendirecek bir şey almaya çalışıyorum, ancak bu hala devam ediyor.
  • Değerleri net bir şekilde göremeseniz bile, çok hızlı geçtikleri için, sonunda işe yaradığını ve ihtiyaçlarınızı karşılamak için değiştirebileceğinizi bilin!

7. Adım: Demo

Pekala, bu benim onu çalıştırdığım ve nasıl çalışması gerektiğini size göstermek için biraz kullandığım video.

8. Adım: Bu Projeyi Nasıl Kullanacağınıza Dair Daha Fazla Fikir

Bu Projeyi Nasıl Kullanacağınıza Dair Daha Fazla Fikir
Bu Projeyi Nasıl Kullanacağınıza Dair Daha Fazla Fikir
Bu Projeyi Nasıl Kullanacağınıza Dair Daha Fazla Fikir
Bu Projeyi Nasıl Kullanacağınıza Dair Daha Fazla Fikir
Bu Projeyi Nasıl Kullanacağınıza Dair Daha Fazla Fikir
Bu Projeyi Nasıl Kullanacağınıza Dair Daha Fazla Fikir

Bunu temel olarak kullanarak oluşturabileceğiniz bazı fikirler. Bunlardan birini yapıp yapmadığınızı veya deneyip yapamadığınızı söyleyin, böylece yardımcı olabilirim!

  • Voltajları okumak yerine kodu, sıcaklığı, basıncı, yüksekliği vs. geri gönderecek şekilde değiştirin. BMP180 çipini bunun için oldukça faydalı buldum.
  • HC-SR04 modülü ile mesafeleri ölçün ve ilk arduinoya geri gönderin. Sensörü istediğiniz yere yönlendirmek için servoyu kullanın.
  • Bir kamerayı yukarı ve yana hareket ettirmek için başka bir servo kanalı ekleyin; örneğin, bir rc arabada.
  • Diğer üç servo kanalını (veya daha fazlasını) ekleyin ve bir quadcopter, uçak, helikopter, rc araba vb. için kendi rc vericinizi ve alıcınızı yapın!
  • Bir projektör için servoyu değiştirin ve drone'nuza ekleyin! Ayrıca ışığın yoğunluğunu da kontrol edebileceksiniz (bazı transistörlere ve bazı kod değişikliklerine ihtiyaç duyabilir)
  • Bir bilgisayardaki voltajları okumak yerine yaratıcı olun ve bir lcd modülü ekleyin ya da pil azaldıkça onları birer birer kapatacak 6 ledli bir pano (iki yeşil, iki sarı ve iki kırmızı) yapabilirsiniz. pil seviyesi seçtiğiniz voltajın altına düştüğünde yanıp sönmeye başlayacaktır. Bu küçük tahtayı yaptım ve adımın başında bir resim yayınladım.

Her şeyi açıklığa kavuşturmak için, bu projelerden birini yapacaksanız, her iki kodu ve belki de bazı bağlantıları değiştirmeniz gerekeceğini unutmayın. Lütfen tahtanızı aptalca bir şey yaparak kızartmamaya çalışın.

Bu projelerden birini gerçekleştirmek için daha fazla fikriniz varsa veya yardıma ihtiyacınız varsa, lütfen soru bölümüne gönderin!

9. Adım: Sorun Giderme

Sorun giderme
Sorun giderme

Doğrusunu söylemek gerekirse şu ana kadar karşılaştığım sorunların çoğu sizin çözdüğünüz eskiz kısmıyla ilgiliydi. Size en iyi şekilde yardımcı olmak için elimden geldiğince çok sorun anlatmaya çalışacağım.

İlk olarak, taslağı yüklemeye çalışıyorsanız ve yapamıyorsanız şunu deneyin:

Gerekli kitaplıkları (ve doğru olanları!) indirdiğinizden emin olun.

Doğru anakartı, işlemciyi ve programlayıcıyı seçtiğinizden emin olun.

PC ile programlayıcı ve programlayıcı ile arduino arasındaki bağlantının iyi olduğundan emin olun.

Pro mini kullanıyorsanız, "yükleniyor" mesajı göründükten sonra mümkün olan en kısa sürede sıfırlama düğmesine basmayı deneyin.

Bütün bunlar ARDUINO'NUN PROGRAMLANMASI adımında konuşulur.

İkinci olarak, her şey arasındaki tüm bağlantıları kontrol edin:

Arduino'nuz açılmıyorsa, bu açıkça bir voltaj sorunudur. Kabloların düzgün bağlanmadığını ve kısa devre olup olmadığını kontrol edin.

Güç veriyor ama çalışmıyorsa, tüm bağlantıların olması gerektiği yerde olduğundan, servoya bağlanmak için programlanan arduino ve voltaj bölücünün gerçekten onlara bağlı olduğundan emin olun (yani karıştırmadığınızdan emin olun) yukarı), her ikisinde de sıfırlama düğmesine basmayı deneyin ve ne olduğunu görün. Son derece nadir durumlarda, tüm suç NRF24 modülünde olabilir. Sadece 5 voltta çalışan bir tane ve sadece 3.3v'de çalışan bir tane buldum. Bunun bir şeyi çözüp çözmediğini kontrol edin. Ayrıca sadece bir arduino'nun 3.3v radyo ile çalıştığı ve diğerinin sadece 5v ile çalıştığı da başıma geldi. Şaşırtıcı, değil mi?

Üçüncüsü, servoyu hareket ettirebiliyorsanız ancak voltajlar yanlışsa, voltaj bölücü bağlantılarının 3. adımdaki şemadaki gibi olduğunu ve arduinoya olan bağlantıyı kontrol edin. Öte yandan voltaj alıyorsanız ancak servoyu doğru hareket ettiremiyorsanız, potansiyometreyi ve bağlantılarını, servonun dijital pime ve Vcc ve Gnd'ye bağlantısını ve servo sıkışmış, bozuk veya içinde olup olmadığını kontrol edin. kısa devre. Başka bir servo ile değiştirmeyi deneyin. Dijital pinin kodda belirtilenle aynı olduğundan emin olun

Şey, bunlar karşılaşabileceğiniz sorunlarla ilgili aklıma gelebilecek şeyler. Umarım asla olmaz ve Mutlu Projeler!

Eğitilebilirliğimi okuduğunuz için teşekkür ederiz! İLK KEZ YAZAR Yarışması için lütfen paylaşın ve oy verin!

Önerilen: