back to top

Raspberry Pi Pico Hakkında Kapsamlı Rehber

Bu yazımızda aylardır ismini duyduğumuz, elektronik ve maker sektöründe büyük ses getiren Raspberry Pi ailesinin yeni üyesi olan Raspeberry Pi Pico’yu tanıyacağız ve Raspberry Pi Pico’yu programlayabilmemiz için gerekli kurulumları gerçekleştirip, LED yakma projesi yapacağız.

İnanılmaz Özellikleriyle YENİ Raspberry Pi Pico | Detaylı İnceleme | Nasıl Çalışır?

Raspberry Pi Vakfı bu sefer Arduino’ya rakip olacak bir mikrodenetleyiciyi geçtiğimiz aylarda tanıttı. Klasik Raspberry Pi modellerini birer bilgisayar gibi kullanabiliyorduk ama Raspberry Pi Pico diğer Raspberry Pi modellerinin aksine bir bilgisayar değil, Arduino gibi bir mikrodenetleyici.

Gücünü Raspberry Pi Vakfı tarafından geliştirilen 32 bit Arm Cortex M0+ tabanlı RP2040 işlemciden alan Raspberry Pi Pico 133MHz’lik hızıyla öne çıkıyor.

Giriş çıkış pinlerini incelediğimizde istediğimiz pinlere atayabileceğimiz 2 adet I2C ve 2 Adet SPI portu karmaşık projelerimizi gerçekleştirirken büyük kolaylık sağlayacaktır. Üzerinde bulunan sıcaklık sensörü sayesinde hava durumu monitörü gibi projeleri yapmak bizim için oldukça kolay olacak.

Raspberry Pi Pico Pin Diyagramı
Raspberry Pi Pico Pin Diyagramı

Rasberry Pi Pico hem C/C++ hem de MicroPython ile programlanabiliyor. Bu durum bizlere programlama açısından esneklik sağlıyor. Bu yazımızda kodlama ve öğrenme açısından kolay olan MicroPython’ı tercih edeceğiz.

Raspberry Pi Pico MicroPython Kurulumu

Pico’muzu programlayabilmemiz için gerekli olan MicroPython Firmware’ini buradan indirelim.

Raspberry Pi Pico MicroPython Firmware

Dosyayı indirdikten sonra Raspberry Pi Pico üzerinde bulunan “BOOTSEL” tuşuna basılı tutarak, Pico’muzu bilgisayarımıza bağlayalım.

Raspberry Pi Pico Bootsel Tuşu

Bilgisayarımız Raspberry Pi Pico’yu tıpkı bir taşınabilir aygıt gibi görecek. Ardından fotoğraftaki gibi bir klasör açılacaktır.

İndirdiğimiz dosyayı açılan bu klasöre kopyalayım ve klasörün kapanmasını bekleyelim.

Şimdi de Pico’muza kodlar yazabilmemiz için gerekli olan Thonny kurulumunu gerçekleştirip, arayüzü tanıyalım.

Thonny IDE Kurulumu

Sistemimize uygun Thonny dağılımını buradan indirelim.

İndirdiğimiz kurulum dosyasını çalıştırıp açılan ekranlarda sırayla “Next” butonuna tıklayarak kurulum işlemini tamamlayalım.

Thonny IDE Arayüzünü Tanıyalım

Raspberry Pi Pico Arduino’dan farklı olarak kendi hafızasına sahip ve biz bu hafızaya Thonny IDE aracılığıyla istediğimiz scriptleri ya da kütüphaneleri yükleyebiliyoruz. Gelin Thonny IDE’de bizim işlerimizi kolaylaştıracak neler varmış birlikte bakalım.

Thonny IDE’yi açtığımızda bizi fotoğraftaki gibi bir arayüz karşılayacak.

En üst kısımda bulunan, turuncu kutunun içerisindeki sekmelerin işlevleri sırasıyla;

  • Files: Türkçesi “Dosyalar”olan bu sekmeden yazdığımız kodları kaydedebilir, daha önce yazıp, kaydettiğimiz kod varsa onları açabilir ya da yeni bir proje dosyası açabiliriz.
  • Edit: Türkçesi “Düzenle” olan bu sekmeden yazdığımız kodda geri alma, ileri alma, kopyalama, tümünü seçme gibi işlemleri yapabiliriz.
  • View: Türkçesi “Görünüm” olan bu sekmeden arayüzümüzü özelleştirebiliriz.
  • Run: Türkçesi “Çalıştır” olan bu sekmeden yazdığımız kodları çalıştırabilir, Pico’muz için “Yorumlayıcı(Interpreter)” seçebilir ya da kodda “Hata Ayıklama(Debug)” gibi işlemleri yapabiliriz. 
  • Tools: Türkçesi “Araçlar” olan bu sekmeden paketleri yönetebiliriz ya da thonny ayarlarını yapabiliriz.
  • Help: Türkçesi “Yardım” olan bu sekmeden thonny sürümü hakkında bilgi alabilir ya da karşılaştığımız bir sorunla ilgili yardım içeriklerine bakabiliriz.

Ayrıca sıkça kullanacağımız işlevler Thonny IDE’ye buton olarak eklenmiş durumda. Yukarıdaki ekran görüntüsünde numaralandırılmış butonların özellikleri sırasıyla;

  1. “Artı” ikonuyla yeni bir dosya açabiliriz.
  2. “Disket (Yukarı Ok)” ikonuyla daha önce kaydettiğimiz scripti açabiliriz
  3. “Disket (Aşağı Ok)” ikonuyla yazdığımız scripti kaydedebiliriz.
  4. “Çalıştır” ikonuyla yazdığımız scripti çalıştırabiliriz.
  5. “Dur” ikonuyla çalışan scripti durdurabiliriz.

Şimdi Pico’muzu kullanabilmemiz için Thonny IDE’de “Interpreter(Yorumlayıcı)” ayarlarını yapalım. Üst kısımda bulunan “Run” sekmesine tıklayalım, ardından “Select Interpreter”e tıklayalım.

Açılan pencereden “Interpreter(Yorumlayıcı)”  olarak “MicroPython(Raspberry Pi Pico)” seçelim. Port olarak “Try to detect port automatically” seçelim.

Artık tüm kurulumlarımızı yaptığımıza göre ilk projemize geçebiliriz.

Raspberry Pi Pico ile Dahili LED Yakma

Her şey LED yakmakla başlar diyelim ve kolay olan ilk projemizi gerçekleştirelim.

Aşağıdaki kodu Thonny IDE’ye yazalım. Bu kod Pico’muzun üzerinde bulunan dahili LED’in yarım saniyede bir yanıp sönmesini sağlıyor.

#Raspberry Pi Pico üzerindeki donanıma erişimi sağladık
from machine import Pin, Timer 
#Dahili LED'in bağlı olduğu pini tanımladık
led = Pin(25, Pin.OUT) 
#zamanlayıcıyı tanımladık
timer = Timer() 
#LED'in yanıp, sönmesini sağlayan fonksiyon
def blink(timer): 
    led.toggle() 
#zamanlayıcıyı başlattık ve koşulları belirttik. freq: sıklık, mode: çalıştırmak istediğimiz mod, callback: geri çağırmak istediğimiz fonksiyon
timer.init(freq=2, mode=Timer.PERIODIC, callback=blink) 

Yazdığımız bu kodları Pico’muza yükleyelim. Üstte bulunan “Çalıştır” ikonuna tıklayalım.

Bir pencere açılacak. Bu pencerede yazdığımız kodları nereye kaydetmek istediğimizi soruyor. Eğer kodu bilgisayara kaydedip çalıştırırsak, kod sadece Pico bilgisayara takılıyken çalışır. Kodun sürekli çalışması için “Raspberry Pi Pico” seçeneğine tıklayıp, Pico’muza kaydetmeliyiz.

Açılan pencerede bizden yazdığımız kodu Pico’da hangi konuma kaydetmek istediğimizi soruyor. Direkt Pico’nun içerisine kaydedebiliriz. Bunun için yazdığımız kodu kaydetmemiz için bir isim ve dosya uzantısı yazmamız gerekli. MicroPython ile çalıştığımız için dosya uzantılarımız hep ”*.py” olacaktır. Ben dosya adı olarak “blink.py” yazdım. Siz de istediğiniz bir dosya adı yazabilirsiniz. Dosya adını yazdıktan sonra “OK” butonuna tıklayarak kodu kaydedip, çalıştırabiliriz.

Kod çalıştığında, Pico’muzun üzerinde bulunan dahili LED yarım saniye aralıklarla yanıp, sönecektir.

Pico ile Sıcaklık Ölçümü

Yazının başında da belirttiğim gibi Raspberry Pi Pico’da dahili bir sıcaklık sensörü bulunuyor. O zaman gelin birlikte bu sıcaklık sensörünü nasıl kullanacağımızı öğrenelim.

Öncelikle Thonny IDE’yi açalım ve aşağıdaki kodları yeni bir dosya açıp, yazalım.

#Raspberry Pi Pico üzerindeki donanıma erişimi sağladık
import machine
import utime
#Sıcaklık sensörünün bağlı olduğu pini tanımladık
sensor_temp = machine.ADC(4)
#Analog okuma yaptığımız için “conversion_factor” koduyla sensörden gelen 16 bitlik veriyi bizim için anlamlı olabilecek gerilim verisine çevirdik. Pico’nun pini 3.3 volt verdiği için 3.3 voltu 2^16 – 1 = 65535’e böldük. 
conversion_factor = 3.3 / (65535)
while True:
    #Sıcaklık okuma yapılıyor
    reading = sensor_temp.read_u16() * conversion_factor
    temp = 27 - (reading - 0.706)/0.001721
    print(temp)
    utime.sleep(2)

Şimdi bu kodları Pico’muza kaydedip, çalıştıralım. Kodlar çalışmaya başladığında alt kısımda bulunan Shell penceresinde 2 saniyede bir Pico’muzdan gelen sıcaklık verisini görebiliriz.

Raspberry Pi Pico ile Hırsız Alarmı

Şimdiye kadar Pico üzerinde bulunan LED ve sıcaklık sensörüyle proje yaptık. Artık sizce de breadboarda geçip, jumperlarla devre kurma vakti gelmedi mi? O zaman haydi breadboardlarınızı kapın birlikte “Hırsız Alarmı” yapalım.

Gerekli Malzemeler:

İlk olarak devremizi aşağıdaki şemaya göre oluşturalım.

Şimdi de Thonny IDE’de yeni bir dosya açıp, aşağıdaki kodları yazalım.

import machine
import utime
#PIR sensörünün bağlı olduğu pini tanımladık
sensor_pir = machine.Pin(28, machine.Pin.IN, machine.Pin.PULL_DOWN)
#LED'in tanımlı olduğu pini tanımladık
led = machine.Pin(15, machine.Pin.OUT)
#Buzzer'ın tanımlı olduğu pini tanımladık
buzzer = machine.Pin(14, machine.Pin.OUT)
def pir_handler(pin):
    utime.sleep_ms(100)
    if pin.value():
        print("DİKKAT! Hareket Tespit Edildi!")
        for i in range(50):
            led.toggle()
            buzzer.toggle()
            utime.sleep_ms(100)
sensor_pir.irq(trigger=machine.Pin.IRQ_RISING, handler=pir_handler)
while True:
    led.toggle()
    utime.sleep(5)

Şimdi bu kodları Pico’muza kaydedip, çalıştıralım. Artık hareket sensörümüzü tetikleyen herhangi bir durum söz konusu olduğunda buzzerdan ses gelecek ve LED’imiz yanacak. Alt kısımda bulunan Shell penceresindeyse hareket tespit edildiğinde “DİKKAT! Hareket Tespit Edildi!” yazısı çıkacaktır.

Bir blog yazısının daha sonuna geldik. Raspberry Pi Pico ile ilgili yeni projeler için Youtube kanalımızı ve blog sayfamızı takip etmenizi tavsiye ediyorum. Ayrıca Pico ile gerçekleştirmemizi istediğiniz projeleri yorumlara yazabilirsiniz. Bir sonraki projede görüşmek üzere, hoşçakalın.

Son Çıkan Yazılar

3 YORUMLAR

  1. Pek kapsamlı olduğu söylenemez. Thonny IDE olmadan da nasıl Python kodu çalıştırabiliriz? C++ kütüphanesinin, Python kütüphanesinin API’ı ile ilgili ham bilgiler nelerdir? C/++ kodunu nasıl Pico’ya göre derleyebiliriz?

    Yazı kapsamlı bir rehber değil, hatta Pico ile alakalı bile değil. Thonny IDE’yi tanıtmışsınız yalnızca.

    • Merhaba, içeriklerimizin yeni başlayan okurlarımıza da hitap etmesi için anlaşılır ve detaylı olmasına özen gösteriyoruz. C/C++ SDK’larıyla ilgili bir blog yazısı da gelecek ilerleyen zamanlarda. Python kütüphaneleri ile ilgili sorularınızı not aldım. Ele almamızı istediğiniz başka konular da varsa, yorumlarda belirtirseniz seviniriz.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz