22 Temmuz 2021 Perşembe

Raspberry Pi ile İnternet Radyosu

 Radyo yayınlarının internet üzerinden yayınlanması uygulaması öyle ilerledi ki artık neredeyse mahallî yayın yapan radyoların bile internet üzerinde yayınları bulunuyor. Özellikle VHF bandında yayın yapan -ve FM radyolar olarak bilinen- radyoların yayın anteninden itibaren -coğrafî yapıya göre- en fazla 50 ilâ 80 km. arasında dinlenebildiği de göz önünde tutulunca, "mesafe tanımayan" internet radyolarının önemi daha da artıyor. Bu amaçla üretilmiş ticarî radyo alıcıları olduğu gibi, internet üzerinde pek çok uygulama reçetesi de bulmak mümkün. Radyoya olan merakım sebebiyle, bu konuya el atmış ve ESP32'li bir radyonun (KaRadio) yapılış safhalarını adım adım anlatmış idim. ( https://qsl.net/ta2ei/devreler/alici/int_radyo/int_radyo.htm )

Bir süre önce internette Raspberry Pi ile yapılan bir internet radyosu uygulaması ararken Bob Rathbone adlı IT danışmanı ve yazılımcının sayfasını buldum. ( https://bobrathbone.com/ )

Bu sayfada Raspberry Pi (RPI) ile yapılmış çeşitli projeler var. Bunların arasında benim ilgimi çeken RPI üzerinde çalışan internet radyosu oldu. 2 ve 4 satırlı, 8, 16 ve 20 sütünlu alfanümerik LCD, bunların I2C'li olanları, Adafruit'in beş tuşlu LCD'si, RPI 7 inch LCD, Adafruit 3.5 inch LCD, 0.96 inch OLED gibi bir çok ekran türünü destekleyen, sesin kulaklık çıkışından, HDMI'dan, RPI için DAC kartlarından alınabildiği oldukça ilginç bir devre idi.  Tam 308 sayfalık bir de yapım kitapçığı  (v7.2) vardı. Her şey en acemi kullanıcıların bile anlayabileceği bir şekilde ayrıntılı olarak anlatılmış bu kitapta.

Radyo, RPI 3, 4, 400 ve Zero-W'da çalışabiliyor.

Ben, önce bir RPI 3 üzerinde denemeye karar verdim. Her ne kadar Yazarın önerileri arasında olmasa da, elimde Waveshare 3.5 inch rezistif dokunmatik LCD ekran vardı. Onu kullanmaya karar verdim. Sesi de RPI'ın 4 boğumlu3.5 mm'lik jack çıkışından almaya karar verdim.


Dikkat! Yukarıdaki resimden de anlaşılacağı üzere, GND (şase, toprak) bağlantısı son boğumda değil sondan bir önceki boğumdadır.
Yapım kitapçığında anlatıldığı üzere, önce Raspberry Pi Masaüstünü kurdum. ( Raspberry Pi Masaüstünü kurmak ile alâkalı bilgiler https://qsl.net/ta2ei/muhtelif/RPi/raspberry.htm adresinde vardır.) 
HDMI üzerinden monitöre bağlı iken statik IP adresi belirleme ve SSH'yı etkinleştirme işlemlerini yaptım.
Masaüstünü ve birkaç yazılımı da kurduktan sonra karşıma radyonun yapılandırma ekranı geldi ve donanımıma göre gerekli yapılandırmaları yaptım.
Yukarıda da belirttiğim üzere, yapılandırmada Waveshare ile ilgili bir seçenek yok. Bunun yerine "küçük 2.8 inch LCD ekran" seçeneğini seçtim.
 Ayarlardan sonra sistemi yeniden başlattım ve BBC radyoyu dinlemeye başladım.
Artık Waveshare ekranı kullanmaya sıra gelmişti. Elimdeki ekran 3.5 inch A tipi olduğu için https://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A) adresindeki yönergelere uygun olarak LCD sürücüsünü de kurdum ve radyo Waveshare ekranda da çalıştı. Buraya kadar herşey iyi gitti.

Radyoyu kablosuz olarak dinlemek de mümkün.
Evet, RPI'da bluetooth (BT) olduğuna göre bu radyoyu bir BT hoparlör seti ya da BT kulaklık ile de dinlemek mümkün. Nitekim Yazar, radyo yapılandırmasının ses bölümünde BT seçeneği de vermiş. RPI masaüstünden JBL Go2 BT hoparlörümü tanıtmaya karar verdim. Ama masaüstünde BT simgesi yoktu. Komut satırına
sudo systemctl status bluetooth
yazdığımda, BT'un "ölü" olduğu mesajını aldım.
Devrenin yazarı ile mesajlaşarak fikrini sormak da dâhil bir sürü şey denedim ama BT'u "canlandıramadım."
En baştan başlayarak sistemi yeni baştan kurmaya karar verdim. SD karta temiz bir imaj atıp adım adım izlemeye başladım. Masaüstü monitörümde herşey normaldi. Waveshare LCD'yi kullanmak için ilgili sürücüyü yüklediğimde BT simgesi tekrar kayboldu. Denediğim herşeyi bir daha denedim, olmadı.
Üçüncü defa sistemi baştan kurmaya karar verdim. Yine olmadı. Bu sırada, Waveshare'in wiki sayfasındaki bir not dikkatimi çekti: "Executing apt-get upgrade will cause the LCD to fail to work properly.yazıyordu. Hmmmmm... demek upgrade işlemi ile uyumsuz bâzı unsurlar işin içini giriyordu.
Bunun üzerine daha eski sürümleri denemeye kadar verdim. 
 RPI'a 2020-05-27-raspios-buster-armhf_minimum sürümünü kurdum. Kurulum ekranında "sistemi güncellemek istiyor musunuz" sorusunu "atla" diyerek geçtim.
Kurulum bitince, henüz Waveshare sürücüsünü kurmadan, masaüstü monitörünü kullanarak BT hoparlörümü sisteme tanıttım.
Bir sonraki adımda Waveshare sürücüsünü yükledim ve
 sudo apt-get update
komutu ile sistemi güncelledim.
Daha sonra Yazarın kitabında belirttiği gibi ffmpeg, anacron, scratch, mpd mpc python3-mpd python3-rpi.gpio'u yükleyip son olarak  radiod_7.2_armhf.deb paketini kurdum.
 Radyo, JBL Go2 BT hoparlörü ile problemsizce çalıştı.

GÜNCELLEME: (26.07.2021)
Yazar Bob Rathbone, Waveshare LCD sürücülerinden kaynaklanan BT problemini çözmüş. Problemin kaynağının, Waveshare sürücüsünün kurulurken, config.txt dosyasını değiştirmesi olduğunu ve çözümünün config.txt dosyasına aşağıdaki iki satırı ilave etmek olduğunu belirtiyor:

dtoverlay=pi3-miniuart-bt
core_freq=250


Yine Waveshare sürücüsünün, config.txt dosyasını DOS biçimine çevirdiğini, bu dosyayı yeniden unix sistemine çevirmek için dos2unix yazılımının kullanılmasının gerektiğini belirtiyor. (s. 105 - 106)
GÜNCELLEME (26.06.2024)
RPi üzerinde çalışan internet radyosu yazılımının 7.7 sürümü https://bobrathbone.com/raspberrypi/pi_internet_radio.html adresinden temin edilebilir.

1 Haziran 2021 Salı

Pil doldurma

 Başlığa pil doldurma yazdım, zira bizde bütün kimyevî elektrik üreteçleri "pil" olarak biliniyor. Akümülatör de denilen doldurulabilir piller de aynı isimle anılıyor. Lityum pil, lityum iyon (li ion)  pil, lityum polimer (li po) pil, nikel kadmiyum (NiCad) pil, nikel metalhidrit (NiMH) pil. Bunun tek istisnası sanki kurşunlu aküler. Onlara pil demiyoruz, belki de büyük boyutlu olmalarından dolayı. Öyle ya da böyle artık doldurulabilir piller hayatımızın bir parçası oldu. Tabii pil doldurulabilir olunca doldurma devreleri de.

Ancak, pil doldurma devreleri konusunda pek de özenli sayılmayız. Eğer doldurulabilir pil telefon, matkap vs. gibi münhasıran bir cihaza aitse, doldurma devresi ya o cihazın üzerinde veya o cihaza özel olarak yanında verilir. Peki ya doldurma devresi yoksa?

İşte curcuna burada başlıyor. İpuçları başlıklı yazımda şunu yazmıştım: "Piyasada "Li ion şarj devresi" ibaresi de kullanılarak satılan pil koruma ve dengeleme devreleri ŞARJ için ÜRETİLMEMİŞTİR. Bu devrenin görevi, seri bağlanan li ion pillerin aşırı akım ve gerilime ve aşırı boşalmaya karşı korunması ve piller arasında dengeleme sağlamaktır."


Bunu yazmamım sebebi çoğu defa bu devrelerin "şarj devresi" olarak satılmasıdır. Buyrun!

Buna inanarak bu devreyi alıp 3 adet lityum iyon pili doldurmaya çalışan birisinin başına eğer şanslı ise pillerin tam dolmaması veya ömrünün kısalması gelir. Ancak, lityum piller "patlayıcıdır". Sizi yaralayabileceği gibi yangın çıkmasına da sebep olabilir.

Diğer piller daha mı az tehlikelidir? Uygun doldurma devresi ve şartları olmadan doldurulan bir nikel kadmiyum pilin patlaması hâlinde ortaya saçılabilecek kadmiyum zehirli bir maddedir. Keza kurşun da.

Hadi böyle en kötü ihtimalleri bir yana bırakalım. İşin bir de malî ciheti var. Birsürü para verip aldığınız pillerin çabucak ömrünün dolması veya işini yap(a)mamasının doğurduğu zararları da hesaba katmak gerekiyor. O halde yapılacak şey, her pili UYGUN ve DOĞRU bir doldurucu ile doldurmaktır.

Günümüzde lityum türevi doldurulabilir piller, küçük hacimde yüksek bir güç sunmaları sebebiyle pek revaçtalar. Bu yüzden amatörlerce yapılan devrelerde de sıklıkla kullanılmaktadır. Eğer tek bir li ion veya li po hücresi kullanıyorsanız piyasada pek çok ve ucuz doldurma devresi bulmanız mümkün. Bunların koruma devreli olanları da kolaylıkla bulunabiliyor. Eğer iki hücreli bir i ion veya li po hücre kullanıyorsanız, TP5100 tümdevreli bir doldurucu işinizi görecektir. TP5100 tümdevreli doldurucular hem tek ve hem de iki hücreli li ion ve li po piller için kullanılabilecek şekilde üretiliyor.

Bu arada bir ek bilgi vereyim: Pil hücreleri S harfiyle belirtilerek 1 hücre için 1S, 2 hücre için 2S... kısaltması kullanılıyor.

Peki 3 veya 4 (ya da daha fazla) li ion veya li po hücre kullanıyorsanız -yâni 3S ve daha fazla- ne olacak?

Bu konuyu araştırırken https://www.microfarad.de/li-charger/ adresinde arduino etrafına kurulmuş oldukça marifetli bir lityum pil doldurma devresi buldum. Devre, 1s ilâ 4s arasını doldurabiliyordu. 1S ve 2S için uygun doldurucularım olduğundan ve geriye benim kullandığım sâdece 3S kaldığından, devreyi 3S için gerçekleştirmeye karar verdim. Bir yandan da "ya 4S ve daha fazla hücreli bir uygulama gerekirse?" diye düşünmeden edemiyordum. Sonunda hazır bir devre almaya karar verdim. 


Yukarıda resmi görülen "çakma" denilen doldurucu aslında "klon". Üzerinde

LiIon, LiPo, LiFE  1-6 cells,

NiCd - NiMH 1- 15 cells

PB 2-20V

Yazıyor. 

Buna göre neredeyse doldur(a)madığı pil yok gibi. Ancak, LiFe konusunda şüpheliyim.

Bunun yanında devre, li ion piller için balans şarj özelliği de sunuyor.

Ayrıca boşaltma yoluyla kapasite ölçtüğü de belirtilmiş.

Ben sadece Li ion doldurma özelliğini kullandım şimdiye kadar ve oldukça başarılı bulduğumu söylemeliyim.

23 Mayıs 2021 Pazar

QCX-Mini için ek devre

 QCX-Mini serencamımı yazmıştım. Avuç içine kolaylıkla sığan ve oldukça hafif olan bu devrenin öncelikli amacı taşınabilir bir QRP CW alıcı-vericisidir. Taşınabilir olmanın gerçekleşebilmesi için besleme devresinin de taşınabilir olması gereklidir. Şu hâlde QCX-Mini bir akü tarafından beslenmelidir diye düşündüm. Bunun için 3 adet li-ion pil kullanmaya karar verdim. 3 adet li-ion pil tam doluyken 4.2 x 3) 12.6 v., en at sınırda ise (3 x 3) 9v gerilim sağlar.

Bunun için 3 adet kaliteli li-ion pil bularak işe başladım. Çin'den gelen ve uçuk kapasite değeri olan pillerden uzak durarak, LG markalı 3 pil satın aldım. Bunları 500F.'lık bir süper kondansatörle kendim puntalayarak, üzerine de bir 3S pil koruma devresi monte ettim. Böylece 12v.luk pil bloğum hazır oldu.


Bu pilleri sıradan bir kutuya koymak işime gelmedi. Altınkaya firmasının PR-224 kodlu kutusunu kullanmaya karar verdim.
QCX-Mini, normalde kulaklıkla kullanılmak üzere tasarlandığından, ses çıkışını güçlendirerek bir hoparlörden dinlemek üzere devreye bir de ses frekansı güç kuvvetlendiricisi eklemeye karar verdim.
Ayrıca, li-ion pillerimim gerilimini de öğrenebilmeliydim.
Yine bir amatör telsizci, bu cihazı alarak bir yerlere gidip oradan QSO yapmak isterse, konum bilgisinin ve UTC olarak saat bilgisinin de gerekli olduğu açık idi. Şu hâlde bir de GPS gerekiyordu.
Böylece araştırmaya başladım. 
ON4IY çağrı işaretli Belçikalı amatör telsizcinin "Roverbox" projesinin çeşitli ekleme ve iyileştirmelerden sonra ON4CDU tarafından hazırlanan Arduino projesini incelemeye başladım.
Madem devrede bir Arduino kullanılacak o zaman ek özellikler de olsun diye düşünerek, bir CW çözücü özelliği de eklemek istedim. Yine araştırmalarım sonucunda K4ICY çağrı işaretli Amerikalı bir amatör telsizcinin CW çözücü projesine ulaştım. 
GPS bilgilerini, CW kod çözmeyi ve pil gerilimini ölçmeyi tek bir Arduino yazılımından toplamak üzere ON4CDU'nun ve K4ICY'nin yazılımlarını birleştirdim, gereksiz bâzı özellikleri çıkardım ve yazılıma bir de gerilim ölçme rutini ekleyerek Arduino'ya yükledim.
Küçük bir plastik kutuya Çin malı bir GPS yerleştirip, bu GPS'i 9'lu bir konnektör vasıtasıyla kutunun üstüne takılıp çıkarılır hâle getirdim.

                                  
Kutulanmış GPS









29 Mayıs 2021

Bugün 29 Mayıs. İstanbul'un fethinin 568. yıldönümü kutlu olsun.

CW çözme işi zor bir iş. Alıcının işaretlerinin mikroişlemcinin anlayacağı hâle getirilmesi başlı başına bir problem. Esasen QCX-mini, CW çözme işini kendisi mükemmel olarak yapıyor. O yüzden CW çözme işinden vazgeçtim. Tek ekranda tarih, UTC saat, enlem ve boylam, râkım ve pil gerilimini aynı anda göstermenin daha uygun olacağını düşündüm ve yazılımı ona göre değiştirdim.

İşte yeni ekran:





14 Ağustos 2021
Her ne kadar pil dengeleme devreleri Li-ion pillerin aşırı boşalmasına karşı koruma sağlıyor denilse de, ben yine de bir tedbir olarak devreye bir doldurma ikazı ekledim. Pillerin gerilimi belli bir değerin altına düşünce ekranda DOLDUR yazısı çıkıyor. Ben bu değeri 10v olarak belirledim. Ancak bu değeri kendi isteğinize göre değiştirebilirsiniz. (9v'tan daha düşük olmamak kaydıyla!)
Devrenin şeması ile yeni kodlar aşağıdadır.

15 Ağustos 2021
Arduino kodları ile ilgili bâzı açıklamalar:
1) Devrede, R1 ve R2'den oluşan bir gerilim bölücü kullanılmıştır. Tam dolu iken her bir li-ion pilin gerilimi 4,2v'a kadar yükselir. Tam dolu hâlde seri bağlı 3 pilin gerilimi 4,2 x 3 = 12,6v, en düşük olarak da 3 x 3 = 9V olacağından, bu gerilim bölücü ZORUNLUDUR. R1 için 10k'lık, R2 için 3,9k'lık bir direnç kullandım. Kullandığınız dirençlerin değerini ölçerek Ohm birimi ile 
/ / Voltmetre değişkenleri kısmına yazın.
Benim devremde bu dirençlerin değeri şöyle idi:
float           r1=9960.0; // R1'in tam değerini ölçerek yazın. (ohm)
float           r2=3895.0; // R2'nin tam değerini ölçerek yazın. (ohm)
2) Devrede kullanılan LCD ekran, 4 satır 20 karakterlik olup, bir I2C sürücüsü ile kullanılmıştır. Bu sürücünün adresi genellikle 0x27'dir. Eğer sizin kullandığınız sürücünün adresi farklı ise
LiquidCrystal_I2C lcd(0x27,20,4); 
satırına doğru değeri yazın. (0x27 yerine)
3) Kullandığınız GPS modülünün haberleşme hızını
const int       GPSbitrate = 9600
satırına yazın. Benim kullandığım modülünü hızı 9600 baud idi.
4) Li - ion pilleri için doldurma ikaz değerini, void volc() yordamında
 if(input_voltage<10)
satırına yazınız. Benim belirlediğim değer 10 v idi.
5) Aşağıdaki kodlar, Arduino Leonardo'ya göre hazırlanmıştır. Eğer Arduino Uno vena Nano kullanacaksanız Serial1 ibârelerini Serial olarak değiştirin. Bu ibârelerin değiştirileceği yerler kodlarda belirtilmiştir.
6) Ne yaptığınızı tam bilmeden kodlarda değişiklik yapmayın!!



ARDUINO KODLARI

/*//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/*  Devrenin GPS kodları ON4CDU çağrı işaretli amatöre aittir.
 *   Arduino Micro 
 *    2    LCD SDA
 *    3    LCD SCL
 *    RX    GPS TX
 *    A0    ADC V input
 *    Bu yazılım, Tarihi, UTC olarak saati, yüksekliği, Uydu sayısını, enlem ve boylamı, grid locator'u, pil gerilimini
 *    ve gerilimin 10 v.'un altına düşmesi hâlinde şarj ihtiyacını gösterir.
 */

/// Included Libraries ///////////////////////

#include <Wire.h>               
#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,20,4); // kendi devrenizin i2c adresini yazın.

//GPS için define'lar
#define DEG_TO_RAD 0.01745329
#define PI 3.141592654
#define TWOPI 6.28318531
// NMEA fields
#define RMC_TIME 1
#define RMC_STATUS 2
#define RMC_LAT 3
#define RMC_NS 4
#define RMC_LONG 5
#define RMC_EW 6
#define RMC_DATE 9
#define GGA_FIX 6
#define GGA_SATS 7
#define GGA_HDOP 8
#define GGA_ALTITUDE 9
#define HEADER_RMC "$GPRMC"
#define HEADER_GGA "$GPGGA"


/// SYSTEM VARIABLES ////////////////////

//*** GPS için değişkenler
const int       GPSbitrate = 9600;        //GPS cihazının haberleşme hızı
const int       sentenceSize = 82;
const int       max_nr_words = 20;
char            sentence[sentenceSize], sz[20],regel[20],diger[10];
char*           words [max_nr_words];
char            sts, latdir, longdir;
int             alternate;
int             hours, minutes, seconds, year, yeard, month, day;
int             gps_fixval, gps_sats, alti, hdopi;
int             latdeg, latmin, latsec;
int             londeg, lonmin, lonsec;
float           time, date, latf, lonf, hdopf;
boolean         status, gps_fix, hdop;
char            char_string [] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char            num_string[]= "0123456789";

//some variables for sun position calculation
float           Lon, Lat;
float           T,JD_frac,L0,M,e,C,L_true,f,R,GrHrAngle,Obl,RA,Decl,HrAngle;
long            JD_whole,JDx;

// Voltmetre değişkenleri
float           temp=0.0;
float           r1=9960.0; // R1'in tam değerini ölçerek yazın.
float           r2=3895.0; // R2'nin tam değerini ölçerek yazın.
float           input_voltage = 0.0;
// buraya kadar

/// System Setup /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
Serial1.begin(GPSbitrate);      // Uno veya nano kullanacaksanız serial1'i serial yapın.
lcd.init();                     // Initialize the LCD display
lcd.backlight(); 
lcd.clear();
lcd.begin(20,4); 

// Splash Screen: Credit / Version / Site
lcd.setCursor(0,0);   lcd.print(" QCX MiNi YARDIMCI  ");
lcd.setCursor(0,1);   lcd.print(" GPS  - ON4CDU      ");
lcd.setCursor(0,2);   lcd.print(" Mod. - TA2EI       ");
lcd.setCursor(0,3);   lcd.print(" RECEP AYDIN GULEC  ");
delay(4000);
//lcd.blink();
lcd.clear();
while (!Serial1.available())
{
  yok();
}
}
/////////////////////////////////// Operation //////////////////////////////////////////////////////////////////////////////////////

void loop() 
{
  gps();
 
//volc();
}  // End Main Loop /////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void gps()
{
   
  static int i = 0;
  if (Serial1.available())       // Uno veya nano kullanacaksanız serial1'i serial yapın.
  {
    char ch = Serial1.read();   // Uno veya nano kullanacaksanız serial1'i serial yapın.
    if (ch != '\n' && i < sentenceSize)
    {
      sentence[i] = ch;
      i++;
    }
    else
    {
      sentence[i] = '\0';
      i = 0;
      displayGPS();
    }  
  }
 
  }
/////////////////////////////////////////////////////////////////////////////////////////
void displayGPS()
{
  
  getField ();
  if (strcmp(words [0], HEADER_RMC) == 0)
  {
    processRMCstring();
    printfirstrow ();
    locator();
  }
  else if (strcmp(words[0], HEADER_GGA) == 0)
  {
    processGGAstring ();
  }
  printGGAinfo ();
}
///////////////////////////////////////////////////////////////////////////////////////////
void getField () // split string was probably a better name
{
  char* p_input = &sentence[0];
  //words [0] = strsep (&p_input, ",");
  for (int i=0; i<max_nr_words; ++i)
  {
    words [i] = strsep (&p_input, ",");
  }
}
//////////////////////////////////////////////////////////////////////////////////////////////
void processRMCstring ()
{
    time = atof(words [RMC_TIME]);
    hours = (int)(time * 0.0001);
    minutes = int((time * 0.01) - (hours * 100));
    seconds = int(time - (hours * 10000) - (minutes * 100));
    sts = words[RMC_STATUS][0]; // status
    status = (sts == 'A');
    latf = atof(words [RMC_LAT]); // latitude
    latdeg = latf/100;
    latmin = (latf - (int(latf/100))*100);
    latsec = (((latf -int(latf))*100)*0.6);
    latf = int (latf * 0.01) + (((latf * 0.01) - int(latf * 0.01)) / 0.6);
    latdir = words[RMC_NS][0]; // N/S
    lonf= atof(words [RMC_LONG]);// longitude 
    londeg = lonf/100;
    lonmin = (lonf - (int(lonf/100))*100);
    lonsec = (((lonf -int(lonf))*100)*0.6);
    lonf = int (lonf * 0.01) + ((lonf * 0.01 - int(lonf * 0.01)) / 0.6);
    longdir = words[RMC_EW][0]; // E/W      
    date = atof(words [RMC_DATE]); // date
    day = int(date * 0.0001);
    month = int ((date * 0.01) - (day * 100));
    year = int (date - (day * 10000) - (month * 100));
    year = year + 2000;    
}
///////////////////////////////////////////////////////////////////////////////////////
void processGGAstring ()
{
    gps_fixval = words[GGA_FIX][0] - 48;
    gps_fix = (gps_fixval > 0);
    gps_sats = atoi(words[GGA_SATS]);    
    //hdopf = atof (words[GGA_HDOP]);
    alti = atoi(words[GGA_ALTITUDE]); 
}
////////////////////////////////////////////////////////////////////////////////////////
void printfirstrow ()
{
    sprintf(sz, "%02d.%02d.%04d %02d:%02d UTC",
            day, month , year, hours , minutes );
    lcd.setCursor(0, 0);
    lcd.print(sz); // Saat ve tarih LCD'de gösterilecek  
}
//////////////////////////////////////////////////////////////////////////////////////
void printGGAinfo ()
{
  if (seconds == 30)
    sunpos();
  if (status && gps_fix)
  {
        sprintf (sz, " ");
        sprintf(regel, "Lt:%2d %2d %2d %1c", latdeg, latmin , latsec ,latdir);
        lcd.setCursor(0, 2); lcd.print(regel); // Enlem LCD'de gösterilecek
        sprintf(regel, "Ln:%2d %2d %2d %1c", londeg, lonmin , lonsec ,longdir);
        lcd.setCursor(0, 3); lcd.print(regel); // Boylam LCD'de gösterilecek
        lcd.setCursor (7,1);
        sprintf(diger, "R:%4d m", alti);         
        lcd.print(diger);
        volc();
        lcd.setCursor(16,1);
        lcd.print("U:");
        lcd.print(gps_sats);  
  } 
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void locator()                                       // locator hesabı ve LCD'de gösterilmesi
{
  float loclong = lonf * 1000000;
  float loclat = latf * 1000000;
  float scrap;
  if (longdir == 'E') 
  {
    loclong = (loclong) + 180000000;
  }
  if (longdir == 'W') 
  {
    loclong = 180000000 - (loclong);
  }
  if (latdir == 'N') 
  {
    loclat = loclat + 90000000;
  }
  if (latdir == 'S') 
  {
    loclat = 90000000 - loclat;
  }
  lcd.setCursor(0, 1); // printing QTH locator
  lcd.print(char_string[int(loclong / 20000000)]);        // First Character - longitude based (every 20° = 1 gridsq)  
  lcd.print(char_string[int(loclat / 10000000)]);         // Second Character - latitude based (every 10° = 1 gridsq) 
  scrap = loclong - (20000000 * int(loclong / 20000000)); // Third Character - longitude based (every 2° = 1 gridsq)
  lcd.print(num_string[int(scrap * 10 / 20 / 1000000)]);
  scrap = loclat - (10000000 * int(loclat / 10000000));   // Fourth Character - latitude based (every 1° = 1 gridsq)
  lcd.print(num_string[int(scrap / 1000000)]); 
  scrap = (loclong / 2000000) - (int(loclong / 2000000)); // Fifth Character - longitude based (every 5' = 1 gridsq)
  lcd.print(char_string[int(scrap * 24)]);
  scrap = (loclat / 1000000) - (int(loclat / 1000000));   // Sixth Character - longitude based (every 2.5' = 1 gridsq)
  lcd.print(char_string[int(scrap * 24)]); 
 }
  
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void sunpos()
{
int A, B;  
    Lat = latf*DEG_TO_RAD;
    if (latdir == 'S')
    {
      Lat = -Lat;
    } 
    Lon = lonf*DEG_TO_RAD;
    if (longdir == 'W')
    {
      Lon = -Lon;
    }
    if(month <= 2) 
    { 
      year--;
      month+=12;
    }  
    A = year/100; 
    B = 2 - A + A/4;
    JD_whole = (long)(365.25*(year + 4716)) + (int)(30.6001 * (month+1)) + day + B - 1524;
    JD_frac=(hours + minutes/60. + seconds/3600.)/24. - .5;
    T = JD_whole - 2451545; 
    T = (T + JD_frac)/36525.;
    L0 = DEG_TO_RAD * fmod(280.46645 + 36000.76983 * T,360);
    M = DEG_TO_RAD * fmod(357.5291 + 35999.0503 * T,360);
    e = 0.016708617 - 0.000042037 * T;
    C=DEG_TO_RAD*((1.9146 - 0.004847 * T) * sin(M) + (0.019993 - 0.000101 * T) * sin(2 * M) + 0.00029 * sin(3 * M));
    f = M + C;
    Obl = DEG_TO_RAD * (23 + 26/60. + 21.448/3600. - 46.815/3600 * T);     
    JDx = JD_whole - 2451545;  
    GrHrAngle = 280.46061837 + (360 * JDx)%360 + .98564736629 * JDx + 360.98564736629 * JD_frac;
    GrHrAngle = fmod(GrHrAngle,360.);    
    L_true = fmod(C + L0,TWOPI);
    R=1.000001018 * (1 - e * e)/(1 + e * cos(f));
    RA = atan2(sin(L_true) * cos(Obl),cos(L_true));
    Decl = asin(sin(Obl) * sin(L_true));
    HrAngle = DEG_TO_RAD * GrHrAngle + Lon - RA;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////

void volc()
{
   int analog_value = analogRead(A0);
    temp = (analog_value * 5.0) / 1024.0; 
    input_voltage = temp / (r2/(r1+r2)); 
    lcd.setCursor(14, 3);
    if(input_voltage<10)
    {
    lcd.print("DOLDUR");
    }
 if(input_voltage>10)
    {
    lcd.print(input_voltage);
    lcd.print("v");
    }
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////
void bekle()
{
   lcd.setCursor(0,1);
    lcd.print("     GPS SiNYALi    ");
    lcd.setCursor(0,2);
    lcd.print("     BEKLENiYOR     ");
    delay(1000);
    //lcd.clear();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////
void yok()

{
    lcd.setCursor(0,1);
    lcd.print("     GPS CiHAZI     ");
    lcd.setCursor(0,2);
    lcd.print("   TAKILI DEGiL!    ");
    delay(1000);
    lcd.clear();
  } 




14 Mayıs 2021 Cuma

İpuçları

 Bâzı şeyleri satın alamazsınız, tecrübe de bunlardan birisi. Meşhur hikâyedir, adam attan düşmüş, yatakta ilk sözü "bana attan düşen birisini bulun" olmuş. Zaman zaman bir zorluğun pençesine düşüp kıvranmış, nîce debelenmeden sonra bulduğumuz hâl çâresi kulağımıza küpe olmuştur. İşte böyle debelenmeler netîcesinde edindiğim tecrübeleri paylaşmak istiyorum.

* Yukarıdaki resimde görüldüğü gibi bir Arduino Pro Micro satın alırsanız, Arduino IDE'de "leonardo"yu seçin.

Arduino Leonardo'da iki adet seri UART olduğu için eğer RX ve TX yazılı pinleri kullanmak istiyorsanız, serial yerine serial1'i seçmelisiniz.

* Arduino nano'da 13. pin 1k'lık bir direnç ile devredeki LED'e bağlıdır. Eğer 13. portu uygulamanızda kullanmak istiyorsanız, bu pinin LED ile olan bağlantısını kesmelisiniz.

* Piyasada "Li ion şarj devresi" ibaresi de kullanılarak satılan pil koruma ve dengeleme devreleri ŞARJ için ÜRETİLMEMİŞTİR. Bu devrenin görevi, seri bağlanan li ion pillerin aşırı akım ve gerilime ve aşırı boşalmaya karşı korunması ve piller arasında dengeleme sağlamaktır.

* USB'den seriye dönüştürücüler ne kadar masum? FTDI232 USB seri çeviriciler

Son zamanlarda ESP32 CAM kartları pek revaçta. Üzerine takılan minicik bir kamerayla kolayca IP kamera, yüz tanıma sistemi, hareket hâlinde resim çekme uygulamaları gerçekleştirilebiliyor bu kartla. Hadi oynayayım diye aldım bu kartlardan. Arduino IDE'si üzerinden programlamak üzere USB'den seriye dönüştürücü bir arabirim gerekiyordu. Elimde, FTDI232 çipiyle çalışan bir dönüştürücü vardı, bunu kullandım.

Gelin görün ki ESP32 kartını bir türlü programlayamıyordum. Sürekli "A fatal error occurred: Failed to write compressed data to flash after seq 0 (result was C100)" hata mesajı alıyordum. Seri iletişim hızını düşürdüm başka şeyler denedim. I ıh. Olmuyordu. Sonunda bir yerlerde "bu FTDI çiplerinin sahteleri pek randımanlı çalışmıyor" gibi bir şeyler okuyunca, Silicon Labs'ın CP210X tümdevresini kullanan bir başka USB seri dönüştürücüyü denedim ve ESP32 şıppadanak programlandı.
FTDI232 çipini kullanırken dikkat!

Plâstik kutulara düzgün delik açmak

Bir devre yaptınız, şık bir de plastik kutu satın aldınız. Kutuda soğutma delikleri, LED delikleri vs. açmak istiyorunuz. İki problemle karşılaşırsınız:

1) Delikleri eşit mesafede açmak

2) Deliğin etrafının düzgün olması.

1. problemi bertaraf etmek için, tutunun üzerine eşit aralıklarla çizgiler çizip, birleşme noktalarını delerek eşit mesafeli delikler elde edebilirsiniz. Ancak, çizgileri çizdiğiniz kalemin izlerini plâstik üzerinden çıkarmak zor olabileceği gibi, asetat kalemi gibi bir kalem kullanırsanız, plâstiği boyama riskiniz de ortaya çıkar. Bu mahzurlar olmadan delik delmenin en kolay yolu şöyledir:

Yukarıda görüldüğü gibi bir delikli pertinaksı kutunuzun deliklerin açılacağı yüzüne tercihan kağıt bantla yapıştırın. Deleceğiniz delikleri bir kalemle işaretleyin ve 0.8 mm'lik bir matkap ucuyla PERTİNAKSI KALDIRMADAN delikleri delin. 


Sonra pertinaksı kaldırın. Deldiğiniz delikleri istediğiniz kalınlıkta bir matkap ucuyla genişletin.
2. problemi bertaraf etmek için, delikleri görünen yüzden değil ters taraftan başlayarak delin. Plâstik, delinirken matkap ucunun dönmesiyle ısınarak bir miktar erir. Bu erişim plâstik delmeye başladığınız yüzde kalır.

Yukarıda 1. problemin çözümünde ilk olarak 0,8mm'lik bir matkap ucuyla delikleri delmiştik, genişletme deliklerini MUTLAKA görünen yüzün tersinden başlayarak açın.


Sonuç böyle olacaktır.

DS18B20

Dallas firmasınca üretilen -ki şimdilerde Anagol Devices Dallas'ı bünyesine kattı- DS18B20 1-wire protokolü ile çalışan bir sıcaklık algılayıcısı (sensörü). 1-wire protokolünde veri alışverişi tek bir hat üzerinden yapılır. Algılayıcıların birer adresi vardır, bu sâyede bir hatta birden çok algılayıcı bağlamak mümkün. Son zamanlarda yaşadığım bir olaydan yola çıkarak, hatta bağladığınız DS18B20'leri problemsiz okumak istiyorsanız, besleme hattını çok iyi filtreleyin. Bunun için besleme hattı ile şase arasına 100nF'lık bir kondansatör bağlayın.

1 Nisan 2021 Perşembe

Ah şu lambalar...

 Rahmetli dedemin radyosunun hatırasına bir nazire olmak üzere lambalı bir radyo aldığımı yazmıştım. (Erres KY485) Bu radyonun lambalarından birisinin cam tüpü ile plastik kaidesi arasında bir gevşeklik olduğunu farkedince, bu lambayı değiştirmek istedim. Lamba, AZ1 kodlu tam dalga doğrultucu idi.

 

   



Etrafımda soruşturmaya başladım, bulamadım. Bir arkadaşım "kullan iki diyot" dediyse de, ben radyonun aslına uygun olarak çalışmasını istediğimden, illa da bu lamba diye tutturdum ve başladım araştırmaya.

İkinci el sitelerinde birkaç lamba satıcısına tesadüf ettim. Birisinde "muhtelif radyo lambaları 50 TL" yazıyordu, AZ1 var mı diye sordum. "Var ama kullanılmış" cevabını alınca fiyatını sordum. Kullanılmış olduğuna göre 50TL'dan daha ucuz olmalıydı. Ama hiç de öyle olmadı. Satıcı "120 TL" diyince ne diyeceğimi şaşırdım.

Yahu bu lamba dediğiniz şeyin bir ömrü vardır, takıp çıkarırken kırılabilir, küçük bir darbede de keza. Çalıştırmak için filamanı ısıtmak gerekir ki neredeyse sâdece filaman 1W güç harcar! Yüzlerce voltluk anot gerilimi bir başka beladır. Bulmak zordur, bulunca validesinin nikahını isterler...

İyi de niye bu lamba fetişizmi?

Efendim lambalı  ses güç kuvvetlendiricilerinin sesi çok sıcakmış da.. aman şuymuş da.. buymuş da.. yok dinamik genişliği şu kadarmış.. mış, miş, muş...

Bir de "cehl-i mikab"lar (*) var ki hiç sormayın... Bu ikinci el sitelerinden birisinde bir ilan gördüm. Şöyle yazılmış:


Demek ki neymiş lambalar  ısınarak, dinlenilen seste detaylar arttırıyormuş, ses mükemmele yakın iyileşirmiş.. Neresini nasıl düzeltmek lâzım bilemedim.

Sanki her birimizin kulağı "ideal" duyma özelliklerine sâhip, müzik kaynağı (plâk, manyetik bant, CD her neyse) "mikemmel", "oparlör"ler dersen şahane... müzik dinlediğimiz ortam akustik açıdan kusursuz... 

Yaşı kırkın üzerindeki kaç insanın kulağı 10-12 kHz'in üzerini duyabiliyor ki!

Aman efendim cânım efendim illa da lamba.

Alın lambanız sizin olsun. Kırılmayan, ucuz, bol bulunan, bir lambanın hacmine yüzlercesi sığan transistörler de benim.

Şu radyoyu çalıştırayım bir daha lamba mı tövbe!

"Ey Türk ikinci el satıcıları! Türk amatörleri sizlere minnettar değildir."

-----

(*) Cehl-i mikab için https://bildirir.blogspot.com/2018/12/cehalet.html adresine bakabilirsiniz.

21 Mart 2021 Pazar

1946'dan gelen bir radyo: ERRES KY485

 Daha önce birkaç yazımda, radyo amatörlüğüne ilgi duymamda radyonun büyük rolünü yazmış, rahmetli dedemin Philips radyosundan da bahsetmiştim.

İnsanın yaşı ilerledikçe eskiye olan hasreti daha bir artıyor. Dedem rahmetlinin radyosundan bulabilir miyim diye etrafıma bakınmaya başladım. Aynısını bulmak çok zor biliyorum, en azından bir benzerini bulup restore edeyim diye düşünmeye başladım.

Bu maksatla bakınırken, bir başka radyo alâkamı cezbetti. ERRES markalı bu radyonun ibre tertibatından oldukça eski olduğu anlaşılıyordu. Satın aldım. İnternette araştırınca, 1946 yılında Hollanda'da üretildiğini öğrendim. ( http://www.oldradios.nl/erres/erres.html )



Radyonun şasesini sökip devresini çıkardım, dış ahşap kutusunu zımparalamaya başladım. Daha sonra gomalak ile cilalayacağım.


Radyonun şeması



2 Şubat 2021 Salı

SONY ICR-4800 RADYO

 1981 yılında çıkarılan Sony ICR-4800 küçük ebatlı bir analog radyo. 134 x 74 x 22 mm. ebadında.

Orta dalga ve 49 ilâ 16m kısa dalga yayınlarını alabilen 6 adet kısa dalga bandı var.

2 adet pille (3v) çalışıyor. 0.15W ses çıkışına sahip.


Bu radyoyu aldığımda oldukça problemli idi. Ses arada bir geliyordu. Hem temizlemek hem de kontrol etmek için için açtığımda, baskı devresinin bâzı noktalarında kararma ve bozulmalar gördüm.

  


İlk aklıma gelen, uzun süre radyonun içinde kalan pillerin akması sonucu bu bozulmaların olabileceği oldu. Ana baskı devrey, radyonun geri kalanından ayırarak YIKAMAYA karar verdim! Bulabildiğim en saf suya yatırdım radyoyu ve bir gece beklettim. Tabii birkaç saatte bir suyunu değiştirerek.


Radyoyu daha sonra suyundan arındırarak kuruttum. Ama bir şey dikkatimi çekmişti: PCB'bib sâdece belli noktalarında bu bozulmalar vardı ve bozulma olan yerlerde yeşil lejim maskesi de kazınmamıştı. O zaman bu bozucu madde, pcb'nin bakır yolunun "altından" sirayet etmiş olmalıydı. Bozulma olan yerler, elektrolitik kondansatörlerin bolca bulunduğu yerlerdi. Bozulma olan bölgedeki bir ekeltrolitik kondansatörü söktüm. Kondansatörün pcb'ye temas ettiği noktada beyaz bir kalıntı vardı.



Çıkardığım 100uF'lık kondansatörü ölçtüm ve 40uF civarında bir kapasitesi "kaldığını" gördüm. Evet! Suçlu bunlardı! Bozulma olan bölgelerdeki bütün elektrolitik kondansatörleri söktüm, hepsinde aynı kalıntı vardı. Bir şekilde kondansatörün elektroliti dışarı sızmış, pcb'nin deliğinden geçerek baskı devrenin bakır yollarının altına işlemiş ve onları deforme etmişti. Söktüğüm kondansatörleri yenileriyle değiştirdim. Bu kondansatörler, oldukça az yüksekliğe sâhip oldukları için temini biraz zor olsa da, eski kondansatörlerden ölçerek bulduklarımı kullandım.
Tabii bu arda nurtopu gibi bir başka problemim oldu: İBRE!
Klâsik analog radyolarda frekansı gösteren ibre bana karmaşık gelen bir ip ve makara sistemiyle değişken kondansatöre ve ibre mekanizmasına bağlıdır. Birkaç deneme sonucu bu işin bana göre olmadığını öğrendim. Şimdi bir eski radyo tamircisinin yardımına ihtiyacım var!
Radyonun ibresi de tamam!
Bu küçücük radyonun hassasiyeti çok iyi. Özellikle kısa dalga bantlarında arama, ayar aralığının "yayın bölgesiyle" sınırlanması sebebiyle çok rahat. Sony radyo konusunda gerçek bir ekol.

ICR-4800'ün şeması (http://www.vintageradio.nl/schema's/sony_icr4800.pdf adresinden alınmıştır)



2 Ocak 2021 Cumartesi

uSDX Alıcı Verici

 Birkaç yazımda, QRP Labs'dan bahsetmiştim. G0UPL çağri işaretli Hans Summers tarafından kurulan bir kit tasarım ve imalât laboratuvarı. Amatörlerin kullanımına uygun QRP cihazlar ve faydalı gereçleri kit olarak üretip oldukça uygun bir fiyata satıyor. Mesela, QCX+ isimli CW alıcı - verici. 55 US$.

QCX ve onu izleyen QCX+ oldukça yüksek performanslı birer CW alıcı verici. E sınıfı çalışan güç çıkışı ile 5W'a kadar çıkış yapabiliyor. Derken efendim, PE1NNZ çağrı işaretli Hollandalı radyo amatörü Guido, QCX kitinden -sihirbazlık olarak vasıflandırılan- bir yazılım ile SSB bir alıcı verici oluşturur. Bu alıcı verici bir anda popüler hâle gelir ve hakkında bir grup bile kurulur: https://groups.io/g/ucx/topics

Devrenin temel şeması şöyle:

Yeni oluşturulan alıcı-vericiye uSDX adı verilir. Çeşitli versiyonları olur. 

İlgimi çeken bu projeyi kurmaya ve  kendi PCB'mi çizmeye karar verdim. PCB tek yüzlü olacaktı ki kendim basabileyim. Pek çok çalışmamda olduğu gibi kutulamayı önemsediğimden, önce kutuyu seçmeliydim. Altınkaya'nın DT210 kodlu kutusunda karar kıldım. Bu kutunun bir duvara askı aparatı da vardı ve böylece cihazın ön tarafı hafifçe yukarıda duracaktı. LCD, encoder, iki tuş ve ses ayar potansiyometreti ön panelde bulunacak ve ana plakete bir konnektör vasıtası ile bağlanacaktı. Bu amaca uygun olarak 2 PCB tasarladım. Aslında 3; zira FST3253 ile Si5351'i bir "yavru kart" modül PCB'si de vardı. Ayrıca devreye bir de LM386'lı ses frekansı güç kuvvetlendiricisi ekleyecektim. 


Devreyi monte edip, ATMEGA328'i de programlayınca devre ilk denemede çalıştı! Hem de balkondaki bir iç antenle. Oldukça heyecan vericiydi.

Derken, balkondaki teleskopik antene dokunduğum bir anda herşey son buldu. Cihaz çalışmıyordu. Biraz kendimi toparlayıp sâlim kafayla düşününce kararımı verdim: Statik elektrik sebebiyle devre bozulmuş olmalıydı.
ATMEGA328'i değiştirip, yeniden programladım. Olmadı.
OPAMP'ı değiştirdim, olmadı.
74ACT00ı değiştirdim, olmadı.
Bu arada, faydalandığım şemada 7805'in gürültüsü çok diye bir LM1117-5 regölatörü kullanılmıştı. Gürültüsü az bu arkadaşın mârifetlerini daha sonra öğrendim. Giriş ve çıkışındaki kondansatörleri beğenmez ise kendileri osilasyon yapıyordu. Tekrar eski 7805 dostuma döndüm.
Bu arada farkettim ki cihazın çektiği akım artmış. Değiştirmediğim Si5351 ve FST3253 kalmıştı. bu tümdevrelerin fazlaca ısındığını görünce sırasıyla her ikisini  de değiştirdim, yine olmadı. Elimde Si5351 kalmamıştı. QRP Labs'tan Si5351 modülü sipariş ettim. Bu arada, UCX grubunda benimkine benzer birçok arıza şikayeti de vardı. Si5351'i beslemek için 5v'a iki adet seri 1N4148 bağlanıyor ve gerilim 3.5 v civarına düşrülüyordu. Normal Si5351 modüllerinde bulunan iki adet mosfet de uSDX'in I2C hızında çalışamadıkları için devre dışı bırakılıyordu. İki diyotlu yaklaşım hoşuma gitmediğinden, QRP Labs'tan gelen modülde LM317z ile kurulu 3.3v devresini aynen monte ettim, iki mosfetin yerine de köprü kullandım. Yeni modül eski yavru kartın yerine sığmayacağından, iki katlı bir modül PCB'si hazırladım. 


Alttaki PCB'de FST3253 vardı, bu PCB'ye QRP Labs'ın Si5351'li saat osilatörü (VFO) devresi oturtuluyordu.
Bu modülü, ana PCB'ye -biraz değişiklikle- oturtup bağladıktan sonra, devrenin çektiği akım normale döndü. Ama cihaz hâlâ çalışmıyordu. Herşeyi bırakıp bir gece hiç dokunmadım. Ertesi günü ihtimalleri düşünmeye başladım. Herşeyi ama herşeyi en az 2 defa kontrol etmiştim. Tam sinirlenip herşeyi atayım derken, muhterem ATMEGA serisinin sigorta değerleri geldi aklıma. Guido'nun sayfasındaki sigorta değerlerini girip de avrdudes'e YAZ dediğimde cihaz normal çalışmaya başladı. Ancak, devre çok kargacık-burgacık oldu, içime sinmedi görüntüsü.

Devrenin iç görünüşü
Yaptığım devrenin kutulanmış hâli.



Yeni bir PCB tasarlayıp paylaşacağım.


26 Aralık 2020 Cumartesi

Yarım asırlık bir radyo: Standard SR-F408L

 1974 ilâ 1978 Ankara'da yatılı olarak öğrenim gördüğüm yıllar. Rahmetli Babamdan bir radyo istemiştim; o yıllarda radyo büyükçe bir şeydi. Bulunabilen en küçük radyo ise STANDARD markalı aşağıda resmi görülen radyo idi. (Bu radyonun model numarasının SR-F408L olduğunu Antika Radyo adlı Facebook sitesinden öğrendim.  Görmenizi tavsiye ederim.) Babam da bu radyodan almıştı bana. Ne oldu, ne yaptım aradan geçen bunca yıldan sonra hatırlamıyorum. Ama "sayısal radyo"lar çağında nostaljik bir depreşmeyle bu radyodan bulup restore etmeye karar verdim.


(Resim, Antika Radyo adlı facebook sayfasından alınmıştır.)

Buldum da, üç gün sonra alıyorum. Gençliğimin radyosuyla olan maceramı burada yazacağım.

Bu radyo, uzun dalga (LW) ve orta dalga (MW) bandlarında çalışırdı. O yıllarda Ankara Radyosu uzun dalgadan (189 veya 198 kHz'den) yayın yapardı. Daha sonra uzun dalga yayınları ikiye çıkmıştı. Birisi Etimesgut'tan yayın yapardı, diğeri ise Ankara'nın birazcık dışında bir yerden. Ayrıca orta dalgadan TRT3 yayınları yapılırdı.(Radyo yayınlarının tarihçesi hakkında ayrıntılı veriyi TRT'nin "Kilometre Taşları" adlı sayfasından öğrenmek mümkün.) En son TRT Erzurum Radyosu uzun dalgadan yayın yapıyordu; hâlâ aktif mi bilemiyorum. Bunun hâricinde artık uzun dalga radyo yayınlarımız yok. Bu konuda TRT Kurumu'ndan birkaç yıl önce aldığım bilgi, uzun ve orta dalga radyolarının malzeme ve işletme mâliyetinin yüksek olduğu yönündeydi. Ben, uzun ve orta dalga radyo yayınlarının stratejik bir yönü olduğunu düşünenlerdenim. Nitekim, Rusya, Almanya, İngiltere, Fransa hâlâ bu "pahalı" yayınları sürdürüyorlar.

30 Aralık 2020

Standard radyoma "kavuştum". 40 yıl sonra kavuşan iki dost gibiydik. Dile kolay tam 42 yıl geçmiş üstünden... Artık ne uzun dalgada ne de orta dagada dinleyebileceğim Türkçe yayın yok. Ama ne gam!

Aldığım radyo şaşırtıcı derecede temizdi! İki pil takınca da hemen çalıştı. 



18 Ocak 2021

Bu arada, internette bir Standart SR-F408L ilanı daha gördüm. Onu da aldım. Yukarıdaki mâvi kadar kozmetiği iyi değilse de, şaşırtıcı bir şekilde daha hassas!

Alıcı-verici cihazlar bir yana, PLL'li, DSP'li alıcılarım oldu; ama ilginçtir ki, hiç birisinin LW ve MW alışı bu küçük Standart SR-F408L kadar iyi değil! Altı üstü birkaç transistörlü, tek çevrimli süperheterodin bu SR-F408L radyolar şaşırtıcı derecede iyi bir hassasiyete sâhipler.

Sony ICF-SW7600GR, Sony ICF-SW30, Sony ICF-S10MK2, Si4735'li DSP'li alıcı.. Bu küçük canavar, oblarla rahatça boy ölçüşebililiyor.



14 Aralık 2020 Pazartesi

QRP Labs QCX-Mini

 QRP Labs'ın ürettiği QCX-Mini kiti elime geçti.

QCX-mini (Resim, QRP Labs sayfasından alınmıştır)


Sayısal haberleşme ile ilgili birçok yazı kaleme alsam da, klâsik haberleşmenin yeri bambaşkadır. Arada internet gibi bir "uzatma" aracı olmaksızın işaretinizin doğrudan karşıya ulaşması ve karşının işaretini almanızın keyfi büyüktür.

Klâsik haberleşme içinde ise ilk ve -bu anlamda en ilkel-haberleşme şekli olan CW'nin yeri apayrıdır. Bütün gelişmelere rağmen CW yerini hep korumuştur ve zannediyorum hep de koruyacaktır.

A sınıfı lisans almak için mors çalıştığımız günlerin üzerinden çok seneler geçti. Kendimi tanıyorum, benim öğrenmemi "ihtiyaç" belirler. O yüzden de lisans aldıktan sonra morsa hiç dönüp bakmadık tabi. Victory'nin V sinden, "cicicavit"in F sinden ce CQ'dan başka pek birşey kalmadı.

İnsanın yaşı ilerledikçe eskiye bir özlem başlıyor. Ondan mıdır nedir QRP Labs'ın ürettiği bu CW alıcı-vericileri bende yeniden CW haberleşme arzusu doğurdu. Hanımın "nedir bu dıdıt" diyemeyeceği zamanlarda morsa çalışıyorum.

Bir yandan da QCX-mini cihazımı monte edeceğim.

Bir gece boyu çalıştım ve QCX-mini'yi monte ettim.



Montajdan sonra bir kaç ayar problemiyle karşılaştım. Sağolsun Hans bu konuda da yardıma koştu. Cihazı kendisine gönderdikten 10 gün kadar sonra cihaz ayarlanmış olarak elime geçti.
95 x 64 x 25 mm ebadındaki QCX-Mini oldukça kaliteli bir alüminyum kutuya sâhip. 
Alış hassasiyetine gelince; şu kadar mikrovolt gibi teknik bir miktarlandırma yerine "işittiğimi" belirtmek istiyorum. Daha önce WPRS çalışmalarında da kullandığım portatif vertikal 14 MHz antenimi balkona kurdum. İşte sonuç. Dinleyerek kendiniz karar verin.


İletişim bilgisi

 Zaman zaman -benim çok az kullandığım vasıtalarla- ileti göndererek benimle iletişime geçmek isteyenler olduğunu görüyorum. Bana şu e-posta...