|
|
Bu makalenin farkl� dillerde bulundu�u adresler: English Deutsch Francais Turkce |
Ralf Wieland <rwieland(at)zalf.de> T�rk�e'ye �eviri: Selen �nal <seleninal(at)yazhoo.com> ��erik: |
Hava bas�nc�n� Linux ile �l�mek�zet:
E�er herhangi bir �l�� aleti sat�n ald���n�zda, herzaman Windows sistemlerinden birisi i�in s�r�c� program� da birlikte gelmektedir. Linux kullan�c�lar� genellikle hi�bir�eye sahip olamazlar. B�yle olmak zorunda de�il, ��nk� teknik olarak Linux i�in bir donan�m s�r�c�s� yazmak �o�u kez Windows'a g�re daha kolayd�r. Baz� �reticilerin fikirlerine g�re; �ok az say�da Linux kullan�c�s�n�n varl��� kadar Linux kullan�c�lar�n�n daha enerjik ve yeni �eyleri denemeye daha a��k olmalar� da tart���labilirdir. Herneyse, �o�unlukla ��z�m kendi s�r�c�n�z� kendinizin yazmas�d�r. Bir s�r�c�y� �al���r hale getiren ad�mlar� yazmak istedim. Belki ba�ka birileri i�in de faydal� olabilir. Bu �ekirdek d�zeyinde yaz�lm�� bir s�r�c�s� olmayacak, ben bilgisayar�n paralel ba�lant�s�n� kullanaca��m. |
Bir �l��m sistemini geli�tirmek i�in ilk olarak �u 3 soruyu a��kl��a kavu�turman�z gerekir:
Bu sorular �nemsiz g�z�kebilir, ama geli�tirmenin her ad�m�nda onlar hakk�nda d���nmek iyidir.
Hava bas�nc� bir�ok nedenden dolay� ilgin�tir. Gemici ve da�c�lar i�in o, havadaki
olas� bir de�i�ikli�in belirtisidir. Fakat benim i�in evde hava bas�nc�n� izlemek de
e�lencelidir. Oturma odalar�nda kurulmu� k���k hava istasyonlar�ndan g�r�ld���
�zere bir�ok ba�ka insan da ayn� seyi yap�yor gibi. Bununla birlikte, bunlar �o�unlukla
ger�ek �l��m aletlerinden �ok oyuncakt�rlar. E�er, hava bas�nc� ile ilgili ciddi
�l��mler yapmak istiyorsan�z birka� �eyi daha g�z �n�nde bulundurman�z gerekir.
Hava bas�nc� do�ru olarak, yukar�daki resimde g�sterildi�i gibi, bir barograf
ile �l��lebilir. Bu aletler tamamen mekanik olup, �ok pahal�d�rlar. Fazla masraftan ka��nmak i�in bir
elektronik yar� iletken alg�y�c� kullan�labilir.
Motorola de�i�ik ama�lara y�nelik birka� tipte alg�lay�c�lar �retmektedir.
Yar� iletken alg�lay�c�lar herzaman s�cakl�k ve gerilime ba��ml�d�rlar. Bunu hesaba katmal�s�n�z.
Hava bas�nc�, evin i�inde ve d���nda ayn� oldu�undan, �l��m� g�receli olarak kolayd�r.
Alg�lay�c�y� d��ar�da kullan�m i�in in�a etmek ve ya�mura kar�� korumak zorunda de�ilsiniz.
Alg�lay�c�y� do�rudan bilgisayar�n�z�n yan�nda
bulundurabilirsiniz. S�cakl�k evin i�inde d��ar�daki kadar �ok de�i�medi�i i�in bu s�cakl���n
telafisi i�in de iyidir. Y�ksek do�rulukta sonu�lar elde etmek i�in elektronik bir s�cakl�k
d�zenleyicisine gereksinim duyacaks�n�z. �nerilen devre tak�m olarak bir Avrupal� elektronik
da��t�c�s�ndan elde edilebilmektedir. ELV,
bana devreyi yay�mlama iznini verdi. S�cakl���n telafisi bu gibi durumlarda bir yaz�l�m
taraf�ndan yap�lmaktad�r. Alg�lay�c� sadece bas�nc� de�il, ayn� zamanda s�cakl��� da �l�er.
S�cakl���n telafisi icin algoritma Intersema'n�n hava bas�n� alg�lay�c�s� veri sayfas�nda
belgelenmi�tir. Gerilimin kararl�l��� bir 3.3 V d�zenleyiciyle yap�l�r.
Hava bas�nc� sadece havaya de�il, ayn� zamanda deniz seviyesinden y�ksekli�e de ba�l�d�r.
De�i�ik yerlerdeki hava bas�nc�n� kar��la�t�rmak i�in, deniz seviyesindeki de�eri normalle�tirmeniz
gerekir. Bu uluslararas� d�zeyde kabul g�rm�� a�a��daki form�lle yap�l�r:
p0=p/(1-6.5*h/288000)^5.255
Bu form�l sadece y�ksekli�e ba�l� de�ildir, ayn� zamanda y�ksek seviyelerdeki s�cakl�k d�����n� de hesaba katar. �l��len hava bas�nc� �imdi deniz seviyesinden y�ksekli�i ile telafi edilecektir. Hava bas�nc� de�i�ikliklerini yakla��k 1.2mbar/10m olarak hesaplayabilirsiniz. Deniz seviyesinden y�kseklik "myclient" adl� programda #define HIGH_NN olarak yeral�r. Geriye kalan soru, �l��m�n ne kadar do�ru oldu�udur. Do�ruluk, do�rudan alg�lay�c�ya ba�l�d�r. Sonu�lar�n kararl�l�k ve do�rulu�unu birbirinden ay�rmal�s�n�z. Alg�lay�c�, 25° bir s�cakl�kta +-1.5mbar ile 750..1100mbar aras�nda bir do�rulu�a sahiptir. Bununla birlikte kararl�l�k �ok daha y�ksektir: 15Bit+-7Bit ve bu 1/2^15 = 3*10^-5 veya 0.03mbar'd�r. Ba�ka bir deyi�le, son say�lar�n bir anlam� yoktur. Bundan dolay� program, sonu�lar� virg�lden sonra bir rakam b�rakacak �ekilde yuvarlayacakt�r. Halen ne kadar s�kl�kta �l��m yap�lmas� gerekti�i a��kl��a kavu�turulmal�d�r. Bir�ok ama� i�in 5 ila 10 dakikal�k bir aral�k yeterli olacakt�r. Geli�ig�zel de�i�iklikleri s�zge�ten ge�irmek i�in her 10 ila 60 saniyede bir �l�ece�iz ve d���k ge�i� s�zgeci uygulayaca��z. Bu s�ralanm�� veri taraf�ndan �retilen Merkezi I�lem Birimi (MIB) y�k�n� g�zard� edilebilir. Ben 10 saniyelik bir �l��m aral��� kulland�m ve de�erleri her 2 dakikada bir depolad�m. Bu g�nde 60*24/2=720 �l��m �retir.
Daha b�y�k resim i�in �ekil �zerine t�klay�n.
Aray�z olarak bilgisayar�n paralel ba�lant�s�n� kulland�m. Ca�da� yaz�c�lar�n bir�o�u USB ba�lant�s�
kullanaca��ndan bu mant�kl� bir karard�r. Bilgisayar�n paralel ba�lant�s�n�n kullan�lmas�ndaki avantaj,
�ok kolay programlanabilmesi ve fazla ek donan�ma gereksinim duyulmamas�d�r.
Baz� evirge� ge�itler, gerilim seviyelerini ayarlar ve bir saat sinyali �retirler.
E�er tak�m� ELV'den almak istemiyorsan�z, par�alar� bir soysal deneme devre kart� �zerine lehimleyebilirsiniz.
Devre �zerine birka� yorum:
Soldaki say�lar, paralel ba�lant�daki noktalard�r. 18 ile 25 aras�ndaki noktalar
tabandad�r ve 12, 3 ve 4 veri �izgileridir. 2. nokta devrenin g�� kayna�� i�in kullan�lm��t�r.
Diren�ler R1/R2 ve R3/R4 5V'luk paralel ba�lant�y� 3.3V'a uyarlamak i�in kullan�lm��t�r.
74HC04 ve alg�lay�c�n�n her ikisi de 3.3V'ta �al���r.
Program C programlama dilinde yaz�lm��t�r. Alg�lay�c�dan verileri okur ve s�cakl�k telafisi ile say�sal al�ak ge�i� s�zgecini uygular. Kaynak kodun takip edilmesi kolay olmal�d�r. Onu bu makalenin sonunda verilen kaynaktan elde edebilirsiniz. Veriyi alg�lay�c�dan geri �a��rmak i�in, alg�lay�c�ya bir dizi vurum g�nderilir. Alg�lay�c� bu vurumlar� komut olarak yorumlar ve cevaplar. Bu alg�lay�c� i�in kurallar veri sayfas�nda belgelenmi�tir.
Normal bir ki�isel bilgisayar ile birka� g�n hava bas�nc�n� �l�erken arkada�lar�n�zdan veya ailenizden uzak
kalabilirsiniz, ��nk� normal ki�isel bilgisayarlar �ok g�r�lt�l�d�r ve her zaman i�letilmeleri gerekir. Bir
DIL/NetPC kullanmak ilgin� bir se�enek olabilir.
Bu bilgisayarlar �ok az g�� kullan�rlar ve hi� g�r�lt� yapmazlar. Maalesef ucuz de�illerdir ve sadece bir
ileti�im a�� taraf�ndan eri�ilebilirler. Bu beni, bu ama�la bu i�te Linux sunucusu kullanma fikrine itti.
Sunucu nas�l olsa s�rekli �al��maktad�r. B�yle bir sisteme sahip omayanlar belki eski bir bilgisayar kullanabilir
ve onu bodrumda, kimseyi rahats�z etmeyecek bir yere yerle�tirebilirler. Verileri geri almak i�in bir sunucu
ve istemci uygulamas� geli�tirdim. Bunun bir s�n�rlamas�,
�u anki sunucu i�lemi, paralel kap�ya do�rudan ula�abilmek i�in k�k haklar� ile i�letilmeli olmas�d�r. Bir di�er se�enek
Parapin gibi bir s�r�c� sayesinde, paralel
bir kap�y� k�k haklar� olmaks�z�n kullanmakt�r. Bunula birlikte, bu �ekirde�in yeniden derlenmesi i�in bir Parapin s�r�c�n�n
eklenmesini gerektirir. E�er veriyi Internette mevcut k�lmak istiyorsan�z, kesinlikle ayr�cal�ks�z bir kullan�c� kullanmay�
g�z �n�nde bulundurmal�s�n�z. Benim amac�m i�in bu basit ��z�m yeterliydi.
Kullan�c� uygulamas� ve sunucu i�lemi ileti�im
i�in TCP/IP yuvalar� kullan�r. Sunucu iki y�r�tme biriminde �al���r. Biri alg�lay�c�dan veriyi al�r ve di�eri ileti�im a��n�
i\'baletir. Bu i\'balemler PThreads-Library "PY�r�tme Birimleri - K�t�phanesi" ile uygulan�r. �stemci
(kullan�c�) cok basittir. Verileri al�r ve yukar�daki denkleme g�re
y�ksekli�ini d�zeltir. Veriler kolayca 2 s�ra halinde "stdout"'a yaz�l�r. Ilki, kayan noktal� say� olarak saat cinsinden
zamand�r. Ikinci s�ra, kayan noktal� say� olarak hava bas�nc�d�r. A�a��daki gibi g�r�l�r:
0.000000 1008.2 0.033333 1008.1 0.066667 1008.2 0.100000 1008.0 0.133333 1008.1 ...
Bu do�rudan gnuplot'a veya Plotutils'e bes lenebilir. Ben daha iyi g�r�nt�leme kalitesinden dolay� Plotutils kulland�m. \'ddki farkl� bas�m� kar��la�t�r�rken, her iki �izimde de ayn� �l�e�i kullanmak �nemlidir. Bundan dolay� ben eksen �zerinde mutlak �l�eklendirmeyi tercih ettim:
./myclient modell1 | graph -T X -C -g 3 -L "air pressure" \\ -X "t from start of measurement in h" -Y "mbar" --x-limits 0 24\\ --y-limits 950 1040
Kullan�c� program "myclient" verileri almak i�in "modell1" sunucusuna ba�lan�r ve veriler i Plotutil'a (grafik programi) bir hat arac�l���yla g�nderir. Hava bas�nc�n�n �l�eklendirilmesi, 950mbar ile 1040mbar aras�ndad�r. Zaman birimi 24 saattir. Eger -T X 'den -T ps se�ene�ine de�i�tirirseniz, Postscript dosyalar� �retilecektir. Bu kolayca bir ka��t �zerine yazd�r�labilir.
�izim, iyi hava aral���n�n bitimini ve ya�mur ba�lang�c�n� g�sterir.
Kurulum cok kolayd�r. Devreyi tekrar kontrol edin ve onu paralel kap�ya ba�lay�n. Yaz�l�m bir -zxvf druck-0.1.tar.gz "tar"'�yla a��lacakt�r. Daha sonra kaynak dizinine de�i�tirilecek ve deniz seviyesinden y�ksekli�iniz (HIGH_NN) i�in myclient.c'i uyarlanacakt�r. Onu "make" yazarak derleyin. Birimi kullanmadan �nce, yuva ileti\'baimi i�in /etc/services 'e kap� numaras�n� eklemelisiniz. Bir sonraki sat�r� ekleyin:
socktest 7123/tcp # Air pressure sensorDaha sonra ./druck LPT1 (veya LPT2) ile sunucu i�lemini k�k olarak ba�latabilirsiniz. E�er her�ey yolunda ise, sunucu her 10 saniyede bir, bas�n� ve s�cakl���n zamana ba�l� ham verisini yazacakt�r. Kullan�c� uygulamas� �imdi ayn� ileti\'ba im ag�nda (veya ayn� makinada) herhangi bir yerde ba�lat�labilir. druck.sh yaz�s� verileri grafik program� Plotutils arac�l���yla g�r�nt�ler. Yaz�y� do�ru sunucu ismi i�in d�zenlemelisiniz. /etc/services 'deki giri�, sunucu i�leminin ve kullan�c�n�n �al��t��� makinalar �zerine yap�lmal�d�r.
�reticilerin Linux i�in s�r�c�leri s�kl�kla sa�lamamalar� can s�k�c�d�r. Bununla birlikte bu bana, burada sundu�um kendi ��z�m�m� geli�tirme olana�� verdi. Veriler �imdi de�i�ik makinalardan okunabildi�i icin sadece istemci (kullan�c�)/sunucu uygulamas� tatmin edici bir ��z�m oldu. Halen birka� �ey eksik. Bu de�erler nas�l Internet arac�l���yla sa�lanabilir ? E�er birka� insan, s�cakl�k hava bas�nc�, nemlilik ve r�zgar h�z�yla (r�zgar h�z�n�n �l��lmesi kolay de�ildir) bir hava istasyonu in�aa ederlerse, veriler nas�l de�i� toku� edilebilir ? Hangi veri �ekli kullan�lmal�d�r ? Belki birisinin bu konuda fikri vard�r ve bu ba�ka bir makal ede sunulabilir.
|
G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Ralf Wieland, FDL LinuxFocus.org |
�eviri bilgisi:
|
2003-08-03, generated by lfparser version 2.43