PIC16F13145 Mikrodenetleyici ile Ucuz Kablosuz Telemetri
Platformumuzdaki en çok okunan ve popüler makaleleri görmek için Trendler bölümüne geçebilirsiniz.
PIC16F13145, piyasada bir doların altında fiyatla bulunan, konfigüre edilebilir mantık bloklarına sahip bir mikrodenetleyicidir. Arduino'dan daha düşük işlem gücüne sahip olmasına rağmen, bu mantık blokları sayesinde FPGA benzeri içsel yeniden programlama imkanı sunar. Bu özellik, mikrodenetleyiciyi kablosuz telemetri gibi uygulamalarda kullanmaya olanak tanır.
Projenin Temel Prensipleri
Projede, PIC16F13145'in Curiosity Nano geliştirme kartı kullanılarak harici donanım olmadan dijital veri iletimi sağlanmaktadır. Veri, 96 MHz taşıyıcı frekansında iletilir ve başka bir radyo alıcısı tarafından alınarak çözümlenir.
Ayrıca Bakınız
Kodlama Yöntemi
Konfigüre edilebilir mantık blokları, bir pini açıp kapatarak anten görevi gören bir tel üzerinde kare dalga oluşturur. Bu kare dalga, harmonikler yaratarak 96 MHz civarında taşıyıcı frekansını oluşturur. Veri iletimi için taşıyıcının açılıp kapatılması esasına dayanan On-Off Keying (OOK) yöntemi kullanılır. Zamanlama sorunlarına karşı dayanıklılığı artırmak için Manchester kodlaması tercih edilmiştir.
Manchester kodlamasında:
Bit 0: Yüksekten düşüğe geçiş (1 sonra 0)
Bit 1: Düşükten yükseğe geçiş (0 sonra 1)
Her veri baytından önce 0b11111111 senkronizasyon dizisi gönderilir. Bu, alıcının zamanlamayı ve fazı senkronize etmesini sağlar.
Anten Tasarımı
İdeal anten uzunluğu taşıyıcı frekansın dalga boyunun dörtte biri kadardır (yaklaşık 75 cm). Ancak kısa mesafeler için daha kısa antenler (örneğin 8 cm 22 AWG tel) kullanılabilir. Kısa antenler, istenmeyen bant dışı frekansların yayılımını azaltmaya yardımcı olur.
Alıcı ve Kod Çözücü
Alıcı olarak RTL-SDR kullanılır. Python ile yazılmış bir script, 512 Hz örnekleme hızında verileri alır ve dijital 1 ve 0'lara dönüştürür. Bu veriler PulseView programına aktarılır ve entegre OOK ve Manchester kod çözücü fonksiyonlarıyla analiz edilir. Doğrudan Python ile de kod çözme yapılabilir ancak görselleştirme zorlaşır.
Kullanım ve Yazılım Ayarları
sync_sequence: Senkronizasyon dizisini tanımlar, varsayılan 0b11111111.
start_tx: 1 olarak ayarlandığında iletim başlar.
sending_sync: 1 olarak ayarlandığında senkronizasyon dizisi gönderilir.
Bit hızı, zamanlayıcı yüksek ve düşük baytlarının değiştirilmesiyle ayarlanabilir. Örnek olarak 8 bit/saniye hızında test edilmiştir.
Teknik ve Düzenleyici Notlar
Bu sistem test amaçlıdır ve gerçek uygulamalarda kullanılması önerilmez. Yayılım gücü ve frekans spektrumu üzerinde kontrolsüz parazit oluşturabilir. Kanada'da 50 nW altında emisyonlar yasal kabul edilirken, FCC sertifikasyonu için daha sıkı kurallar geçerlidir. Ayrıca 32 MHz ve 96 MHz frekansları lisanssız veya amatör radyo bandı değildir, bu nedenle yasal düzenlemelere dikkat edilmelidir.
Filtreleme denemeleri yapılmış ancak basit bileşenlerle elde edilen sonuçlar yetersiz kalmıştır. İleri düzey filtre tasarımları ve uygun anten kullanımı parazitleri azaltabilir.
Geliştirici Deneyimleri ve Alternatifler
PIC16F13145'in konfigüre edilebilir LUT'ları (Look-Up Table) kullanıcılar tarafından ilgi çekici bulunmakla birlikte, gerçek dünya uygulamalarında yaygın kullanım alanı bulamamıştır. Alternatif olarak, RP2040 mikrodenetleyicisinin PIO birimi veya CH572 gibi düşük maliyetli BLE ve 2.4 GHz radyo özellikli çipler tercih edilebilir.
Sonuç
PIC16F13145 mikrodenetleyicisi, düşük maliyetli ve temel kablosuz telemetri uygulamaları için konfigüre edilebilir mantık blokları sayesinde alternatif bir çözüm sunar. Manchester kodlaması ve OOK ile veri iletimi sağlanırken, anten tasarımı ve alıcı yazılımı önemli rol oynar. Ancak, zamanlama sorunları ve yasal kısıtlamalar dikkate alınmalıdır.
"Konfigüre edilebilir mantık bloklarıyla oynayarak işlerin nasıl yürüdüğünü görmek oldukça tatmin edici."























