Ana Sayfa · Akademi · Robotik ve Kodlama · micro:bit · Radyo ile Haberleşme

Radyo ile Haberleşme

İki micro:bit arasında radyoyla mesaj ve sayı göndermeyi öğren.

DERS PUSULASI

Bu sayfayı ne için kullanacaksın?

Ana fikir

İki micro:bit, kablo olmadan radyo dalgalarıyla birbirine mesaj ve sayı gönderebilir; bu derste bir kartta düğmeye basınca diğerinde simge çıkaran küçük bir sistem kuruyoruz.

Üretilecek kanıt

Bir arkadaşınla kablosuz taş-kağıt-makas işareti kurun. Görev: İki micro:bit'i de aynı gruba ayarlayın (örneğin grup 12). A düğmesine basınca "taş" metnini gönderin ve kendi ekranınıza T yazın. B düğmesine basınca "kağıt" metnini gönderin ve kendi ekranınıza K yazın. Radyo metin geldiğinde, gelen seçimi kısa bir süre ekranda gösterin. Başlangıç bloğu:…

Kontrol tuzağı

Grupları farklı ayarlamak En sık hata budur. Bir kart grup 7'de, diğeri grup 1'deyse mesaj asla ulaşmaz. Her zaman iki kartın da başlangıçta aynı grup numarasına ayarlandığından emin ol. Radyoyu açmayı unutmak (MicroPython) Python'da radio.on() yazmazsan radyo kapalı kalır ve hiçbir şey gönderilmez. MakeCode'da radyo…

Sonraki bağlantı

Pinler ve Harici Bileşenler: micro:bit'in altındaki pinleri kullanarak dış dünyaya bağlanmayı, buton, LED ve krokodil kablolarla küçük devreler kurmayı öğreneceğiz.

Modül kaynakları: Python Tutorial · Arduino Learn

SeviyeBaşlangıç
Yaş10–16
Süre30–45 dk
Ön koşulSıcaklık ve Işık Ölçümü
İçerikStandart ders · 1.411 kelime
Son güncelleme

Bir cümlelik özet

İki micro:bit, kablo olmadan radyo dalgalarıyla birbirine mesaj ve sayı gönderebilir; bu derste bir kartta düğmeye basınca diğerinde simge çıkaran küçük bir sistem kuruyoruz.

Neden önemli?

Şimdiye kadar yazdığın programlar tek bir micro:bit üzerinde çalıştı. Kart kendi düğmesini okuyor, kendi ekranına yazıyordu. Ama gerçek dünyadaki cihazların çoğu tek başına değildir. Telefon baz istasyonuyla, kumanda oyuncak arabayla, hava istasyonu içerideki ekranla konuşur.

micro:bit'in içinde küçük bir radyo vardır. Radyo, kablo olmadan mesaj göndermeyi ve almayı sağlayan bir bileşendir. İki kartı aynı gruba ayarladığında, biri gönderdiğinde öteki duyabilir.

Bu, ilk kez birden fazla cihazın birlikte çalıştığı bir sistem kurmanı sağlar: kablosuz bir zil, iki oyuncu arasında bir işaret, ya da bir odadan diğerine sıcaklık bilgisi taşıyan küçük bir ağ.

Radyo nasıl çalışır?

Grup kavramı

Bir sınıfta on tane micro:bit aynı anda mesaj gönderiyor olabilir. Peki senin kartın hangisini dinleyecek? Bunu radyo grubu çözer.

Radyo grubu, 0 ile 255 arasında bir sayıdır. Yalnız aynı gruptaki kartlar birbirini duyar. Farklı gruptaki mesajlar dinlenmez. Bunu bir telsiz kanalı gibi düşünebilirsin: iki kişi konuşmak istiyorsa aynı kanala geçmelidir.

Kısa tanım: Radyo grubu, aynı numarayı paylaşan micro:bit'lerin birbirini duymasını sağlayan bir kanal numarasıdır.

Sen ve arkadaşın kartlarınızı grup 7'ye ayarlarsanız, yan masadaki grup 3 kartları sizin mesajlarınızı almaz. Bu, kalabalık bir sınıfta karışıklığı önler.

Gönder ve al olayı

Radyoda iki temel iş vardır:

Almak için "sürekli" içinde beklemek yerine bir olay kullanırız. "Radyo mesaj aldığında" olayı, tam mesaj geldiği anda çalışır. Böylece kart boşuna beklemez; mesaj gelince tepki verir.

Örnek 1: Düğmeye bas, karşıda kalp çıksın

Amaç: A kartında A düğmesine basınca, B kartının ekranında kalp simgesi belirsin.

MakeCode blok sırası (gönderen kart)

başlangıçta
  radyo grubunu 7 yap
sürekli
  eğer <A düğmesine basıldı> ise
    radyo sayı gönder 1

MakeCode blok sırası (alan kart)

başlangıçta
  radyo grubunu 7 yap
radyo sayı aldığında (alınanSayı)
  eğer <alınanSayı = 1> ise
    kalp simgesi göster
    500 ms bekle
    ekranı temizle

Dikkat et: her iki kart da grup 7'ye ayarlı. Gönderen kart "1" sayısını yolluyor. Alan kart, gelen sayı 1 ise kalbi gösteriyor. İki kartı da aynı programla değil, iki ayrı programla yükleyebilirsin ya da tek bir programda hem gönderme hem alma bloklarını birlikte kullanabilirsin.

Aynı fikir MicroPython ile

Gönderen kart:

from microbit import *
import radio

radio.on()
radio.config(group=7)

while True:
    if button_a.was_pressed():
        radio.send("1")

Alan kart:

from microbit import *
import radio

radio.on()
radio.config(group=7)

while True:
    mesaj = radio.receive()
    if mesaj == "1":
        display.show(Image.HEART)
        sleep(500)
        display.clear()

Blok ve Python farklı görünse de mantık aynı: aynı grup, gönder, al, karşılaştır, göster.

Örnek 2: İki yönlü işaret

Şimdi iki kart da hem göndersin hem alsın. A kartında A düğmesine basınca B kartında ok yukarı çıksın; B kartında B düğmesine basınca A kartında ok aşağı çıksın.

Her iki karta da yüklenecek tek program:

başlangıçta
  radyo grubunu 3 yap
sürekli
  eğer <A düğmesine basıldı> ise
    radyo metin gönder "yukarı"
  eğer <B düğmesine basıldı> ise
    radyo metin gönder "aşağı"
radyo metin aldığında (mesaj)
  eğer <mesaj = "yukarı"> ise
    yukarı ok göster
  değilse eğer <mesaj = "aşağı"> ise
    aşağı ok göster

Bu programda tek bir dosya iki kartta da çalışır. Bir kartın gönderdiği mesajı diğeri alır ve okuyla gösterir. Böyle çalışan sistemlere eşler arası haberleşme denir; ikisi de hem konuşabilir hem dinleyebilir.

Günlük hayattan iki örnek:

Mini uygulama

Bir arkadaşınla kablosuz taş-kağıt-makas işareti kurun.

Görev:

  1. İki micro:bit'i de aynı gruba ayarlayın (örneğin grup 12).
  2. A düğmesine basınca "taş" metnini gönderin ve kendi ekranınıza T yazın.
  3. B düğmesine basınca "kağıt" metnini gönderin ve kendi ekranınıza K yazın.
  4. Radyo metin geldiğinde, gelen seçimi kısa bir süre ekranda gösterin.

Başlangıç bloğu:

başlangıçta
  radyo grubunu 12 yap
sürekli
  eğer <A düğmesine basıldı> ise
    "T" göster
    radyo metin gönder "taş"

Kendine sor:

Uygulama laboratuvarı: Radyo ile Haberleşme

Radyo ile Haberleşme 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 Radyo nasıl çalışır? ile Gönder ve al olayı 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: iki kart arasında kablosuz skor paylaşımı. Dersin ana hedefi “İki micro:bit arasında radyoyla mesaj ve sayı göndermeyi öğ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

“Radyo ile Haberleşme” çalışmasını bitirdiğinde ürünü bir arkadaşına yalnız bölüm başlıklarıyla anlat. Arkadaşın iki kart arasında kablosuz skor paylaşımı senaryosundaki adımları ve karar nedenlerini takip edebiliyorsa anlatım yeterince açıktır. Anlaşılmayan noktayı daha fazla terim ekleyerek değil, Radyo nasıl çalışır? ve Gönder ve al olayı ilişkisini daha küçük adımlara bölerek düzelt.

Sık yapılan hatalar

Grupları farklı ayarlamak

En sık hata budur. Bir kart grup 7'de, diğeri grup 1'deyse mesaj asla ulaşmaz. Her zaman iki kartın da başlangıçta aynı grup numarasına ayarlandığından emin ol.

Radyoyu açmayı unutmak (MicroPython)

Python'da radio.on() yazmazsan radyo kapalı kalır ve hiçbir şey gönderilmez. MakeCode'da radyo bloğunu kullanmak onu otomatik açar; Python'da açmak sana kalmıştır.

Sayı ile metni karıştırmak

radyo sayı gönder ile yollanan mesaj yalnız radyo sayı aldığında ile alınır; radyo metin gönder ise radyo metin aldığında ile alınır. Gönderdiğin türle aldığın tür aynı olmalı.

Ekranı hiç temizlememek

Kalbi gösterip ekranı temizlemezsen, bir sonraki mesaj geldiğinde eski görüntü kalır ve karışıklık olur. Kısa bir bekleme sonrası ekranı temizle eklemek işi düzeltir.

Güvenlik notu

Ders özeti

Kontrol soruları

  1. Radyo grubu ne işe yarar ve hangi sayı aralığındadır?
  2. İki micro:bit'in birbirini duyabilmesi için hangi ayar aynı olmalıdır?
  3. "Radyo mesaj aldığında" olayını kullanmak, "sürekli" içinde beklemeye göre neden daha uygundur?
  4. radyo sayı gönder 1 ile yollanan mesajı hangi blokla alırsın?
  5. MicroPython'da radyoyu kullanmadan önce hangi komutu çağırmalısın?

Cevaplar

  1. Radyo grubu, hangi kartların birbirini duyacağını belirleyen bir kanal numarasıdır; 0 ile 255 arasındadır. Yalnız aynı gruptaki kartlar birbirinin mesajını alır.
  2. Radyo grup numarası aynı olmalıdır. Farklı gruplardaki kartlar birbirini duymaz.
  3. Olay yalnız mesaj geldiği anda çalışır; kart boşuna beklemek yerine mesaj gelince hemen tepki verir. Bu, kodu daha düzenli ve verimli yapar.
  4. radyo sayı aldığında bloğuyla alırsın. Sayı ile gönderilen mesaj yalnız sayı alma bloğuyla yakalanır.
  5. radio.on() komutunu çağırmalısın. Ayrıca radio.config(group=...) ile grubu ayarlarsın.

Kaynak ve doğrulama notu

“Radyo ile Haberleşme” dersi için doğrulama odağı Radyo nasıl çalışır? ile Gönder ve al olayı 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

Pinler ve Harici Bileşenler: micro:bit'in altındaki pinleri kullanarak dış dünyaya bağlanmayı, buton, LED ve krokodil kablolarla küçük devreler kurmayı öğreneceğiz.

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.