ÇOCUKLARIN BİLGİ BANKASI KUMBARA DERGİSİ TÜRKİYE İŞ BANKASI’NIN ÇOCUKLARA ARMAĞANIDIR
KUMBARA DERGİSİ TÜRKİYE İŞ BANKASI’NIN ÇOCUKLARA ARMAĞANIDIR
Daha önce 2 LED’i sırayla yakıp söndürmüştük. LED sayısı arttıkça kodlarımızın sayısının da arttığını fark ettik. Döngüleri kullanarak LED’lerimizi daha kolay şekilde yönlendirebiliriz. Bu uygulamada döngü kullanarak 4 adet LED’i sırayla yakıp söndüreceğiz.
İhtiyaç Listesi:


Bu küçük detaydan sonra asıl kodumuza geçelim. Öncelikle değişkenler bölümüne giderek pin isimli bir değişken tanımlıyoruz. Sürekli tekrarla bloğunun içerisinde pin değerini 7’den başlatıyoruz. Dört adet LED’imiz olduğu için dörtlük bir döndü oluşturuyor ve döngü her döndüğünde o anki pin değerine göre (başlangıçta 7) ilgili LED’i 0.5 sn aralıklarla yakıp söndürüyor. Döngü sonunda pin değerini 1 azaltarak bir sonraki LED’e geçmesini sağlıyoruz.

İhtiyaç Listesi:


Bu uygulamada LED’lerimizin yanma ve sönmesi;
7, 6, 5, 4, 5, 6, 7, 6, 5, 4, 5, 6, 7… şeklinde devam eden bir sıra izliyorlar. Biz de algoritmamızı kurarken bu sıradan faydalanacağız. Sıralamaya dikkat edecek olursak ilk baştaki 7 hariç aşağıdaki gibi bir örüntü oluştuğunu görebiliriz.
Şimdi bu pin numaralarına bağlı LED’leri sırayla yakıp söndürecek iki farklı fonksiyon tanımlayalım. Bunun için Bloklarım bölümüne gidip Bir Blok Oluştur butonuna tıklayarak önce saga_git isimli sonra da sola_git isimli iki ayrı fonksiyon bloğu oluşturalım.
Sağa doğru giderken LED pin numaraları azalarak gideceği ve bunu 3 pin için yapacağımızdan dolayı 3 kez dönen ve her seferinde azalarak bir sonraki pine geçen bir döngü oluşturuyoruz.

Şimdi de sola doğru giderken kullanacağımız pin numaralarını oluşturmak ve ilgili LED’i yakıp söndürmek için 3 kez çalışan ve her seferinde 1 artarak bir sonraki pine geçen bir döngü oluşturalım.


Arduino Uno, pek çok farklı platform kullanılarak programlanabilmektedir. Bu platformlar arasında hem text tabanlı hem de blok tabanlı olanlar bulunmaktadır. Bu yazı dizisi içerisinde blok tabanlı programlama kullanılacaktır. Arduino programlamak için öncelikle bir uygulamaya ihtiyacımız var. Bizim kullanacağımız uygulama da mBlock 5.0 geliştirme ortamı olacak. mBlock ile hem kodlama yapabilir hem de kodları derleyerek karta yükleyebiliriz.
Arduino Uno, pek çok farklı platform kullanılarak programlanabilmektedir. Bu platformlar arasında hem text tabanlı hem de blok tabanlı olanlar bulunmaktadır. Bu yazı dizisi içerisinde blok tabanlı programlama kullanılacaktır. Arduino programlamak için öncelikle bir uygulamaya ihtiyacımız var. Bizim kullanacağımız uygulama da mBlock 5.0 geliştirme ortamı olacak. mBlock ile hem kodlama yapabilir hem de kodları derleyerek karta yükleyebiliriz.
mBlock programı hem online hem de offline olarak kullanılabilmektedir. Uygulamanın son güncel halini www.mblock.cc/en-us/download sitesinden indirerek kurabiliriz. Eğer uygulamayı online olarak kullanmak istersek de ide.mblock.cc adresinden ulaşabiliriz.
Kurulum işleminden sonra programı çalıştırdığımızda karşımıza oldukça tanıdık bir arayüz geleceğini göreceğiz. Sol tarafta bulunan Kuklalar ve Arkaplan bölümleri ve bunlara ait kod blokları Scratch 3.0 ile aynı yapıya sahip. İstersek bu uygulamada da Scratch 3.0 bilgilerimizle aynı uygulamaları geliştirebiliriz.

Burada bizi ilgilendiren ve farklı olan kısım ise Aygıtlar bölümü. İlk etapta Codey isimli aygıt eklenmiş durumda geliyor ama biz onu silip Arduino Uno’yu ekleyeceğiz. Bunun için de ekle butonuna tıklayarak açılan Aygıt Kütüphanesi penceresinden Arduino Uno’yu seçip Tamam butonuna tıklamamız gerekiyor.

Eğer Arduino Uno seçeneğinin üzerinde yeşil bir daire içerisinde aşağı ok işareti varsa (
) önce ona tıklayarak download edip sonrasında seçerek eklememiz gerekiyor.
Artık istediğimiz devrelerimizi kurup, Arduino Uno ile bağlantısını oluşturup kodlayarak çalıştırmaya hazırız.
İhtiyaç Listesi:
NOT: Arduino’dan +5v ve GND pinlerini breadboarda bağlayarak, ihtiyaç halinde buradan kullanmamız pratik bir çözüm olacaktır. Bazı örneklerde + ucu kullanmadığımızı göreceksiniz.

Burada hem aygıtımız hem kuklamız hem de arka planımız için kodlama yapabileceğimiz için önce kimi seçtiğimizden emin olmamız gerekiyor. Şimdi Arduino Uno’yu seçtiğimizden emin olalım.
Arduino kodlarken kullanabileceğimiz tek bir olayımız var, o da Arduino Uno başladığında olayı. Öncelikle olaylar kısmından bu bloğu alıp kod alanına sürükleyelim. Daha sonra LED’imizi sonsuza kadar açıp kapatacağımız için kontrol bölümünden sürekli tekrarla bloğu eklememiz gerekiyor. Şimdi de LED’imizi yakmak için 7. pinimize voltaj vermemiz gerekiyor. Bunun için Pin bölümünde bulunan sayısal giriş ayarla bloğunu ekleyerek pin numaramızı yazalım ve yakmak için yüksek (5v) ayarlamasını yapalım. 1sn bekletme bloğundan sonra yine aynı bloğu kullanarak bu kez söndürmek için düşük (0v) ayarlaması yapalım ve yine 1sn bekletelim.



Eğer sorunsuz şekilde bağlantı kurduysak, sırada kodumuzu Arduino kartımıza göndermek ve çalışmasını beklemek var. Bunun için Yükle butonuna basmamız ve gelen ekrandan hatasız yüklemeyi takip etmemiz gerekiyor.


LED’lerimizi aşağıdaki resimde gösterildiği gibi 7. ve 6. pinlerimize bağlayalım.
İhtiyaç Listesi:


Fiziksel ortamda devre tasarımı yaparken meydana gelen bazı hatalar sebebiyle devre elemanlarımıza zarar verebiliriz. İlk başlangıç seviyesindeysek bu risk daha da artacaktır. Bunun önüne geçmenin kolay yollarından biri de devre tasarımlarımızı bir simülasyon üzerinde denemek olabilir. Simülasyon ortamında denediğimiz ve bir sorunla karşılaşmadığımız uygulamalarımızı fiziksel ortamda sorunsuzca çalıştırabiliriz.
Farklı simülasyon uygulamaları olsa da biz bu yazı dizisinde TINKERCAD platformunu kullanacağız. Bu platforma web tarayıcımız üzerinden bu adresi kullanarak ulaşabiliriz.

Sisteme giriş yapabilmemiz için öncelikle bir kullanıcı tanımlaması gerekiyor. Sağ üst köşede bulunan HEMEN KATIL butonuna tıklayarak karşımıza gelen ekranlardaki bilgileri dolduruyor ve kendimize yeni bir kullanıcı tanımlıyoruz. Eğer Google hesabımız yoksa yeni bir hesap oluşturmalıyız.
1. Aşama: Ülke ve doğum tarihi seçimini yapıyoruz.

2. Aşama: Kullandığımız e-maili ve burada kullanacağımız şifreyi giriyoruz.

UYARI: Eğer 13 yaşından küçükseniz farklı bir ekran gelecek ve e-mail olarak ailenizden birine ait e-mail adresini vermeniz istenecek. Bu durumda e-mail sahibinin gelen e-mail üzerindeki Approve child’s account now linkine tıklayarak onay vermesi gerekecek. Aksi takdirse 14 gün sonra kullanıcı bilgileriniz geçersiz olacaktır.
Yeni kullanıcı belirleyip oturum açtığımızda karşımıza gelen ekrandan sol tarafta bulunan Circuits seçeneğini tıklıyoruz. Daha sonra Create New Circuit (Yeni Devre Oluştur) linkini tıklayarak uygulamamıza başlıyoruz.
İhtiyacımız olan tüm devre elemanlarını sağ tarafta bulunan Bileşenler panelinde bulabiliriz.

Kod Editör: Kod yazan ikona tıkladığımızda açılan ve kodlarımızı text tabanlı ya da blok tabanlı yazabileceğimiz alan.
Yapmamız gereken tüm devre malzemelerimizi ekrana sürükle bırak ile taşıyarak uygun devreyi kurmak ve kodumuzu yazarak Simülasyonu Başlat butonuna basmak.

İlk olarak ekranımıza bir adet breadboard, bir adet LED, bir adet direnç ve Arduino Uno kartımızı ekleyelim ve aşağıdaki devreyi kuralım. Pinlere dokunduğumuzda bağlantı için gerekli kabloların oluştuğunu ve istediğimiz gibi şekil verebildiğimizi görüyoruz. Ekrana taşıdığımız malzemeleri ekranın sol üst bölümünde yer alan döndürme ikonuna tıklayarak döndürebilir ve sil ikonuna tıklayarak da silebiliriz.


Devremize Arduino kartımızda bulunan 5V pininden +, GND pininden de – veriyoruz. Direncimizin değerini 220 Ω olarak değiştirelim. 5V (+) bağlantısını LED’in eğik olarak görünen uzun bacağına (+) bağladığımızdan emin olmalıyız. Direncimizi LED’in + ya da – bacağına bağlamanın önemi olmadığını bilmeliyiz.
Simülasyonu Başlat butonuna tıkladığımızda LED’imizin yandığını görebiliriz. Burada yaptığımız uygulamada kod yazmadık ve sadece Arduino kartımızdan devreye voltaj verdik. Şimdi bu devreyi kod ile nasıl kontrol edebiliriz ona bakalım. Buradaki LED’i kod ile yakıp söndürmek için öncelikle devre tasarımında küçük bir değişiklik yapıyoruz. Daha önce LED’e verdiğimiz + pinini Arduino kartımızda bulunan 7. pine bağlıyoruz.



Eğer elinizde bir Arduino Uno Seti yoksa şimdilik bu platform üzerinden basit uygulamalar geliştirerek kodlamasını öğrenebilirsiniz.
Bir su borusundan akan suyun hareketini bir iletkenden akan elektronların hareketine yani elektrik akımının akmasına benzetebiliriz. Borunun içerisinde akan şey sudur, buna karşın iletkenden akan ise elektronlardır. Su borusu içinden suyun akabilmesi için mutlaka bir basınç farkı gereklidir. Örneğin bir su pompası ile su basılmalıdır ki su borudan akabilsin. Benzer bir şekilde elektrik devresinden de akımın akması için mutlaka bir kuvvete ihtiyaç vardır. Bu kuvvet olmadığı takdirde serbest elektronlar hareket edemez yani elektrik akımı akmaz. Elektronları hareket ettiren kuvvete Voltaj diyoruz. Voltajın şiddet birimine Volt denir.
Su borusu örneğinden devam edecek olursak; boru ne kadar genişse su o kadar çok akacak, boru ne kadar dar ise o kadar az akacaktır. Direnci de buradaki boruya benzetebiliriz. Devreye uygulanan gerilim ile akım bir uçtan diğer uca ulaşıncaya kadar izlediği yolda birtakım zorluklarla karşılaşır. Bu zorluklar elektronların geçişini etkileyen kuvvetlerdir. İşte bu kuvvetlere Direnç denir. Direncin birimi ise Ohm’dur.
Direnç;
İletken bir cisimden geçen serbest elektron miktarıdır. Elektrik akımı, serbest elektronların iletken madde içinden akmasıdır. Elektrik akımının şiddet birimine Amper denir. Bir devreden elektrik akımının akabilmesi için o devrenin kapalı bir devre olması gerekir. Eğer devre açık olursa serbest elektronlar havadan geçemeyecekleri için elektrik akımı akmaz.



Şimdi basit bir örnek yapalım. Burada ilk iki rengin değerini yan yana yazdıktan sonra üçüncü rengin değeri kadar “0” koyuyoruz. Oluşan değer bize ohm (Ω) cinsinden sonucu veriyor. Bunu kilo ohm (kΩ) olarak yazmak için ise 1000’e bölmemiz gerekir.

Turuncu (3), Turuncu (3), Kahverengi (1), Altın (%5)
33 x 101 = 330 Ω


Üzerinden geçen akıma göre farklı bip sesleri çıkaran minik hoparlörlerdir. Hemen hemen her sesin kendine ait bir notası vardır. Notaların da her birine ait belirli bir frekansı vardır. Frekans arttıkça çıkan sesler tizleşir.
Farklı notalara ait frekans değerlerini buradaki listeden bakabilirsiniz.

Potansiyometre bir direnç türüdür. Diğer direnç türlerinden ayrılan en büyük farkı ise direnç değerinin değiştirilebilir olmasıdır. Potansiyometre genel olarak üç bacaklıdır. Bu bacakların ikisi iç yapısında sabit fakat üçüncü bacak ise iç yapısında hareketli bir yapıdadır. Bu hareketli yapı sayesinde sabit iki bacaktan değişen bir voltaj çıkışı alabilmek mümkün hale gelmektedir.
Potansiyometreler günlük hayatta birçok yerde karsımıza çıkmaktadır. Mesela evimizde kullandığımız fırının sıcaklık değerini ayarlamak içinde benzer bir sistem kullanırız.

RGB LED’ler, normal LED’lerden farklı olarak tek yapı içerisinde 3 farklı rengi (kırmızı, yeşil ve mavi) bir arada bulundurur. LED’lerin anot ve katot uçları olmasına karşın RGB LED’lerde üretim şekline göre anot (+) veya katot (-) bağlantıları ortak olarak bulunmaktadır.

LDR (Light Dependent Resistance) ortamdaki ışığın şiddetine göre üzerine düşen direnç değerini ters orantılı olarak ayarlayabilen optik sensördür. LDR’ler ışık şiddetine bağlı olarak değeri değişen dirençlerdir. Işık şiddetinin artması direnç değerinin düşmesine, ışık şiddetinin azalması ise direnç değerinin artmasına sebep olur.

Ortamın sıcaklığını ölçmeye yarayan LM35 sıcaklık sensörü analog çıkışlı bir sıcaklık sensörüdür. LM35 sıcaklık sensörü çıkış gerilimi sıcaklık ile doğru orantılı olarak değişir. Sıcaklık ölçüm aralığı -55 ile 150 derece arasında değişmektedir. 0.5 derece hassasiyetle ölçüm yapabilmektedir. Her bir derece için çıkış değeri 10mV değişim gösterir. LM35’in ölçüm yapılabilmesi için sensörün üzerinde yazıların bulunduğu tarafın sol kısmına (+) sağ kısmına GND bağlanır. Orta kısımda bulunan bacak analog çıkış verdiği için Arduino kartı üzerinde bulunan analog giriş pinlerine bağlanır.

Bu sensör, robotik projelerde Arduino ile kullanılan en popüler sensörlerden birisidir. Kullanımı oldukça kolaydır ve program kısmı doğru olduğu sürece 2cm – 400cm arası uzaklıkları düzgün bir şekilde ölçebilmektedir. Çalışma prensibi ise şu şekildedir: Sensörün Trig pininden uygulanan sinyal 40 kHz frekansında ultrasonik bir ses yayılmasını sağlar. Bu ses dalgası herhangi bir cisme çarpıp sensöre geri döndüğünde, Echo pini aktif hale gelir. Biz ise bu iki sinyal arasındaki süreyi ölçerek yani sesin yankısını algılayarak cismin sensörden uzaklığını tespit edebiliriz.


Kullanacağımız ekran 16×2 LCD ekran. Ekranın 16×2 olarak adlandırılması LCD’nin 2 satıra sahip olduğu ve satır başına 16 karakter görüntüleyebileceği anlamına geliyor. Yani ekran aynı anda 32 adet karakter görüntüleyebiliyor. Bunun dışında kaydırma yaparak 32 karakterden fazlasını da görüntüleyebilirsiniz.
I2C protokolü olmadan Arduino ‘da bu iş gerçekten çok zahmetli olabilmektedir. Biz uygulamalarımızda I2C modülü olan LCD ekran kullanacağız. Modül üzerinde 4 adet pin bulunuyor. (+) ve GND dışında kalan pinler SDA – A4 pinine ve SCL – A5 pinine bağlanıyorlar.

Kumbara Dergisi olarak sizleri kodlama alanında bir seviye daha ilerletecek yeni bir eğitim serisine başlıyoruz: “Arduino ile Kodlama”
Scratch 3.0 ile kodlama dünyasına giriş yaptınız, kendi animasyonunuzu, oyununuzu kurgulamayı ve kodlamayı öğrendiniz. Artık arkadaşlarınızla birlikte kendi yaptığınız oyunları oynayabilir veya kodladığınız animasyonları izleyebilirsiniz. Şimdi bu bilgilerinizi “Arduino ile Kodlama” eğitimleri sayesinde pekiştirebilir ve geliştirebilirsiniz. Arduino ile kendi cihazlarınızı yapabilir, günlük hayatta sürekli karşılaştığınız sorunların aslında basitçe üstesinden gelebileceğinizi görebilirsiniz.
Bu eğitim serisinde, “Arduino Nedir?”, “Arduino Nasıl Kodlanır?”, “Temel Elektronik”, “Devre Elemanları”, “TinkerCad Kullanımı”, “Arduino ile Devre Elemanlarının Kodlaması” ve “Arduino ile Proje Geliştirme” gibi konular öğreneceksiniz.
15 hafta sürecek yeni eğitimimiz, severek ve eğlenerek öğrenebilmeniz için Bahçeşehir Üniversitesi tarafından yaş grubunuza uygun şekilde tasarlandı.


Arduino uzun yıllardır kodlama eğitiminde ve birçok projede yaygın olarak kullanılan bir karttır. Bu kartın üzerindeki çipe birçok farklı programlama dili kullanarak ne zaman ne yapması gerektiğini söyleyebiliriz.
Arduino denildiğinde aklımıza pek çok farklı kart gelmekte. Bu kartlar kendi aralarında birçok farklı özelliğe ve yeteneğe sahiptirler. Maliyet ve performans açısından en yaygın olarak kullanılan çeşidi ise Arduino Uno dur. Bizim de tercih edeceğim model Arduino Uno olacak.
Arduino Uno ile LED yakıp söndürmek gibi en temel uygulamalardan drone, robot, akıllı ev otomasyonu, hırsız alarm sistemi, park sensörü gibi daha gelişmiş projeler de yapılabilmektedir.

Arduino Uno, gücünü USB üzerinden veya adaptör girişinden alabilir. Yani bilgisayarınızın USB girişinden veya bilgisayarınızdan bağımsız olarak bir adaptör veya bataryadan güç elde edebilirsiniz. Doğrudan Vin (+) ve GND (-) pinlerinden de besleyebiliriz.
Harici güç kaynağı olarak 6-20V arası limit değerleri bulunmaktadır. Önerilen harici besleme gerilimi ise 7-12 V arasındadır. Bunun sebebi 7V altındaki gerilimin stabil çalışmayıp, 12V üzeri gerilimin de aşırı ısınma yapabilecek olmasıdır. Kart üzerinde bulunan regülatör sayesinde 7-12V arası gerilim 5V’a düşürülür ve kart bu şekilde çalışır.
Arduino Uno üzerinde 14 adet dijital, 6 adet analog giriş/çıkış pini bulunmaktadır. Bu pinlerin tamamının lojik seviyesi 5V’dur. Her pin maksimum 40mA giriş ve çıkış akımı ile çalışır. Bazı pinlerin farklı özellikleri bulunmaktadır.
Bazı özel pinler:
PWM- 3, 5, 6, 9, 10 ve 11: Bu pinler PWM (önlerinde ~ işaretli olan pinler).
Analog- A0, A1, A2, A3, A4, A5: 6 adet analog giriş pini bulunmaktadır. Bu pinler dijital giriş ve çıkış için de kullanılabilir. Pinlerin ölçüm aralığı 0-5V’tur.
I2C- A4 veya SDA pini ve A5 veya SCL pini: I2C haberleşmesi için bu pinler kullanılır. LCD uygulamasında A4 ve A5 pinlerini kullanacağız.

Görsel kaynağı: Wikipedia
İngiltere’de kömür madenlerinde biriken sular ciddi bir sorundu. Bunun için Thomas Savery buhar gücüyle çalışan bir su pompası icat etti. İcadının küçük bir modelini 14 Haziran 1669’da Kraliyet Derneği’nde tanıttı. Ne var ki pek verimli olmayan makine çok kullanılmadı. Ancak kendinden sonra gelen makineler için önemli bir temel oluşturdu.