PIC16F13145 ile Ucuz Kablosuz Telemetri ve Konfigüre Edilebilir Mantık Blokları
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 fiyatla büyük tedarikçilerde bulunabilen düşük maliyetli bir çiptir. Arduino'dan daha az güçlü olmasına rağmen, konfigüre edilebilir mantık blokları (Configurable Logic Blocks - CLB) içermesi sayesinde çeşitli uygulamalarda esneklik sağlar. Bu mantık blokları, FPGA'lardaki gibi yeniden programlanabilir ve bu sayede çipin içindeki lojik işlevler özelleştirilebilir.
Çalışma Prensibi
Ayrıca Bakınız
Kodlama (Encoding)
Projede, PIC16F13145'in CLB'si kullanılarak bir pinin açılıp kapatılmasıyla anten görevi gören bir tel üzerinde kare dalga oluşturuluyor. Bu dalga, 96 MHz taşıyıcı frekansı üretir ve harmonik etkilerle RF yayını sağlanır. Veri iletimi için taşıyıcı sinyal açılıp kapatılır (On-Off Keying - OOK). Zamanlama sorunlarına karşı dayanıklılığı artırmak için Manchester kodlama kullanılır. Manchester kodlama, bit değerlerini genlik geçişleriyle ifade eder:
Bit 0: Yüksekten düşüğe geçiş (1 sonra 0)
Bit 1: Düşükten yükseğe geçiş (0 sonra 1)
Bu kodlama, sinyalin senkronizasyonunu kolaylaştırır ve hata toleransını artırır. Her veri baytından önce 0b11111111 senkronizasyon dizisi gönderilir. Bu dizi, alıcının Manchester kodlamasının fazını ve zamanlamasını eşlemesine olanak tanır.
Anten Tasarımı
İdeal olarak, 96 MHz taşıyıcı için anten uzunluğu dalga boyunun dörtte biri olan yaklaşık 75 cm olmalıdır. Ancak kısa mesafeler için daha kısa antenler (örneğin 8 cm tel) kullanılabilir. Kısa antenler, sinyal gücünde azalma yaratmasına rağmen bant dışı frekansların yayılımını azaltır. Bu, özellikle 32 MHz temel sinyalin oluşturduğu harmoniklerin filtrelenmesinde faydalıdır.
Alıcı ve Kod Çözme
Alıcı olarak RTL-SDR kullanılır. Python tabanlı bir betik (main.py), 512 Hz örnekleme hızında sinyalleri alır ve dijital 1 ve 0'lara dönüştürür. Bu veriler test.txt dosyasına yazılır ve PulseView gibi araçlarla OOK ve Manchester kod çözme fonksiyonları kullanılarak analiz edilir. Doğrudan Python ile de kod çözme yapılabilir ancak görselleştirme açısından PulseView tercih edilir.
Yazılım Kullanımı ve Ayarlar
sync_sequence: Senkronizasyon dizisini belirler (varsayılan 0b11111111).
start_tx: İletimi başlatmak için 1 yapılır.
sending_sync: Senkronizasyon gönderilirken 1 yapılır, aksi halde sadece veri baytı iletilir.
Bit hızı, zamanlayıcı ayarları değiştirilerek artırılabilir. Örnek olarak, 8 bit/saniye hızında iletim yapılmıştır ancak daha yüksek hızlar mümkündür.
Uygulama Sınırlamaları ve Düzenleyici Uyarılar
Bu sistem ticari uygulamalar için uygun değildir. Yayın gücü ve bant dışı yayılım nedeniyle radyo frekans düzenlemelerine uyulması gerekir. Kanada'da 50 nW üzerindeki yayınlar yasal değildir ve ABD FCC sertifikasyonu için güç ve frekans kısıtlamalarına uyulmalıdır. Ayrıca, zamanlama ve eşik değerleriyle ilgili sorunlar nedeniyle iletim %100 güvenilir değildir.
Geliştirici Deneyimleri ve Alternatifler
PIC16F13145'in CLB özellikleri ilgi çekici olmakla birlikte, gerçek dünya uygulamalarında kullanım alanı sınırlıdır. Arduino'nun geniş kütüphane desteği ve kolay geliştirme ortamı nedeniyle tercih edilmesi yaygındır. Daha gelişmiş mikrodenetleyiciler (örneğin STM32 veya RP2040) ve düşük maliyetli BLE veya 2.4 GHz RF çipleri (örneğin CH572) alternatif olarak değerlendirilebilir.
Sonuç
PIC16F13145 mikrodenetleyicisi, konfigüre edilebilir mantık blokları sayesinde düşük maliyetli ve basit kablosuz telemetri uygulamalarına olanak tanır. Ancak, bu yaklaşımın ticari uygulamalarda kullanımı sınırlıdır ve düzenleyici gereksinimlere dikkat edilmelidir. Proje, RF iletim ve kodlama tekniklerini öğrenmek ve deneysel çalışmalar yapmak için uygun bir platform sunar.
"Konfigüre edilebilir LUT'lar gerçekten çok ilginç, ancak pratikte kullanımı sınırlı kalıyor." – Proje geliştiricisi
Kaynak kod ve detaylı bilgiler: GitHub Projesi
























