Ana içeriğe atla

Raspberry Pi 7″ Dokunmatik Ekran Otomatik Parlaklık



Rpi 7″ resmi ekranımızın arka ışık kapama açma ve parlaklık komutlarından şu yazıda bahsetmiştim. Şimdi de Rpi kartımızın gpio pinlerine taktığımız ldr ile ortam ışık miktarını okuyup ekran parlaklığının otomatik değişmesini nasıl gerçekleştirdiğimden bahsedeceğim. Kodlama da python dili kullanılmıştır.

Öncelikle bu işlem için gerekli basamaklara bakalım.

  1. Ldr ışık duyarlı direnci ile ortam ışık miktarını sayısal değerde okuma
  2. Okunan değere göre gerekli parlaklık miktarının dosyaya (/sys/class/backlight/rpi_backlight/brightness) yazdırılması
  3. Oluşturulan python scriptinin işletim sistemi açılışında çalışacak şekilde ayarlanması.
Tabi kodlama öncesi sensör bağlantılarını yapmamız gerekli. Bağlantı şeması ve fotoğrafından dikkatle takip ederek bağlantıları doğru yaptığınızdan emin olun. Devre şemasında C ile gösterilen kondansatör değeri 16v 22mF. Normalde 1mF gibi küçük değerli bir kondansatör ile yapılmıştı internette gördüğüm örnekte ancak elimde bu vardı. Uyarlamaya açık…






Bağlantılar tamamlandığında backlight.py isimli bir dosya oluşturup aşağıdaki kodları kopyalayıp yapıştırıyoruz. Ya da ekten dosyayı buradan doğrudan indirebilirsiniz.



#!/usr/local/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
#ldr okuma pini tanimlama
pin_to_ldr = 7
def rc_time (pin_to_ldr):
 count = 0
  
 #Output on the pin for 
 GPIO.setup(pin_to_ldr, GPIO.OUT)
 GPIO.output(pin_to_ldr, GPIO.LOW)
 time.sleep(0.01)

 #Change the pin back to input
 GPIO.setup(pin_to_ldr, GPIO.IN)
 #Count until the pin goes high
 while (GPIO.input(pin_to_ldr) == GPIO.LOW):
         count += 1

 return count

#Catch when script is interrupted, cleanup correctly
try:
 # Main loop
 while True:
  bl = open('/sys/class/backlight/rpi_backlight/brightness','w')
  okunan = 0
  okunan = rc_time(pin_to_ldr)
  if okunan <= 1500:
   bl.write('200')
  elif okunan <= 5000:
          bl.write('160')
  elif okunan <= 15000:
          bl.write('130')
  elif okunan <= 30000:
          bl.write('100')
  elif okunan <= 50000:
          bl.write('75')
  elif okunan <= 100000:
          bl.write('50')
  elif okunan <= 140000:
   bl.write('30')
  else:
   bl.write('20')
  bl.close()
  time.sleep(5) 
finally:
 GPIO.cleanup()



backlight.py dosyamızdaki kod 7.pin üzerinden bir değer okuyor ve bu değerin belirli aralıkları için ekranımızın arkaplan ışığının parlaklık miktarını belirleyen dosyaya gerekli değerleri belirlediğimiz aralıklarla yazıyor.


Şimdi kodumuzun sistem açılışına eklenmesi kaldı. Bunun için de rc.local dosyasında değişiklik yapmamız gerekiyor.
Dosyayı düzenlemek için açıyoruz
sudo nano /etc/rc.local
Son satırdaki exit 0 komutundan önce şu komutu ekliyoruz
sudo python /home/pi/python/backlight.py &


ctrl + o ile kaydedip ctrl +x ile çıkış yapıyoruz.


Artık sistem açılışında python kodumuz çalışacak ve ortam ışığına göre ekranımızın parlaklığı değişecek. Kodlama konusunda acemiyim. Arduino da bulunan map komutu gibi bir komutla değerleri aralık olarak değil de daha hassas değişkenlikte yapılabilir. Merak ettikleriniz ve önerileriniz için yorumlarınızı bekliyorum.

Bu blogdaki popüler yayınlar

Fen bilimleri ders linkler

 https://www.khanacademy.org/science/cosmology-and-astronomy/earth-history-topic/earth-title-topic/pi/season-simulator Basit bir simülasyon , dünya konumu ve güneş ışığı aktif değişimini gösteriyor İstenilen konum ayarlanabiliyor  https://www.earthspacelab.com/app/eclipse/ güneş ve ay tutulmaları  https://www.earthspacelab.com/app/moon-phases/ ayın evreleri  https://astro.unl.edu/nativeapps/  şu linkten naap labs v1.1 kurulumu içinde mevismler simulasyonu kullanışlı duruyor. dünya üzerinde konum belirleyip düşen ışığın gösterimi de mevcut https://www.vascak.cz/physicsanimations.php?l=tr https://www.physicsclassroom.com/Physics-Interactives/Refraction-and-Lenses/Optics-Bench/Optics-Bench-Refraction-Interactive https://www.physicsclassroom.com/Physics-Interactives/Reflection-and-Mirrors/Optics-Bench/Optics-Bench-Interactive https://www.physicsclassroom.com/Physics-Interactives/Light-and-Color/Stage-Lighting/Stage-Lighting-Interactive https://phet.colorado.edu/sims/html/bending-light/late

Doopy Run - Godot Engine Game

Doopy run eğitim sırasında oluşturduğum basit bir platform oyun denemesidir. Aşağıdaki linkten demoyu indirebilirsiniz. Windows linki Android APK linki

Mikroskop Gözlemi - Paramesyum Kültürü

Mikroskobik canlılarından birkaç örnek gözlemek için sınıf etkinliğinde kullanılmak üzere bir kültür ortamı oluşturduk. Bu ortam için bir miktar akvaryum suyu aldık. İçine canlı bir yapraklı bitki bir parça, bir tutam toprak, kuru yaprak attık. Ağzını peçete ile örtüp lastik ile tutturduk. 2 hafta mutfakta rafta ışıklı bir ortamda beklettikten sonra hazırladığımız preparatta aşağıdaki gözlemleri gerçekleştirdik. Fotoğraf ve videolar telefon adaptörü aracılığıyla telefon kamerası ile kaydedildi. Resimlerin kaliteli versiyonlarını linkten indirebilirsiniz: Mikroskop Gözlemi