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. | |
2 | Daha 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. | |
3 | Otonom 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. | |
4 | Daha 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. | |
6 | Daha 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. | |
8 | when 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. | |
10 | Ortam 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. | |
11 | Bu 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. | |
12 | when 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. | |
13 | Tekrar operators kategorisindeki 3<4 operatörünü sürükleyerek not bloğuna yerleştir | |
14 | Picobricks 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. | |
15 | LDR 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 | |
16 | Start 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);
}