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.

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.
| Özellik | Raspberry Pi Pico + MicroPython | Arduino Uno + C++ |
|---|---|---|
| Pin gerilimi | 3,3 V (5 V'a dayanıklı değil) | 5 V |
| Dil ve editör | MicroPython, Thonny | C++, Arduino IDE |
| Kodu çalıştırma | Çalıştır'a basınca hemen, derleme yok | Her 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–65535 | 6 pin (A0–A5), analogRead() 0–1023 |
| USB girişi | Micro USB | USB-B (Uno R3) |
| Breadboard'a takma | Pico H / WH başlıklı gelir, doğrudan takılır | Kart dışarıda durur, kabloyla bağlanır |
| Fiyat | Genelde Uno'dan belirgin şekilde ucuz | Daha pahalı |
Ders öncesi kurulum: MicroPython ve Thonny
- 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.
- 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).
- 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.
- 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.
- 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.
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.
| Hafta | Hedef | Ücretsiz BlueGrays projesi | Yeni MicroPython kavramı | Arduino C++ karşılığı |
|---|---|---|---|---|
| 1 | Pico'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:, girinti | pinMode(14, OUTPUT); digitalWrite(14, HIGH); delay(500); void loop() |
| 2 | Değ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); |
| 3 | Tekrarı azaltmak: fonksiyon | Raspberry Pi Pico Trafik Lambası (3 LED Sıralı, GP11/GP12/GP13) | def all_off():, fonksiyonu çağırmak, sleep(1.5) ile ondalık saniye | void allOff() { … } ; delay(1500); |
| 4 | Giriş, koşul ve durum | Raspberry 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() |
| 5 | Sensör ve ses | Raspberry Pi Pico Park Sensörü (HC-SR04 + 3 LED + Buzzer) | PWM(Pin(17)), freq(), duty_u16(), time_pulse_us(), def … return | tone(17, 1200); pulseIn(); return |
| 6 | Liste, for döngüsü, kapanış projesi | Raspberry Pi Pico Buton Piyano (5 Buton + Buzzer + Melodi Kaydı) | NOTE_HZ = (523, 587, 659, 698, 784), for … in, aynı kodla beş buton | int notes[] = {523, 587, 659, 698, 784}; for (int i = 0; i < 5; i++) |

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.
| Malzeme | Grup başına | Sınıf için (12 grup + 1 yedek) | Kullanıldığı hafta |
|---|---|---|---|
| Raspberry Pi Pico H ya da Pico WH (başlıkları lehimli) | 1 | 13 | Hepsi |
| Micro USB veri kablosu | 1 | 13 | Hepsi |
| Breadboard (400 ya da 830 delik) | 1 | 13 | Hepsi |
| Erkek-erkek jumper kablo | 20 | yaklaşık 260 | Hepsi |
| 5 mm LED (kırmızı, sarı, yeşil, mavi) | 4 | yaklaşık 60 | 1–5 |
| 220 Ω direnç | 4 | yaklaşık 60 | 1–5 |
| Push buton (4 bacaklı) | 5 | yaklaşık 70 | 4, 6 |
| Pasif buzzer | 1 | 13 | 5, 6 |
| HC-SR04 ultrasonik mesafe sensörü | 1 | 13 | 5 |
| 1 kΩ ve 2 kΩ direnç (ECHO bölücüsü) | 1 + 1 | 13 + 13 | 5 |
| Thonny kurulu bilgisayar | 1 | 12 | Hepsi |
| 10 kΩ potansiyometre (isteğe bağlı, ADC için) | 1 | 13 | Hızlı gruplar |
Ö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üre | Aşama | Ne yapılır? |
|---|---|---|
| 0–5 dk | Isınma | Soru: 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 dk | REPL ile ilk komut | Projeksiyonda 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 dk | Projeyi birlikte okuma | BlueGrays'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ırma | Kod 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 dk | Harici LED devresi | USB çı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 dk | Bir değeri değiştirme | time.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ış sorusu | Kâğı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.
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
12Harici 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.
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)
17Buton 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.
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
15BlueGrays'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çüt | 1 – Başlıyor | 2 – Gelişiyor | 3 – Hazır |
|---|---|---|---|
| Devre kurma | Yardımla kurar, GND'yi unutur | Şemaya bakarak kurar, GP numarasını kodla eşleştirir | Fiziksel pin ile GP numarasını ayırır, arkadaşının hatasını bulur |
| Kod okuma | Satırları okur, ne yaptığını anlatamaz | Programın ne yaptığını genel olarak anlatır | Her satırın işini ve girintinin anlamını anlatır |
| Değiştir ve dene | Değeri değiştirir, etkisini açıklayamaz | Sonucu önceden tahmin eder ve dener | Tahmin tutmayınca Shell'deki hata mesajından nedeni bulur |
| C++ ile eşleştirme | Eşleştiremez | Pin, sleep ve while True'yu eşleştirir | if, 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
| Sorun | Olası neden | Çözüm |
|---|---|---|
| Pico bilgisayarda hiç görünmüyor | Yalnı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ıyor | Kartta MicroPython yok ya da BOOTSEL basılı kalıyor | UF2 dosyasını sürücüye kopyala; düğmeye basmadan yeniden tak. |
| RPI-RP2 hiç çıkmıyor | BOOTSEL'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şgul | Sağ 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ışıyor | Yorumlayıcıyı MicroPython (Raspberry Pi Pico) yap. |
| IndentationError ya da SyntaxError | Karışık girinti, eksik iki nokta | Hatadaki 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ıyor | LED 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ıyor | Dosya bilgisayara kaydedildi ya da adı main.py değil | Thonny'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 giremiyor | Kod açılışta hemen çalışıyor | Stop'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.
Bu yazıdan sonra yapabileceğin projeler
Tüm projeleri gör
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

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

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

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

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.

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

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

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ü
Diğer yazılar
BlueGrays uygulaması
Bu devreyi telefonunda adım adım kur
Devre şeması, kod ve parça listesi tek ekranda. 200'den fazla Arduino, ESP32 ve Pico projesi seni bekliyor.
Telefonunla tara
Kamerayı koda tut; telefonunun uygulama mağazası açılır.
ya da mağazada aç

