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 mikrodenetleyicisi, yaklaşık bir doların altında fiyatıyla uygun maliyetli kablosuz telemetri uygulamaları için kullanılabilen bir mikrodenetleyicidir. Arduino'dan daha düşük işlem gücüne sahip olmasına rağmen, konfigüre edilebilir mantık blokları (Configurable Logic Blocks - CLB) sayesinde FPGA benzeri içsel mantık yeniden programlanabilirliği sunar. Bu özellik, düşük maliyetle kablosuz veri iletimi için önemli bir avantaj sağlar.
Projenin Temel Çalışma Prensibi
Bu proje, PIC16F13145 Curiosity Nano geliştirme kartı kullanılarak gerçekleştirilmiştir. Harici herhangi bir radyo frekansı donanımı olmadan, mikrodenetleyici üzerindeki bir pin, anten görevi gören bir tel aracılığıyla dijital veriyi 96 MHz frekansında iletmektedir. Bu iletim, taşıyıcı sinyalin açılıp kapatılması (On-Off Keying - OOK) ve Manchester kodlaması ile yapılır.
Ayrıca Bakınız
Kodlama Yöntemi
Taşıyıcı Sinyal Oluşumu: Konfigüre edilebilir mantık, bir pini kare dalga oluşturacak şekilde açıp kapatarak 96 MHz taşıyıcı frekansını üretir. Bu sinyalin harmonikleri sayesinde radyo frekansı yayılımı sağlanır.
On-Off Keying (OOK): Taşıyıcı sinyal, veri bitlerine göre açılır veya kapatılır.
Manchester Kodlama: Zamanlama sorunlarına karşı dayanıklılığı artırmak için veri, IEEE Manchester kodlaması ile kodlanır. Bu kodlama, bit değerlerini sinyalin yükselen ve düşen kenarlarıyla temsil eder:
Bit 0: Yüksekten düşüğe geçiş (1 sonra 0)
Bit 1: Düşükten yükseğe geçiş (0 sonra 1)
Senkronizasyon: 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 olarak, 96 MHz taşıyıcı için anten uzunluğu dalga boyunun çeyreği kadar (yaklaşık 75 cm) olmalıdır. Ancak, kısa mesafeli uygulamalarda anten uzunluğu 8 cm gibi daha kısa tutulabilir. Kısa anten, sinyal gücünü azaltmasına rağmen, istenmeyen frekansların yayılımını da azaltarak paraziti düşürür.
Alıcı ve Veri Çözümleme
Alıcı olarak RTL-SDR kullanılmıştır. Python ile yazılan bir betik (main.py), 512 Hz örnekleme hızında verileri okuyarak dijital 1 ve 0'lara dönüştürür. Bu veriler, PulseView gibi araçlarla analiz edilip OOK ve Manchester kodu çözümlenebilir. Doğrudan Python ile de çözümlenebilir ancak görselleştirme açısından PulseView tercih edilmiştir.
Teknik ve Düzenleyici Notlar
Güç ve Parazit: İletim gücü düşük tutulmuş (50 nW EIRP altında) ve kısa anten kullanılmıştır. Bu, spektrumda yayılabilecek paraziti azaltır ancak yine de ticari uygulamalarda kullanımı sınırlayabilir.
Zamanlama ve Eşik Problemleri: İletim %100 güvenilir değildir. Zamanlama sapmaları ve eşik değerlerinin belirlenmesindeki zorluklar, veri kaybına neden olabilir.
Frekans ve Yasal Durum: 32 MHz ve 96 MHz frekansları lisanssız veya amatör radyo bandı değildir. Ancak düşük güçlü iletimler belirli ülkelerde toleransla karşılanabilir. Ticari ürünlerde FCC ve benzeri düzenleyici sertifikasyon gereklilikleri göz önünde bulundurulmalıdır.
Yazılım ve Geliştirme
Derleyici: PIC16F13145 için x8c derleyicisi kullanılabilir.
Kod Değişiklikleri: Bit hızı, zamanlayıcı yüksek/düşük bayt değerleri değiştirilerek ayarlanabilir.
Kaynak Kod ve Dokümantasyon: Tüm dosyalar ve kullanım talimatları GitHub üzerinde mevcuttur.
Projenin Önemi ve Kullanım Alanları
Konfigüre edilebilir mantık blokları, mikrodenetleyicilere FPGA benzeri esneklik kazandırır. Bu proje, düşük maliyetli kablosuz telemetri için alternatif bir yöntem sunar. Ancak, ticari uygulamalarda parazit ve düzenleyici uyumluluk sorunları nedeniyle dikkatli değerlendirilmelidir. Eğitim ve prototipleme amaçlı kullanımlar için uygun bir örnek teşkil eder.
"Konfigüre edilebilir LUT'lar PIC ve AVR mikrodenetleyicilerinde oldukça ilginçtir, ancak gerçek dünya uygulamalarında henüz yaygın kullanım alanı bulamamıştır."

























