Rehberler · 12 dk okuma

Raspberry Pi Pico Ders Planı: 6 Haftada MicroPython ve Thonny

Raspberry Pi Pico ders planı: 6 hafta, 40 dakikalık MicroPython dersleri, ücretsiz projeler, Thonny kurulumu, 24 kişilik malzeme listesi ve örnek ders.

Raspberry Pi Pico ders planı arıyorsan kısa cevap şu: 6 hafta, haftada bir 40 dakikalık ders, 2'li gruplar ve her hafta tek bir yeni MicroPython kavramı. İlk hafta Thonny'nin REPL ekranında karttaki LED'i tek satırla yakarsın; sonra sırasıyla değişken ve zamanlama, fonksiyon, buton ve koşul, PWM ile ses ve mesafe sensörü gelir, son hafta liste ve for döngüsüyle beş butonlu bir piyano yapılır. Her haftanın projesi BlueGrays'te devre şeması, parça listesi ve koduyla birlikte ücretsiz, yani öğrencilerin Premium'a ihtiyacı yok. Plan Raspberry Pi Pico ya da Pico W ve Thonny ile kurulu; daha önce hiç kod yazmamış ortaokul ve lise öğrencileri düşünülerek hazırlandı.

Yazıda önce Pico ile MicroPython'un sınıfta neden işe yaradığını, ardından ders öncesi kurulumu anlatıyoruz: MicroPython UF2 dosyası, BOOTSEL düğmesi, Thonny'de yorumlayıcı seçimi ve okul bilgisayarlarında dikkat edilecekler. Sonra hafta hafta plan tablosu ve her kavramın Arduino C++ karşılığı, 24 kişilik sınıf için malzeme listesi, dakika dakika örnek bir ders, üç kısa kod örneği, değerlendirme tablosu ve derste en sık çıkan sorunların çözümü geliyor. Aynı yaklaşımın Arduino ve bloklarla kurulmuş 8 haftalık hâlini robotik kodlama ders planı yazısında anlattık; bu plan onu tekrar etmez, doğrudan metin tabanlı kodla başlamak ya da bloklardan sonra Python'a geçmek isteyen sınıflar içindir.

Raspberry Pi Pico WH kartı: pin başlıkları lehimli, micro USB girişi ve yanında beyaz BOOTSEL düğmesi
Pico WH: pin başlıkları lehimli geldiği için doğrudan breadboard'a takılır. USB girişinin yanındaki beyaz düğme BOOTSEL; MicroPython yüklerken bu düğmeyi kullanacaksın.

Neden Raspberry Pi Pico ve MicroPython?

Pico, Raspberry Pi'nin kendi RP2040 yongasıyla yaptığı küçük bir mikrodenetleyici kartıdır; bir bilgisayar değil, Arduino gibi tek bir programı durmadan çalıştıran bir karttır. Sınıf için üç güçlü yanı var. Birincisi MicroPython: Python'un mikrodenetleyiciler için hafifletilmiş sürümü. Okunması kolaydır, noktalı virgül ve süslü parantez yoktur; bilişim dersinde Python gören öğrenci aynı dili bu kez bir LED'i, bir buzzer'ı yönetmek için kullanır. İkincisi derleme yok: Thonny'de Çalıştır'a bastığın anda kod kartta çalışır, her küçük değişiklikte derleyip yüklemeyi beklemezsin. 40 dakikalık bir derste bu, aynı sürede çok daha fazla deneme demektir. Üçüncüsü REPL: Thonny'nin Shell bölümüne tek bir satır yazıp Enter'a basınca kart o satırı hemen uygular. Öğrenci led.on() yazdığı anda LED'in yandığını görür ve programlamanın "karta komut vermek" olduğunu ilk beş dakikada kavrar. Kartın fiyatının düşük olması ve breadboard'a doğrudan takılması da 2'li grupları mümkün kılar. Ne zaman Arduino daha rahat olur? Okumayı yeni sökmüş küçük yaş gruplarında ya da elindeki setin çoğu 5 V modülden oluşuyorsa Arduino ve bloklarla başlamak daha az sürpriz çıkarır. Kartın teknik özellikleri ve pin dizilimi için Raspberry Pi Pico nedir yazısına bakabilirsin.

ÖzellikRaspberry Pi Pico + MicroPythonArduino Uno + C++
Pin gerilimi3,3 V (5 V'a dayanıklı değil)5 V
Dil ve editörMicroPython, ThonnyC++, Arduino IDE
Kodu çalıştırmaÇalıştır'a basınca hemen, derleme yokHer değişiklikte derle ve yükle
Satır satır deneme (REPL)Var: Thonny Shell'de >>>Yok
Analog giriş3 pin (GP26–GP28), read_u16() 0–655356 pin (A0–A5), analogRead() 0–1023
USB girişiMicro USBUSB-B (Uno R3)
Breadboard'a takmaPico H / WH başlıklı gelir, doğrudan takılırKart dışarıda durur, kabloyla bağlanır
FiyatGenelde Uno'dan belirgin şekilde ucuzDaha pahalı
Pico'nun pinleri 3,3 V ile çalışır ve 5 V'a dayanıklı değildir. Bir GPIO pinine 5 V veren bir çıkış bağlarsan (örneğin 5 V ile beslenen HC-SR04'ün ECHO pini) pin kalıcı olarak zarar görebilir; 5. haftada bu yüzden ECHO hattına 1 kΩ ve 2 kΩ dirençten bir gerilim bölücü koyuyoruz. İlk derste öğrencilere VBUS (pin 40, USB'den gelen 5 V), VSYS (pin 39) ve 3V3(OUT) (pin 36) pinlerini göster ve kuralı tahtaya yaz: butonlar ve sensör çıkışları asla VBUS'a bağlanmaz. LED'i her zaman 220 Ω dirençle bağla; 3,3 V'ta kırmızı bir LED'den yaklaşık 6 mA geçer. Pinlerin yerini öğrencilerle pinout aracında birlikte bulabilirsin.

Ders öncesi kurulum: MicroPython ve Thonny

  1. Kartını tanı: Pico, Pico W, Pico 2 ve Pico 2 W için MicroPython dosyaları farklıdır. Kartın üzerindeki yazıya bak ve MicroPython'un resmî indirme sayfasından tam o karta ait güncel .uf2 dosyasını indir. Yanlış dosya yüklenirse kart açılmaz ya da Wi-Fi çalışmaz.
  2. BOOTSEL'e basılı tutarak tak: USB girişinin yanındaki beyaz BOOTSEL düğmesine basılı tutarken kabloyu bilgisayara tak, sonra düğmeyi bırak. Bilgisayarda RPI-RP2 adlı bir sürücü belirir (Pico 2'de adı RP2350 olur).
  3. UF2 dosyasını kopyala: .uf2 dosyasını bu sürücüye sürükle. Kart birkaç saniye içinde yeniden başlar ve sürücü kaybolur; bu bir hata değil, MicroPython'un yüklendiğini gösterir. MicroPython kartta kalır, her derste yeniden yüklemen gerekmez.
  4. Thonny'de yorumlayıcıyı seç: Tools > Options > Interpreter bölümünde "MicroPython (Raspberry Pi Pico)" seçeneğini seç, portu otomatik algılamaya bırak. Aynı seçimi Thonny penceresinin sağ alt köşesine tıklayarak da yapabilirsin.
  5. Bağlantıyı dene: Alttaki Shell bölümünde >>> işaretini görmelisin. print("merhaba") yazıp Enter'a bas; cevap geliyorsa kart derse hazır.

Okul bilgisayarlarında kurulumu derse bırakma; bir hafta önceden BT birimiyle konuş. Thonny Windows, macOS ve Linux'ta çalışır ve kendi Python'uyla gelir, ayrıca Python kurman gerekmez. Windows için kurulum gerektirmeyen taşınabilir (portable) bir sürüm de var; programların yalnız BT birimince kurulabildiği kısıtlı laboratuvarlarda bu sürüm işini çok kolaylaştırır. Windows 10 ve 11 Pico'yu ek sürücü olmadan bir seri port (COM) olarak tanır. Bazı okullarda USB bellekler engellenir; bu durumda RPI-RP2 sürücüsü öğrenci bilgisayarında görünmeyebilir, ama MicroPython'u kartlara önceden kendi bilgisayarında yüklediysen sorun olmaz, çünkü derste yalnız seri bağlantı kullanılır. Son olarak öğrencilere Thonny'nin kaydet penceresindeki iki seçeneği göster: "This computer" dosyayı bilgisayara, "Raspberry Pi Pico" ise karta kaydeder. Hangisini seçtiklerini bilmeyen gruplar 6. haftada kodlarını bulamaz.

Kurulumu tek seferde bitirmek için ders öncesi bütün kartlara MicroPython'u kendin yükle, kartları ve kabloları 1'den 13'e numaralandır ve her grubun her hafta aynı numarayı almasını sağla. Thonny'deki yorumlayıcı penceresinde bulunan "Install or update MicroPython" bağlantısı, BOOTSEL modundaki kartı bulup doğru dosyayı seçmeni istediği için UF2 indirmeden de yükleme yapar. Bir kartı denerken Shell'de >>> görüyorsan o kart ve kablo ikilisi hazırdır.

6 haftalık Raspberry Pi Pico ders planı

Her ders 40 dakika ve 2'li gruplarla düşünüldü. Tablodaki bütün projeler BlueGrays'te ücretsiz; ilk üç haftanın projelerinde kodun yanında blok görünümü de var. Sıra bilinçli: önce çıkış (LED), sonra değişken ve zamanlama, fonksiyon, ardından giriş ve koşul, PWM ile ses ve sensör, en sonda liste ve döngü. Her hafta bir öncekinin üzerine tek bir yeni fikir ekler. Son sütun aynı kavramın Arduino C++ hâlini gösterir; ileride Arduino'ya geçecek öğrenciler için bir köprü olur, C++ tarafını ayrıntılı görmek istersen Arduino programlama temelleri yazısına bakabilirsin.

HaftaHedefÜcretsiz BlueGrays projesiYeni MicroPython kavramıArduino C++ karşılığı
1Pico'yu tanımak, ilk program, dijital çıkışRaspberry Pi Pico Dahili LED Yakma (Pico ve Pico W), Raspberry Pi Pico Harici LED Yakma (GP14 + Breadboard)REPL (>>>), from machine import Pin, Pin(14, Pin.OUT), led.on() / led.off(), time.sleep(0.5), while True:, girintipinMode(14, OUTPUT); digitalWrite(14, HIGH); delay(500); void loop()
2Değişken, zamanlama, iki çıkışRaspberry Pi Pico 2 LED Alternatif Yakma (Blink-Flip Pattern, GP14 + GP13), Raspberry Pi Pico Polis Çakar Efekti (Kırmızı + Mavi Strobe, GP11 + GP12)WAIT_MS = 300 (değişken), led.value(1), led.toggle(), sleep_ms(300)int waitMs = 300; digitalWrite(13, !digitalRead(13)); delay(waitMs);
3Tekrarı azaltmak: fonksiyonRaspberry Pi Pico Trafik Lambası (3 LED Sıralı, GP11/GP12/GP13)def all_off():, fonksiyonu çağırmak, sleep(1.5) ile ondalık saniyevoid allOff() { … } ; delay(1500);
4Giriş, koşul ve durumRaspberry Pi Pico Trafik Lambası 4 Mod Buton Seçici (State Machine, GP11-13 + GP4)Pin(4, Pin.IN, Pin.PULL_UP), if / elif / else, mode = (mode + 1) % 4, time.ticks_ms()pinMode(4, INPUT_PULLUP); if / else if / else; millis()
5Sensör ve sesRaspberry Pi Pico Park Sensörü (HC-SR04 + 3 LED + Buzzer)PWM(Pin(17)), freq(), duty_u16(), time_pulse_us(), def … returntone(17, 1200); pulseIn(); return
6Liste, for döngüsü, kapanış projesiRaspberry Pi Pico Buton Piyano (5 Buton + Buzzer + Melodi Kaydı)NOTE_HZ = (523, 587, 659, 698, 784), for … in, aynı kodla beş butonint notes[] = {523, 587, 659, 698, 784}; for (int i = 0; i < 5; i++)
Raspberry Pi Pico Trafik Lambası projesinin Türkçe blokları: all_off işlevi, GP11, GP12 ve GP13 çıkış pinleri, sürekli tekrarla içinde yazma ve saniye bekle blokları
3. hafta: Trafik Lambası. "işlev all_off" bloğu üç LED'i birden söndürür ve döngüde üç kez çağrılır; 4, 1,5, 3 ve 1 saniyelik bekleme blokları koddaki sleep() satırlarıyla birebir eşleşir.

Planı uygularken her haftanın sonunda öğrencilerin tek bir değeri değiştirmesini kural hâline getir. 1. haftada dahili LED projesinin kodu LED'i "LED" adıyla çağırdığı için Pico ve Pico W'de aynı çalışır; harici LED ise GP14'e, yani fiziksel 19 numaralı pine bağlanır ve hemen yanındaki 18 numaralı pin GND'dir. 2. haftada Polis Çakar Efekti'ndeki WAIT_MS değerini 300'den 80'e indirmek, tek bir değişkenin iki LED'in ritmini birden değiştirdiğini gösterir. 3. haftada Trafik Lambası'nda all_off() fonksiyonu döngüde üç kez çağrılır; öğrencilerden fonksiyonu silip aynı işi elle yazmalarını iste, dokuz satırın nasıl çoğaldığını görünce fonksiyonun neden var olduğunu kendileri söyler. 4. hafta orta seviye bir proje: buton PULL_UP ile bağlı olduğu için basınca 0 okunur ve her basış modu Normal, yalnız kırmızı, sarı flaş ve kapalı arasında sırayla değiştirir. Kod uzun olduğu için önce Kodu anla sekmesindeki adımlarla okuyun. 5. haftada HC-SR04 5 V ile çalıştığı için ECHO'yu bölücüyle bağlamayı unutma; GREEN_CM 100, YELLOW_CM 50, RED_CM 25 ve STOP_CM 10 değerleriyle oynamak öğrencilere eşik fikrini verir. Sensörün çalışma mantığını HC-SR04 mesafe sensörü, PWM'le ses üretmeyi buzzer nedir yazısında bulabilirsin; projede frekans değiştirildiği için pasif buzzer kullan. 6. haftada piyano DO'dan SOL'a 523–784 Hz arasında beş nota çalar, DO tuşunu 1 saniye basılı tutunca melodi kaydı başlar. Kodun tamamı bu düzey için uzun; öğrencilerden tamamını yazmalarını değil, NOTE_HZ listesindeki frekansları değiştirip kendi gamlarını kurmalarını iste.

Her hafta için çıkış soruları

  • 1. hafta: led.on() ile time.sleep(0.5) satırlarının yerini değiştirirsen ne olur? while True: satırının altındaki satırlar neden içeriden başlar?
  • 2. hafta: WAIT_MS değerini 300'den 1000'e çıkarınca çakar nasıl değişir? toggle() hangi iki satırın işini tek başına yapar?
  • 3. hafta: all_off() fonksiyonu olmasaydı kaç satır daha yazardın? Fonksiyonu tanımlamakla çağırmak arasındaki fark ne?
  • 4. hafta: PULL_UP kullanılan bir butona basınca button.value() neden 0 döner? mode 3 iken butona basarsan mode kaç olur?
  • 5. hafta: HC-SR04'ün ECHO pinini neden doğrudan Pico'ya bağlamıyoruz? duty_u16(0) satırı buzzer'a ne yaptırır?
  • 6. hafta: Piyanoya altıncı bir tuş eklemek için kodda hangi listeleri değiştirmen gerekir?

Malzeme listesi: 24 kişilik sınıf için

24 öğrenciyi 2'li gruplara bölersen 12 grup çıkar; bir yedek setle 13 set hazırla. Pico'nun fiyatı düşük olduğu için 3'lü yerine 2'li grup çoğu okulda mümkündür ve her öğrencinin klavyeye dokunma süresi artar; 3'lü gruplar kuracaksan sayıları 9 sete indir. Her grubun bir bilgisayara ihtiyacı var, çünkü Thonny Pico'ya USB ile bağlanır. Telefon ya da tablet ise BlueGrays'te haftanın projesini, devre şemasını ve Kodu anla sekmesini açık tutmak için kullanılır. Lehim gereken bir parça yok, her şey breadboard'a takılır.

MalzemeGrup başınaSınıf için (12 grup + 1 yedek)Kullanıldığı hafta
Raspberry Pi Pico H ya da Pico WH (başlıkları lehimli)113Hepsi
Micro USB veri kablosu113Hepsi
Breadboard (400 ya da 830 delik)113Hepsi
Erkek-erkek jumper kablo20yaklaşık 260Hepsi
5 mm LED (kırmızı, sarı, yeşil, mavi)4yaklaşık 601–5
220 Ω direnç4yaklaşık 601–5
Push buton (4 bacaklı)5yaklaşık 704, 6
Pasif buzzer1135, 6
HC-SR04 ultrasonik mesafe sensörü1135
1 kΩ ve 2 kΩ direnç (ECHO bölücüsü)1 + 113 + 135
Thonny kurulu bilgisayar112Hepsi
10 kΩ potansiyometre (isteğe bağlı, ADC için)113Hızlı gruplar
Kart alırken Pico H, Pico WH ya da başlıkları lehimlenmiş bir sürüm seç. Başlıksız Pico breadboard'a takılmaz ve 13 karta 40'ar pin lehimlemek bir hafta sonunu alır; lehimi bilerek derse katmak istersen lehim nasıl yapılır yazısına bak. Kabloların veri kablosu olduğundan emin ol: yalnız şarj eden ucuz micro USB kablolar kartı besler ama bilgisayar Pico'yu hiç görmez, ve bu ilk dersin en çok vakit yiyen sorunudur. Dirençleri değerlerine göre ayrı kutulara koy; renk halkalarını direnç renk kodu, LED'e uygun değeri LED direnci hesaplayıcısıyla öğrencilerle birlikte kontrol edebilirsin.

Örnek ders akışı: 1. hafta, ilk program

Aşağıdaki akış 1. hafta için; ilk ders en riskli derstir, çünkü kurulum sorunları burada ortaya çıkar. MicroPython'u kartlara önceden yüklediğini ve Thonny'nin bilgisayarlarda kurulu olduğunu varsayıyoruz. Diğer haftalarda da aynı iskeleti kullanabilirsin: ısınma, birlikte okuma, tahmin, devre, çalıştırma, bir değeri değiştirme ve çıkış sorusu. 80 dakikalık blok dersin varsa "bir değeri değiştirme" aşamasını uzatıp çıkış sorularını gruplara sunum olarak yaptır.

SüreAşamaNe yapılır?
0–5 dkIsınmaSoru: Bir karta "LED'i yak" demek için ona neyi söylemek gerekir? Cevaplar tahtaya yazılır. Kartlar dağıtılır, BOOTSEL düğmesi ve USB girişi gösterilir.
5–12 dkREPL ile ilk komutProjeksiyonda Thonny Shell: from machine import Pin, led = Pin("LED", Pin.OUT), led.on(). Gruplar aynı üç satırı kendi bilgisayarında yazar, sonra led.off() ile söndürür.
12–18 dkProjeyi birlikte okumaBlueGrays'te Dahili LED Yakma projesi açılır. Önce Bloklarla göster açıkken bloklar, sonra kod okunur; while True ve girinti konuşulur.
18–22 dkÇalıştırmaKod Thonny'ye yapıştırılır ve Çalıştır'a (F5) basılır. LED 0,5 saniyede bir yanıp söner. Durdurmak için Stop düğmesi gösterilir.
22–32 dkHarici LED devresiUSB çıkarılır. GP14 (pin 19) → 220 Ω → LED'in uzun bacağı, kısa bacak → GND (pin 18). Harici LED projesinin kodu çalıştırılır. Roller: kurucu ve kontrolcü.
32–37 dkBir değeri değiştirmetime.sleep(0.5) önce 0.1, sonra 2 yapılır. İsteyen grup LED'i GP15'e taşır ve koddaki 14'ü 15 yapar.
37–40 dkÇıkış sorusuKâğıda tek soru: while True: altındaki satırlar içeriden başlamasaydı ne olurdu? Kartlar USB'den çıkarılıp numaralı kutularına konur.

Derste kullanacağın üç kısa MicroPython örneği

Dahili LED, Pico ile Pico W arasında en çok karışıklık çıkan konudur. Klasik Pico'da karttaki LED GP25'e bağlıdır, bu yüzden eski örneklerde Pin(25) görürsün. Pico W'de ise LED Wi-Fi yongasına bağlıdır ve numaralı bir GP pini yoktur; Pin(25) orada LED'i yakmaz. İkisinde de çalışan yol LED'i adıyla çağırmaktır: Pin("LED"). Bu ad güncel MicroPython sürümlerinde Pico, Pico W ve Pico 2 için tanımlıdır ve BlueGrays'teki dahili LED projesi de bu yüzden onu kullanır. Sınıfında karışık kartlar varsa herkese aynı kodu dağıtabilirsin. Eski bir firmware "LED" adını tanımazsa yapılacak iş UF2 dosyasını güncellemektir.

MicroPython
1from machine import Pin
2import time
3
4# "LED" adı Pico, Pico W ve Pico 2'de karttaki LED'i bulur / The name "LED" finds the onboard LED on Pico, Pico W and Pico 2
5led = Pin("LED", Pin.OUT)
6# Eski firmware'li klasik Pico'da: Pin(25, Pin.OUT) / Classic Pico with old firmware: Pin(25, Pin.OUT)
7# Pico W'de Pin(25) LED'i yakmaz / On the Pico W, Pin(25) does not light the LED
8
9while True:
10    led.toggle()       # Durumu tersine çevir / Flip the state
11    time.sleep(0.5)    # 0,5 saniye bekle / Wait 0.5 seconds
12

Harici LED kodu aynı iskeleti kullanır, yalnız pin numarası değişir. Burada bekleme süresini WAIT adlı bir değişkene aldık; 2. haftada öğrencilerin değiştireceği ilk satır bu olur. count değişkeni ve print() satırı Thonny'nin Shell bölümüne her yanışta bir sayı yazar, böylece öğrenciler döngünün gerçekten döndüğünü ekranda görür. Koddaki 14 bir GP numarasıdır, fiziksel pin numarası değil; öğrencilerin en sık karıştırdığı nokta budur.

MicroPython
1from machine import Pin
2import time
3
4LED_PIN = 14          # LED'in bağlı olduğu GP pini (fiziksel pin 19) / GP pin the LED is wired to (physical pin 19)
5WAIT = 0.5            # Bekleme süresi, saniye / Wait time in seconds
6
7led = Pin(LED_PIN, Pin.OUT)   # Pini çıkış yap / Make the pin an output
8count = 0                     # Kaç kez yandığını say / Count how many times it lit
9
10while True:
11    led.on()                  # LED'i yak / Turn the LED on
12    count = count + 1
13    print("LED", count)       # Thonny Shell'e yaz / Print to the Thonny Shell
14    time.sleep(WAIT)
15    led.off()                 # LED'i söndür / Turn the LED off
16    time.sleep(WAIT)
17

Buton için iki yol var ve ikisini de göstermeye değer. PULL_UP ile butonun bir bacağı GP15'e, karşı bacağı GND'ye gider; Pico'nun içindeki direnç pini 3,3 V'a çeker, butona basınca pin GND'ye bağlanır ve 0 okunur. BlueGrays'teki Pico buton projelerinin hepsi bu yolu kullanır, çünkü fazladan kablo gerekmez. PULL_DOWN ile butonun karşı bacağı 3V3(OUT) pinine (pin 36) gider ve basınca 1 okunur; mantığı daha sezgisel olsa da kabloyu yanlışlıkla VBUS'a (pin 40, 5 V) takmak kolaydır. Butonun dört bacağından hangilerinin birbirine bağlı olduğunu buton bağlantısı yazısında anlattık. 4. haftaya aşağıdaki kısa kodla başlayıp sonra mod seçiciye geçebilirsin.

MicroPython
1from machine import Pin
2import time
3
4led = Pin(14, Pin.OUT)                  # GP14 -> 220 ohm -> LED -> GND / GP14 -> 220 ohm -> LED -> GND
5button = Pin(15, Pin.IN, Pin.PULL_UP)   # Buton GP15 ile GND arasında / Button between GP15 and GND
6# PULL_DOWN: Pin(15, Pin.IN, Pin.PULL_DOWN), buton GP15 ile 3V3(OUT) arasında / button between GP15 and 3V3(OUT)
7# PULL_DOWN ile koşul == 1 olur / With PULL_DOWN the condition becomes == 1
8
9while True:
10    if button.value() == 0:             # PULL_UP: basınca 0 okunur / PULL_UP: reads 0 when pressed
11        led.on()
12    else:
13        led.off()
14    time.sleep_ms(10)                   # Döngüyü biraz yavaşlat / Slow the loop down a little
15

BlueGrays'i Pico dersinde nasıl kullanırsın?

  • Kod rehberi, MicroPython yolu: Öğren bölümündeki Kod rehberi, Arduino C++ yolunun yanında 18 kartlık bir MicroPython yolu sunar: import, print, Pin çıkışı, Pin girişi (PULL_UP, PULL_DOWN), time.sleep, while True, girinti, değişkenler, if / elif / else, for ve range, listeler, def ve return, ADC, PWM, ticks_ms, Pin.irq, try / except ve I2C. Her kartta Ne işe yarar?, Söz dizimi, Blok · Arduino · MicroPython sekmeli bir örnek, Sık yapılan hata ve bir mini test var. Haftanın kavramına ait kartları derslerin arasında okumaları için öner; öğrenci kendi MicroPython x/18 ilerlemesini Seviyem ekranında görür.
  • Bu konuyu projede gör: Her kartın sonundaki bu bağlantı, komutun geçtiği projeleri kolaydan zora listeler. Bir komutu kartta okuyan öğrenci, onu gerçek bir projenin kodunda bulmaya buradan geçer.
  • Günün soruları: "Soruların kod dili" ayarında İkisi, Arduino ve MicroPython seçenekleri var. Pico dersi veriyorsan öğrencilere MicroPython'u seçtir; kodsuz genel sorular her seçimde gelir. Her gün yaklaşık 3 dakikalık bir set, 15 soruluk seviye testi ve A1'den C2'ye 6 seviye var; derslerin arasındaki günlük tekrar için iyi bir alışkanlık olur.
  • Bloklarla göster: Ücretsiz Pico projelerinin beşinde (Dahili LED, Harici LED, 2 LED Alternatif, Trafik Lambası ve Polis Çakar) kodun yanında blok görünümü var. Python'a ilk kez bakan öğrenciye önce blokları, sonra aynı programın kodunu göstermek "mantık aynı, yazım farklı" fikrini kurar; bu geçişi bloklardan MicroPython'a geçiş yazısında ayrıntılı anlattık. Bloklar okumak içindir; uygulamada blok düzenlenmez, karta her zaman MicroPython kodu yüklenir.
  • Kodu anla ve Sorun Giderme: Ücretsiz Pico projelerinin hepsinde var. Kodu anla sekmesi "Bu kod ne yapıyor?" özetiyle başlar, Adım adım açıklamayla devam eder, Takıldıysan ve Kendin dene göreviyle biter. 4. ve 6. haftadaki uzun kodlarda hızlı okuyamayan gruplar için en büyük yardımcın olur.
  • Birlikte yapalım ve Linki Kopyala: Rehber modu dört adımda ilerler ve kod adımında Thonny'de MicroPython yorumlayıcısını seçmeyi hatırlatır. Kaynak kodundaki Linki Kopyala kodu bilgisayarda açmak için bir bağlantı verir, böylece öğrenci telefondaki kodu Thonny'ye elle yazmak zorunda kalmaz.

Değerlendirme ve farklılaştırma

Ölçüt1 – Başlıyor2 – Gelişiyor3 – Hazır
Devre kurmaYardımla kurar, GND'yi unuturŞemaya bakarak kurar, GP numarasını kodla eşleştirirFiziksel pin ile GP numarasını ayırır, arkadaşının hatasını bulur
Kod okumaSatırları okur, ne yaptığını anlatamazProgramın ne yaptığını genel olarak anlatırHer satırın işini ve girintinin anlamını anlatır
Değiştir ve deneDeğeri değiştirir, etkisini açıklayamazSonucu önceden tahmin eder ve denerTahmin tutmayınca Shell'deki hata mesajından nedeni bulur
C++ ile eşleştirmeEşleştiremezPin, sleep ve while True'yu eşleştiririf, for ve fonksiyonu da eşleştirir
  • Hızlı gruplar, analog okuma: Planda ADC haftası yok; erken bitiren gruplar 10 kΩ potansiyometrenin orta bacağını GP26'ya bağlayıp ADC(26).read_u16() ile 0–65535 arası değeri okur ve bu değerle 2. haftadaki çakarın hızını ayarlar. Daha büyük bir meydan okuma isteyenler için ücretsiz Raspberry Pi Pico LED Kamp Ateşi (8x8 NeoPixel Matris + Potansiyometre + Buzzer) projesi aynı potansiyometreyle 8x8 bir NeoPixel matrisi yönetir.
  • Hızlı gruplar, birleştirme: 4. haftanın butonunu 5. haftanın park sensörüne ekleyip sesi açıp kapatan bir "sessiz mod" yazmak, kendi kodunu yazmaya geçişin ilk gerçek adımıdır.
  • Yavaş gruplar: Devreyi hazır kurulu ver ya da devre şemasını büyük basılı olarak masaya koy. Kodu anla sekmesiyle adım adım ilerlesinler ve o gün yalnız tek bir değeri değiştirmeyi hedeflesinler; bu da yeterli bir kazanımdır.

Sık sorunlar ve hızlı çözümler

SorunOlası nedenÇözüm
Pico bilgisayarda hiç görünmüyorYalnız şarj eden kablo, gevşek bağlantı, USB çoklayıcıBilinen bir veri kablosu dene, kartı doğrudan bilgisayara tak, başka bir USB portu dene.
Her takışta RPI-RP2 sürücüsü açılıyorKartta MicroPython yok ya da BOOTSEL basılı kalıyorUF2 dosyasını sürücüye kopyala; düğmeye basmadan yeniden tak.
RPI-RP2 hiç çıkmıyorBOOTSEL'e kablo takıldıktan sonra basıldıKabloyu çıkar, BOOTSEL'e basılı tutarken yeniden tak, sonra bırak.
Thonny bağlanamıyor, "Device is busy" ya da port hatasıYanlış yorumlayıcı ya da port, port başka bir programda açık, çalışan kod meşgulSağ alttan "MicroPython (Raspberry Pi Pico)" seç, Stop/Restart'a bas, açık ikinci Thonny penceresini kapat, USB'yi çıkarıp tak.
No module named 'machine'Kod bilgisayardaki Python'da çalışıyorYorumlayıcıyı MicroPython (Raspberry Pi Pico) yap.
IndentationError ya da SyntaxErrorKarışık girinti, eksik iki noktaHatadaki satır numarasına git; while, if ve def satırlarının sonunda iki nokta, altındaki satırlarda 4 boşluk olmalı.
Kod çalışıyor ama LED yanmıyorLED ters, GND yok, koddaki GP numarası ile devre farklı, Pico W'de Pin(25)Uzun bacak dirence (GP tarafına) gelsin, GND kablosunu kontrol et, dahili LED için Pin("LED") kullan.
Bilgisayardan çıkarınca kod çalışmıyorDosya bilgisayara kaydedildi ya da adı main.py değilThonny'de kaydet > Raspberry Pi Pico seç, adı main.py olsun; kart güç alınca kod kendiliğinden başlar.
main.py sonsuz döngüde, Thonny araya giremiyorKod açılışta hemen çalışıyorStop'a birkaç kez bas ya da Shell'de Ctrl+C; olmazsa resmî flash_nuke.uf2 ile belleği sil ve MicroPython'u yeniden yükle (karttaki bütün dosyalar silinir).

Ders öncesi kontrol listesi

  • Bütün kartlara MicroPython yüklendi, kartlar ve kablolar 1'den 13'e numaralandı.
  • Thonny her bilgisayarda açılıyor ve yorumlayıcı "MicroPython (Raspberry Pi Pico)" seçili.
  • Her kart-kablo ikilisi denendi, Shell'de >>> görünüyor.
  • Dirençler değerlerine göre ayrı kutularda: 220 Ω, 1 kΩ, 2 kΩ.
  • Haftanın projesi BlueGrays'te projeksiyonda açık; ilk üç haftada Bloklarla göster hazır.
  • Çıkış sorusu kâğıtları basıldı, roller (kurucu, kontrolcü) gruplara söylendi.
  • 5. haftadan önce HC-SR04 bölücü dirençleri her gruba ayrıldı.
  • Ders sonunda USB'ler çıkarıldı, parçalar sayılarak numaralı kutulara toplandı.

Planın altı haftası boyunca kullanacağın bütün projelere BlueGrays uygulamasında devre şeması, parça listesi, MicroPython kodu ve Kodu anla sekmesiyle ücretsiz bakabilirsin; dersi projeksiyondan yürütüp öğrencilerin kendi telefonlarından takip etmesini sağlamak bu sayede kolaylaşır. Altı haftadan sonra PWM ile LED parlaklığı, servo, OLED ekran ya da keypad içeren Premium Pico projelerine geçmek istersen, öğrencilere tek tek abonelik yerine tek seferlik alınan ve otomatik yenilenmeyen eğitmen kodları dağıtabilirsin.

Sıkça sorulan sorular

Raspberry Pi Pico ile ders nasıl verilir?

Her derse tek bir yeni kavram koy ve sırayı çıkış, değişken, fonksiyon, giriş ve koşul, PWM ve sensör, liste ve döngü diye kur. Her ders aynı iskeleti izlesin: ısınma, birlikte okuma, tahmin, devre, çalıştırma, bir değeri değiştirme ve çıkış sorusu. Bu yazıdaki 6 haftalık plan bu yapıyla ve ücretsiz projelerle hazırlandı.

Raspberry Pi Pico'ya MicroPython nasıl yüklenir?

BOOTSEL düğmesine basılı tutarken Pico'yu USB ile bilgisayara tak; RPI-RP2 adlı bir sürücü belirir. Kartına uygun MicroPython .uf2 dosyasını bu sürücüye kopyala, kart yeniden başlar. İstersen Thonny'nin yorumlayıcı ayarlarındaki "Install or update MicroPython" seçeneğiyle de yükleyebilirsin.

Thonny Raspberry Pi Pico'yu görmüyor, ne yapmalıyım?

Önce veri aktaran bir USB kablo kullandığından emin ol, çünkü yalnız şarj eden kablolarla bilgisayar kartı görmez. Ardından Thonny'de yorumlayıcıyı "MicroPython (Raspberry Pi Pico)" yap ve Stop/Restart'a bas. Her takışta RPI-RP2 sürücüsü açılıyorsa kartta henüz MicroPython yoktur, UF2 dosyasını yükle.

Okulda Raspberry Pi Pico mu, Arduino mu kullanılmalı?

İkisi de iyi bir başlangıçtır; seçim dile ve öğrencilere bağlıdır. Python öğretiyorsan ya da derleme beklemeden hızlı deneme istiyorsan Pico ve MicroPython rahattır. Küçük yaş gruplarında, bloklarla başlamak istiyorsan ya da setin 5 V modüllerden oluşuyorsa Arduino daha az sürpriz çıkarır.

Pico'da kod bilgisayar olmadan nasıl çalışır?

Kodu Thonny'de "Raspberry Pi Pico" seçeneğiyle karta main.py adıyla kaydet. Pico her güç aldığında main.py dosyasını kendiliğinden çalıştırır; USB şarj aleti ya da powerbank yeterlidir. Kodu durdurmak için kartı yeniden Thonny'ye bağlayıp Stop'a basabilirsin.

Derste Pico ile Pico W arasında fark var mı?

Bu plandaki bütün projeler ikisinde de aynı pinlerle çalışır; tek fark dahili LED'dir. Klasik Pico'da LED GP25'e, Pico W'de Wi-Fi yongasına bağlıdır, bu yüzden ikisinde de çalışan Pin("LED") yazımını kullan. Pico W ayrıca Wi-Fi ve Bluetooth içerir, ama ilk altı hafta için buna ihtiyacın yok.

Tüm projeleri gör
Raspberry Pi Pico Dahili LED Yakma (Pico ve Pico W)
#147Başlangıç

Raspberry Pi Pico Dahili LED Yakma (Pico ve Pico W)

Raspberry Pi Pico serisinin açılış projesi! Pico'nun üzerindeki yeşil dahili LED'i yakıp söndürerek kartın çalıştığını doğruluyoruz — klasik "Hello World" tarzı ilk deney. Harici bileşene ihtiyaç YOK, sadece Pico ve USB kablosu yeterli. Kod MicroPython ile yazıldı (Raspberry Pi Vakfı'nın resmi olarak desteklediği dil). Thonny IDE ile Pico'yu programlarken machine.Pin sınıfı, Pin.OUT mode, led.on()/off() metodları ve time.sleep() fonksiyonlarını kavrarsın. Seri

5.0(1)
10
Raspberry Pi Pico Harici LED Yakma (Breadboard)
#148Başlangıç

Raspberry Pi Pico Harici LED Yakma (Breadboard)

Pico'nun dahili LED'inden sonraki adım: breadboard'a harici LED bağlayıp GP14 pini üzerinden kontrol etmek. Bu proje ile Pico'nun herhangi bir genel amaçlı GPIO pinini output olarak nasıl kullanacağını, LED'in polaritesini (uzun bacak = anot/+, kısa bacak = katot/–) ve neden akım sınırlama direnci (220Ω) şart olduğunu öğreniyorsun. Direnci koymazsan LED'e aşırı akım gider ve yanabilir. Devre çok basit: Pico GP14 → 220Ω direnç → LED (+) → LED (–) → Pico GND. Wokwi'de simüle edebilir, gerçek bread

4.5(2)
7
Raspberry Pi Pico 2 LED Alternatif Yakma (Blink-Flip Pattern)
#149Başlangıç

Raspberry Pi Pico 2 LED Alternatif Yakma (Blink-Flip Pattern)

Pico'nun tek LED'inden sonraki adım: iki LED'i alternatif yakıp söndürerek klasik flip-flop animasyonu. Bir LED sönerken diğeri yanıyor — çoklu GPIO yönetiminin en temel örneği. Bu projede iki farklı renk LED (kırmızı GP14, yeşil GP13) her 500 ms'de yer değiştiriyor. MicroPython'un Pin.toggle() metoduyla kod çok kısa ve okunaklı. Aynı temel mantık trafik lambası, polis çakar efekti, yürüyen LED (Karaşimşek) gibi tüm çok-LED animasyonlarının temeli. Devre çok basit: her LED için 220Ω direnç + P

5.0(2)
19
Raspberry Pi Pico Trafik Lambası (3 LED Sıralı)
#150Başlangıç

Raspberry Pi Pico Trafik Lambası (3 LED Sıralı)

Kırmızı, sarı ve yeşil LED'lerle gerçek trafik ışığı mantığını simüle ediyoruz — Pico serisinin 3 LED'e geçen ilk projesi! Yeşil 4 saniye "geç", sarı 1.5 saniye "hazırlan", kırmızı 3 saniye "dur" ve kırmızı+sarı 1 saniye "kalkış" (Avrupa trafik lambası pattern'i). Bu proje ile fonksiyon tanımlama (def all_off()), durum makinesi mantığı (sequence) ve coklu GPIO senkronizasyonu kavramlarını öğreneceksin. Devre çok basit: GP11 (Yeşil), GP12 (Sarı), GP13 (Kırmızı) pinlerine 3 LE

4.0(1)
12
Raspberry Pi Pico Polis Çakar Efekti (Kırmızı + Mavi Strobe)
#151Başlangıç

Raspberry Pi Pico Polis Çakar Efekti (Kırmızı + Mavi Strobe)

Polis aracının çakar tepe lambasını Raspberry Pi Pico ile en basit hâliyle simüle ediyoruz! Kırmızı ve mavi LED sırayla yanar (flip-flop): kırmızı yanarken mavi söner, 0,3 saniye sonra yer değiştirirler ve bu sonsuza kadar sürer. Kod tek bir while True döngüsünde iki adımı doğrudan yazar; hız WAIT_MS sabitiyle ayarlanır.

4.7(3)
10
Raspberry Pi Pico Trafik Lambası 4 Mod Buton Seçici (State Machine)
#158Orta

Raspberry Pi Pico Trafik Lambası 4 Mod Buton Seçici (State Machine)

1 buton ile trafik lambasının 4 farklı modu! Butona her basışta mod değişir: Normal döngü (kırmızı → sarı → yeşil sırayla), Sadece Kırmızı (dur emri), Sarı Flash (dikkat/gece modu), Kapalı (bakım). Öğrenme: state machine (durum makinesi — mode değişkeni hangi davranışın çalışacağını belirler), modulo mod cycling ((mode + 1) % 4 → 0→1→2→3→0 sonsuz döngü), non-blocking timing (LED fazları time.ticks_ms() + time.ticks_diff() ile zamanlanır; ancak kod mod değişimi

5.0(1)
15
Raspberry Pi Pico Buton ile LED Yakma (Push)
#155Başlangıç
Premium

Raspberry Pi Pico Buton ile LED Yakma (Push)

Pico ile ilk input projesi — buton okuma! Butona basıldıkça LED yanar, bırakıldıkça söner. Bu proje LED animasyonlarından sonraki büyük adım: Pico'ya dünyadan sinyal girişi. Yeni öğrenme: Pin.IN (input mode), Pin.PULL_UP (dahili pull-up direnci — buton için standart), button.value() okuma. GP14 LED, GP2 buton (dahili PULL_UP). Buton basılınca sinyal LOW (0), bırakılınca HIGH (1) — bu ters mantık ilk başta kafa karıştırıcı ama endüstri standardı.

0.0(0)
11
Raspberry Pi Pico PWM ile LED Fade (Nefes Efekti)
#160Başlangıç

Raspberry Pi Pico PWM ile LED Fade (Nefes Efekti)

LED artık sadece yanıp sönmüyor — nefes alıyor! Raspberry Pi Pico'nun PWM (Pulse Width Modulation — darbe genişlik modülasyonu) özelliğiyle LED'in parlaklığı yavaş yavaş artar, sonra yavaş yavaş azalır. Uyku modundaki MacBook ışığı gibi sakin bir "nefes" efekti. Öğrenme: machine.PWM sınıfı (pini PWM çıkışına çevirme), duty_u16() (0–65535 arası 16-bit parlaklık değeri), PWM frekansı (freq(1000) — saniyede 1000 kez aç-kapa, göz titremeyi görmez), range() ile adım adım döngü

0.0(0)
4