İçindekiler:

Python RF Geliştirme Kiti: 5 Adım
Python RF Geliştirme Kiti: 5 Adım

Video: Python RF Geliştirme Kiti: 5 Adım

Video: Python RF Geliştirme Kiti: 5 Adım
Video: Java Dersleri #5- Proje Oluşturma ve IDE'ye Genel Bakış 2024, Temmuz
Anonim
Python RF Geliştirme Kiti
Python RF Geliştirme Kiti

Öncelikle RF işine nasıl girdiğimden ve neden bu proje üzerinde çalıştığımdan biraz bahsetmek istiyorum.

Donanıma ilgi duyan bir bilgisayar bilimi öğrencisi olarak, Ekim 2018'de kablosuz sinyaller ve kablosuz iletişimde güvenlik ile ilgili bazı kurslara katılmaya başladım. Hızlı bir şekilde RTL-SDR ve HackRF yazılım tanımlı telsizler ve harici cihazlarla denemeler yapmaya başladım. raf Arduino RF modülleri.

Sorun şu ki: SDR'ler benim amacım için yeterince taşınabilir değil (her zaman bir dizüstü bilgisayar, anten vb. taşımam gerekiyor) ve ucuz Arduino RF modülleri sinyal gücü, özelleştirilebilirlik, frekans aralıkları ve otomasyon açısından yeterince yetenekli değil.

Texas Instruments'ın CC1101 antenleri, aynı zamanda çok ucuz olan küçük ama yetenekli RF alıcı-vericileri için mükemmel bir seçimdir. İnsanlar, DIY SDR'ler ve bunun gibi şeyler gibi onlarla harika şeyler inşa ettiler.

Bu konu ile değinmek istediğim bir diğer konu da CircuitPython oldu. Hakkında çok iyi şeyler duyduğum mikrodenetleyicilerden yeni bir programlama dili bu yüzden denemek istedim. Özellikle bu projede kullandığım Adafruit's Feather M4 Express board ile birleştiğinde çok keyif aldığım ortaya çıktı. Kodunuzda her küçük değişiklik denediğinizde özel yazılımları derlemeniz gerekmediğinden hata ayıklamak çok kolaydır, bir REPL konsolu alırsınız ve kodunuz ayrıca mikrodenetleyicinin üzerinde kalır, yani onu taşıyabilirsiniz, takın çeşitli bilgisayarlara yükleyin ve her zaman hareket halindeyken değişiklik yapabileceksiniz.

Adım 1: Donanım Bileşenleri

Donanım bileşenleri
Donanım bileşenleri

Bu projeyi çoğaltmak için gerekenler:

  • Adafruit Tüy M4 Ekspres
  • 2x Texas Instruments CC1101 Alıcı-Verici + Anten
  • Adafruit FeatherWing OLED
  • 3.7V LiPo

Aslında, oldukça kompakt ve yetenekli bir RF alıcı-vericisine sahip olmak için ihtiyacınız olan tek şey bu, ancak resimde görebileceğiniz gibi, tüm bu atlama kablolarıyla çok güvenilir ve düzenli olmayacak.

Bu yüzden https://easyeda.com/ kullanarak özel bir PCB tasarladım ve her şeyi birbirine bağlamak için JLCPCB.com'dan (çok ucuz ve kaliteli!) sipariş ettim. Bu aynı zamanda kullanıcı girişi ve durum çıkışları için 3 düğme ve LED'in kolayca entegre edilmesini sağladı.

Ve son olarak, PCB'nin arkası için 3D küçük bir kapak yazdırdım, böylece hiçbir şeye kısa devre yapmasın ve masaya düz oturmasın.

Elektronik ve PCB tasarımında yeniyseniz, bu Eğitilebilir Öğelere göz atmanızı tavsiye ederim: Temel Elektronik, Devre Kartı Tasarım Sınıfı!

Eklerde PCB'm için Gerber dosyalarını bulabilirsiniz. Bunu imal ettirmeye karar verirseniz, JLCPCB ile ilişkili oldukları için LCSC'den şahsen sipariş ettiğim birkaç ekstra bileşene ihtiyacınız olacak, bu nedenle her şeyi birlikte göndermeyi teklif ediyorlar, bu da nakliye maliyetlerinden biraz tasarruf sağlıyor ve bileşenler de sadece orada çok ucuz. Ayrıntılı liste için Malzeme Listesine bakın. SMD bileşenleri için büyük paket boyutu olan 0805'i bilerek seçtim, böylece herkes bunları PCB'ye elle lehimleyebilir!

Adım 2: Tahtayı Oluşturma

Yönetim Kurulunu Oluşturmak
Yönetim Kurulunu Oluşturmak
Yönetim Kurulunu Oluşturmak
Yönetim Kurulunu Oluşturmak
Yönetim Kurulunu Oluşturmak
Yönetim Kurulunu Oluşturmak

İlk resimde PCB'leri herhangi bir "değişiklik" yapılmadan görebiliyoruz - fabrikadan bu şekilde geliyorlar. Tüm THT deliklerinde çok temiz kesimler (v-oluk yok, tamamen yönlendirilmiş) ve güzel geçişler.

LED'leri kullanmak istiyorsanız, onları SMD dirençlerinin yanı sıra lehimlemeniz gerekecektir. Dirençler genellikle mikrodenetleyicinin altına gizlenir, ancak tamamen lehimlenmiş kartı gösteren ikinci resimde görülebilir. Lehimleme konusunda çok fazla deneyiminiz yoksa, SMD'yi lehimlemek biraz zor olabilir, ancak bu biraz isteğe bağlıdır ve tüm temel bileşenler THT'dir. Dave'in (EEVblog) videolarını her zaman tavsiye ederim ve aslında bunu kendim izledim: EEVblog #186 - Lehimleme Eğitimi Bölüm 3 - Yüzey Montajı. Oldukça uzun ama bu işlerde yeniyseniz buna değer!

Bundan da bahsediyor, ancak: önce dirençleri ve LED'leri, ardından düğmeleri ikinci olarak ve sonunda başlıkları lehimlemeye dikkat edin. Bu şekilde, bileşeni alttan ve lehimi üstten itmek için her zaman tabloyu kullanabilirsiniz (PCB ters çevrilir).

Her şeyi lehimledikten sonra, Feather M4'ü ve bir veya iki anteni takabilirsiniz ve donanım hazır! Bu bileşenleri lehimlemediğimiz için, onları her zaman tahtadan çıkarabilir ve başka bir proje için kullanabiliriz, bu harika!

Üçüncü resimde Tüy üzerinde normal, kısa erkek başlıklara sahip olduğumu, bu nedenle OLED'i üst üste istifleyemediğimi lütfen unutmayın. Onları sökmek ve Tüy istifleme başlıkları eklemek zorunda kaldım. OLED'i kullanmak istiyorsanız, istifleme başlıklarını hemen alın, dürüst olmak gerekirse:D Lehim sökme sadece bir acıdır.

3. Adım: Yazılım

Donanım yapıldıktan sonra yazılımdan bahsedelim.

Girişte belirtildiği gibi, M4 Python kodunu çalıştırır, ancak Python dilinde CC1101 için bir kitaplık bulunmadığı açıktır. Bu yüzden DIYers'ın yaptığını yaptım ve kendiminkini yazdım. Burada bulabilirsiniz:

Büyük TI alıcı-vericilerinin yapabileceği her şeyi desteklemez, ancak ASK kodlu verileri herhangi bir frekansta kolayca göndermek ve almak için yeterlidir. Bu kütüphaneyi kullanarak hem RF kontrollü duvar prizleriyle hem de ailemin arabasıyla iletişim kurabildim.

Muhtemelen üzerinde çalışmaya devam edebilirim ve herhangi bir sorunuz, özellik isteğiniz varsa veya geliştirmeye katkıda bulunmak istiyorsanız, benimle iletişime geçmekten çekinmeyin!

4. Adım: Yetenekler ve Özellikler

Bu cihazı çift antenler ve yüksek düzeyde yapılandırılabilir TI CC1101 alıcı-vericiler kullanacak şekilde tasarladığımdan beri, özellikle akıllı telefon boyutunda bir cihazdan daha fazlasını taşımak istemediğiniz alanlarda bir çok olanağınız var.

Örneğin, 433MHz bandındaki iletişim sinyallerini yakalayabilir ve 868MHz'de çalışan ikincil anten ile bunları ev istasyonunuza geri gönderebilirsiniz.

Veya reaktif karıştırma ile çalışmak ve denemeler yapmak istiyorsanız, RX ve TX arasında geçiş yapmaya çalışmanın "geleneksel yöntemini" uygulamadan, iletim algılanır algılanmaz kendi sinyallerini gönderen bir dinleme ve sıkışma antenine sahip olabilirsiniz. mümkün olduğunca hızlı.

Feather M4 ile ilgili bir başka harika şey de, yerleşik bir LiPo şarj devresi ile gelmesidir, böylece pilinizi takıp kullanıma hazır hale gelirsiniz. Benim durumumda, bir anten sabit RX modunda, yayınları dinliyor ve OLED ekranı açıkken, cihaz 1000 mAh LiPo'da neredeyse 20 saat çalışacaktı.

OLED ekran kullanımı - ancak onsuz da mümkündür, örn. üç durum LED'ini kullanarak - birden fazla programa sahip olabilir ve kartın altındaki düğmelerle hangisini çalıştırmak istediğinizi seçebilirsiniz. Kişisel olarak, seçim yapabileceğiniz modlar ve bir frekans ayarı görünümü vb. içeren bir menüyü bile uyguladım.

Hatta bazı ev otomasyonu için bile olabilir! Bahsettiğim gibi, elektrik prizleriyle başarılı bir şekilde iletişim kurabildim (orijinal sinyalleri bir kez yakalayın ve ihtiyacınız olduğunda tekrar oynatın) ve internette biraz araştırma yaparsanız, aynı zamanda kaç cihazın da çalıştığını çabucak bulacaksınız. bu frekanslar hiç değişmeyen kodlarla. Hatta bazı garajların kodları bu cihazla kaydedilip kaydedilebilir ve daha sonra garajınızı açmanız veya kapatmanız gerektiğinde kullanılabilir. Böylece bu, tüm RF cihazlarınız için evrensel bir uzaktan kumanda olabilir!

RollJam saldırısını bu cihazla da kişisel olarak kopyaladım, ancak çoğu yerde sıkışma yasa dışı olduğu için kodu serbest bırakmayacağım, bu nedenle böyle bir şey denerseniz yerel yasalarınıza danışın;-)

Kartı taktığınızda bir USB disk olarak göründüğünden ve CircuitPython böyle bir özellik sunduğundan, cihazın RF aktarımlarını kaydetmesini ve demodüle edilmiş verileri (ah evet, alıcı-vericiler bunu otomatik olarak yapar!) bir metin dosyasına kaydetmesini sağlayabilirsiniz. daha sonra PC'nize kopyalayabilir ve iletimlerin tersine mühendisliği gibi bilimsel amaçlarla analiz edebilirsiniz.

Adım 5: Nihai Sonuç

Son sonuç
Son sonuç

Bu projeye yönelik herhangi bir geri bildirim, öneri ve katkı kabul edilir ve varsa soru sormaktan çekinmeyin!

Önerilen: