Önce biraz tarihte yolculuk yapalım….
Yıllar yıllar önce telsiz üzerinden bilgisayar verisi gönderebileceğimi keşfettiğimde dünyalar benim olmuştu. 90’lı yıllarda telsizlerimize bağladığımız ANTRAK HF/VHF modemleri ile hem HF’de (300 baud) hem de VHF’de (1200 baud) pekçok sayısal haberleşmeyi başarmıştık. Yavaştı ama çok da iş görüyordu.
90’lı yıllarda ülkemize henüz internet yeni gelmişken ve kimseciklerin evinde internet yokken, hatta adını bile kimse bilmezken biz bir grup amatör telsizci (ki ben evime telefon bağlatamadığım ve telefon sırasının da 6 aydan önce olmaması da bir yana) telsizlerimize bağladığımız modemler ve AX25 protokolü ile birbirimizle haberleşiyorduk.
Uzun bir süre ODTÜ ve Ankara Üniversitesi’ne kurduğumuz AMPR (Amateur Packet Radio Network) üzerinden internete de bağlanıyorduk.
Bu konular ve o yıllardaki deneyimlerimizle ilgili olarak şu linkleri ziyaret etmenizi öneririm;
- Telsiz Veri İletişimi (Bölüm 1) : https://www.youtube.com/watch?v=VK49hlQoCso
- Telsiz Veri İletişimi (Bölüm 2) : https://www.youtube.com/watch?v=RfGFjVR-Ls0&t=9s
- Telsiz Veri İletişimi Sunum Dokümanı : https://github.com/barisdinc/Sunumlar/raw/master/ANTRAK_AX25_APRS_v1.pdf
- Linux ve AX25 : https://github.com/barisdinc/Sunumlar/raw/master/Packet-Radio-ve-Linux%20(2).ppt
Ardından internetin yaygınlaşması, her eve kolayca telefon (dialup) ve dahası ADSL, WIFI gibi hizmetlerin gelmesi, cep telefonlarındaki akıl almaz ilerleme sonrasında bu telsiz üzerinden veri haberleşmesi konusuna biraz uzak kalmıştım.
Taa ki askeri bir projede kullanabileceğim bir altlık protokolü arayışına girene dek, eski dost yine beni kurtarmıştı “AX25”…. Gerçi küp uydu haberleşme sistemlerinde AX25 ile haşır neşir oluyorduk ama temel kullanımdan öteye de geçemiyorduk.
Dokümanları okurken, hep bildiğim ucundan kullandığım ama bir yandan da kendimce “ARAÇ TAKİP SİSTEMİ” muamelesi çektiğim APRS (Amateur Paclet Reporting System) sistemini inceleyince gördüm ki zamanında (1980’li yıllar) askeri gemilerin haberleşmesi ve hem koordinat paylaşımı hem de taktik deniz resmi oluşturulması için bu protokolün içinde yok yok. O zamanlar bunu Commodore 64 bilgisayar üzerinde çalıştırıyor ve gemi telsizlerine bağlayarak kullanıyorlarmış.
APRS ile ilgili olarak spesifikasyonların anlatıldığı 0http://www.aprs.org/doc/APRS101.PDF dokümanı okuyabileceğiniz en güzel doküman bence.
Nasıl başladık…….
Bu arada bir Amatör Telsizci APRS grubu olan “APRS Türkiye” grubuna dahil olmuştum ve Türkiye’deki APRS çalışmalarını uzaktan takip etmeye çalışıyordum. Birgün bu platformun yöneticilerinden Emre Keleş (TA6AEU) ile yaptığımız uzun bir telefon görüşmesinde “biz bir tracker yapamazmıyız?” sorusu herşeyin başlangıcı oldu. Yaparız yapmasına da, öyle herhangibir tracker yapmak bize yakışmazdı, o yüzden hemen “yaparız” demedim, kafamın içinde uzun vadeli bir plan yaptım (bu görüşme sanırım 1 yıl kadar önceydi).
Önce yapılmış olan projeleri incelemeye başladım, sonra nasıl bir donanım olmalı konusuna yoğunlaştım. Hem basit olmalıydı, herkes kolayca yapabilmeli ve kullanabilmeliydi hem de biz eözgün olmalıydı.
Örnekleri inceleyince gördüm ki donanımda özgünlüğü sağlamak zor olacaktı,;
- Herkesin kolayca erişebileceği ve programlayabileceği bir arduino
- En ucuzundan bir GPS alıcısı
- Basit bir regülatör yada buck çevirici
- Konnektörler ve ledler
Ama yazılım konusunda özgün birşeyler oluşturabilirdik. İşte böyle başladı “İZCİ hymTracker” projesi.
Nasıl oluyor da oluyor…..
Sanırım kolay olan tarafı donanım olacağı için donanımdan başlamak daha doğru olacak. Amacımız 1200 ve 2200 Hz’lik ses tonları üretmek ve bunlara ‘0’ ile ‘1’ sayısal değerlerini eşlemek (bunlara mark ve space de denir). Yani işlemcimizden (arduino Nano için ATMEL mega328p) çıkacak veriyi 2 tondaki ses sinyallerine çevirmeliyiz.
Sayısal verinin analog bir forma dönüştürülmesine Digital-to-Analog Conversion (DAC) diyoruz ve bunu ya bir DAC çipi ile ya da en basinten Resistor-Ladder dediğimiz birkaç direnç ile yapabiliyoruz. En ucuz ve kolay yolu (işlemcimizde de yeterince boş bacağımız olduğu için) resistor ladder (direnç merdiveni) olduğundan 4-bit’lik (4 tane işlemci sayısal bacağı kullanan) devreyi kullanmayı tercih ettim.
Aşağıda şemamızın bu bölümünü görebilirsiniz;
İşlemcimizin D4,D5,D6 ve D7 bacaklarından HIGH (3V3) verdiğimizde hesaplanmış olan dirençler üzerinden toplanarak (1K, 2K2, 3K3 ve 8K8) bir voltaş değeri oluşturulur. Bu işlemci kontrolünde çok shızlı yapabilirisek (1200 Hz için saniyede yaklaşık 1200 kez ve 2200 Hz için saniyede 2200 kez, ya da yazının yazılım bölümünde anlatacağım küçük bir trik ile daha basit bir şekilde) 4 bitlik yani 16 seviyeye sahip bir sayısal analog çevirici yapmış oluruz. Oluşan sinyal aşağıdakine benzer birşey olacaktır;
Aslında APRS Tracker’ımızın en can alıcı noktası yani modemi de sadece bu 4 dirençten oluşuyor. Kalan kısmında 2 bacak üzerinden (RX ve TX) bağlı olan GPS’imiz, PTT tetiklemesi için bir transistörümüz, TX anında yanan bir LED2imi, 9 pin DSUB-9 konnektörümüz ve sistemin 3-30 volt aralığında çalışmasını sağlayan BUCK converterimiz var. BU sayede sistem aşağıdaki gibi beslemelerle hiçbir değişiklik ya da düzenleme yapılmaksızın kullanılabiliniyor;
- Sistem 3V7 lityum pil
- 5V power bank
- 9V kare pil
- 12V araba aküsü
- 19V laptop pili
- 24V kamyon aküsü, vb.
Şemamız aşağıdaki gibidir;
KiCAD ile yaptığım şematik ve PCB’lerinin en güncel hallerine https://github.com/barisdinc/hymTR adresinden ulaşabilirsiniz.
PCB ve 3 Boyutlu görünümü aşağıdaki gibidir;
Donanım istediğimiz boyutlarda ve özelliklerde, küçük bir kutu içerisinde aracımızın herhangi bir yerine koyabiliriz.
Peki ya işlemci üzerindeki yazılım !!!!….
İşlemci üzerindeki yazılım yapması gerekenleri şu şekilde belirlemiştim;
-
1200Hz ve 2200Hz sinyallerini direnç-merdiveni DAC devresini kullanarak oluşturacak,
-
AX25 dizilimine uygun olarak APRS paketleri oluşturabilecek,
-
GPS den koordinat ve zaman bilgisi okuyabilecek,
-
GPS verisini APRS verisine çevirebilecek,
-
Batarya/Akü durumunu ölçebilecek ve bunu APRS verisine ekleyebilecek,
-
Harici sensörlerden (analog ve sayısal) verş okuyarak bunları APRS verisine ekleyebilecek
https://github.com/barisdinc/hymTR/blob/master/src/hymTR.ino adresinden erişebileceiğiniz programın genel özellikleri aşağıdaki gibi açıklanabilir;
LibAPRS_Tracker kütüphanesini kullanır. Bu kütüphane bu proje kapsamında hazırlanmış ve Arduino IDE kütüphanesi olarak kaydettirilmiş bir kütüphane olup, Ardu,ino IDE’sindeki (bugün için) tek APRS Tracker kütüphanesidir (https://www.arduinolibraries.info/libraries/lib-aprs_tracker, https://github.com/barisdinc/LibAPRS_Tracker, https://platformio.org/lib/show/7001/LibAPRS_Tracker)
Kütüphanenin görevi AX25 paketini oluşturmak ve APRS için gerekli ses sinyallerini üretmektir. Bu kütüphaneyi kullanarak ve sadece birkaç satır kod yazarak aşağıdaki gibi bir APRS programı çalıştırabilirsiniz;
/*
* This is a very simple usage for LibAPRS_Tracker
*
* Author : Baris DINC (TA7W/OH2UDS)
*
*/
#include <LibAPRS_Tracker.h>
void setup()
{
APRS_init();
char myCALL[] = “TA7W”;
char Lat[] = “2134.00N”;
char Lon[] = “01234.00E”;
APRS_setCallsign(myCALL, 9);
APRS_setLat(Lat);
APRS_setLon(Lon);
}
void loop() {
char comment []= “TAMSAT hymTR APRS Tracker Test”;
APRS_sendLoc(comment, strlen(comment));
while(bitRead(PORTB,5)); //Wait for transmission to be completed delay(10000);
}
Bunun ayarlarını nasıl yapacağız ?….
Herkesin arduino programını açıp çağrı işaretini değiştirmesini ya da sembolünü ayarlamasını bekleyemezdik bu nedenle bir de PC programı yazdık ayarları kolayca yapılabilsin diye. Ben M$ windows ortamına sahip olmadığım ve genelde Linux kullandığım için programı multiplatform (yani her işletim sisteminde çalışabilen) bir program yapmayı hedefledik.
APRS Tracker’imizin tüm ayarlarını yapabileceğimiz aşağıdaki gibiprogram oluşmuş oldu. BU programla tracker içindeki bilgileri bilgisayara yükleyebiliyor, bilgisayar ekranında yaptığınız ayarlamaları da kolayca tracker’in hafızasına yükleyebiliyorsunuz.
Başta bu çalışmanın gerçeklenmesi için bizleri yüreklendiren arkadaşlarımız olmak üzere, bu projeyi gerçekleştirecek ve kullanacak herkese yapacakları geridönüşler ve iyileştirmeler için şimdiden teşekkür etmek isterim.
Bu proje Türk Amatörlüğü’nü bir adım daha ileri götürmek, APRS çalışmalarının ülkemizde de olabildiğince yaygınlaşmasını sağlamak amacı ile bu amaçla gönüllü olarak çalışan APRS Türkiye grubunun çalışmalarına az da olsa katkıda bulunmak amacı ile hazırlanmıştır.
Bu proje devamında, aynı veya benzer kütüphane altlığımızı kullanarak (gerekiyor ise daha da geliştirerek);
- Digipeater
- Gateway
- APRS Telsiz
gibi çalışmaları ekibimize katılacak gönüllü dostlarımızla gerçekleştirmeyi hedefliyoruz.
Barış DİNÇ
TA7W / OH2UDS
Her zaman “bizim onlardan neyimiz eksik, biz de yaparız” diyerek beni yüreklendiren Tahir DENGİZ (TA2T)‘in bu projemde de, bundan öncekilerde de ve bundan sonrakilerin hepsinde herzaman izi olacak….
Yorum