1

Raspberry Pi eğitim amaçlı geliştirilmiş ancak sonrasında bir çok konuda bizlere ekonomik çözümler üretmekte oldukça maharetli olan bir pi bilgisayardır. Raspberry Pi üzerinde GPIO pinler yardımıyla bir çok elektronik proje ortaya koymamızı sağlıyor. GPIO pinleri kontrol edebileceğimiz kütüphaneleri incelediğimizde python Rpi.GPIO kütüphanesi en mükemmel örneğidir. Ancak yeni başlayanlar için  Rpi.GPIO kütüphanesi bazen mükemmellikten uzak olabiliyor. Bu yazımda sizlere Raspberry Pi GPIO pinlerini yönetmek için kullanabileceğimiz gpiozero kütüphanesinden bahsedeceğim.

gpiozero Nedir?

gpiozero raspberry pi üzerindeki GPIO pinleri yönetmek için kullanabileceğimiz bir python kütüphanesidir. raspberrypi.org’un topluluk yöneticisi olan Ben Nuttall tarafından geliştirilmiştir. Kütüphane hazırlanırken basit, sade ve kolay bir şekilde herkesin GPIO pinler üzerinden python kullanarak elektronik projeler gerçekleştirmeleri hedeflenmiş. 

Basit isimlendirmeler ile kullanabileceğimiz bir çok özelliği sadece projemize import ederek kullanabilme şansı veren gpiozero kütüphanesi hem yeni başlayanlar tarafından hem de RPi.GPIO konusunda uzman olan kullanıcılar tarafından da tercih edilmektedir.

RPi.GPIO Kütüphanesinde Yanlış Olan Ne?

Aslında yanlış olan hiç bir şey yok. RPi.GPIO, 2012 yılında Ben Croston tarafından geliştirildi. Yaygın bir şekilde kullanılmasına rağmen son kullanıcılar için geliştirilmiş bir kütüphane değildir. Hatta gpiozero kütüphanesi de RPi.GPIO kütüphanesi üzerine inşa edilmiş bir kütüphanedir.

gpiozero Kütüphanesini Neden Tercih Etmeliyiz?

gpiozero kütüphanesinin GPIO pinleri yönetirken işimizi ne kadar kolaylaştırdığını bir örnekle birlikte inceleyelim.

İç kısımdaki numaralandırlamalar BOARD numaralandırma yöntemi olarak isimlendirilirken GPIOXX olarak belirtilen numaralandırma yöntemi BCM Numaralandırma yöntemi olarak isimlendirilir. gpiozero’da sadece BCM numaralandırma yöntemi kullanılabilir.

Öncelikle RPi.GPIO kütüphanesi ile bir LED yakma uygulaması yapalım. Sonrasında bu LED yakma örneğini gpiozero kütüphanesi ile de gerçekleştirelim. Bu örnek  için Led’imizin uzun bacağını GPIO14 Pinine diğerini GND’lerden birine bağlayıp örneğimize başlayalım. Bağlantı için yukarıdaki görselden yardım alabilirsiniz.

import RPi.GPIO as GPIO         # RPi.GPIO kütüphanesini import ettik.
ledPin = 14                     # GPIO14'ü led pini olarak belirledik.
GPIO.setmode(GPIO.BCM)          # BOARD veya BCM pin numaralandırma yöntemlerinden hangisini kullanacağımızı belirledik.
GPIO.setup(ledPin, GPIO.OUT)    # LedPin'imizi çıkış pini olarak ayarladık.
GPIO.output(ledPin, GPIO.HIGH)  # Led'imizi yaktık.

Yukarıdaki örnekte RPi.GPIO kütüphanesini kullanarak basit bir led yakma projesi gerçekleştirdik. Aynı örneği gpiozero kütüphanesi ile gerçekleştirdiğimizde neden gpiozero ile daha basit olduğunu göreceğiz.

from gpiozero import LED         # gpiozero kütüphanesi içinden LED'i import ettik.
ledPin= LED(14)                  #ledPin'imizi GPIO14 pini olarak ayarladık
ledPin.on()                      #Led'imizi yaktık.

 gpiozero kütüphanesini Led yakabilmek için kullanabileceğimiz bir LED modülü var bu modülü kullanarak 3 satır kod ile bu işlemi gerçekleştirebildik. Ayrıca kullanabileceğimiz bir çok sensör için gpiozero kütüphanesinin modülleri bulunmaktadır. Bu modüller GPIO pinler üzerinden sensörlerden değer okurken işimizi oldukça kolaylaştırmaktadır.

gpiozero Kütüphanesini Hangi Raspberry Pi Modelleri İle Kullanabiliriz?

Kütüphanenin isminde zero geçiyor olması sadece Raspberry Pi zero modeli ile kullanılabilecek gibi bir algı oluştursa da bütün Raspberry pi modelleri ile kullanabiliyoruz.

Kütüphanenin geliştiricisi Ben Nuttall’ın GPIO sunumu
Ahmet Kemal YILDIZ
Eskişehir Osmangazi Üniversitesi Bilgisayar ve Öğretim Teknolojileri Öğretmenliği mezunu bir Bilişim Teknolojileri ve Yazılım Dersi Öğretmeniyim. Bilişim Teknolojileri ve Yazılım dersi ile ilgili ders etkinlikleri, kaynak materyaller, örnek etkinlikler ve Bilişim Teknolojileri hakkında ilgi duyduğum birçok konu hakkında vakit buldukça buradan blogluyorum. :)

    Uzayda Türkler Var Tasarım Odaklı Düşünme Atölyesi

    Previous article

    #1 – Arduino’yu Tanıyalım – Arduino Çeşitleri Nelerdir?

    Next article

    1 Comment

    1. Mükemmel bir yazi bu konuya ilgi duyan kişilere büyük bir katki sağlamışsın başarılarının devamını dilerim 🙂

    Leave a reply

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