Ana Sayfa · Akademi · Robotik ve Kodlama · micro:bit · Python ile micro:bit

Python ile micro:bit

Blok koddan MicroPython'a geçip aynı programları Python'la yazmayı öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

micro:bit'i bloklarla sürüklemek yerine, MicroPython denilen küçük bir Python sürümüyle yazılı komutlar kullanarak programlamayı öğreniyoruz.

Üretilecek kanıt

Kendi "ruh hâli düğmesi" programını yaz. Hedef: Başlangıçta ekranda kısa bir "SELAM" yazısı kaysın. A düğmesine basınca kalp görünsün. B düğmesine basınca üzgün bir yüz görünsün. Kart sallanınca ekran temizlensin. Başlangıç için iskelet: from microbit import * display.scroll("SELAM") while True: if button_a.is_pressed(): display.show(Image.HEART) elif…

Kontrol tuzağı

from microbit import * satırını unutmak Bu satır olmadan display veya button_a gibi isimler tanınmaz ve program hata verir. Neredeyse her micro:bit programı bu satırla başlar. İki nokta ve girintiyi atlamak Python'da if , elif ve while satırlarının sonunda iki nokta ( : ) olmalı ve altındaki satırlar içeri girintili…

Sonraki bağlantı

Proje: Adım Sayar — ivmeölçeri kullanarak her adımı sayan ve sonucu ekranda gösteren giyilebilir bir mini proje yapıyoruz.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre25–35 dk
Ön koşulPinler ve Harici Bileşenler
İçerikStandart ders · 1.377 kelime
Son güncelleme

Bir cümlelik özet

micro:bit'i bloklarla sürüklemek yerine, MicroPython denilen küçük bir Python sürümüyle yazılı komutlar kullanarak programlamayı öğreniyoruz.

Neden önemli?

Bloklar başlangıç için harikadır. Sürükle, bırak ve program hazır. Fakat programlar büyüdükçe blokları taşımak yavaşlar ve ekran kalabalıklaşır. İşte bu noktada yazılı kod devreye girer.

Daha önce Python modülünde if, döngü ve fonksiyon gördün. micro:bit üzerinde çalışan MicroPython, tam olarak o Python'un küçük kartlara sığdırılmış hâlidir. Yani öğrendiğin dil değişmiyor; sadece o dili artık gerçek bir donanıma söylüyorsun.

Aynı programı hem blok hem Python olarak yazmak, ikisi arasındaki köprüyü görmeni sağlar. Bir bloğun aslında hangi kod satırına karşılık geldiğini anladığında, ileride herhangi bir cihazı metin tabanlı kodla programlaman çok daha kolay olur.

Yazılı kodun bir başka faydası da paylaşmanın kolay olmasıdır. Bir blok programını arkadaşına anlatmak için ekran görüntüsü gerekir; ama birkaç satır Python'u bir mesajda kolayca gönderebilirsin. Bu derste amacımız yeni bir dil ezberlemek değil, zaten bildiğin Python'u küçük bir kartta çalışırken görmek.

MicroPython nedir?

MicroPython, sınırlı belleğe sahip küçük kartlarda çalışabilen bir Python sürümüdür. Bilgisayarındaki Python neredeyse aynıdır; ama micro:bit'in LED'leri, düğmeleri ve sensörleri için hazır komutlar ekler.

Bu komutlara ulaşmak için her programın başına tek bir satır yazarız:

from microbit import *

Bu satır, "micro:bit'e ait bütün hazır araçları getir" demektir. display, button_a, accelerometer ve sleep gibi isimler bu sayede kullanılabilir hâle gelir. Neredeyse her micro:bit programı bu satırla başlar.

Kodu nereye yazarız?

Kodu bir tarayıcı düzenleyicisine (Python editörü) veya bilgisayara kurulu bir editöre yazarız. Sonra "Flash" (yükle) düğmesiyle kartın belleğine gönderilir. Kart, gücü olduğu sürece bu programı tekrar tekrar çalıştırır.

En sık kullanılan dört araç

Blok koddan Python'a geçerken tanışman gereken dört temel araç var: ekran, düğmeler, ivmeölçer ve bekleme.

display — 5×5 LED ekranı

display, karttaki 25 küçük ışığı kontrol eder. Yazı, sayı veya hazır simgeleri gösterebilir.

from microbit import *

display.show(Image.HEART)   # kalp simgesi
sleep(1000)                 # 1 saniye bekle
display.scroll("MERHABA")   # yazıyı kaydırarak göster

button_a ve button_b — iki düğme

Kartın üzerinde A ve B adında iki düğme vardır. Basılıp basılmadığını kontrol edebiliriz.

if button_a.is_pressed():
    display.show(Image.HAPPY)

button_a.is_pressed(), düğmeye o an basılıysa True (doğru), değilse False (yanlış) verir. Bu, Python modülünde gördüğün if koşulunun tam olarak aynısıdır.

accelerometer — hareket sensörü

İvmeölçer (accelerometer), kartın nasıl tutulduğunu ve hareket ettiğini ölçen sensördür. En kolay kullanımı hazır jestleri tanımaktır:

if accelerometer.was_gesture("shake"):
    display.scroll("SALLANDI")

"shake" sallamayı, "face up" ekranın yukarı baktığını anlatır. Bir sonraki derste adım sayar yaparken tam olarak bu sensörü kullanacağız.

sleep — bekleme

sleep(ms), programı belirtilen milisaniye kadar durdurur. 1000 milisaniye 1 saniyedir. Bekleme olmadan ekran değişimleri gözünün göremeyeceği kadar hızlı olur.

Bu dört araç, micro:bit programlarının büyük kısmını yazmana yeter. Bir düğmeye bak, bir şey göster, biraz bekle ve tekrar et. İleride sensörler ve radyo eklendikçe bile bu temel yapı değişmez.

Aynı program: önce blok, sonra Python

En iyi öğrenme yolu, bildiğin bir bloğu satır satır Python'a çevirmektir. Amaç şu: A düğmesine basılınca kalp, B düğmesine basılınca gülen yüz göstermek.

MakeCode blok sırası

sürekli
  eğer <A düğmesine basıldı> ise
    kalp simgesi göster
  değilse eğer <B düğmesine basıldı> ise
    mutlu simge göster

Aynısı MicroPython'da

from microbit import *

while True:
    if button_a.is_pressed():
        display.show(Image.HEART)
    elif button_b.is_pressed():
        display.show(Image.HAPPY)

Karşılaştıralım:

Aynısı MicroPython'da tablosu
BlokPython
sürekliwhile True:
eğer … iseif …:
değilse eğerelif …:
kalp simgesi gösterdisplay.show(Image.HEART)

Görüldüğü gibi mantık birebir aynı; yalnız yazım biçimi değişti. while True: bloğu, MakeCode'daki "sürekli" bloğunun karşılığıdır ve programı sonsuza kadar tekrar eder.

Mini uygulama

Kendi "ruh hâli düğmesi" programını yaz. Hedef:

  1. Başlangıçta ekranda kısa bir "SELAM" yazısı kaysın.
  2. A düğmesine basınca kalp görünsün.
  3. B düğmesine basınca üzgün bir yüz görünsün.
  4. Kart sallanınca ekran temizlensin.

Başlangıç için iskelet:

from microbit import *

display.scroll("SELAM")

while True:
    if button_a.is_pressed():
        display.show(Image.HEART)
    elif button_b.is_pressed():
        display.show(Image.SAD)
    if accelerometer.was_gesture("shake"):
        display.clear()
    sleep(100)

Çalıştırdıktan sonra dene: Image.SAD yerine Image.YES yazarsan ne olur? sleep(100) satırını silersen program yine çalışır mı? Küçük değişiklikler yapıp sonucu gözlemlemek, kodu gerçekten anlamanın en iyi yoludur.

Uygulama laboratuvarı: Python ile micro:bit

Python ile micro:bit konusunu kalıcı hâle getirmenin en iyi yolu, kavramı küçük ve ölçülebilir bir göreve dönüştürmektir. Bu çalışmada MicroPython nedir? ile En sık kullanılan dört araç arasındaki ilişkiyi kullanarak simülatörde ve kart üzerinde denenmiş micro:bit programı ile test notları hazırlayacaksın. Amaç yalnız sonucun çalışması değil; hangi kararı neden verdiğini, neyi test ettiğini ve hangi durumda tasarımı değiştireceğini açıklayabilmektir.

Görev senaryosu

Şu senaryoyu ele al: düğmelerle menü seçimi yapılan küçük bilgi oyunu. Dersin ana hedefi “Blok koddan MicroPython'a geçip aynı programları Python'la yazmayı öğren” olduğuna göre önce problemi tek cümleyle tanımla. Ardından sistemin alacağı girdiyi, uygulayacağı işlemi ve üreteceği çıktıyı ayrı ayrı yaz. Bilmediğin bir ayrıntı varsa onu varsayım olarak işaretle; varsayımı gerçek bilgi gibi kullanma.

  1. Planla: Başlangıç durumunu, beklenen sonucu ve kullanacağın kavramları yaz.
  2. En küçük sürümü kur: Yalnız temel davranışı çalıştır; süsleme ve ek özellikleri sonraya bırak.
  3. Üç test hazırla: Normal bir durum, sınırda bir durum ve hatalı ya da beklenmeyen bir durum seç.
  4. Sonucu kaydet: Beklenen ile gerçekleşeni yan yana yaz; fark varsa olası nedeni belirt.
  5. Tek değişiklik yap: Aynı anda birçok şeyi değiştirmek yerine bir kararı düzeltip testi yeniden çalıştır.

Başarı ölçütleri

“Python ile micro:bit” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın düğmelerle menü seçimi yapılan küçük bilgi oyunu senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, MicroPython nedir? ve En sık kullanılan dört araç ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

from microbit import * satırını unutmak

Bu satır olmadan display veya button_a gibi isimler tanınmaz ve program hata verir. Neredeyse her micro:bit programı bu satırla başlar.

İki nokta ve girintiyi atlamak

Python'da if, elif ve while satırlarının sonunda iki nokta (:) olmalı ve altındaki satırlar içeri girintili yazılmalıdır. Girinti Python için süs değil, hangi kodun bloğa ait olduğunu gösteren kuraldır.

sleep içine saniye yazmak

sleep(1) bir saniye değil, yalnız bir milisaniyedir ve gözün fark edemez. Bir saniye için sleep(1000) yazmalısın.

is_pressed() içindeki parantezi unutmak

button_a.is_pressed (parantezsiz) düğmeyi kontrol etmez. Sonuç almak için button_a.is_pressed() şeklinde parantezle yazılmalıdır.

Güvenlik notu

Ders özeti

Kontrol soruları

  1. MicroPython, bilgisayardaki Python'dan farklı bir dil midir? Kısaca açıkla.
  2. from microbit import * satırı ne işe yarar?
  3. display.show(...) ile display.scroll(...) arasındaki fark nedir?
  4. sleep(500) komutu programı ne kadar süre durdurur?
  5. MakeCode'daki "sürekli" bloğunun MicroPython'daki karşılığı hangi satırdır?

Cevaplar

  1. Hayır, aynı dildir. MicroPython, Python'un küçük kartlara sığacak şekilde küçültülmüş hâlidir; kurallar aynı, sadece kart donanımı için ek komutlar vardır.
  2. micro:bit'e ait hazır araçları (display, düğmeler, sensörler, sleep) programa getirir. Bu satır olmadan bu isimler tanınmaz.
  3. show tek bir görüntüyü veya karakteri yerinde gösterir; scroll uzun bir yazıyı soldan sağa kaydırarak gösterir.
  4. Yarım saniye, yani 500 milisaniye durdurur (1000 milisaniye = 1 saniye).
  5. while True: satırıdır; bu döngü içindeki kod sonsuza kadar tekrar eder.

Kaynak ve doğrulama notu

“Python ile micro:bit” dersi için doğrulama odağı MicroPython nedir? ile En sık kullanılan dört araç arasındaki ilişkinin örnekler üzerinde tutarlı çalışmasıdır. MakeCode ve MicroPython adları sürüme göre küçük farklılık gösterebilir. Önce simülatörde test yapılmalı; harici bileşen bağlanacaksa kartın pin ve gerilim sınırları ayrıca kontrol edilmelidir.

Sonraki ders

Proje: Adım Sayar — ivmeölçeri kullanarak her adımı sayan ve sonucu ekranda gösteren giyilebilir bir mini proje yapıyoruz.

Quiz’i Başlatmicro:bit bölümüne dön
SORU HAVUZU

Bu dersi 10 soruyla pekiştir

Bu ders için 20 soruluk bir havuz hazırlandı. Her başlangıçta 10 soru ve seçenekler yeniden karıştırılır.