🎓 mBlock nedir (Scratch ve Arduino birleşimi) Test 2 - Ders Notu
Bu ders notu, mBlock'un temel kavramlarını, Scratch ve Arduino ile olan ilişkisini, programlama mantığını ve donanım kontrolünü anlamanıza yardımcı olacak temel bilgileri içerir. Testte karşılaşabileceğin ana konuları sade bir dille özetledik.
📌 mBlock Nedir?
mBlock, Scratch tabanlı görsel bir programlama dilidir. Özellikle robotik ve fiziksel programlama alanında Scratch'in yeteneklerini Arduino gibi donanımlarla birleştirerek, kodlamayı somut projelere dönüştürmeyi sağlar.
- Görsel Programlama: Renkli blokları sürükle bırak yöntemiyle kod yazmayı kolaylaştırır.
- Scratch Tabanlı: Scratch'in basit ve kullanıcı dostu arayüzünü kullanır, bu sayede Scratch bilenler mBlock'a kolayca adapte olabilir.
- Donanım Desteği: Arduino, Makeblock robotları ve diğer birçok elektronik bileşenle etkileşim kurabilir.
- Eğitici Araç: Çocukların ve yeni başlayanların kodlama, robotik ve elektronik dünyasına adım atmaları için mükemmel bir platformdur.
💡 İpucu: mBlock, hayallerinizdeki robotu veya akıllı cihazı kodlamak için bir köprü görevi görür. Hem yazılımı (kodlama) hem de donanımı (elektronik) aynı anda öğrenmenizi sağlar.
📌 mBlock ve Scratch İlişkisi
mBlock, Scratch'in bir uzantısı gibi düşünülebilir. Temel mantık, bloklar ve arayüz çok benzerdir, ancak mBlock donanım kontrolü için ek özellikler sunar.
- Benzerlikler:
- Blok tabanlı kodlama arayüzü.
- Olay tabanlı programlama (tıklama, tuşa basma gibi olaylara tepki verme).
- Kuklalar ve sahnelerle etkileşim.
- Döngüler, koşullar, değişkenler gibi temel programlama yapıları.
- Farklar (mBlock'un Ekledikleri):
- Arduino, Makeblock kartları gibi fiziksel donanımları programlama yeteneği.
- Sensörlerden (ısı, ışık, mesafe vb.) veri okuma blokları.
- Aktüatörleri (LED, motor, servo motor vb.) kontrol etme blokları.
- Seri port iletişimi gibi donanım odaklı özellikler.
⚠️ Dikkat: Scratch daha çok animasyon, oyun ve hikaye oluşturmaya odaklanırken, mBlock bu yetenekleri fiziksel dünyayla etkileşime geçirmek için donanım desteği ekler.
📌 mBlock ve Arduino İlişkisi
Arduino, fiziksel dünyayı algılayabilen ve ona tepki verebilen elektronik projeler oluşturmak için kullanılan açık kaynaklı bir mikrodenetleyici kartıdır. mBlock, bu Arduino kartlarını görsel bloklarla programlamayı sağlar.
- Arduino Kartı: mBlock içinde programlayabileceğin bir beyin gibidir. Sensörlerden bilgi alır, bu bilgiyi işler ve aktüatörlere komut gönderir.
- Pinler: Arduino kartı üzerindeki küçük metal bağlantı noktalarıdır.
- Dijital Pinler: Sadece AÇIK (HIGH - 1) veya KAPALI (LOW - 0) sinyallerini algılar veya gönderir (örn: LED yakıp söndürme, buton okuma).
- Analog Pinler: Geniş bir değer aralığını (örn: 0-1023) okuyabilir veya gönderebilir (örn: ışık sensörü okuma, motor hızı ayarlama).
- Önemli Bileşenler:
- Sensörler (Giriş): Ortamdan veri toplayan cihazlar (örn: Ultrasonik mesafe sensörü, ışık sensörü, sıcaklık sensörü).
- Aktüatörler (Çıkış): Elektrik sinyallerini fiziksel harekete veya etkiye dönüştüren cihazlar (örn: LED, motor, servo motor, buzzer).
💡 İpucu: mBlock'ta Arduino'yu programlarken, kartın hangi pinine hangi sensör veya aktüatörün bağlı olduğunu doğru bilmek çok önemlidir. Yanlış bağlantı projenin çalışmamasına neden olabilir.
📌 mBlock Programlama Temelleri
mBlock'ta programlama, Scratch'teki gibi blokları bir araya getirerek yapılır. İşte bazı temel blok kategorileri ve işlevleri:
- Olaylar Blokları (Sarı): Kodun ne zaman başlayacağını veya belirli bir olaya nasıl tepki vereceğini belirler (örn: "yeşil bayrağa tıklanınca", "boşluk tuşuna basılınca").
- Kontrol Blokları (Turuncu): Kodun akışını düzenler. Tekrarlamalar (döngüler) ve koşullu ifadeler (eğer-ise) bu kategoriye girer.
- Döngüler: Bir komut bloğunu belirli bir sayıda veya bir koşul sağlanana kadar tekrar etmeyi sağlar (örn: "10 defa tekrarla", "sürekli tekrarla").
- Koşullu İfadeler: Belirli bir koşul doğruysa bir eylemi, yanlışsa başka bir eylemi gerçekleştirmeyi sağlar (örn: "eğer ... ise ... değilse ...").
- Operatörler Blokları (Yeşil): Matematiksel işlemler ($+$, $-$, $\times$, $\div$) ve karşılaştırmalar ($<$, $>$, $=$) yapmak için kullanılır. Mantıksal operatörler (ve, veya, değil) de buradadır.
- Değişkenler Blokları (Turuncu-Koyu): Bilgiyi depolamak ve daha sonra kullanmak için kullanılır. Bir sayı, metin veya doğru/yanlış değeri tutabilir (örn: "puan", "sayaç").
- Robot Blokları (Pembe/Mor): Arduino veya diğer robotik kartlara özel komutları içerir (örn: "dijital pini yüksek yap", "servo motoru 90 dereceye ayarla", "ultrasonik sensör oku").
⚠️ Dikkat: Her blok bir komuttur. Blokları doğru sırayla birleştirmek, programın istediğiniz gibi çalışmasını sağlar. Algoritma (adım adım çözüm) mantığını iyi anlamak önemlidir.
📌 Donanım Kontrolü ve Örnekler
mBlock ile donanım kontrolü, fiziksel dünyayla etkileşim kurmanın en heyecan verici kısmıdır. İşte sıkça kullanılan bazı bileşenler:
- LED (Light Emitting Diode): Işık yayan diyot. Dijital pinler aracılığıyla açılıp kapatılabilir.
- mBlock bloğu: "dijital pini (pin numarası) (yüksek/düşük) yap"
- Buton: Bir dijital pinden giriş almak için kullanılır. Basıldığında bir değer (genellikle DÜŞÜK veya YÜKSEK) gönderir.
- mBlock bloğu: "dijital pini (pin numarası) oku"
- Ultrasonik Mesafe Sensörü: Ses dalgaları göndererek bir nesnenin uzaklığını ölçer.
- mBlock bloğu: "ultrasonik sensör (tetik pin) (eko pin) uzaklığı oku"
- Servo Motor: Belirli bir açıya ayarlanabilen motorlardır (genellikle 0-180 derece).
- mBlock bloğu: "servo motoru (pin numarası) (açı) dereceye ayarla"
💡 İpucu: Sensörler genellikle "giriş" elemanlarıdır çünkü çevrelerinden bilgi alırlar. Aktüatörler ise "çıkış" elemanlarıdır çünkü bir eylem gerçekleştirirler veya bir tepki verirler.
📌 mBlock Çalışma Modları: Canlı ve Yükleme
mBlock'un iki temel çalışma modu vardır ve bunlar kodunuzun Arduino kartında nasıl çalıştığını belirler:
- Canlı Mod (Live Mode):
- Bilgisayarınızdaki mBlock yazılımı ile Arduino kartı arasında sürekli bir iletişim vardır.
- Kodunuz bilgisayarda çalışır ve bilgisayar, USB kablosu aracılığıyla Arduino'ya komutlar gönderir.
- Değişiklikleri anında görebilirsiniz, hata ayıklama için kullanışlıdır.
- Bilgisayar bağlantısı kesildiğinde Arduino çalışmayı durdurur.
- Yükleme Modu (Upload Mode):
- Kodunuz Arduino kartına doğrudan yüklenir ve kartın belleğine kaydedilir.
- Yükleme tamamlandıktan sonra bilgisayar bağlantısı kesilse bile Arduino, yüklenen kodu bağımsız olarak çalıştırır.
- Projeyi taşınabilir hale getirmek veya bilgisayardan bağımsız çalıştırmak için idealdir.
- mBlock, görsel blokları Arduino'nun anlayacağı C++ koduna dönüştürür ve bu kodu karta yükler.
⚠️ Dikkat: Bir projeyi bilgisayardan bağımsız çalıştırmak istiyorsanız (örn: robotunuzu prize takıp çalıştırmak), kodu "Yükleme Modu"nda Arduino'ya yüklemeniz gerekir. "Canlı Mod" sadece bilgisayar bağlantısı varken çalışır.