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.

blank
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.

blank
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.

blank

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

blank

Ş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.

blank

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

blank

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.

blank

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.

blank

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

blank

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.

blank

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.

blank

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.

blank

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

blank

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.

blank

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.

blank

Ş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.

blank

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.

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.

  2. flex sensör ile servo motor kontrol etmek istiyorum farklı kaynakları denedim fakat başarılı olamadım ne yapabilirim

CEVAP VER

Please enter your comment!
Please enter your name here