Merhabalar arkadaşlar,
Bu yazımızda arduino ile basit bir dc motor kontrolü nasıl sağlanır ondan bahsedeceğiz.

Projemizde 1 adet npn transistör ile rölemizi sürerek motorumuzun hareket etmesini sağlayacağız.



Şemada da görüldüğü üzere 13 nolu dijital pin üzerinden npn transistörümüzün base ucuna bağlandık.13 numaralı pinimizi dijital 0 yaptığımız anda npn transistörü iletime geçecek ve rölemizin bobin ucuna 5V luk bir gerilim uygulanarak kontağının çekmesi sağlanacak burada D1 diyotu ters akımı engellemek amacı ile kullanılmaktadır.Sonrasında rölemizin kontağı üzerinden de VCC gerilimimiz motora uygulanmış olacaktır.

Burada dikkat edilmesi gereken bu devre standart arduino röle kartı ile de gerçekleştirilebilirdi zaten yapmış olduğumuz devre standart röle kartının iç mimarisinden bir parça konumunda ve motor sürmek için uygun  bir elektronik devre.

Gelelim arduino kodları tarafına :

int transistor_pini 13; // 13 numaralı pine transistor_pini adını verdik
void setup()
{
   pinMode(transistor_pini,OUTPUT);// 13 numaralı transistor pinini output yani çıkış olarak ayarladık
}
void loop()
{
   digitalWrite(transistor_pini,LOW); // pinimize dijital 0 gönderdik
   delay(5000);//5 sn lik bir gecikme verdik
   digitalWrite(transistor_pini,HIGH);//pinimize dijital 1 gönderdik
   delay(5000);//5sn lik bir gecikme verdik
}

Programımızı çalıştırdığımızda motorumuzun 5 sn çalışır durumda ve 5 sn ise durur konumda kalacağını göreceğiz.
Merhabalar,
Önceki yazımızda raspberry pi için gpio pinlerinden ve programlamada bu pinleri kullanabilmek için python gpio kütüphanesinin yüklenmesinden bahsetmiştik.

Bu yazımızda ise yüklemiş olduğumuz kütüphanemizi kullanarak led kontrolü sağlayacağız.



Bunu yapabilmek için ilk olarak menu -> programming -> python3 idemizi açıyoruz.Kodlarımız aşağıdaki gibi.

from    time    import    sleep
from    quick2wire.gpio    import    pins,    Out
with    pins.pin(7,    direction=Out)    as    out_pin:
                while    True:
                                out_pin.value    =    1   
                                sleep(1)
                                out_pin.value    =    0
                                sleep(1)
out_pin.unexport()



Gelelim kodlarımızın teker teker ne anlam taşıdığını açıklamaya :

from    time    import    sleep

sleep fonksiyonunu time kütüphanesi içerisinde projemize ekliyoruz sonrasında sleep fonksiyonunu sleep(1) ile çağırarak o anda programımızın 1 sn lik bir bekleme yapmasını sağlıyoruz.

 from    quick2wire.gpio    import    pins

Daha önce eklemiş olduğumuz pyhton için eklemiş olduğumuz quick2wire.gpio kütüphanemiz içerisinde pins fonksiyonunu programımıza dahil ediyoruz.

pins.pin(7,    direction=Out)    as    out_pin:

Bu satır ile 7 numaralı gpio pinin direction=Out ile output haline getiriyoruz ve

as out_pin

ile programımız içerisinde artık 7 numaralı pinin output olarak hazırlanmış halinin out_pin adı ile çağırılacağını belirtiyoruz.

while    True:

ile programımızı sonsuz bir dongü içerisinde çalışmasını sağlıyoruz.Böylelikle ledimiz sonsuza kadar 1 er saniye aralıklarla yanı sönecektir.

 out_pin.value    =    1  ile 7 numaralı pine 3.3V dc bir gerilim sağlanırken
 out_pin.value    =    0  ile 7 numaralı pine 0V dc uygulanmış olur.

Ledimizin yanıp sönmesini bu sayede sağlıyor olacağız.Burada dikkat edilmesi gereken raspberry pi ve gpio pinine zarar vermemek açısında (fazla akım çekiminin önlenmesi için ) ledimizi ile bağlı olduğu 7 numaralı gpio pini arasında direnç kullanmak zararı önleyecektir.

out_pin.unexport()

Programımızın sonuna yazdğımız bu komut ise programımız herhangi bir şekilde ki ctrl+c ile programı sonlandırabilirsiniz önceden input ya da output olarak belirlediğimiz pinleri default yani ilk hallerine geri dönmesine bir başka deyişle serbest bırakılmasını sağlar.

Programı çalıştırdığınız 7 numaralı gpio pinine bağlı olan ledi 1 sn yanıp 1 sn sönmesine ve bu durumun duraksamadan döngü halinde devam ettiğini göreceksiniz.

Bir sonraki yazımızda raspberry pi ve webide kullanımıdan bahsedeceğiz.
Bu bölümde raspberry pi üzerinde bulunan genel amaçlı giriş çıkış pinleri yani GPIO pinlerinden bahsedeceğiz.

Gpio pinleri sayısı raspberry pi modeline göre farklılık göstermektedir.B+ modelini ele alacak olursak üzerinde 40 adet pin bulunmakta ve bunlardan 26 tanesi giriş çıkış pinleri olarak programlanabilmektedir.Geri kalan pinler ise gücün bağlanması gibi farklı özellikleri kapsamaktadır.

Gpio pinleri 3.3V dc üş ve her biri (toplamda 50mA) 17mA akım gücü sağlamaktadır.Bahsettiğimiz değerler cihazın rated yani maksimum olarak alabileceğimiz değerlerdir.Yukarıdaki parantez içerisinde belirttiğimiz 50mA ise gpio pinlerinden toplamda çekebileceğimiz maksimum akım miktarını belirtmektedir.


Yukarıdaki resimde farklı raspberry pi modellerine göre gpio pinleri yapısını ve gpio pinleri dışında kalan özel pinleri görmektesiniz.

Raspberry pi üzerindeki gpio pinlerini kullanılabilir hale getirmemiz için birkaç adıma ihtiyacımız var.İsterseniz bu adımları teker teker ele alalım.

İnternet ortamında birbirinden farklı biçok gpio kütüphanesi ile karşılabilirsiniz ancak içlerinden yüklemesi en basit ve kullanımı en rahat olanı quick2wire phyton api dir. Bu kütüphane gpio pinleri program aracılığı ile erişime ve spi kullanarak farklı sistemlerle haberleşmemize olanak sağlar.

İşlemlerimize başlamadan önce raspberry pi mizin internet bağlantısına sahip olduğundan emin olalım.

quick2wire kütüphanesini yükleyebilmemiz için sol üst köşedeki lx terminali açıyoruz.

kütüphaneyi kullanabilmek adına repository bölümünü düzenlememiz gerekiyor.Bunun için linux komularından nona kullanarak repository dosyamızı yeniden düzenleyeceğiz.

sudo    nano    /etc/apt/sources.list

nano komutumuzun ardından karşımıza bir dosya ve editörü açılacak.Bu kısıma aşağıdaki satırları ekleyeceğiz.

#    Quick2Wire    Software
deb    http://dist.quick2wire.com/raspbian    wheezy    main   
deb-src    http://dist.quick2wire.com/raspbian    wheezy    main


Sonrasında ctrl+x ile dosyamızı kapatıyoruz.Çıkan uyarıya 'y' ile onay vererek kaydedilmesini sağlıyoruz.

Sıra geldi kütüphanemizi wget komutu ile raspberry pi içerisine almaya
Bunu için aşağıdaki satırları terminalimize yazarak enter yapıyoruz.

wget    https://raw.githubusercontent.com/quick2wire/quick2wire-software-
users/master/software@quick2wire.com.gpg.key
sudo    apt-key    add   
software@quick2wire.com.gpg.key


Yukarıdaki komutla birlikte cash dosyamız güncellenmiş oldu.Akabinde güncellemeri almak için terminalimize sırası ile :

sudo    apt-get    update
sudo    apt-get    upgrade
 


Komutlarınız giriyoruz.Bu kısım raspberry pi üzerindeki işletim sisteminin güncelleme durmuna göre zaman alabilmektedir.

Güncellemelerimiz tamaladıktan sonra son adım olarak quick2wire tollarını yükleyeceğiz.Bunun için açık olan terminalimize aşağıdaki satırları yazarak enter yapmamız yeterli olacaktır.

sudo    apt-get    install    quick2wire-gpio-admin
sudo    apt-get    install    quick2wire-python3-api 


Artık gpio pinleri programlama için hazır.Bir sonraki yazımızda indirdiğimiz kütüphanemizi phyton programlama ile gpio pinlerimizi kontrol etmek için kullanmayı öğreneceğiz.
Raspberry pi oldukça güçlü ve ucuz maliyetli bir bilgisayar kartıdır.
İçerisine kurulan işletim sistemi sayesinde oldukça karmaşık sistemlerin otomasyonu konusunda kullanılabilmektedir.

Bu bölümde sizlere genel olarak raspberry pi tanıtımı yapacağız.İlk önce genel hatları ile kartımıza bir bakalım.


Yukarıdaki resimde genel olarak kartımızın şemasını görmektesiniz.Kartımızın üzerinde neler var isterseniz onları irdeleyelim :

-2 adet USB portu   
-Ethernet portu
-RCA çıkışı
-HDMI çıkışı
-Audio çıkışı
-GPIO pinleri (genel amaçlı programlanabilir giriş çıkışlar)
-UART/Serial    Port
-I2C çift kablolu sistem haberleşmesi
-SPI (Seri haberleşme)

Yukarıda da listelediğimiz özellikleri sayesinde raspberry pi gerçektende övgüyü hakediyor.Onu işleyebilecek ellerde ise oldukça güçlü bir kontrol mekanizması halini alacağı ise kaçınılmaz.

usb portları,I2C ve spi ile farklı sistemlerle haberleşebileceği gibi,standart olarak üzerinde gelen ethernet portu ile kontrol sistemimizi rahatlıkla dış dünyaya açmamıza olanak sağlıyor.

Hdmi ve audio çıkışları ise multimedia sistemlerine kolayca uyum sağlayabileceğiniz açık bir göstergesi.

Merhabalar,

Eski yazılarılarımızda arduino üzerinde dijital giriş ve çıkışlardan bahsetmiştik.Bu yazımızda ise artık analog dünyasına giriş yapacağız.

Analog nedir ?
Analog değer zamana bağlı olarak gerek voltaj ve akım olarak değişkenlik gösteren bir veridir.Bir sıcaklık sensörü ele alalım bu sensör bize çıkışında analog veri olarak 0-10V aralığında veri veriyor ve sıcaklık sensörümüzün çalışma aralığı da 0 - 80 derece olsun.Bu durumda bu sıcaklık sensörü bize 0 derecede 0 voltaj ve 80 derecede ise 10 V değerini verecektir.Yani bize analog değerlerini gönderecektir.

Elinizde bir arduino var ise modeline göre sayısı değişebilir A0 dan başlayarak devam eden pinleriniz sizin analog değer okuma amacı ile kullanabileceğiniz pinlerdir(bu pinler aynı zaman dijital giriş çıkış birimi olarak da kullanılabilmektedir.)

Gelelim can alıcı soruya ?
Bize analog değer geldi peki bunu arduino nasıl algılar ve bize nasıl iletir?

Bu noktada ADC ler devreye girer.Analog to digital converter yani analog dijital çeviriciler, girişlerine gelen analog değerleri çözünürlükleri doğrultusunda dijital veriye çevirerek bizim kullanabileceğimiz hale getirirler.Burada dikkat edilmesi gereken husus çözünürlükleri doğrultusunda lakin birçok çözünürlüke ADC entegreleri bulunmakta ve arduino uno üzerinde 10 bit çözünürlüğe sahip bir ADC bulunmaktadır.

Peki nedir bu 10 bit olayı ?

Sıcaklık sensörü örneğimizi tekrar ele alaım :)
0-80 derece aralığında bize 0-10V veren sensörümüz adc tarafında okunduğunda 10V olarak 80 derecenin adc nin girişine gelmesi ile birlikte adc bunu 10 bitlik veri düzeninde 1024 olarak bize sunacaktır.Bit değeri ne kadar artar ise analog verinin dijitale çevrimi o kadar hassaslaşır.

Bugun örneğimizde ise bir potansiyometre üzerinden analog girişimize gelen veriyi nasıl işleriz konusunu ele alacağız.


Yukarıdaki şekilde potansiyometre çeşitleri görülmektedir.Potansiyometre ayarlanabilir probu ile direnci değiştirilebilen bir elemandır.Kendisinin bir maksimum değeri vardır ve bu değer ile satın alınılır.Ayarlanabilir probu ile de kedisinin maksimum değerine kadar direnci arttırabilir ya da minimum değere kadar azaltabilirsiniz.

Biz potansiyometre üzeriden 5V değerimizi geçireceğiz ve prob üzerinden verdiğimiz her değişimde analog girişte farklı bir voltaj ve dolayısı ile adc üzerinden farklı dijital değerler okumayı ve yorumlamayı amaçlayacağız.



Yukarıdaki şemada görüldüğü üzere 5V potansiyometre üzerinden geçirildi ve arduinomuzun A0 analog pinine bağlandı.

Arduino Ide analog pine gelen değeri okuyabilmemiz için analogRead() fonksiyonunu bulundurmaktadır.Bu fonksiyon içerisinde okumak istediğimiz analog pin tanımı yazarak, o analog pine gelen verinin dijital halini adc üzerinde 0-1024 değeri aralığında okuyabilir hale geliriz.

Biz bu örneke analogRead(A0); ile veriyi okumaya çalışacağız.

Gelelim kodlarımıza

int sensor_degeri=0;// sensörden gelen verimizi içinde tutacağımız değişken

void setup()
{
     Serial.begin(9600);// aynı zamanda verileri seri ekrana bastırıp buradan da izlemeyi amaçlıyoruz.
}

void loop()
{
   sensor_degeri=analogRead(A0);// adc üzerinden sensör değerini aldık ve sensor_degeri değişkenine atadık
   Serial.print("sensor degeri:");// seri ekrana sensor degeri: yazdırdık
   Serial.println(sensor_degeri);//seri ekrana okuduğumuz sensör değerini yazdırdık.
   delay(100);//daha iyi görebilmek ve anlık değişimleri göz ardı etmek adına 100ms gecikme tanımladık.
}

Bir sonraki yazımızda piezoelektrik uygulaması ile yeniden karşınızda olacağız.
Merhabalar,
Adım adım arduino köşemizde 2. projemizde bir önceki projemize buton ekleyerek,interrupt yani kesiciler kavramından bahsedeceğiz.


Bir önceki öğreniğimizden farklı olarak bu projemizde 2 nolu pinimizi dijital giriş olarak tanımlayarak bu pine buton bağlayacağız.

Butonumuza bastığımız anda 2 nolu pinimize R6 direnci üzerinden bir voltaj gelecek ve programımız içerisinde interrupt yani kesicimiz aktif hale gelerek ledlerin kontrolünü sağlayacağız.

Yukarıdaki şemayı dikkatli incelerseniz butonun açık olan ucunun 5V diğer ucununda R6 direnci üzerinden 2 nolu pine bağlandığını göreceksiniz.Bu durumda butona bastığımız anca 2 nolu dijital pin üzerinde bir voltaj oluşacak ve bizde butonun konumunu program içerisinde kontrol edebilir hale geleceğiz.Burada R6 direncini kullanmamızdaki amaç 2 nolu pinimizi yüksek gerilimden ve açırı akım çekiminden korumak.Önceki projemizde olduğu gibi her bir ledimizin önüne birer direnç koyarak fazla akım çekiminin önüne geçmeyi amaçlamıştık.

Gelelim interrupt yapısı nedir bu interrupt?

Bir örnek ile açıklamaya çalışalım.Evimizdeki kapı zili mesela.Bizim kapıyı açma eylemimizi programlarımızda kullandığımız bir fonksiyon olarak kabul edelim.Kapı zilinin çalma durumunu da bizim programımızdaki butonun basılma durumu olarak ele alalım.Biz günlük hayatımızda asla kapıda biri var mıdır? diyerek kapıyı sürekli kontrol etmeyiz.Onun yerine kapı zili bizi kapıda birinin olduğu konusunda bizi uyarır ve bizde bu durumu anlayarak o anda ne yapıyorsak (Tv izleme , yemek yeme , uzanma vb.) mevcut işimizi yarıda kesip kapı açma fonksiyonunu yerine getiriyor ve sonrasında yarıda kalan eylemimize devam ediyoruz.

Programlarda da interrupt bu durumu özetler.Herhangi bir koşulda tetiklendiği anda program anlık olarak olduğu yerde durur, interrupt devreye girer yapması gerekeni yapar ve sonrasında program olağan akışına devam eder.

Peki arduinoda nasıl işler interrupt?

Arduino Ide bu konuda bize attachInterrpt() yani programa interrupt bağlama fonksiyonu ile yardımcı oluyor.
Program kodlarımızı açıkladıktan sonra interrupt konusuna yazımızın sonuna doğru biraz daha değineceğiz.

Bizde bu projemizde interrupt ile buton kontrolünü sağlayarak,interrupta bağlayacağımız fonksiyonu yerine getirip ledlerimiz kontrol edeceğiz.


Yukarıdaki resimde bir önceki projemize ek olarak 2 nolu pine butonun bağlanmış halini görmektesiniz.

Gelelim arduino kodlarımıza :

volatile int buton_durum=LOW;
int ledler[]={8,9,10,11,12};// ledlerimizin bağlı olduğu pinleri bir dizi şeklinde tanımladık
int sayac=0;//programda ledlerimizi sırası ile yakacağız ve bu sayaç bize yardımcı olacak
int zamanlama=75;// ledlerimizin belirli bir zaman için yanıp sönmesini istiyoruz
int duraksama=500;

void setup()// arduinonun başlangıç değerleri ve pin durumlarının tanımladığı standart fonksiyon
{
     for (sayac=0;sayac<5;sayac++)// ledimizin bağlı olduğu herbir pini output olarak tanımlıyoruz
    {
            pinMode(ledler[sayac],OUTPUT);
    }
    attachInterrupt(0,led_yak,RISING);// led_sondur fonksiyonu ile interrupt bağlıyoruz
}

void loop()
{
  if(buton_durum)
  {
     for(sayac=0;sayac<5;sayac++)
     {
          digitalWrite(ledler[sayac],HIGH);// ilgili led yakıldı
          delay(zamanlama);
     }
     delay(duraksama);
     for(sayac=0;sayac<5;sayac++)
     {
          digitalWrite(ledler[sayac],LOW);// ilgili led söndürüldü
          delay(zamanlama);
     }
     delay(duraksama);
  }
}

void led_yak()
{
      led_durum=!led_durum;
}

Burada dikkat etmemiz gereken husus 2 nolu pine dair bir işlem yapmadık.Peki arduino nasıl anlayacak 2 nolu pinde buton olduğunu?

attachInterrupt(0,led_yak,RISING); 

bu fonksiyona dikkat ettiğimizde arduinonun 2 nolu pinine 0 numaralı interrupt tanımlanmıştır ve biz fonksiyonumuzu yazmamızla birlikte 2 nolu pini interrupt olarak kullanacağımızı belirtmiş oluyoruz.

Yine bu fonksiyon içerisinde led_yak fonksiyon adını vererek, interrupt tetiklendiğinde bu fonksiyonun çağrılması gerektiğini söylüyoruz.

Son kısım ise RISING. Burada ise voltajın yükselmeye başladığı anda tetikleme olasını istediğimizi belirtmiş oluyoruz.Bunu FALLING olarak tanımlayarak voltajın düşme anında tetikleme yapmasını da sağlayabilirsiniz.

Programı çalıştırdığınızda ledler butona basmadığınız anda yanmayacaktır.Butona bastığınız anda ise interrupt tetiklenecek ve sonrasında led_yak fonksiyonu görevini yerine getirerek ledlerin sırası ile yanmasını sağlayacaktır.

Bir sonraki yazımıda arduino ile analog okuma ve çıkış işlemleri nasıl yapılıyor bunlardan bahsedeceğiz.
Merhabalar,
Bu bölümde arduinonun genel amaçlı dijital giriş çıkış pinlerini kullanarak sıralı led yakma projesi gerçekleştireceğiz.


İhtiyacımız olan malzemeler :

1 adet arduino uno
birkaç adet led
birkaç adet min 175 ohm direnç
1 adet breadboard
yeterli miktarda atlama kabloları

Yukarıdaki şemada arduino ile ledlerimizin bağlatıları yer almaktadır.Dirençlerimizi arduino tarafından ledlerin fazla akım çekmesini engellemek amacı ile kullanıyoruz.Dijital pinlerimizden 8 den 12 ye kadar olan kısmı çıkış olarak atayacağız ve ledlerimizi bu dijital çıkışlar üzerinden kontrol edeceğiz.

Peki nedir dijital giriş çıkış?
Dijital çıkış programlama yapısı içerisinde çıkış olarak tanımladığınız pinin, sizin programlama içerisinde high (1) ya da low(0) yaptığınız anda çıkış olarak bir voltaj verip vermemesi durumudur.

Yine eğer ki ilgili pinimiz giriş olarak tanımladı ise bu durumda da girişi programsal olarak okuruz ve voltaj gördüğümüz anda logic 1 göremediğimiz anda ise logic 0 olarak pin durumunu almış oluruz.

Arduino genel olarak bazı pinlerini bizlere pwm olarak sunabildiği gibi (PWM nedir ileri zaman konularımızda işleyeceğiz) bu pinleri ister giriş, istersek de çıkış olarak tanımlamamıza olanak sağlamaktadır.

Peki bunu nasıl sağlarız?
Bir örnekle ele alalım :
8 nolu pinimizi dijital çıkış olarak atamak istiyoruz.Yani biz programda HIGH ol dediğimizde çıkışında voltaj versin,LOW ol dediğimizde ise çıkışında voltaj oluşmasın

Arduino bize bunun kontrolünü sağlamak için pinMode() fonksiyonunu veriyor.
PinMode(8,OUTPU);// 8 nolu pini output yap
PinMode(8,INPUT); // 8 nolu pini input yap

Peki input ve outpu olarak bir pinin nasıl tanımlanacağını öğrendik.Peki biz bu pinleri program içerisinde nasıl kontrol ediyoruz?
Yine arduino ide bize digitalWrite();  ve digitalRead(); fonsiyonları ile yardımcı oluyor.

digitalWrite(8,HIGH); // 8 nolu çıkış pinine 1 yazdır yani o pine voltaj ver
digitalWrite(8,LOW);// 8 nolu çıkış pinine 0 yazdır yani voltajı kes
digitalRead(8);// 8 nolu dijital giriş pinini oku

Burada dikkat edilmesi gereken dijital giriş pini okunurken digitalRead(); fonksiyonu size o pinin durumunu söyler.Buda ne demek siz buradan aldığınız veriyi bir değişken içerisine atarak kullanabilirsiniz.Bunu bir sonraki yazımızda bu yazımızdaki örneğimize buton kontrolü ekleyerek açıklayacağız.

Diğer dikkat edilmesi gereken husus ise siz bir pini giriş ya da çıkış olarak ayarlamak için void setup() fonksiyonu içerisinde pininizin durumunu pinMode() fonksiyonu ile belirtmeyi unutmamalısınız.

Bizim projemize gelecek olursak, biz pinlerimizi dijital çıkış olarak kullanacağız ve ledlerimizin kontrolünü sağlayacağız.


Yukarıdaki şema bize arduinonun fiziksel olarak bağlantı durumunu göstermektedir.
Gelelim kodlarımıza

int ledler[]={8,9,10,11,12};// ledlerimizin bağlı olduğu pinleri bir dizi şeklinde tanımladık
int sayac=0;//programda ledlerimizi sırası ile yakacağız ve bu sayaç bize yardımcı olacak
int zamanlama=75;// ledlerimizin belirli bir zaman için yanıp sönmesini istiyoruz

void setup()// arduinonun başlangıç değerleri ve pin durumlarının tanımladığı standart fonksiyon
{
     for (sayac=0;sayac<5;sayac++)// ledimizin bağlı olduğu herbir pini output olarak tanımlıyoruz
    {
            pinMode(ledler[sayac],OUTPUT);
    }
}

void loop()
{
     for(sayac=0;sayac<5;sayac++)
     {
          digitalWrite(ledler[sayac],HIGH);// ilgili led yakıldı
          delay(zamanlama);
          digitalWrite(ledler[sayac],LOW);// ilgili led söndürüldü
          delay(zamanlama);
     }
}

Yukarıdaki örnekte her 150ms de bir (75 ms yanık kalacak,75ms sönük kalacak) 8 nolu pinden 12 nolu pine kadar olan ledlerimiz sırası ile yanıp sönecektir ve void  loop bu durumun sürekliliğini sağlayacaktır.

Bir sonraki yazımızda bu örneğimize nasıl buton kontrolü ekleyeceğimizi göstereceğiz.
Belkide elektronik devrelerde en çok kullanılan elemanlardan biridir transistör.Peki bu mucizevi devre elemanın nasıl çalıştığı hakkında bir bilgimiz var mı?

Transistörü evimizde kullandığımız musluğa benzetebiliriz.Transistör üzerinde bulunan base ucu devremizde kontrol etmek istediğimiz elektrik akımını kısmamıza ya da açmamıza yarar.Tıpkı evlerimizdeki musluktan akan suyu kısıp açabildiğimiz gibi.Peki devrelermizdeki bu musluk farklı ne tür özellikler taşır ya da ne tip özelliklerde bulunur ?


pnp ve npn bipolar transistörler :

npn transistörde base ucuna pozitif voltaj uyguladığımızda on durumuna gelirken,pnp transistörde ise base ucuna negatif voltaj verildiğinde on durumuna gelmektedir.

Peki bipolar transistörün iç yapısı nasıldır? ve bipolar transistör nasıl çalışır ?

Bu soruların yanıtını verirken npn tipinde bir transistörü ele alalım ve bu transistörün iç yapısını on ve off dumuna göre inceleyelim.


npn transistör yandaki şekilde de görüleceği üzere 2 adet n tipi yarı iletkenin arasına sandviç gibi p tipinde bir yarı iletkenin yerleştirilmesi ile oluşturulur.Base ucuna pozitif bir voltaj uygulanmadığı sürece emiter tarafından gelecek elektronlar np atlamasını yapamayacaklarından dolayı iletim gerçekleşmez.Base ucuna negaitf bir voltaj uygularsanız bu np atlaması daha da zor bir duruma gelecektir ve iletim yine gerçekleşmeyecektir.






Base ucuna pozitif bir voltaj verildiğinde (en azından 0,6V kadar) p yarı iletkeninin elektron geçişini engelleyen elektronları base e doğru çekilecek ve böylece emiter tarafından gelen elektronlar kollektör tarafında alayabilecek kadar yakınlaşarak iletimi sağlayacaktır.Base ucuna daha fazla pozitif voltaj uygulamak bu iletimin daha fazla ve rahat olmasını saplayacaktır.








En çok kullanılan transistör devreleri:

1.Anahtar Devreleri:

En yaygın transistör devrelerinden biri anahtar devresidir.Yandaki şekilde on konumunda iken transistör iletime geçer ve elektronların toprağa doğru akmasına ve boylece ledimizin üzerinden akım geçirerek onun on durumuna gelmesini sağlar.















2. Akım kaynağı:

Transistör bu devremizde akım kaynak kontrol elemanı görevini üstlenmektedir.Base ucuna uyguladığını voltaj ve akıma göre, load yani yük direnci üzerinden geçen akımı kontrol edebilirsiniz.







3. Amfi devreleri:

Emiter takip eden devresi ile Vin giriş ucuna verdiğiniz sinyali genliği ile oynamanız yani bir amfi devresi yapmanız mümkün.









4. Voltaj regülatörü Devresi:

Sadece zener diyot ile yapılan voltaj regulatörü uygulamalarında tutarllık,gürültü,yüksek akım çekme problemleri ortaya çıkabilmektedir.Transistörler voltaj regulatölerinde sistemin kararlığını,fazla akım ihtiyacı olması durumunda tutarlılığı ve gerekirse çıkış voltaj ayarını da sağlamaktadır.Resimde merak edenlere kapasitör,direnç ile birlike RC filtresi olarak girişin gürültüsünü azaltmak amacı ile kullanılmış.




Son günlerde herkes kendi akıllı ev otomasyon ürününü yapmak peşinde.Peki otomasyon kavramına ne kadar hakimiz?.Bir akıllı otomasyonun arka planında neler döner ?. Saha ile tüm senaryolarımızın içinde koştuğu işlemcimiz nasıl haberleşir?.

Bu yazımızda elimizden geldiğince bu konulara değinmeye çalışacağım.

1. HMI Layer:


Can alıcı layer HMI layer
daha once bahsetmistim ne kadar iyi otomasyon yaparsanız yapın kullanıcı dostu bir arayuz gelistiremezseniz ve kullanımı zor olursa her zaman rahatsızlık verir.

Sistemde en çok dikkat edilmesi gereken layer aslında budur.Lakin kullanıcı tüm sistemi buradan kontrol edecek ve gerek rapoları gerekse sistemdeki sıkıntıları burada görecektir.Ancak çoğu mühendisin ya da ürün geliştiricisinin sıkıntya düştüğü yer de malesef burasıdır.Bir ürün tasarlanırken bir mühendis olarak o ürünün kullanımını düşünürsek, kullanıcı dostu arayüz ilkemizden ve en basiti en kullanışlı litarütüründen uzaklaşmış oluruz.Genellikle yapılan hatalar da bu durumdan kaynaklanmakta.

HMI layer ı sistemimizin ekranı ya da kullanıcının erişebileceği bir sofware olarak da düşünebilirsiniz.Kısacası kullanıcının sistem ile etkileşimde olduğu her platform esasında bir hmi dır.

Burada dikkat edilmesi gereken bir diğer husus, yapacağınız cihazın birden fazla platformu destekliyor olması.Her yiğidin yoğurt yiğişi farklı olduğu gibi, her kullanıcının kendini rahat hissettiği ve hayatında önemli yer edinen işletim sistemleri de farklı :).

2. Network Layer :



Network kısmı:
sahadaki her cihaz farklı bir haberlesme metoduna sahip olabilir.Bizimde akıllı ev otomasyonu cihazında bunu ele almak durumundayız.Nasıl ki bir fransız ile japon bir araya geldiginde ingilizce ortak dil kullanabiliyorsa bizde sahadaki fransızlarımızı ve japonlarımızı ortak bir paydada toplamak durumundayız,aksi halde bize gelen veriler anlamsız bir hal alacaktır

Nedir bu protokoller?
MODBUS: cogu cihaz uzerinde artık standart olarak gelmekte asci rtu ve tcp modları mevcut

BacNet: havalandırma cihazlarında standart olarak kabul edilmiş bir protokol

KNX: aydınlatma alanında kabul edilmis bir haberlesme protokolu

bu haberlesme protokollerinie can,eib network vb protokollerde eklenebilir ben sadece yaygın olanlara deginmek istedim.

3. Com Layer:


Aslında bu kısım bizim akıllı ev otomasyonumuzun beyni konumunda

Sistemin beyni olan işlemcilerimizin ve otomasyonumuzun tüm programlama ve senaryoları burada dönmekte

Control Service:
Adından da anlaşılacağı üzere sistemi mantıklı kılan tüm otomasyon senaryolarımız burada gerçekleşmekte.

Nedir bu senaryolar?
klimanın kontrol edilmesi,motorlu perdelerin kontrol edilmesi,aydınlatma kontrolü ve aklınıza gelebilecek diğer kontrol senaryoları burada tanımlanmaktadır.

Dynamic module:
Sistemin haberlesme ve anlık veri trasfer tarafıdır.Sahadaki ekipmanlardan almıs oldugu verileri ve kullanıcı kontrol panelinden aldıgı verileri karsılıklı olarak paralel işler

Scan Service:
Aslında görevi bir o kadar basit olmasına karşın,sistemin can damarı diyebiliriz.Sistem dahilindeki tüm ekipmanların durumlarını kontrol eden ve herhangi bir haberlesme kopuklugu olusması durumunda sistem beynini haberdar ederek kullanıcı tarafını uyaran kısımdır.

XML parser:
Daha onceki videolarımda bahsettim gunumuzde xml protokolu yaygın olarak verilerin raporlanması alanında kullanılmakta akıllı ev otomasyonunda da zaten raporlama olmadıgında sistem her zaman eksik kalmakta nihayetinde ev sahibimiz o ay ne kadar elektrik ve su sarf ettigini ve gecmis aylarla bunu mukayese etmek istedigini belirtebilir xml kısmıda xml prokolune uygun olarak sistemin verileri raporlar arkadaslar



Novadays, smart home automation is really so popular.Everyone wants to make one for their homes.But the critical question is that : How much know about automation and smart ones :)

In this article we will try to discuss some details about automation and smart home automations which will help you while building your own indeed.

You can see layers in an automations systems above.Now lets start to discuss about each one.

1. HMI Layer :


Many engineers igonres this part,but i think this is the most critical part of the automation and smart home automation as well.

Never forget that you system can be good at as much as user can use.HMI is the user interface that user can interract with the entire system.That's why this part must be simple and easy to use for the users.

Whatever you choose as platform to build an smart home automation,you need to make gui's for multiple platforms (ios,android,pc etc.) and while makning user interface you need to design it simple as much as you can.

One of the mistake is that always engineers do, they always think like and engineer while design process of the user interfaces.But these systems always uses by the end users and we need to think about them too.

2. Netwok Layer:


This layer is human resources department of the our system :)
While design process of your own smart home automation desing you will see there are lots of protocols in automation industry (knx,modbus,bacnet,ethernet/ip etc.).

If you want to maintable and pricable product, you need to support multiple protocols too.Maybe you can start with modbus.So its one of the most common protocol in the industry.

Why we need to support multiple protocols ?

Lets explain this question with an example :
One of the customer wanted to control his or her air conditioner system with you device and maybe your device only can understands its own protocol nothins as well.Most of the air conditioner support bacnet protocol and in this point you need to give a support for this protocol and you device should understand that protocol and put in a action in its way.

This feature makes your device more universal.Also KNX is almost a standart for home automation systems.I dont want to disquss it in here but you can find switches which controls lights and much more actuators and sensors which supports this communication protocol.

3. Com Layer:



This is brain of the smart home automation system.All the senarios will be codded and running in here.In this point the most critical is that choosing right processor for your smart home device.

Control Service : As you noticed from the name this is place where our codes running and our senarios are in the process.

Dynamic Module: This module is a bridge with field devices,processors,HMI device etc. It takes data's in two way (field to processor to hmi / hmi to processor to acutators).If we want to support multiple protocols that we have mentioned before all of the communication packages will be decompiling in here.

Scan Service : Works with dynamic module and scans ever actuators and sensor in the field and takes data.Also responsible to interract with hmi layer.Why ? some of the critical data's or some of the data's which dont need to be get in process in our senarios can be send throuhg actuators directly by passing user data's which come from hmi to the field devices.

Xml Parser : Maybe last but one of the most important part of the our system :)
Never forget that your data's that you have taken from the field are so valuable for you and end user.And novadays clouds are really so popular.Xml is the one of the most common way to present you data's to internet services and also to stock them as well :) Xml parser converts each data according to xml parsing and presensents also parses in another way to send data's to the process to put them into the senarios.


Daha önce endüstriyel ürünlerin haberleşme metodlarından blogumuzda bahsetmiştik.RS485 endüstride sıkça kullanılan bir haberleşme alt yapısı.Alt yapısı diyorum lakin ne zaman RS485 duyulsa akıllara hemen modbus gelir ki bu yanlış bir düşüncedir.RS485 sadece bir alt yapıdır ve üst yapısında ise yazılımsal olarak protokoller oturur ve en sık kullanılan modbus haberleşme protokolü de bunlardan sadece bir tanesidir.

Bu yazımızda sizlere derin olarak modbus haberleşme metodundan bahsetmeyeceğim.Daha önceki yazılarımızı incelerseniz,bloğumuzda modbus ile ilgili detaylı bilgi edinebilirsiniz.

Yazımızın konusu arduino ile RS485 fiziksel alt yapı üzerinden modbus haberleşme olacak.

Peki ilk olarak hepimizin bildiği ya da şimdi öğreneceği üzere arduino kartlarımızda RX ve TX pinleri bulunmakta ancak RS485 alt yapısı bulunmamaktadır.Bu durumda ihtiyacımız olan rs485 alt yapısından gelecek olan verileri bize rx ve tx pinleri üzerinden aktarabilecek bir arabirim elemanı olacaktır.

Yaklaşık olarak 10Tl civarına edinebileceğiz aşağıdaki resimde görünen rs485 dönüştürücüyü edinebilirsiniz.


Peki bu kart nasıl işler.İlk olarak dikkatinizi çekmiştir üzerinde max485 çipi bulunmakta ve bu çip bize rs485 (A ve B) pinleri üzeriden gelen verileri Rx Tx TTL sinyallerine dönüştürmektedir.

RO: arduino tarafında Rx pinine
RE ve DE ortaklanıp arduinoda bizim belirleyeceğimiz ve haberleşmede enable edeceğimiz pine
DI: arduino tarafında Tx pinine bağlanacak

Yukarıdaki şemada genel olarak modbus haberleşecek cihazlar ve sistemler arasında nasıl bir network oluşturulacağı gösterilmiştir.Burada dikkat edilmesi gereken modbus ağına gelecek her cihaz arasında paralel bir bağlantı olmasıdır.Bu ne demek ? her bir cihazımızın rs485 tarafındaki A pinleri diğer cihazların A pinlerine atlamalı olarak gidecek ve bu durum yine B pini için de tekrarlanacaktır.

Modbus haberleşmede en önemli husus master-slave mantığıdır.Şunu unutmamak gerekir master slave den veri çekebilir ve slavdeki verilere müdahale edebilir.Ancak slave masterdaki verilere müdahale edemez.Yani burada müdür her zaman master dır :)

Diğer önemli husus genellikle bu soru gelir.Bir modbus ağında sadece 1 adet master olabilir slave sayısı ise teorik olarak 255 adet olabilir :) ve her slave farklı bir adrese sahip olmak durumundadır (0-254) arasında.
Birden fazla master kullanmak istediğiniz 2 master arasında farklı bir modbus networkü kurarak masterlardan birini 2. network ağında slave hale getirmeniz mümkün olabilir.Fazlaca mühendislik gerektirebilir endüstriyel bir cihazınız 2. bir seri haberleşme taşımıyor ise.

Gelelim modbus kütüphanelerine ve açıklamalarına:

Modbus master ve slave kütüphanelerine buradan erişebilirsiniz.

Modbus Master Cihaz:

#include <SimpleModbusMaster.h>
#define baud 9600 // haberleşme rate i 
#define timeout 1000// paket zaman aşımı
#define polling 200// ne kadar hızlı veri çekilecek
#define retry_count 10 // hata vermeden önce deneme sayısı

//daha önce bahsettiğimiz enable pin RE ve DE ortak bağlantıya gidecek
#define TxEnablePin 2 

#define LED 9

// master üzerinde kaç adet register tutulacak
#define TOTAL_NO_OF_REGISTERS 1

enum
{
  PACKET1,
  PACKET2,
  TOTAL_NO_OF_PACKETS // değiştirmeyin ekleyeceğiniz registerları yukarı ekleyin
};

//registerlar için paketler oluşturuluyor
Packet packets[TOTAL_NO_OF_PACKETS];

//master registerları izin dizi tanımlandı
unsigned int regs[TOTAL_NO_OF_REGISTERS];

void setup()
{
  // paketler oluşturuluyor
  modbus_construct(&packets[PACKET1], 1, READ_HOLDING_REGISTERS, 0, 1, 0);
  modbus_construct(&packets[PACKET2], 1, PRESET_MULTIPLE_REGISTERS, 1, 1, 0);
  
  // cihaz master olarak ve haberleşme değerlerine bağımlı olarak oluşturuluyor
  modbus_configure(&Serial, baud, SERIAL_8N2, timeout, polling, retry_count, TxEnablePin, packets, TOTAL_NO_OF_PACKETS, regs);
  
  pinMode(LED, OUTPUT);
}

void loop()
{
  modbus_update();
  
  regs[0] = analogRead(0); // enum içinde 0. indexe tanımlı registera değer yazılıyor
  // her modbus update ile bu değer slave lere gönderiliyor
}

Modbus Slave Cihaz :

#include <SimpleModbusSlave.h>
#define  LED 9  


enum 
{     
  // slave üzerindeki regesterlarımızı tanımlıyoruz.
  // ilk register 0 numaralı adrese sahip olur ve sonrasındaki her register için adres 1 artar.
  ADC_VAL,     
  PWM_VAL,        
  HOLDING_REGS_SIZE // Yine buna dokunmuyoruz.Register sayımızı tutar ve otomatik artar
};

unsigned int holdingRegs[HOLDING_REGS_SIZE]; // register dizisi oluşturu
////////////////////////////////////////////////////////////

void setup()
{
  /* parameters(HardwareSerial* SerialPort,
                long baudrate, 
unsigned char byteFormat,
                unsigned char ID, 
                unsigned char transmit enable pin, 
                unsigned int holding registers size,
                unsigned int* holding register array)
  */
  
  /* modbus parametre açıklamaları:
     SERIAL_8N2: 1 start bit, 8 data bit, 2 stop bits
     SERIAL_8E1: 1 start bit, 8 data bit, 1 Even parity bit, 1 stop bit
     SERIAL_8O1: 1 start bit, 8 data bit, 1 Odd parity bit, 1 stop bit
  */
//
  modbus_configure(&Serial, 9600, SERIAL_8N2, 1, 2, HOLDING_REGS_SIZE, holdingRegs);
  modbus_update_comms(9600, SERIAL_8N2, 1);
  
  pinMode(LED, OUTPUT);
}

void loop()
{
  modbus_update();
  
  holdingRegs[ADC_VAL] = analogRead(A0); // master 0.1.0 paketinde bu değeri okuyor.
  
  analogWrite(LED, holdingRegs[PWM_VAL]>>2); //master 1.1.0 dan gelen veri pwm olarak basılıyor
  
}

Modbus really common communication protocol with RS485 physical layer in the industry.
Novadays its really popular to work with arduino to communicating between industrial equipments,controllers,sensors etc.


the pic above is rs485 to tll card for arduino and we will use it to take modbus messages to covert rx-tx signals.

Here is our rs485 shiled connection.As you see it uses max485 chip inside

Each device which has modbus communication feature should be connected as parallel as shown here.We dont want to mention about modbus protocol in here.You can search the blog for modbus communication features more detail.

                                                  Rs485 shield connection with arduino

DI (data in) to pin 11
RO (receive out) to pin 10
DE (data enable) and RE (receive enable) jumpered together and to pin 3
Vcc and Gnd connected
A and B : the RS485 pair
Gnd between distant Arduinos can be in cable or local electrical ground.

Arduino master Codes (not modbus rs485 serial communication):

#include <SoftwareSerial.h>
/*-----( Declare Constants and Pin Numbers )-----*/
#define SSerialRX        10  //Serial Receive pin
#define SSerialTX        11  //Serial Transmit pin

#define SSerialTxControl 3   //RS485 Direction control

#define RS485Transmit    HIGH
#define RS485Receive     LOW

#define Pin13LED         13

/*-----( Declare objects )-----*/
SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX

/*-----( Declare Variables )-----*/
int byteReceived;
int byteSend;

void setup()   /****** SETUP: RUNS ONCE ******/
{
  // Start the built-in serial port, probably to Serial Monitor
  Serial.begin(9600);
  Serial.println("YourDuino.com SoftwareSerial remote loop example");
  Serial.println("Use Serial Monitor, type in upper window, ENTER");
  
  pinMode(Pin13LED, OUTPUT);   
  pinMode(SSerialTxControl, OUTPUT);    
  
  digitalWrite(SSerialTxControl, RS485Receive);  // Init Transceiver   
  
  // Start the software serial port, to another device
  RS485Serial.begin(4800);   // set the data rate 

}//--(end setup )---


void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
  digitalWrite(Pin13LED, HIGH);  // Show activity
  if (Serial.available())
  {
    byteReceived = Serial.read();
    
    digitalWrite(SSerialTxControl, RS485Transmit);  // Enable RS485 Transmit   
    RS485Serial.write(byteReceived);          // Send byte to Remote Arduino
    
    digitalWrite(Pin13LED, LOW);  // Show activity    
    delay(10);
    digitalWrite(SSerialTxControl, RS485Receive);  // Disable RS485 Transmit       
  }
  
  if (RS485Serial.available())  //Look for data from other Arduino
   {
    digitalWrite(Pin13LED, HIGH);  // Show activity
    byteReceived = RS485Serial.read();    // Read received byte
    Serial.write(byteReceived);        // Show on Serial Monitor
    delay(10);
    digitalWrite(Pin13LED, LOW);  // Show activity   
   }  

Arduino Slave Codes (not modbus rs485 serial communication) :

#include <SoftwareSerial.h>
/*-----( Declare Constants and Pin Numbers )-----*/
#define SSerialRX        10  //Serial Receive pin
#define SSerialTX        11  //Serial Transmit pin

#define SSerialTxControl 3   //RS485 Direction control
#define RS485Transmit    HIGH
#define RS485Receive     LOW

#define Pin13LED         13

/*-----( Declare objects )-----*/
SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX

/*-----( Declare Variables )-----*/
int byteReceived;
int byteSend;

void setup()   /****** SETUP: RUNS ONCE ******/
{
  // Start the built-in serial port, probably to Serial Monitor
  Serial.begin(9600);
  Serial.println("SerialRemote");  // Can be ignored
  
  pinMode(Pin13LED, OUTPUT);   
  pinMode(SSerialTxControl, OUTPUT);  
  
  digitalWrite(SSerialTxControl, RS485Receive);  // Init Transceiver
  
  // Start the software serial port, to another device
  RS485Serial.begin(4800);   // set the data rate 
}//--(end setup )---


void loop()   /****** LOOP: RUNS CONSTANTLY ******/
{
  //Copy input data to output  
  if (RS485Serial.available()) 
  {
    byteSend = RS485Serial.read();   // Read the byte 
    
    digitalWrite(Pin13LED, HIGH);  // Show activity
    delay(10);              
    digitalWrite(Pin13LED, LOW);   
    
    digitalWrite(SSerialTxControl, RS485Transmit);  // Enable RS485 Transmit    
    RS485Serial.write(byteSend); // Send the byte back
    delay(10);   
    digitalWrite(SSerialTxControl, RS485Receive);  // Disable RS485 Transmit      
//    delay(100);
  }// End If RS485SerialAvailable
you can find modbus libraries and examples in here
İKİ ARDUINO ARASINDA İLETİŞİM
-İki arduıno arasındaki iletişim I2C haberleşme protoklü ile yapılır.Bu protokol düşük bant genişligine sahip,kısa mesafeli bir haberleşmedir.
Bu iletişim SDA ve SCL hatlarıyla saglanır.Bu protokolün çalışma mantıgı master-slave yani ana uydu-köle uydu mantıgına göre çalışır.Master dan gönderilen 
veri Slave tarafında işlenir.Master-Slave arasındaki veri alış-verişi tek hat üzerinden işlem görür. Yani SDA pini işlev görür.
Bu hatta veri iletimi çift yönlüdür.Veri yolu 8 bitten oluşur.Yani veriler 1 bytlık bölümler halinde gönderilir.Bu iletişim başlaması için düşen kenarın gelmesi gerekir.
Yani lojik 1 den loji 0 geçtigi anda iletişim başlamış olur.
Aşagıda SDA ve SCL pin örnekleri verilmektedir ;
-Uno, Ethernet A4 (SDA), A5 (SCL)
-Mega2560 20 (SDA), 21 (SCL)
-Leonardo 2 (SDA), 3 (SCL)
-Due 20 (SDA), 21 (SCL), SDA1, SCL1
Gelelim devremize : 


MASTER OLARAK SEÇİLEN ARDUINO KODLARI : 
#include <Wire.h>
char a;
 void setup()
{
  Wire.begin();  
  Serial.begin(9600);
}

void loop()
{
  Wire.requestFrom(1, 16);  
  while(Wire.available()){
    a = Wire.read();
    Serial.print(a);
  }
  Serial.println();
   Wire.beginTransmission(1);      
  Wire.write("http://elektro-blogger.blogspot.com.tr/");  
  Wire.endTransmission();
   delay(1000);
}

SLAVE OLARAK SEÇİLEN ARDUINO KODLARI :
#include <Wire.h>
char a;
void setup()
{
  Wire.begin(1);  
  Wire.onRequest(requestEvent);  
  Wire.onReceive(receiveEvent);  
  Serial.begin(9600);
}
void loop()
{
  delay(100);
}
void receiveEvent(int howMany)
{
  while(Wire.available()){
    a = Wire.read();
    Serial.print(a);
  }
  Serial.println();
}
void requestEvent()
{
  Wire.write("MERHABA ");
}

1. SliTaz

SliTaz en az 256MB ram e sahip, bağımsız bir linux dağıtımı olarak karşımıza çıkıyor.Yükleme dosyası ise sadece 45MB. Kendi paket uzantılarını kullanan SliTaz,tazpkg uzantılı olarak 3500 den fazla yüklenebilir paketi sunucularında barındırıyor.Arayüz olarak Openbox window un yanı sıra LXpanel ile birlikte eski bilgisayarlarınıza hız katabilir.
Slitaz Linux

2. Tiny Core

Kendi geliştiricilerinin de değimi ile linux un en minik çekirdeği.12MB yükleme dosyası ile gelen TinyCore, FLTK/FKWM ve BusyBox desktop arayüzü ile geliyor.İşletim sistemini oldukça küçültmek amacı ile kendi ayarlarında birçok driver ı bulamayabilirsiniz ancak merak etmeyin ihtiyacınız olan driverları kurulum sırasında da seçerek yükleyebilirsiniz.
Tinycore Linux

3. CrunchBang Linux

Debian tabanlı bir işletim sistemi olan CrunchBang tamamı ile eski masaüstü ve dizüstü bilgisayarlar hedeflenerek tasarlanmış.GTK+ uygulamalarının yanı sıra bu işletim sistemi karışımıza Openbox window yönetim sistemli ile gelmektedir.Debian kullanımına alışık bir pc kullanıcı iseniz eski bilgisayarınız için muazzam bir işletim sistemi buldunuz denilebilir :)
CrunchBang Linux

4. Puppy Linux

Bir diğer sistemi çok fazla yormayan işletim sistemimizde adından da açıkça anlaşılabileceği gibi :) minik olanlardan Puppy Linux.Kendisi ubuntu tabanlı bir işletim sistemi olması ile kullanıcılar tarafıdan sıklıkla tercih edilmektedir.Cd,Dvd,Usb gibi birimler üzerinden boot edebilirsiniz.Ubunutu tabanlı olması ise sizlere ubuntu için çıkarılmış olan 40bin den fazla paketi sisteminize dahil edebilmenizi sağlayacaktır.

5. Lubuntu

Benimde tercihim olan ve belkide dünyada eski bilgisayarları değerlendirmek için tercih edilen en iyi işletim sistemi Lubuntu.Adından da anlaşılacağı üzere kendisi ubuntu tabanlı bir işletim sistemi.Yine Puppy linux te olduğu gibi ubuntu için çıkarılmıs 40binden fazla paket lubuntu ile de emirlerimize amade.Lxde masaüstü arayüzünü kullanan lubuntu ram ve cpu kullanım oranları ile birçok linux işletim sistemine açık  ara fark atmaktadır.
Lubuntu Linux

6. LXLE

LXLE burada bahsettiğimiz birçok işletim sistemi gibi yine ubuntu tabanlı bir işletim sistemi ancak LTS sürümlerini kapsamaktadır.Lxde masaüstü görünümü ile gelen bu işletim sistemi eski bilgisayarlarınızı değerlendirmeniz açısından elinizin altında bulunmalıdır.
LXLE Linux

Özetlemek gerekirse, eski unutulmuş bilgisayarlarımızı değerlendirme şansımız her zaman var.Heleki unix tabanlı işletim sistemleri linuxlerin burada bahsettiğimiz gibi düşük tüketimli işletim sistem sürümleri olduğu sürece her zaman teknoloji tozlu raflardan tekrar şahlanabilir :)
Şimdi eski laptobunu çıkar bu işletim sistemlerinden birini kur ve ev içerisinde bir server kurmak için hazırlan :)
ELEKTRO BLOGGER A HOŞGELDINIZ

ARAMA YAP

EN COK OKUNANLAR

- Copyright © ELEKTRO-BLOGGER Blogger