Uzun zamandır yapmak isteyip de yapamadığım arduino dersine artık başlamış bulunmaktayım.
Öncelikle uzun bir süre PIC mikrodenetleyicileri kullanarak bir çok robot yapmıştım ve en basit olan ve ilk ders olan bir led yakmak için dünyanın zamanını ve parasını harcamıştım. Fakat şimdi sizlere ARDUINO ile aslında bu işlemlerin ne kadar kolay, hızlı ve ucuz olduğunu göstereceğim. Yapmak istediğiniz robotu çok kısa sürede ve ucuz bir şekilde yapabilecek hale geleceksiniz.
Derslere başlamadan önce farklı sitelerden ve kaynaklardan ARDUINO nedir ve neden tercih ediliyor gibi soruların cevabını bulmanız sizler için daha iyi ve faydalı olacaktır.
Fiziksel Programlama
Fiziksel programlama, yazılım ve donanım kullanarak dış dünyayla dijital ve analog veri alışverişi yapan fiziksel devre tasarlama işine verilen isimdir. Sensörler yardımıyla dış dünya ile iletişime geçilir. Analog olan veriler dijitale aktarılır ve yazılım sayesinde ne yapılacağına karar verilir ve uygulanır.
Arduino Nedir?
Arduino fiziksel dünyayı algılayan ve kontrol edebilmek için kullanabileceğiniz basit kullanıcılar için hazırlanmış küçük bilgisayardır. Bir projede karar verme mekanizmasına ihtiyaç duyuyor iseniz tam doğru yerdesiniz ve arduino kendi içerisinde basit bir fiziksel hesaplama ve karar verme platformudur. Arduino anahtarları, sensörleri, motorları ve diğer fiziksel giriş ve çıkışları kontrol etmek ve etkileşimli nesneler geliştirmek için kullanılabilir. Arduino projeleri tek başına geliştirebilir yada bilgisayar,tablet,telefon ve benzer cihazlar üzerinde çalışan yazılımlara bağlanabilir. Arduino açık kaynak bir geliştirme ortamına sahip olup Processing yazılımından yola çıkarak yazılmıştır. Aslında tam bir C ve Java yazılımından oluşmaktadır. Kendi devrenizi yapabileceğiniz gibi tamamen hazır devre ve ekipmanları da alabilirsiniz. Tamamen açık kaynak kodlu bir IDE'ye sahiptir.
Neden Arduino ?
Neden ARDUINO derseniz; öncelikle her defasında yeni devre kurmanıza gerek kalmayacak. Ayrıca sanal ortamda değilde gerçek hayatta anında deneme imkanı bulabileceksiniz. Buda sizlere daha hızlı ve güvenli bir şekilde öğrenmeniz anlamına gelmektedir. Arduino, programlamayı size oldukça kolay hale getirir. Öğrenciler ve amatörler için büyük avantajlar sağlar. Arduinonun diğer platformlarla karşılaştığında daha ucuz olması ve ayrıca kendiniz yapabiliyor olmanız bence en önemli özelliklerinden biridir. Çapraz platform olması Arduinonun Linux,Windows, MacOs ve Android çalışabilme imkanı sunar. Çoğu mikrokontrollör sistemi Windows'la sınırlıdır. Gereksiz bir çok yazılıma para vermekten kurtarır ve devamlı gelişen bir ortam sunar.
Arduino UNO
Arduino Uno ATMEGA 328 temelli bir board'dur. 14 tane dijital giriş /çıkış (input / output) (6 tanesi PWM için kullanılabilir) pinine sahiptir. 6 tane analog giriş ve 16 Mhz seramik kristal bulunmaktadır. USB bağlantısı sayesinde kolayca yazdığınız kodu yükleyip çalıştırabilirsiniz. Aynı zamanda USB bağlantısını güç içinde kullanabilirsiniz. Ya da üzerinde bulunan Güç girişi ile bir güç kaynağına bağlayabilirsiniz. Bir adette ICSP baglantısı bulunmaktadır.Özet Olarak:
Mikrokontroller-----------------ATMEGA 328
Çalışma Voltajı----------------- 5V
Giriş Voltaji---------------------7-12V ( tavsiye edilen)
Giri Voltajı----------------------6-20V ( limit)
Dijital I / O---------------------14 (6 tanesi PWM destekliyor)
Analog Girişler------------------6
DC akım her pin'de--------------40mA
3.3V pin için DC akım-----------50mA
Flash Hafıza---------------------32KB
SRAM--------------------------1KB
EEPROM-----------------------1KB
Saat Hızı------------------------16MHz
Arduino Unonun temel özelliklerinden bahsettikten sonra Uno'nun önemine gelelim. Uno, Arduino programlamaya yeni başlayanlar için biçilmiş kaftandır. Hem diğer board'lara nazaran ucuz oluşu ve her yerde bulunabilir olması ve Arduino shield'lerin hemen hemen hepsiyle uyumlu olması nedeniyle tercih sebebidir. Derslerimin tamamını Arduino Uno üzerinden anlatmaya çalışacağım. Tek yapmanız gereken bir tane Arduino Uno ya ve temel bir kaç elektronik ekipmana sahip olmak o kadar.
Shield
Shield'leri tanıtmadan önce shield nedir onun üzerinde biraz durmak istiyorum. Shield'ler Arduino boardumuzun üzerine kolayca takılıp yapmak istediğimiz projeyi dahada kolay yapmamızı sağlayan yardımcı devre'lerdir. Arduino'nun resmi olarak birçok shield'i bulunmaktadır ve açık kaynak olmasından dolayı geliştiriciler kendi shield'lerini tasarlayıp satmakta veya kullanmaktadır.
Resmi Arduino Shield'lerinden Bazıları
Burada olan ve olmayan Shieldlerin (yardımcı devrelerin) tam olarak ne amaçlı tasarlandığı, ne özelliklere sahip olduğu ve nasıl kullanılır gibi soruların cevabını ileri ki derslerde daha rahat bulacak ve öğreneceksiniz şimdilik aklınızda ne olduğu hakkında genel bilgi oluşturmak.
Ethernet ve SD shield
GSM Shield
Motor Shield
Wirelless ve SD Shield
XBee Shield
Arduino Kurulumu
Öncelikle www.arduino.cc sitesinden arduinonun bilgisayarımızın işletim sistemine uygun IDE'yi indiriyoz. İndirdikten sonra ise yapmamız gereken Arduino'yu bilgisayarımıza bağlayıp tanıtmak. Bundan sonra bilgisayar ekranına gelecek olan görüntüyü göstermek daha iyi olacak sanırım. :)
PROGRAMLAMA
öğreneceksiniz. Daha önce C, C++, Basic gibi yazılım dillerinden birini biliyor olmanız dersleri daha iyi ve hızlı anlayacağınız anlamına gelir.
Fazla uzatmadan artık programlamaya başlamak istiyorum. Dediğim gibi Arduino oldukça kolay en başta bunu aklımızda tutalım. Zaten felsefesi kolay olması. :)
NOT:
Ayrıca devre elemanlarını görsel olarak her derste görme imkanı bulacaksınız ve dersleri anında denemenizi ısrarla tavsiye ediyorum ve bunlarla da yetinmeyin tabikide en iyi bilgi deneme yanılma metodudur.
Derslerde kırmızı yazı ile yazılanlar açıklama bölümüdür ve program yazar iken kullanmanıza gerek yoktur. Kodların içinde geçen // işaretlerinden sonra gelen tek satırlık yazılar açıklamalardır kod değildir ve kırmızı ile ayırt etmeniz için renklendirmiş bulunmaktayım.
Gerçek kodlar alt zemini sarı olacak şekilde ayırt etmeniz için kolaylaştırdım.
Bazı programlarda bilgisayar ekranına bilgi gönderdiğimizden ekranda çıkması gereken kısımları da ayırt edebilmeniz için alt zemini açık mavi rengini kullanarak renklendirdim.
Minimum temel kod:
Arduino kodunun çalışabilmesi için minimum iki tane temel komuta ihtiyacımız var bunlar setup() ve loop()
methodlarıdır. setup() ve loop() bölümlerinin programınızda olması zorunludur.
Setup()
Bu fonksiyon sketch'in (her bir Arduino çalışmasına verilen ad) başladığını gösterir. Bu fonksiyonun içinde değişkenler ve pinler tanımlanır.Kütüphaneler kullanılmaya başlanır. Bu fonksiyon Arduino çalışıtığında veya resetlendiğinde bir defa çalışır.
Loop()
Bu fonksiyon ise Setup() fonksiyonunda tanımlanan G/Ç yani I/O birimlerinin kontrolünü bizim yazdığımız koda göre yapar. Örneğin bir led'i ne kadar süre yanıp ne kadar süre yanmayacağını bur da yapabiliriz yada bir LDR yardımıyla ışığın şiddetini ölçebiliriz. Loop() fonksiyonu Arduino çalışmaya başladıktan sonra devamlı olarak çalışır ve devamlı olarak da başa döner ve döngüyü devam ettirir.
... // Global değişkenler (her zaman sabit)
void setup(){
... // ilk değerler ve ilk başta bir kere çalışacak kodlar. Yerel değişkenler (değişken)
}
void loop(){
... //devamlı tekrarlanarak sırayla çalışacak kodlar burada yazıyoruz. Yerel değişkenler (değişken)
}
Sabitler ve Veri Tipleri
Sabitler Arduino dilinde öntanımlı olarak bulunmaktadır. Bu sabitler programımızın daha kolay okunmasını sağlar. Boolean Sabitlerini eğer az çok dijital elektronikle uğraştı iseniz Boolean Matematiğinden haberdar olmalısınız. Boolean sabitleri 1 ve 0 'dır . Arduino'da ise true ve false olarak da bilinir. Burda 0 false (yanlış, hata) 1 ise true (doğru, hatasız) anlamına gelmektedir.
Pinlerin Durumlarını Belirleme
Arduino pinlerinden okuyabileceğimiz yada yazabileceğimiz iki tane değer vardır. Bunlar HIGH ve LOW dur. Burada HIGH voltajın var olduğunu LOW ise olmadığını gösterir. ( HIGH=1, LOW=0 )
Hiç yorum yok:
Yorum Gönder