#3 PicoBricks ile Otonom Aydınlatma Projesi

Elektronik sistemlerin verilen görevi, topladığı veriler doğrultusunda karar vererek otomatik olarak yapmasına otonom olma durumu denir. Elektronik sistemlerin çevresinden veri toplamasını sağlayan bileşenlerine sensör (algılayıcı) denir. Ortamdaki ışık seviyesinin hangi düzeyde olduğu, hava sıcaklığının kaç derece olduğu, su akış hızının kaç lt/dk olduğu, ses şiddetinin ne kadar olduğu gibi birçok veri sensörler tarafından toplanarak elektrik sinyalleri olarak yani veri olarak PicoBricks’e iletilir. Picobricks’te birçok sensör yer almaktadır. Sensörlerden verinin nasıl alındığını ve bu verilerin nasıl yorumlanılıp kullanılacağını bilmek, kitap okumanın kelime dağarcığını geliştirmesi gibi proje fikirlerini geliştirecektir.

Bu projede PicoBricks ile hava karardığında aydınlatmanın otomatik yandığı sistemlerin çalışma sistemlerini anlamak için ışık miktarı düştüğünde LED’in yanmasını sağlayacağız.

 Proje Detayları ve Algoritma

Sensörler dış ortamlardaki verileri algılayarak mikrokontrolcülere veriler gönderen elektronik bileşenlerdir. LDR sensör de ortamdaki ışık miktarını algılayarak analog değerler gönderir. Projemizde önce LDR sensör değerlerini okuyarak ortam aydınlık ve karanlık olduğunda gelen verileri kontrol edecek, sonra bu verilere göre bir sınır belirleyerek ışık miktarı bu sınırın altındaysa Picobricks’in RGB LED’ini yakacak değilse LED’i söndüreceğiz. 

Bağlantı Şeması

Picobricks’in modüllerini kablo bağlantısı yapmadan kodlayabilir ve çalıştırabilirsin. Modülleri board’dan ayırarak kullanacaksan grove kablolar ile modül bağlantılarını yapmalısın. 

Projenin MicroBlocks ile Kodlanması

1İlk olarak Picobricks başladığında yazdığın kodların çalışabilmesi için Control menüsünde when started bloğunu sürükleyerek kod yazma alanına bırak.
2Daha sonra yazdığın kodların Picobricks çalıştığı sürece sürekli olarak çalışması için Control menüsünden forever bloğunu sürükleyerek when started bloğunun altına ekle.
3Otonom aydınlatmayı sağlamak için ilk olarak LDR sensörden ortam aydınlıkken ve karanlıkken gelen değerleri görmemiz ve bu değerlere göre işlem yapmamız gerekiyor. Bunun için Output kategorisindeki say 123 bloğunu sürükleyerek forever bloğunun içine bırak. 
4Daha sonra Picobricks kategorisindeki PicoBricks light sensor bloğunu sürükleyerek say bloğundaki 123 yazan yuvarlağa bırak. Start tuşuna basarak sensörden gelen değerleri gör. Light Sensor bloğu ortamdaki ışık seviyesini yüzdesel (%) olarak verir.  Tam aydınlık ortamda 100 değeri, elinle kapattığında 90 ve altında , tam karanlıkta ise 0’a yakın değerler görmelisin. Değerleri gördükten sonra kodları silebilirsin.
5Şimdi ortam karanlık olduğunda RGB LED’in yanması için  Control kategorisindeki when bloğunu sürükleyerek kod yazma alanına bırak. Bu blok when started bloğundan farklı olarak belirlediğimiz koşulu sürekli denetler koşul doğrulanırsa altındaki komutu çalıştırır. when started bloğu ise Start tuşuna bastığınız andan itibaren altındaki blokları çalıştırır.
6Daha sonra when bloğuna koşulu tanımlamak için operators kategorisindeki 3<4 bloğunu sürükleyerek when bloğundaki yuvarlak kısma bırak. 3<4 bloğu koşul işlemlerinde büyüklük-küçüklük kontrolü yapmaktadır. Bloktaki 3 ve 4 yazan alanlara kontrol etmek istediğiniz blokları yerleştirebilirsin. Programlamada eşittir, eşit değildir, büyüktür, küçüktür gibi farklı operatörler sıklıkla kullanılmaktadır. Biz de bu projede sensörden gelen değerin 90 sayısından küçük olup olmadığını kontrol edeceğiz.
7Şimdi Picobricks kategorisinden PicoBricks light sensor bloğunu sürükleyerek when bloğunda 3<4 operatöründeki 3 yazan yuvarlağın içine bırak.
8when bloğunda koşulu tamamlamak için 4 sayısını silerek klavyeden 90 yaz. Bu sayede program Picobricks sensör değerlerinin % 90’ dan küçük olup olmadığını kontrol edecek ve %90’dan küçük olduğunda  when bloğu altındaki kodları çalıştıracaktır.
10Ortam karanlık olduğunda yani LDR sensörü değeri 90’dan küçük olduğunda ledin yanabilmesi için Picobricks kategorisindeki PicoBricks set RGB LED bloğunu sürükleyerek when bloğunun altına bırak. Yeşil yuvarlağa tıklayarak açılan renk paletinden dilediğiniz rengi seçebilirsin.
11Bu aşamaya kadar ortam karanlık olduğunda LED’in yanması için gerekli kodları yazdık. Şimdi ise ortam aydınlık olduğunda yani koşul gerçekleşmediğinde yapılacak işlemleri programa eklemeliyiz. Bunun için Control kategorisinden tekrar when bloğu alarak kod yazma alanına bırak.
12when bloğunda koşul alanına operators kategorisindeki bloğunu  yerleştir. Bu sayede LDR sensör değeri 90’ dan küçük değilse koşulunu oluşturabiliriz. 
13Tekrar operators kategorisindeki 3<4 operatörünü sürükleyerek not bloğuna yerleştir
14Picobricks kategorisinden Picobricks light sensor bloğunu sürükleyerek 3<4 operatöründeki 3 yazan yuvarlağa yerleştir ve 4 sayısını silerek 90 yaz.
15LDR sensör değeri 90’dan küçük olmadığında rgb ledin sönmesi için Picobricks kategorisindeki PicoBricks turn off RGB LED bloğunu sürükleyerek when bloğunun altına yerleştir
16Start tuşuna basarak kodlarını test et. Herşey yolunda gittiyse Picobricks LDR sensörü elinizle kapattığında RGB LED belirlediğiniz renkte yanacak, elini kaldırdığında ise sönecektir.

Projenin MicroBlocks kodlarına erişmek için tıkla.

Proje Görseli

Proje Önerisi

Bu projede Picobricks üzerindeki LDR sensör verilerine ortam karanlıksa LED’i yaktık aydınlıksa LED’i söndürdük. Sen de LDR sensör verilerini işleyerek evindeki bir gece lambasını ya da masa lambasını karanlıkta otomatik olarak yanması için kodlayabilirsin. Bunun için Picobricks üzerindeki röleyi kullanabilirsin.

 Projenin MicroPhyton kodları


from machine import Pin, ADC
 
ldr = ADC(Pin(27))
led = Pin(7, Pin.OUT)

while True:
    
    print(ldr.read_u16())
    
    if(ldr.read_u16()>20000):
        led.on()
    else:
        led.off()

Projenin Arduino C Kodları

void setup() {
  pinMode(7, OUTPUT);
  pinMode(27,INPUT);
}

void loop() {

  if (analogRead(27)>500){
    
    digitalWrite(7, HIGH);
  }
  else{
        digitalWrite(7, LOW);
  }  
  delay(10);                     
}

Yorum bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top