Bu paylaşımda, epey bir süredir başarıyla kullandığım bir projeden bahsedeceğim.
K3NG isimli radyo amatörünün geliştirdiği Arduino tabanlı bir antenna controller.
Öncelikle ne iş yapar?
Bildiğiniz gibi, özellikle yönlü anten kullanan arkadaşlar, anten yönlerini çevirmek için bir rotor kullanmakta..
Bu rotorun hangi yöne baktığı, çevirme işlemleri ise istasyonun içinde bulunan bir kontrol kutusu ile yapılmakta..
Genelde çok sağlıklı olmayan bu kutu, zaman zaman bozulmakta (Trafosu yanar, dişlisi bozulur vs)
Ayrıca kullanmak ta kolay değil.. Ne var ki bunda, çeviriyoruz dönüyor diyecekler için
bu rotoru bir de Uydu takibinde ya da ay takibinde kullanmalarını isteyeceğim.
Elle sürekli yön vermekten hobiden soğursunuz :)
Peki ne yapalım derseniz, bazı rotor üreticilerin rotor kontrolünü bilgisayardan yapmak için oldukça pahalıya sattıkları arayüz çözümlerinden alabilirsiniz.. Ya da kendi rotor controlleri'inizi kendiniz yaparsınız.
Bu yazıda temel olarak neler yapar, nasıl kullanılır tarzı açıklamalar yapacağım ama, projenin kendisi çok detaylı.. O yüzden bir kısmını proje'nin kendi sayfasından takip etmeniz daha doğru olacaktır.
Projenin orjinal sayfası
https://blog.radioartisan.com/yaesu-rotator-computer-serial-interface/
Ayrıca proje'nin kodlarının bulunduğu kısım
https://github.com/k3ng/k3ng_rotator_controller adresinden görülebilir.
Rotor projesinin neredeyse her soruya kaynak oluşturabilecek wiki sayfasına ise
https://github.com/k3ng/k3ng_rotator_controller/wiki
linkinden erişebilirsiniz. Neler yapabildiği, neleri desteklediği ile ilgili tüm bilgi burada mevcut.
Cihazi hazirladiktan sonra ister manual olarak üzerindeki düğmelerden, isterseniz USB ile bilgisayarınıza bağlayıp, mevcut log programınız ya da pstrotator gibi bir yazılımla direkt bilgisayar üzerinden kullanmak mümkün.
Öncelikle malzeme olarak nelere ihtiyacımız var.
- Bir anten rotoru (hazır birşey de olabilir, redüktör ve dişliler ile kendi yaptığınız bir rotator de olabilir.)
- Anten rotoru'nun yönünü bildirebilecek bir sensör.
Bu sensörler çok farklı özelliklerde olabiliyor.
Örneğin, çoğu rotorun içinde bir potansiyometre var.. Bu kullanılabilir
Ya da Arduino tabanlı çalışan manyetik pusulalardan kullanabilrsiniz
Magnetic effect sensor kullanabilirsiniz
Rotary Encoder kullanabilirsiniz..
Bu malzeme rotorun baktığı yönü , arduino'ya göndermek için kullanılacak.
- Arduino (Uno, Mega vs..Projede kullanacağınız komponent sayısına göre)
- Arduino uyumlu Röle kartı (5V ve 12V versiyonları satılıyor)
- 2x16 ya da daha iyisi 4x20 LCD Ekran (I2C uyumlu olması daha kolaylaştırıyor işi)
- Ara bağlantılar için kablolar
- Kullanacağınız Rotor'un güç ihtiyacını karşılayacak bir güç kaynağı.
- Push Button (Manual Anten yönü seçimi için)
- Opsiyonel olarak Arduino için GPS ,RTC Saat ünitesi
- Hepsini bir araya toplayabileceğiniz bir kutu.
Buraya kadar tamam. Öncelikle, burada arduino nasıl programlanır, sketch dosyası nedir gibi detaylara girmek istemiyorum. Bunlar internette bir çok erde bulabileceğiniz bilgiler.
Çok temel olarak nasıl bir rotor kontrol devresi yapabiliriz'i gösteren temel bir çizim K3NG sayfasında paylaşmış.
Bu çizimden ne anlamalıyız?
Ortadaki Arduino. Arduino'ya yabancı olanlar için cihazın birkaç tip baglantısı vardır.
Birincisi digital in/out'lar... İkincisi Analog in, bunun yanında i2c ve seri bağlantı pinleri de bulunur.
Resmin sol üstünde bulunan Azimuth V ve elevation V pinleri rototardaki potansiyometre'den gelen okuma pinleri.
Tabii ki bu potansiyometrelere bu semada görünmeyen 5V ve ground baglantilarini da çekmemiz gerekiyor ki, okuduğumuz bir değer elde edebilelim. Bu pinleri A0 ve A1 uçlarına bağlıyoruz.
Bu pinlerin altındaki 4 adet düğme ise rotoru bilgisayar kontrolü haricinde el ile kontrol etmek istersek basacağımız düğmeler. Bu düğmeler de A2-A5 arasındaki pinlere yerleştirilmiş durumda.
LCD baglantisini tek tek anlatmayacağım.
Rotate CW-CCW Down ve Up ise cihazimiz rotora dönme komutlarını gönderirken kullanacağimiz pinler. Buradaki ornekte bu pinler basit bir devre uzerinden surulmus . Ancak Arduino icin kullanılan role kartlarından birini kullanacak isek, direkt olarak pin uçlarını role kartına girebiliyoruz.
İlave direnc kapasitor ve transistor ihtiyacımız bulunmuyor. Bu pinler de digital 7-8-9- ve 10. pinlere bağlı.
Simdi bu basit semaya göre yazılımın konfigurasyonuna geldi sıra.
İlk yapmamız gereken rotator_features dosyası içindeki kullanacağımız parametreler ile ilgili ayarlar.
Burada rotor kontrol kartımızın hangi özellikleri destekleyeceğini seçiyoruz.
Örneğin, rotorumuz sadece azimuth yani yatay hareket yapıyorsa FEATURE_ELEVATION_CONTROL seceneginin basinda "//" isaretinin olmasını yani disable olmasını sağlıyoruz. Ama hem yatay hem dikey destekliyor ise "//"işaretini kaldırmamiz gerekiyor.
Rotorumuzda gps baglantisi var ise, Moon_Tracking veya sun tracking opsiyonlarini açabiliriz. Yukarıdaki semaya göre baktığımız için buna da gerek yok.
Position sensor kısmında rotorun yön bilgisini nasıl okuduğumuz ile ilgili ayarlar mevcut.
Üstteki semada sadece potansiyometre kullanildigi icin
#define FEATURE_AZ_POSITION_POTENTIOMETER secenegini aktif edip digerlerini // ile kapali tutmak gerekiyor.
Ayni sekilde
#define FEATURE_EL_POSITION_POTENTIOMETER secenegini de aciyoruz.
Bir sonraki kisim ekran ayarlari.
Semadaki gibi 4 bitlik bir LCD kullanacak isek
#define FEATURE_4_BIT_LCD_DISPLAY
secenegini, I2C veya baska bir ekran tipi kullanacak isek te ona uygun parametreyi aktive ediyoruz.
Diger secenekler ile ilgili ayarlarin acilimlari en ustte verdigim linklerde mevcut. Hepsini tek tek aciklamayacagim.
Bu dosyadaki ayarlarimiz bitti.
Simdi geldik ilgili pinleri ayarlamaya.
rotator_pins dosyasini actigimizda,
bir cok pin ayari var.
Ben yine ustteki semaya göre hangi ayarları yapmak gerek onu söyleyeceğim.
Önce
#define rotate_cw 10
#define rotate_ccw 9
#define button_cw A2
#define button_ccw A3
#define rotate_down 8
#define button_up A4
#define button_down A5
ayrica potansiyometre okuma uçlari da
#define rotator_analog_az A0
#define rotator_analog_el A1
ayarları ile giriliyor.
seklinde semaya uygun eşlestirdik. Değerlerin bu olmasi sart degil. Arduino uzerinde hangi pinlere bagladiysaniz ona gore bu dosyayi degistirmeniz gerekiyor.
Üçüncü ve son dosyamız ise, rotator_settings dosyası.
Bu dosya icinde LCD ekran ayarlarımızı yapacağız.
#define LCD_COLUMNS 20
#define LCD_ROWS 4
seklinde yapacagimiz bir ayar 20x4 luk bir ekran icin gereklidir.
Semadaki ekran icin bu degerleri
#define LCD_COLUMNS 16
#define LCD_ROWS 2
Yapmamız yeterli.
Röle kontrol davranışını tersine çevirmek için (Ne zaman aktif ne zaman pasif olacağına göre)
#define ROTATE_PIN_INACTIVE_VALUE HIGH
#define ROTATE_PIN_ACTIVE_VALUE LOWşeklinde bir değişiklik uygun olacaktır. Bazı röle kartları normalde aktifken bazıları pasif oluyor. Bu ayar bunu değiştirmeye sağlıyor.
Daha sonra bu kodu arduino ya yüklediğimizde herhangi birşey gözden kaçırmadıysak çalışması lazım
Ayar dosyalarında gördüğünüz gibi birçok ayar var.
Kullanicinin isteklerine gore cok farklı şeyler yapmak mümkün.
Örnegin i2c tabanli bir sensor ile rotor yönünü ölçmek istiyorsak, i2c'nin kablo mesafesi cok kısa oldugundan evin icine indirme imkanimiz yok. Bu durumda bir arduino antenin yanina bir tane eve koyup master/slave seklinde calisabilmesi bile dusunulmus.
Bu kontrol kartını mevcut rotorunuza bağlamak için de aşağıdaki gibi bir bağlantı yolu izlayebilirsiniz.
İki tip rotor var bildiğiniz gibi. AC ve DC..
Rotorunuzun tipine göre röle bağlantılarını ayarlayabilirsiniz.
Benim evdeki setup'ta Azimuth Rotorum AC , Elevation ise DC. Tek bir 4'lü röle kartı ile çalıştırıyorum.
Bazı rotorlarda ilave olarak Brake fonksiyonu da var. Bu tür durumlarda 5'li röle kartı kullanılıp, kontrol kartindaki Brake fonksiyonu da kullanılabilmekte.
DC Motor Yön Kontrolü |
AC Motor Yön Kontrolü |
Bunlar standart bağlantı. DC motorunuzu isterseniz PWM kontrol kartı üzerinden sürerek hız kontrolü ile de kullanabilmeniz yine opsiyonlar arasında.
Dedigim gibi cok kapsamli bir urun. Herkesin ihtiyacina gore de farkli konfigurasyonlar yapmak mumkun.
Benimki basit bir yol gösterimi. Gerisi size kalmış.
73
G4HSK minimal tasarımı |