Bir cümlelik özet
micro:bit'in ön yüzündeki 5×5 LED matrisi, tek tek yakabildiğimiz 25 küçük ışıkla yazı, sayı, simge ve basit animasyonlar göstermenin en temel yoludur.
Neden önemli?
micro:bit'i elimize aldığımızda ilk göze çarpan şey, ön yüzdeki kırmızı ışıklardan oluşan kare düzenidir. Bu düzene LED matrisi denir. Matris, bilgisayardaki ekran gibi çalışır: programımızın sonucunu insanın görebileceği bir biçime çevirir.
Bir robotun mesafeyi ölçmesi ya da bir düğmeye basılması güzeldir; ama sonucu göremezsek ne olup bittiğini anlayamayız. LED matrisi, kartın "konuşma" biçimidir. Kod yazmayı yeni öğrenirken bir değişkenin değerini ekranda görmek, hatayı bulmayı da kolaylaştırır.
Bu derste matrisin nasıl kurulduğunu, hazır simgeleri, yazı ve sayı göstermeyi, tek tek LED yakmayı ve basit animasyon fikrini hem MakeCode blokları hem de MicroPython ile inceleyeceğiz.
5×5 matris nasıl çalışır?
Matris, 5 satır ve 5 sütundan oluşan bir ızgaradır. Toplam 25 LED vardır. Her LED'i ayrı ayrı açıp kapatabiliriz. Bir LED yanınca o nokta parlar, sönünce kararır. Yeterince nokta bir arada yanınca harf, rakam veya şekil ortaya çıkar.
Koordinatlarla düşünmek
Her LED'in bir adresi vardır. Bu adresi iki sayıyla belirtiriz: x (sütun, soldan sağa) ve y (satır, yukarıdan aşağıya). Sayma 0'dan başlar.
x=0 x=1 x=2 x=3 x=4
y=0 . . . . .
y=1 . . . . .
y=2 . . . . .
y=3 . . . . .
y=4 . . . . .
Sol üst köşe (0, 0), sağ alt köşe (4, 4) olur. Tam ortadaki LED (2, 2) adresindedir. Bu düşünce, satranç tahtasında bir kareyi "e4" diye adlandırmaya benzer: her hücrenin tek ve açık bir adı vardır.
Parlaklık
LED'ler yalnız açık ya da kapalı değildir; parlaklık seviyesi de vardır. MakeCode'da 0 (sönük) ile 255 (en parlak) arasında değer verilebilir. Bu, bir animasyonda ışığı yavaşça açıp kapatmak istediğimizde işe yarar.
Hazır simgeleri göstermek
En kolay başlangıç, micro:bit'in içinde hazır bulunan simgelerdir. Kalp, gülen yüz, ok gibi birçok resim kütüphanede vardır. Bunları tek satırla ekrana getirebiliriz.
MakeCode blok sırası:
başlangıçta
simge göster (kalp)
Aynı fikir MicroPython'da:
from microbit import *
display.show(Image.HEART)
Image.HEART yerine Image.HAPPY, Image.YES, Image.ARROW_N gibi başka hazır resimler de yazabilirsin. Bir düğmeye basınca farklı simge göstermek, bir sonraki dersin konusudur; şimdilik kartı açar açmaz sabit bir simge görmek yeterli.
Günlük hayattan örnek: Ruh hâli rozeti
Yakana taktığın bir rozet düşün. Kendini iyi hissettiğinde gülen yüz, düşünceli olduğunda düz bir çizgi gösteren bir rozet, micro:bit ile birebir yapılabilir. Kart açıldığında Image.HAPPY gösterirsen, giyilebilir küçük bir "ruh hâli ekranı" elde edersin.
Yazı ve sayı göstermek
Matris yalnız 5×5 olduğu için bir harf sığar ama bir kelime sığmaz. Bu yüzden yazılar kayarak geçer: harfler soldan girip sağdan çıkar, tıpkı stadyum panolarındaki akan yazılar gibi.
"Göster" ile kaydırma
MakeCode'da "göster" (show string) bloğu bir metni otomatik olarak kaydırır:
başlangıçta
yazı göster ("MERHABA")
MicroPython'da iki farklı komut vardır. scroll metni kaydırır, show ise tek karakteri sabit gösterir:
from microbit import *
display.scroll("MERHABA")
display.show("A")
Sayı göstermek
Bir sensörün ölçtüğü değeri ekrana yazmak çok işe yarar. MakeCode'da "sayı göster" bloğu vardır:
sürekli
sayı göster (sıcaklık)
MicroPython'da sayıyı doğrudan kaydırabilirsin:
from microbit import *
while True:
display.scroll(temperature())
Tek basamaklı bir sayı (örneğin 7) kaymadan sabit görünür; çok basamaklı bir sayı (örneğin 25) matrise sığmadığı için kayarak geçer.
Günlük hayattan örnek: Adım sayacı ekranı
Sonraki modüllerde ivmeölçerle adım sayacağız. Sayılan adım sayısını display.scroll ile göstermek, kartı küçük bir spor ekranına çevirir. Ekranın işi hep aynıdır: içerideki bir sayıyı gözle görülür hâle getirmek.
Tek tek LED yakmak ve animasyon
Bazen hazır simge yetmez; kendi şeklimizi çizmek isteriz. O zaman her LED'i adresinden yakarız. MakeCode'da bunun için "LED yak" (plot) ve "LED söndür" (unplot) blokları vardır.
plot ile çizmek
Sol üst ve sağ alt köşeyi yakalım:
başlangıçta
LED yak x=0 y=0
LED yak x=4 y=4
MicroPython'da set_pixel(x, y, parlaklık) kullanılır. Parlaklık 0 ile 9 arasındadır:
from microbit import *
display.set_pixel(0, 0, 9)
display.set_pixel(4, 4, 9)
Animasyon fikri: Hareket eden nokta
Animasyon, hızlı sırayla değişen kareler dizisidir. Bir noktayı önce yakıp, kısa bir bekleme sonrası söndürüp yanındaki noktayı yakarsak, ışık kayıyormuş gibi görünür.
MakeCode mantığı:
sürekli
x için 0'dan 4'e kadar tekrarla
LED yak x=x y=2
100 ms bekle
LED söndür x=x y=2
MicroPython karşılığı:
from microbit import *
while True:
for x in range(5):
display.set_pixel(x, 2, 9)
sleep(100)
display.set_pixel(x, 2, 0)
Buradaki fikir bir öncekiyle aynıdır: yak, bekle, söndür, bir sonraki adrese geç. Bekleme süresini değiştirmek animasyonu hızlandırır veya yavaşlatır.
Mini uygulama
Amaç: Kartı açınca kısa bir "açılış gösterisi" yapan bir program yaz.
Şu adımları izle:
- Başlangıçta
"SELAM"yazısını kaydır. - Ardından kalp simgesini göster.
- 500 ms bekle.
- Ortadaki LED'i (2, 2) yak, 300 ms bekle, sonra söndür.
MakeCode blok sırası:
başlangıçta
yazı göster ("SELAM")
simge göster (kalp)
500 ms bekle
LED yak x=2 y=2
300 ms bekle
LED söndür x=2 y=2
MicroPython karşılığı:
from microbit import *
display.scroll("SELAM")
display.show(Image.HEART)
sleep(500)
display.set_pixel(2, 2, 9)
sleep(300)
display.set_pixel(2, 2, 0)
Çalıştığını gördükten sonra deneyerek değiştir: yazıyı kendi adınla değiştir, farklı bir simge seç veya yanan LED'i köşeye taşı.
Sık yapılan hatalar
Koordinatları 1'den saymak
Matris (0, 0)'dan başlar. Sağ alt köşe (5, 5) değil, (4, 4)'tür. (5, 2) gibi bir adres ekran dışında kalır ve hiçbir şey yanmaz.
x ve y'yi karıştırmak
İlk sayı sütun (yatay), ikinci sayı satırdır (dikey). (0, 4) sol alt köşedir; (4, 0) ise sağ üsttür. İkisi çok farklı yerlerdir.
show ve scroll karışıklığı
Çok karakterli bir metni display.show("MERHABA") ile göstermeye çalışırsan yalnız ilk harf görünür kalır. Uzun metin için scroll, tek karakter veya simge için show kullanılır.
Beklemeyi unutmak
Bir LED'i yakıp hemen söndürürsen göz onu yakalayamaz. Animasyonda her adım arasına sleep/bekle koymak gerekir; yoksa ekran boş görünür.
Güvenlik notu
- micro:bit'i bilgisayara USB kablosuyla bağlarken kabloyu yavaşça ve düz tak; konnektörü zorlama.
- Pil takımını (genellikle iki AAA pil) yalnız bir yetişkin yardımıyla ve kutupları (+/–) doğru yönde tak. Pilleri kısa devre yaptırma ve ısınırsa dokunma.
- micro:bit düşük gerilimle çalışır; ona şebeke elektriği veya yüksek voltaj bağlanmaz.
- Giyilebilir bir rozet yaparsan kartı ve pili kıyafete güvenli biçimde, sivri uçları örterek sabitle. Küçük parçaları küçük kardeşlerden uzak tut.
Ders özeti
- micro:bit'in ön yüzündeki 5×5 LED matrisi 25 ışıktan oluşur ve kartın çıktı ekranıdır.
- Her LED'in (x, y) adresi vardır; sayma 0'dan başlar, orta nokta (2, 2)'dir.
- Hazır simgeler
simge göster/display.show(Image.HEART)ile tek satırda gösterilir. - Uzun yazı ve çok basamaklı sayılar kayarak geçer; bunun için
scrollkullanılır. plot/set_pixelile tek tek LED yakılır; yak-bekle-söndür sırası basit animasyon oluşturur.
Kontrol soruları
- LED matrisi kaç satır, kaç sütun ve toplam kaç LED içerir?
- Matriste (0, 0) ve (4, 4) adresleri hangi köşelere denk gelir?
display.showiledisplay.scrollarasındaki fark nedir?- MicroPython'da
set_pixel(x, y, parlaklık)fonksiyonunda parlaklık hangi aralıkta değer alır? - Bir noktanın matriste kayarak ilerlemesi için tek bir LED'i yaktıktan sonra hangi iki adım gelmelidir?
Cevaplar
- 5 satır, 5 sütun ve toplam 25 LED içerir.
- (0, 0) sol üst köşedir; (4, 4) sağ alt köşedir.
showtek bir karakteri veya simgeyi sabit gösterir;scrollise metni soldan sağa kaydırarak geçirir, bu yüzden uzun yazılar için kullanılır.- 0 ile 9 arasında; 0 sönük, 9 en parlak demektir. (MakeCode'un "LED yak" bloğu ise açık/kapalı çalışır, ayrı parlaklık bloğu 0–255 aralığındadır.)
- Kısa bir süre
bekle/sleepkoyup ardından o LED'isöndür/set_pixel(..., 0)ile kapatmak; sonra bir sonraki adres yakılır.
Kaynak ve doğrulama notu
“LED Matrisi” dersi için doğrulama odağı 5×5 matris nasıl çalışır? ile Parlaklık 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
Düğmeler ve Olaylar: A ve B düğmelerine basıldığında ekranı değiştiren, kullanıcıyla etkileşen ilk micro:bit programlarını yazacağız.