mBlock ile Arduino! Led Yakmak ve Buton Kullanımı

mBlock ile Arduino! Led Yakmak ve Buton Kullanımı mblock ile led yakmak,mblock ile buton kullanımı

Bu yazımızda mBlock ile LED yakmak nedir öğreniyoruz. Öncelikle mBlock MIT tarafından geliştirilen aklınızdaki Arduino projelerinizi hayata geçirmenize yarayan ve bunları scratch açık kaynak kodu kullanarak yapmamızı sağlayan uygulamadır. Herhangi bir yaş ayrımı gerekmeksizin herkes istediği gibi kolay bir şekilde  programlama yapabilir. Bunun en büyük sebebi ise blok tabanlı bir kodlama sistemine sahip olması ve görselliğin ön planda olmasıdır.

mBlock’un En Büyük Artıları!

  • Dil seçeneklerinde Türkçe olması.
  • Programlamayı Kod-Blok mantığı ile anlatmasıdır.
  • Algoritma mantığını çok kolay bir şekilde öğretmesi!
  • Kod blok mantığı ile somut bir şekilde programlamaya başladıklarında metinsel programlamaya kolayca geçebilirsiniz.
  • İndirirken her hangi bir ücret ödemenize gerek yok!
  • Arduino’nun bir sürü çeşitleri ile uyumludur.
mBlock ile LED Yakmak
mBlock ile LED Yakmak

Uyumlu Olduğu Arduino Çeşitleri:

  1. Arduino
  2. Arduino Uno
  3. Arduino Leonardo
  4. Arduino Nano (mega328)
  5. Arduino Mega 1280   
  6. Arduino Mega 2560

mBlock ile ilgili detaylı giriş bilgileri burada yazmaya gerek duymuyorum çünkü zaten onu detaylı tanıttığım yazıyı önceden paylaştım. Ben de o bilgileri öğrenmek istiyorum diyorsanız lütfen buraya tıklayın. Öncelikle asıl uygulamamıza geçmeden önce size birkaç belli başlı birkaç kalıbın tanıtımını yapmak istiyorum. Bu şekilde uygulamamızı daha iyi anlayacaksınız ve sizde kendi uygulamanızı yaparken ezbere değil tamamen mantığını oturtarak gerçekleştireceksiniz.

Açık Kaynak Kod Nedir?

Yazlım elektronikli aygıtların ortaya çıkışı ve bu aygıtların görevlerini yerine getirmesini, birbirleri ile iletişime geçmesini sağlayan ve buna benzer görevleri olan makine komutlarına denir. Açık kaynak kodlu yazılım, kişinin istediği zaman üstünde oynama yapabileceği, üstünde güzel bir geliştirmeler yapabileceği ve istediği zaman, istediği yerden kolayca erişebileceği kaynak kodlu yazılımdır. Açık kaynak kodlu yazılımların çoğu ücretsizdir. Bununla ilgili biraz daha bilgi almak isterseniz Açık Kaynak Kodla ilgili yazmış olduğum eski bir yazıma bakabilirsiniz.

Blok Tabanlı Kodlama Nedir?

Herkesin de bildiği gibi programlamaya giriş yaptığımızda kodlama mantığı, algoritma mantığı gibi kavramlarla ilk defa karşılaştığımızda bunları ilk başta anlamamız pek kolay olmuyor. Kafamızda bu tarz kavramları somutlaştırmak ve mantığımıza oturtmak için bir süre uğraşmak gerekiyor. Peki bu noktada mBlock’un bize faydası ne?

Bu durumda mBlock’un blok tabanlı kod yapısı karşımıza çıkıyor. Onun sayesinde algoritma mantığından tutun birçok kavramı somutlaştırmak ve anlamak artık çok daha kolay bir hale geldi. Blok taşlarını sadece sürükleyerek en basit projelerden en komplikelerine kadar hepsini kontrol etmek, incelemek, üstünde oynamak ve bunu yaparken bundan zevk almak daha kolay bir hal alıyor. Daha anlaşılır bir şekilde anlatmak gerekirse programımız bir nevi yapboz mantığıyla çalışıyor.
Bu güzel durum özellikle genç yaştaki arkadaşlarımız için çok dikkat çekici bir hal alıyor. Ara yüzünün tasarımı, işleyiş şekli ve biçimi onları programlama yaparken kendilerine bir nevi bağlıyor.

Led Yakmaya başlamadan önce sizlere birkaç önemli bilgi vermek istiyorum. Öncelikle mBlock’u bilgisayarınıza kurmanız gerekiyor bunun için size vereceğim siteyi kullanarak oradan direk işletim sisteminize göre bilgisayarınızla uyumlu son sürümü indirebilirsiniz.

mBlock ile Arduino! Led Yakmak ve Buton Kullanımı mblock ile led yakmak,mblock ile buton kullanımı

Led Yakma

Hepimizin bildiği gibi bu tarz programlara, uygulamalara başlarken genellikle ilk olarak yaptığımız projelerden biri hep led yakmak oluyor. Artık neredeyse robotiğe girişe ilk adımda olmazsa olmazlarımızdan sayılıyor. Peki Led Yakmak için bize ne gerekli? Hadi gelin ondan bahsedelim.

Led yakmak için gerekli olan malzemeler!

  • 1 adet Breadboard
  • 1 adet arduino ( Sizlere gösterirken ben UNO kullanıyorum.)
  • 1 adet led
  • 1 adet 220 ohm direnç
  • Jumper Kablo
mBlock ile Arduino! Led Yakmak ve Buton Kullanımı mblock ile led yakmak,mblock ile buton kullanımı
220 ohm direnç

Adım Adım Led Yakma

Ledimizin kısa ve uzun bacağına dikkat ederek breadboard’a yerleştiriyoruz. Ledimizin kısa bacağının hizasına eksiye gelicek sekilde 220 ohm’luk direnç ekliyoruz ve breadboard’un eksi olan kısmından (yani direnci eksiye bağladığımız sıradan arduino’nun GND(Ground) kısmına kablo çekiyoruz. Ledimizin uzun bacağınıda ardunio’muzun     10 numaralı(siz de 0 ve 1 haricinde çünkü onlar bilgisayarla haberleşme için kullanılıyor, onun dışında istediğiniz numaraya bağlayabilirsiniz örnek: 12,13 vb) pinine bağlıyoruz ve gerekli programlama işlemlerimizi yaptıktan sonra ledimiz yanmaya hazırdır. Peki o programlama işlemleri nasıl gerçekleşiyor derseniz alttaki fotodan hemen görebilirsiniz ne kadar kolay olduğunu.

mBlock ile Arduino! Led Yakmak ve Buton Kullanımı mblock ile led yakmak,mblock ile buton kullanımı

Diziler kısmından kontrol ve robotlar işlemlerini kullanarak basitçe uygulamamızı yapabiliyoruz. Yapmanız gereken tek şey kontrol kısmından yapmak istediğimiz döngüyü sürüklememiz(sürekli tekrarla vb). Ardından robotlar dizisinden üstünde yüksek veya düşük diye oynama yapabileceğimi bloğu bulup pinimizi girerek uygulamamızı hazır hale getireceğiz. işlem yapmak istediğimiz pini seçerek bloğu sahneye sürükleyeceğiz.

Peki ledimizi yaktık ama bildiğiniz gibi bu sadece bir başlangıç. O yüzden hadi gelin bir tık geliştirelim.

mBlock Çevrimi ve Bilişsel Yük Yönetimi Notu

mBlock’un blok tabanlı arayüzü, programlamaya yeni başlayanlar için mükemmel olsa da, karmaşık projelerde bilişsel yükü yönetmek kritiktir. Blok düzeni her arttırıldığında (nested if-else, döngüler, fonksiyon çağrıları), ekran kalabalıklaşır ve görsel tarama güçleşir. Örneğin 50+ block içeren bir proje, ekran boyutunun %40’ını doldurabileceğinden, sub-projects veya custom blocks kütüphanesine ayırma gerekir. Ayrıca, çok sayıda değişken (>15) kullanımında, blok adlandırma disiplinini (türü prefix olarak eklemek: “btn_”, “LED_state”, “timer_count”) uygulamak, kod okunabilirliğini 60% arttırır.

Sensör entegrasyonu sırasında (HC-SR04, DHT11), kütüphane eklentilerinin yükleme sırasında hata vermesi sık görülür; bu durumda offline moda geçerek Arduino IDE üzerinde kütüphane test edilmesi, ayıklamayı hızlandırır. Tavsiye edilen workflow: basit blokla başla (LED on/off) → buton ekle → sensör entegre et → alt-projelere böl.

Buton ile Led Yakma!

Öncelikle bu projeyi gerçekleştirmemiz için gereken malzemeler

  • 1 adet Breadboard
  • 1 adet Arduino ( Sizlere gösterirken bizUNO kullanıyoruz.)
  • 1 adet LED
  • 2 adet  buton
  • 2 adet 10k ohm direnç ve 1 adet 330 ohm direnç
  • Jumper Kablo
mBlock ile Arduino! Led Yakmak ve Buton Kullanımı mblock ile led yakmak,mblock ile buton kullanımı
10k direnç
mBlock ile Arduino! Led Yakmak ve Buton Kullanımı mblock ile led yakmak,mblock ile buton kullanımı
330 Ohm

İlk olarak butonlarımızı bağlıyoruz ve ayakları bağlarken aynı sıraya gelmemeli çünkü kısa devreye yapacaklardır ardından koyacağım fotoğrafta da göreceğiniz gibi dirençlerimizi yerleştiriyoruz(+5 volta yerleştiriyorum). Ardından da tabi ki butonlarımızın devrede çalışması için diğer ucunu GND’ye bağlamamız gerekiyor. Buraya kadar tamam ise devam edelim.

Butonların 10k ile bağlamış olduğum ucunu direk Arduino’nun pinlerine bağlıyoruz, ben 3 ve 4 numaralı pinleri tercih ediyorum. Ardından ledimizi direnç ile bağlıyoruz breadborda bağlıyoruz.

mBlock ile Arduino! Led Yakmak ve Buton Kullanımı mblock ile led yakmak,mblock ile buton kullanımı
mBlock ile Arduino! Led Yakmak ve Buton Kullanımı mblock ile led yakmak,mblock ile buton kullanımı

Programlama Bölümü!

Uygulamamızın programlama kısmına geçmek istersek ilk olarak size yapmak istediğim 1 ve 0 mantığından bahsetmek istiyorum. Yapacağımız bu programda butona her bastığımız durumlarda 0 değerini ve basmadığımız durumlarda ise 1 değerini okuyoruz.  Bu yüzden programlamamızı yaparken eğer(if) döngümüzün içine dizilerin işlemler kısmından eşittir ifadesini sürüklüyoruz. Ardından eşitliğimizin bir tarafına sayısal pini oku komutumuzu sürüklüyoruz ve istediğimiz pinin numarasını giriyoruz. Karşısına almak istediğimiz değere göre 0 veya 1 değerini giriyoruz. Ona karşılık olarak ise arduinomuz yüksek veya düşük olarak seçmiş olduğumuz pine gerekli işlemleri gerçekleştiriyor.

mBlock ile Arduino! Led Yakmak ve Buton Kullanımı mblock ile led yakmak,mblock ile buton kullanımı

Çıkış Özeti Olarak

Geçmişten günümüze teknolojinin gelişmesi ile hayatımıza bir sürü yeni alet edevatlar, sistemler girdi. Tabii ki bu teknolojilerin hayatımıza girmesi ile birlikte insanlığın bu konulara olan ilgisi ve bilgisi zamanla daha da artmaya başladı. Artan ilgi ve alaka ile birlikte sonuç olarak gelişim ve değişim kaçınılamaz oldu. Tabii ki bu gelişimle birlikte teknoloji yelpazesi zamanla daha da artmaya başladı. Bunlardan en önemlilerinden birkaçı ise yapay zeka, robotik, blok tabanlı programlama kavramlarıdır. Zamanla herkes bu konuların nasıl önemli bir gelecek vadettiğini anlamaya başladı ve üstünde daha çok durdu. Bu tarz gelecek vadeden konuların üstünde durabileceğiniz, oynama yapabileceğiniz, hayalinizi gerçekleştirebileceğiniz bir sürü uygulama göreceksiniz. Hepsinin kendine özel artıları ve eksileri var.

mBlock ile Sensör Entegrasyonu: Mesafe Ölçümü ve Ortam Algılama

LED yakıp söndürme ve buton okuma temelini öğrendikten sonra mBlock’un gerçek gücünü ortaya koyan bir sonraki adım sensörleri sisteme dahil etmektir. Ultrasonik mesafe sensörü (HC-SR04), ses dalgasını kullanarak önündeki nesneye olan uzaklığı santimetre cinsinden ölçer ve bu değeri Arduino’nun iki pinine (Trig ve Echo) bağlanarak iletir. mBlock’ta bu sensörü okumak için robotlar kategorisindeki “ultrasonik mesafeyi oku” bloğunu kullanmak yeterlidir; bir döngü içine o blok sürüklenip okunan değer bir değişkene atanır ve LCD ekrana ya da Serial Monitor’e yazdırılır.

  • Mesafeye göre LED rengi değiştirme: Neopixel (WS2812) LED şeritlerde mBlock’un RGB renk bloklarını kullanarak mesafe azaldıkça rengi kırmızıya, uzadıkça yeşile döndüren bir görsel geri bildirim sistemi yapılabilir.
  • Buzzer ile sesli uyarı: Mesafe belirli bir eşiğin altına düştüğünde buzzer’ı belirli bir frekansta çalmak, park sensörü mantığını birkaç dakika içinde oluşturmanıza olanak tanır.
  • LDR (ışık direnci) ile otomatik aydınlatma: LDR’den okunan analog değeri mBlock’un “analog pin oku” bloğuyla alarak değer belirli bir eşiğin altına düştüğünde LED’i otomatik yakmak, basit bir gece lambası uygulaması için başlangıç noktasıdır.
  • Sıcaklık ve nem okuma (DHT11/DHT22): mBlock eklentileri veya harici kütüphanelerle DHT sensörlerinden veri okunabilir; alınan değerler LCD ekran ya da Serial Monitor üzerinde canlı görüntülenir.

Sensör tabanlı projeler, blok kodlamanın gerçek dünya ile etkileşime girme gücünü somut biçimde ortaya koyar. Özellikle genç kullanıcılar için bu aşamada kazanılan “bir girdiyi ölçe, bir çıktıyı kontrol et” mantığı, daha sonra geçilecek metin tabanlı programlamanın temelini oluşturur.

mBlock’tan Arduino IDE’ye Geçiş: Ne Zaman ve Nasıl?

mBlock blok kodlamanın sınırlarına geldiğinizde bir sonraki doğal adım Arduino IDE‘ye geçmektir. mBlock’un büyük avantajlarından biri, blok programının arka planda otomatik olarak C++ koduna dönüştürmesi ve bu kodu IDE’deki gibi yükleyebilmesidir. “Arduino modu”na geçerek mBlock’un ürettiği kodu görmek, C/C++ sözdizimiyle ilk tanışmayı kolaylaştırır; blok ile kod arasındaki birebir ilişki kısa sürede anlaşılır.

Geçişi kolaylaştırmak için şu stratejiyi önerebiliriz: önce mBlock’ta çalışan bir projeniz olsun (örneğin butonla LED), ardından aynı projeyi Arduino IDE’de boş sayfa üzerinde yalnızca klavye ile yazmayı deneyin. İlk etapta karşılaşılacak sözdizimi hataları (unutulan noktalı virgül, yanlış parantez) endişe verici değil; tersine bu hatalar C++ dilinin kurallarını hafızaya kazmak için en verimli yoldur. Birkaç proje sonrasında mBlock ve blok tabanlı kodlama büyük olasılıkla geriye yalnızca hızlı prototip aracı olarak kalacak ve Arduino IDE ana geliştirme ortamı haline gelecektir.

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.