Raspberry Pi Pico ile MicroPython Kullanımı

Raspberry Pi Pico ile MicroPython Kullanımı

Bu içeriğimizde, Raspberry Pi Pico ile MicroPython kullanımını inceliyoruz.

2012 yılında tek kartlı bilgisayar (SBC) olan Raspberry Pi’yi hayatımıza sokarak bilgisayar bilimleri eğitiminde çığır açan Raspberry Pi Vakfı, tam 9 yıl sonra, 2021 yılında kendi tasarımı olan **RP2040 silikon çipi** ile donatılmış ilk mikrodenetleyici kartı **Raspberry Pi Pico**’yu piyasaya sürdü. Bu hamle, vakfın mikrokontrolcü ve gerçek zamanlı gömülü sistemler dünyasına adım attığı büyük bir dönüm noktası oldu.

Sadece 4 dolarlık son derece düşük maliyetli bu mikrokontrolcü kartı; sunduğu zengin GPIO arayüzleri, analog girişler ve güçlü çift çekirdekli donanım mimarisi sayesinde akıllı cihazlar, otomasyon sistemleri ve giyilebilir teknolojiler geliştirmek isteyen mühendisler ve hobiciler için harika bir alternatiftir. Bu rehberimizde, **MicroPython** programlama dili ile Raspberry Pi Pico’yu baştan sona nasıl programlayacağımızı, işletim sistemi olmayan bu donanımın yazılımsal temellerini ve Thonny IDE kurulum adımlarını inceleyeceğiz. Pico hakkındaki tüm gelişmelere ve projelere ulaşmak için Raspberry Pi Pico Eğitim Serimizi takip edebilirsiniz.

Raspberry Pi Pico Donanımsal Özellikleri

Raspberry Pi Pico, $133\text{MHz}$ nominal saat hızında çalışan çift çekirdekli **ARM Cortex-M0+** işlemci mimarisine sahiptir. $264\text{KB}$ dahili SRAM bellek ve $2\text{MB}$ yerleşik QSPI flash depolama birimi ile birlikte gelir. Kart üzerindeki özel Quad-SPI veri yolu sayesinde bu hafıza $16\text{MB}$’a kadar genişletilebilir. $3.3\text{V}$ lojik gerilim seviyesiyle çalışan ve çok yönlü yapılandırılabilen 26 adet GPIO pini barındırır. Bu pinlerin 3 adedi yüksek çözünürlüklü analog giriş (ADC) olarak işlev görür. Kart, micro-USB portu üzerinden, harici pillerle veya güç kaynaklarıyla geniş bir voltaj aralığında ($1.8\text{V} – 5.5\text{V}$) kararlı çalışabilir.

Kartın en çok eleştirilen yanlarından biri, günümüzde eskimiş olan micro-USB konnektörü kullanması ve kart üzerinde fiziksel bir donanım sıfırlama (Reset / RUN) butonunun bulunmamasıdır. Ancak, üzerinde yer alan **BOOTSEL** (Boot Selection) butonu, kartı bir programlayıcıya ihtiyaç duymadan USB üzerinden doğrudan önyükleyici moduna geçirmemizi sağlar.

Raspberry Pi Pico Fiziksel Pin Yapısı
Raspberry Pi Pico’nun 40 pinlik fiziksel yapısı ve GPIO dizilimi

MicroPython Nedir ve Gömülü Sistemlerdeki Rolü

**MicroPython**, Python 3 programlama dilinin gömülü sistemler ve mikrodenetleyiciler için C diliyle sıfırdan yazılmış, son derece hafifletilmiş ve optimize edilmiş açık kaynaklı bir sürümüdür. Kısıtlı RAM ($264\text{KB}$) ve depolama alanına sahip RP2040 çipi üzerinde Python syntax’ının esnekliğini ve hızını yaşatır. Python’un standart kütüphanesinin gömülü sistemlere uyarlanmış küçük bir alt kümesini sunarak, donanım kontrolünü (GPIO kesmeleri, I2C, SPI, PWM, ADC) sadece birkaç satır kodla gerçekleştirmemize imkan verir.

Linux / Windows / macOS Sistemlerde Geliştirme Ortamı Kurulumu

MicroPython projeleri geliştirebilmek için bilgisayarımıza kullanıcı dostu, hafif bir Python IDE’si olan **Thonny** yazılımını kurmamız gerekir. Thonny, Windows, macOS ve Linux (Ubuntu/Debian) sistemlerini tam uyumlu olarak destekler.

Ubuntu/Debian tabanlı Linux sistemlerde terminal (Ctrl+Alt+T) üzerinden Thonny IDE’yi hızlıca kurmak için aşağıdaki komut çalıştırılır:

sudo apt update && sudo apt install thonny
Thonny Python IDE Arayüzü

Raspberry Pi Pico ile MicroPython Kullanımı: Firmware (UF2) Yükleme Adımları

Pico’yu Python kodlarını yorumlayabilecek bir cihaza dönüştürmek için içine MicroPython yazılım çekirdeğini (UF2 dosyası) yüklemeliyiz. Bunun için şu adımları izleyin:

  1. Pico’nun üzerindeki **BOOTSEL** butonuna parmağınızla basın ve basılı tutun.
  2. Butona basılı tutarken USB kablosunu bilgisayarınıza bağlayın ve ardından butondan elinizi çekin.
  3. Bilgisayarınız Pico’yu otomatik olarak **RPI-RP2** adında harici bir USB depolama birimi olarak tanıyacaktır.
BOOTSEL Butonu ve Bağlantı

Pico bağlandıktan sonra Thonny IDE’yi çalıştırın. Arayüzün sağ alt köşesinde yer alan Python yorumlayıcı seçeneğine tıklayarak **”MicroPython (Raspberry Pi Pico)”** seçeneğini seçin.

Thonny Yorumlayıcı Seçimi

Yorumlayıcı seçildikten sonra Thonny otomatik olarak Pico’yu algılayacak ve en güncel MicroPython sabit yazılımını (firmware) internetten çekip karta yüklemek için bir kurulum penceresi açacaktır. **”Install” (Kur)** butonuna basarak işlemi başlatın. Yükleme tamamlandığında RPI-RP2 diski kendiliğinden kapanacak ve Pico bir Python mikrodenetleyicisi olarak yeniden başlayacaktır.

Etkileşimli Kabuk: REPL (Read-Evaluate-Print Loop) Gücü

MicroPython kurulumu bittikten sonra Thonny’nin alt kısmında yer alan **”Shell” (Kabuk)** penceresinde `>>>` işaretini göreceksiniz. Bu alan, Pico’nun dahili **REPL** etkileşimli kabuğudur. Herhangi bir kod derleme veya karta yükleme işlemi yapmadan, Python komutlarını doğrudan USB seri port (CDC) üzerinden yazıp anlık olarak mikrodenetleyiciye koşturabilirsiniz:

>>> print("Merhaba Pico!")
Merhaba Pico!
>>> 

İlk Uygulama: Dahili LED Yakıp Söndürme (Blink)

Pico ekosisteminin “Hello World” uygulaması olan dahili LED yakıp söndürme kodunu yazmak için Thonny’nin kod düzenleme paneline aşağıdaki Python scriptini ekleyin:

from machine import Pin
import time

# Pico üzerindeki dahili LED GPIO25 pinine bağlıdır
led = Pin(25, Pin.OUT)

while True:
    led.high()       # LED'i yak (3.3V ver)
    time.sleep(0.25) # 250 milisaniye bekle
    led.low()        # LED'i söndür (0V ver)
    time.sleep(0.25) # 250 milisaniye bekle

Kodu yazdıktan sonra üstteki yeşil **Çalıştır (Run)** butonuna basın. IDE, dosyayı nereye kaydetmek istediğinizi soran bir pencere açacaktır. **”Raspberry Pi Pico”** seçeneğini seçin ve dosya adını mutlaka **`main.py`** olarak kaydedin.

Pico İçine Dosya Kaydetme Aşaması
Dosyayı bilgisayara değil, doğrudan Pico donanımının içine kaydetmelisiniz

💡 Mühendislik Detayı: Neden “main.py”?

MicroPython yazılım çekirdeği (firmware), Pico kartına enerji verildiği ilk anda (boot) sırasıyla iki özel dosyayı arar ve yürütür:

  1. `boot.py` (Varsayılan): Kart açılırken sadece bir kez çalışır. USB bağlantı modları, ağ konfigürasyonları gibi düşük seviyeli donanımsal parametreleri başlatmak için kullanılır.
  2. `main.py` (Ana Döngü): `boot.py` tamamlandıktan hemen sonra otomatik olarak başlatılır. Yazdığınız ana sonsuz döngü kodları bu dosya içinde yer almalıdır. Dosyayı `main.py` adıyla kaydettiğinizde, Pico’yu bilgisayardan söküp harici bir pil veya powerbank’e bağladığınızda bile kod bağımsız olarak otomatik çalışacaktır.

Bellek Yönetimi (Garbage Collection) Püf Noktası

MicroPython, tıpkı standart Python gibi arka planda otomatik bir çöp toplayıcı (**Garbage Collector – GC**) barındırır. RAM seviyesi kısıtlı gömülü sistemlerde büyük nesneler oluşturup sildiğinizde, bellek fragmantasyonu (parçalanma) meydana gelerek bellek yetersizliği (`MemoryError`) hatalarına sebep olabilir. Bunu engellemek için, döngünüzün kritik aşamalarında manuel çöp toplama yapmak iyi bir mühendislik alışkanlığıdır:

import gc
gc.collect() # Boşa çıkan RAM alanlarını temizler ve birleştirir

MicroPython kütüphaneleri, güncel firmware dosyaları ve donanım register referansları hakkında daha kapsamlı bilgi edinmek için resmi MicroPython Resmi API Dokümantasyonunu inceleyerek projelerinizi daha profesyonel seviyelere taşıyabilirsiniz.

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.