LED Matrisi

5×5 LED matriste simge, sayı ve kayan yazı göstermeyi öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

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.

Üretilecek kanıt

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…

Kontrol tuzağı

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…

Sonraki bağlantı

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.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre25–35 dk
Ön koşulMakeCode Arayüzü
İçerikStandart ders · 1.278 kelime
Son güncelleme

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:

  1. Başlangıçta "SELAM" yazısını kaydır.
  2. Ardından kalp simgesini göster.
  3. 500 ms bekle.
  4. 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

Ders özeti

Kontrol soruları

  1. LED matrisi kaç satır, kaç sütun ve toplam kaç LED içerir?
  2. Matriste (0, 0) ve (4, 4) adresleri hangi köşelere denk gelir?
  3. display.show ile display.scroll arasındaki fark nedir?
  4. MicroPython'da set_pixel(x, y, parlaklık) fonksiyonunda parlaklık hangi aralıkta değer alır?
  5. Bir noktanın matriste kayarak ilerlemesi için tek bir LED'i yaktıktan sonra hangi iki adım gelmelidir?

Cevaplar

  1. 5 satır, 5 sütun ve toplam 25 LED içerir.
  2. (0, 0) sol üst köşedir; (4, 4) sağ alt köşedir.
  3. show tek bir karakteri veya simgeyi sabit gösterir; scroll ise metni soldan sağa kaydırarak geçirir, bu yüzden uzun yazılar için kullanılır.
  4. 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.)
  5. Kısa bir süre bekle/sleep koyup ardından o LED'i sö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.

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.