Arduino

Herkese Merhaba

Arduino ile uygulama geliştirmek isteyenler için başlangıç seviyesinde konu hakkındaki bilgilerimi sizlerle paylaşmak istiyorum.
Öncelikle Arduino ile uygulama geliştirmek isteyenlerin temel yazılım bilgisine sahip olması gerekiyor.Yazılım bilgisine sahipseniz eğer kod yazımı bakımından oldukça basit olduğundan çok seveceğinizi düşünüyorum.Ayrıca arduino hakkında internet üzerinden ve kitaplardan çok fazla bilgiye ulaşabilirsiniz.Kendi uygulamalarınızı geliştirmeye başladığınızda bunun sizi motive edeceğini göreceksiniz.
Arduino uygulamaları için sadece bilgisayar yeterli değil.Uygulamaları gerçekleştirirken Arduino kartları, sensörler ve componentlere ihtiyacınız olacak.Şuan elinizde yoksa bile blogdaki paylaşımların size yardımcı olacağını düşünüyorum.Hadi başlayalım.

Arduino Nasıl Temin Edebilirim?
Arduino ve componentleri alabileceğiniz bir kaç link bırakıyorum.Buralardan kolaylıkla temin edebilirsiniz.

NOT:Malzemelerinizi temin edene kadar online olarak bu işlemleri yapabilirsiniz.Mutlaka bakmanız gereken bir link bırakıyorum. Online Arduino

Arduino'yu Nerede Yazacağım?
Uygulamalarımızı Arduino IDE üzerinde yazacağız.Bunun için yapmanız gerekenler bu şekilde;
  • İlk olarak https://www.arduino.cc/en/Main/Software bağlantısına tıklıyoruz.Karşınıza aşağıda görmüş olduğunuz ekran geliyor.Sağ taraftaki sürümlerden ilgili Arduino IDE sürümünü tıklıyorsunuz.

  • Bu işlemlerden sonra karşınıza aşağıdaki ekran geliyor ve size bağış yapmak isteyip istemediğinizi soruyor.
  • Bağış yapmadan indirmek için "JUST DOWNLOAD" bölümünü seçerek işleminizi tamamlayabilirsiniz.
  • İndirme işlemleri tamamlandıktan sonra uygulamayı açtığınızda karşınıza kodlarınızı yazacağınız ekran geliyor.

Arduino hakkında yeterli bilgiyi edindikten sonra kaldığımız yerden devam edeceğiz.

Arduino Nedir?

  • Arduino bir G/Ç kartı ve Processing/Wiring dilinin bir uygulamasını içeren geliştirme ortamından oluşan bir fiziksel programlama platformudur.
  • Yazılımsal ve donanımsal olarak tamamen açık kaynaklı ve özgür olmasından ötürü, isteyenler Arduino'nun gelişmesine katkı sağlayabilir.
  • Arduino tek başına çalışan interaktif nesneler geliştirmek için kullanılabileceği gibi bilgisayar üzerinde çalışan yazılımlara da bağlanabilir.
  • Hazır üretilmiş kartlar satın alınabilir veya kendileri üretmek isteyenler için donanım tasarımı ile ilgili bilgiler mevcuttur.
Arduino ile Neler Yapabilirim?

  • Sensörlerden gelen verileri kullanabilirsiniz.
  • Analog ve dijital girişler sayesinde bu tür verileri işleyebilirsiniz.
  • Mikrodenetleyicileri kolaylıkla programlayabilirsiniz.
  • Dış dünyaya çıktılar üretebilirsiniz.
  • Çevresiyle etkileşime girebilen sistemler tasarlayabilirsiniz.
  • Kartın üzerinde projenizi deneme imkanı bulabilirsiniz.
Arduino Hangi Amaçlarla Kullanılmaktadır?

  • Hobi
  • İnsansız Hava Araçları
  • Otomasyon Sistemleri
  • Robotik Uygulamalar
  • Endüstriyel Alanlar
Arduino Modelleri
Arduino'nun bir çok çeşidi vardır.Yapacağınız projeye göre kullanacağınız Arduino çeşitlilik gösterir.Bu çeşitler fonksiyonlarına göre değişiklik arz eder.Örneğin uzaktan haberleşme içerecek bir uygulamada Bluetooth yada GSM Shield kullanabilirsiniz.

  1. Arduino Uno
  2. Arduino Yun
  3. Arduino Due
  4. Arduino Tre
  5. Arduino Micro
  6. Arduino Mini
  7. Arduino Mega
  8. Arduino Leonardo
  9. Arduino Esplora
  10. Arduino Pro
  11. Arduino Pro Mini
  12. Arduino LilyPad
  13. Arduino Fio
Yukarıda ki Arduinoların hepsi farklı kullanım alanlarına hitap etmektedir.
Uygulamarımızı yapacağımız Arduino Uno'yu biraz tanıyalım.

Arduino Uno


  • Arduino Uno ATmega328 mikrodenetleyici içeren bir Arduino kartıdır.Arduino'nun en yaygın kullanılan kartıdır diyebiliriz.
  • Arduino Uno'nun ilk modelinden itibaren R2, SMD ve son olarak R3 çıkmıştır.
  • Arduino'nun kardeş markası olan Genuino markasını taşıyan kartlar tamamen aynı özelliklere sahiptir.

  • ARDUINO UNO TANITIM

    • Arduino Uno'nun 14 adet dijital giriş/çıkış pini bulunmaktadır.Sağ tarafta görmüş olduğunuz 0-13 arası pinler temsilidir.
    • Bu pinlerden 6 tanesi PWM çıkışı olarak kullanılabilir.Bu pinler 3-5-6-9-10-11 pinleridir.Yanlarında ~ işareti bulunmaktadır.
    • Sol tarafta A0-A5 olarak adlandırılan 6 adet anolog pin vardır.
    • Üst tarafta 1 adet USB girişi ve 1 adet DA besleme girişi bulunmaktadır.
    • Sağ tarafta 1 adet GND pini, solda ise 2 GND,1 adet 3.3V ve 1 adet 5V pinleri bulunmaktadır.Bu pinleri jumper kablo yardımıyla kullabilirsiniz.
    • GND:Toprak pinidir.
    • AREF:Analog referans pinidir.
    • RESET:Bu buton kullanıldığında Arduino ve kodlar yeniden başlatılır.
    • TX-RX:Bu pinler seri iletişimi ifade eder.
    ARDUINO IDE TANITIM

    Arduino IDE son derece basit bir yapıya sahiptir.Kodlarımızı yapıp cihaza gönderebilir ve cihazdan gelen veriyi kolaylıkla görebilirsiniz.Yazdığınız kodlarda herhangi bir hata varsa bu hataları görebileceğiniz hata ayıklama penceresi mevcuttur.
    İsterseniz arayüzünü biraz tanıyalım.

    • Program editörü Dosya, Düzenle, Taslak, Araçlar ve Yardım bölümlerinden oluşmaktadır.

    Dosya Menüsü

    • Yeni:Yeni bir taslak dosyası oluşturmaya yarar.
    • : Varolan bir taslak dosyasını açmaya yarar.
    • Sonuncusunu Aç : En son düzenlediğiniz dosyayı geri açar.
    • Taslak defteri: Önceden hazırladığınız taslak projelerine buradan ulaşabilirsiniz.
    • Örnekler : Arduino tarafından önceden hazırlanan örnek projelere buradan ulaşabilirsiniz.
    • Kapat : Açık olan taslak dosyasını kapatır.
    • Kaydet : Açık olan taslak dosyasını kaydeder.
    • Farklı Kaydet: Açık olan taslak dosyasını farklı bir konuma kaydetmek için kullanılır.
    • Seçenekler: Arduino IDE hakkında ayarlamaların yapıldığı yerdir.
    • Çıkış : Programdan çıkış yapar.


    Düzenle Menüsü

    Yazmış olduğunuz kod üzerinde biçimsel düzenlemeler yapmak istediğinizde kullanılan kısımdır.

    • Geri Al:En yaptığınız düzenlemeyi geri alır.
    • Kes:Kesmiş olduğunuz kod bloğunu belleğe alır.
    • Kopyala:Kesmiş olduğunuz kod bloğunu koplayarak belleğe alır.
    • Yorum Yap:Açıklama satırı yapmak için kullanılır.
    Taslak Menüsü
    • Kontrol Et:Yazmış olduğunuz  kod bloğunu kontrol eder ve herhangi bir hata varsa hata mesajı verir.
    • Yükle:Yazdığınız kodu Arduino cihazınıza yükler.
    • Çalışma Klasörünü Göster:Taslak dosyasının oluştuğu klasöre gider.
    • Library Ekle:Arduino projeleri her bileşenle uyumlu değildir.Bu seçenek gerekli yerlerde kütüphane eklemek amacıyla kullanılmaktadır.
    Araçlar Menüsü
    • Seri Port Ekranı:Arduino kartından gelen veriyi görmeyi sağlar.Gelen veriler buradan okunabilir.Örneğin belirli aralıkla ekrana basmak istediğiniz bir değeri bu ekranda görebilrsiniz.
    • Kart"Arduino..":Çeşitli Arduino kartları bulunmaktadır.Kartınızı ilk taktığınız andan itibaren kartı editöre tanıtmanız gerekmektedir.Bu işlemler buradan yapılmaktadır.
    Temel Arduino Fonksiyonları

    Setup ve Loop Fonksiyonları

    Arduino projeleri iki fonksiyon içerinde yer alır.Bunlar setup ve loop fonksiyonlarıdır.
    Setup fonksiyonu, burada pin tanımlama işlemleri ve bu kısım sadece bir kez calışır.
    Loop fonksiyonu, setup fonksiyonu okunduktan sonra çalışır.Burası işlemlerinizi tanımlayacağınız ana fonksiyonunuzdur ve buradaki işlemler sonsuz bir döngü halinde çalışmasını sürdürür.Program kodları sırayla çalışır ve sona gelindiğinde loop fonksiyonu tekrardan çalışmaya başlar.Bu döngü Arduino çalıştığı sürece devam eder.

    PinMode

    Arduino kartı üzerindeki pinleri giriş veya çıkış olarak tanımlayabilirsiniz.Örneğin bir butona bastığınızda bir ledin yanmasını istiyorsunuz.Butonu harekete geçiren sizsiniz yani işlemlerin başlaması için bir giriş vermeniz lazım.Butonu giriş olarak düşünmelisiniz.Butona basıldığında ledlerin yanmasını istiyorsunuz yani led bir çıkış üretmeli.Dışarıya ses ışık vb çıkış üreten her şeyi çıkış olarak tanımlamalısınız.İşte pinMode sizin neyi giriş neyi çıkış olarak tanımladığınızı belirten kod parçası.Kullanımı ise aşağıdaki gibidir.

    • pinMode(6,OUTPUT);  
    Buradaki 6, arduino'nun 6.pinine bağlı bir çıkış olduğunu simgeliyor.Output tanımı çıkışlar için kullanılıyoruz.
    • pinMode(3,INPUT);
    Buradaki 3 ise arduino'nun 3.bacağına bağlı bir giriş olduğunu gösteriyor.Input tanımını girişler için kullanıyoruz.

    digitalWrite

    Çıkış olarak tanımladığımız pinlere enerji vermek veya enerji vermeyi durdurmak için kullanılıyor.
    • digitalWrite(13,HIGH);
    Arduino'nun 13.pininden enerji çıkışı sağlanıyor.Bunun için HIGH tanımını kullanıyoruz.
    • digitalWrite(11,LOW);
    Arduino'nun 11.pinindeki enerji çıkışını durduruyoruz.Bunun için LOW tanımı kullanıyoruz.

    analogWrite

    Seçilen pinden PWM sinyali üretilmesini sağlar.PWM sinyalinin görev zamanı fonksiyona verilen değerler ile belirlenmektedir.Örneğin bir led ışığının parlaklığı PWM sinyali ile ayarlanabilir.
    • analogWrite(3,175); // seçilen pinin PWM destekli bir pin olmasına dikkat edin.

    digitalRead

    Tanımladığımız pinin gerilimini bir değişkende tutmamız gerekir.Bunu bir değişken tanımlayıp değerimizi atayarak burada tutuyoruz.
    • durum=digitalRead(13); 
    Pindeki gerilim 5 volta yakın ise HIGH durumunda, 0 Volta yakın ise LOW durumunda kabul edilir.

    analogRead

    Bir önceki fonksiyonda 13 numaralı pindeki gerilimin 5 veya 0 olmasını ölçmüştük.digitalRead fonksiyonu, 0 ve 5 volt arasındaki gerilimib tam değerini ölçmez.0 ve 5 volt arasındaki gerilimin tam değerinin ölçülmesi için analogRead fonksiyonu kullanılmalıdır.Fakat bu fonksiyon, tüm için kullanılmaz.Bunun için Arduino üzerinde A0-A5 arası özel pinler vardır.Bunlara analog pinler denir ve genellikle A harfi ile gösterilir.Kullanılan arduino türüne göre sayıları değişiklik gösterebilir.
    • okunandeger:analogRead(A0);
    A0. kanaldan okuma yapıladığını ve okunan değerin okunandeger adlı değişkende tutulduğunu gösteriyor.Örnek uygulamalar yapıldıkça daha net anlayacağınızı düşünüyorum.

    delay fonksiyonu

    İki kod arasında bir bekleme istenirse, delay fonksiyonu kullanılır.Mesela yanıp sönen bir lambanın ne kadar süre aralıklarla yanıp söneceğini bu fonksiyon ile belirleyebilirsiniz.Delay fonksiyonu milisaniye cinsindendir.Bir saniyelik bir bekleme için 1000 değeri kullanılmaktadır.
    • delay(500); //Yarım saniye bekleme yapar.
    Konu anlatımı bu kadardı isterseniz şimdi basit bir örnek yapalım.
    Uygulama

    • Setup içerisinde pinMode ile 8 nolu pin çıkış olarak tanımlanmıştır.Yani bunu led olarak düşünebiliriz.
    • Hatırlarsanız setup bir kez çalışıyordu.Çalışmasını tamamladı, tanımlama yapılmış oldu.Sıra loop bölümünde;
    • Loop içerisinde  digitalWrite ile 8 numaraları pine bağlı led HIGH konumuna alınmış.Led 1 kez yandından sonra alt satıra geçiyor kodumuz ve delay komutu çalışıyor ve 1 saniye bekliyor.
    • Daha sonra LOW konumuna alınan led sönüyor ve 1 saniye bekliyor.
    • Loop döngüsü sonsuz döngü olduğundan bu olay siz gücü kesene kadar devam edecektir.
    • Aralara delay fonksiyonun konmasının amacı; bu işlemler çok hızlı ilerleyeceği için olayı net olarak görmek açısından aralarda 1 saniye bekletiyoruz.Bunu kullanmazsak ledi sürekli yanıyormuş gibi görebiliriz.
    Uygulamanın Arduino üzerindeki bağlantısı bu şekildedir.Temel elektronik bilgisi ile kolayca kurabileceğiniz bir devre.Bu devreyi online bir uygulama ile kurdum.İsterseniz sizde buradan kolaylıkla yapabilirsiniz.Uygulamaya bakmak için; buraya tıklayınız.


    Artık konuya hakimsiniz bence, şimdilik benden bu kadar.İlerleyen günlerde bol bol örneklerle devam edeceğim.Umarım yararlı olur, 
    Hoşçakalın...







    Yorumlar

    1. Müthiş derecede açıklayı ve Mükemmel olmuş eline sağlık !

      YanıtlaSil
    2. Fpga bilgilerinizi ve deneyimlerinizi de paylaşırsanız çok seviniriz ellerinize sağlık..

      YanıtlaSil

    Yorum Gönder

    Bu blogdaki popüler yayınlar

    4-Cisco Router ve Switch'de Konfigürasyonu Kaydetmek

    1-Cisco CLI Router ve Switch Konfigürasyonu

    6-Cisco Router'da Dynamic Routing