Monthly Archives: July 2015

Arduino Fiziksel İnceleme

Merhaba,

Bu yazımda Arduino’nun fiziksel incelemesini yapacağız. Arduino ile ilgili giriş yazımı okumadıysanız, yazıya buradan ulaşabilirsiniz.

Bu küçük dev, iki kibrit kutusu büyüklüğünde bir kutunun içinden çıkmaktadır.

Arduino Uno KutuŞekil 1: Arduino Uno Kutusu

Arduino Uno kartımızda Şekil 2’de görüldüğü gibi Dijital Giriş/Çıkış Pinleri, Analog Giriş Pinleri, Toprak Pinleri, Mikro Denetleyici, USB Soketi, Güç Girişi, çeşitli LED’ler ve yeniden başlatma düğmesi bulunmaktadır.

Arduino Fiziksel

Şekil 2: Arduino Uno Kartı Fiziksel İncelemesi

Dijital ve Analog pinler ile Arduino’ya bir çok sensör, motor, LED gibi birimler bağlayarak, kontrol edebilirsiniz.

Dijital Giriş/Çıkış Pinleri: Dijital sinyaller göndermek ve almak için kullanılmaktadır. Dijital sinyaller sadece iki değer alırlar 0 veya 1, yani kapalı veya açık şeklinde. Arduino’da dijital değerler vermek için LOW veya HIGH ifadeleri kullanılır. Örneğin; bir LED’i yakmak istiyorsak; LED’in bağlı olduğu pine HIGH ile güç verip, söndürmek için ise LOW ile gücü kesebiliriz.

Dijital-SinyalŞekil 3: Dijital Sinyal

Analog Giriş Pinleri: Analog sinyaller almak için kullanılmaktadır. 0 ile 5V arasında bir çok değer alabilmektedir. A0, A1, A2, A3, A4 ve A5 etiketli pinlerdir. Bu pinlere bağlayacağımız sensörler ile bu sensörlerden gelen verileri alabilmekteyiz. Örneğin; ortamın sıcaklığını ölçmek için bu pinlerden birine bir ısı sensörü bağlayıp, ortamın sıcaklık değerini alabiliriz. Benzer şekilde ortamın karanlık ya da aydınlık mı olduğunu anlamak için bu girişlere bir foto direnç (photoresistor) bağlayabiliriz.

Analog Sinyal
Şekil 4: Analog Sinyal

Analog Çıkış Pinleri: Şekil 2’de de göreceğiniz üzere Arduino’da bir Analog çıkış pini görememekteyiz. Oysaki; bir servo motoru %35 güç ile çalıştırmak istediğimizde ya da bir LED’in parlaklığını ayarlamak istediğimizde analog sinyaller ile çıkış sağlamalıyız. Arduino ile bunları yapabileceğimizi söylemiştik. Dolayısı ile Arduino üzerinde, analog çıkış pinleri var, fakat “~” sembollü ve PWM(Pulse Width Modulation) etiketli dijital pinlerin arkasında gizlenmiş bir şekilde. Arduino ile analog çıkışları, üzerinde PWM(Pulse Width Modulation) etiketi bulunan 3, 5,6, 9 ve 10 numaralı dijital pinler ile yapabilmekteyiz. PWM, dijital bir cihazın, analog biz cihaz gibi davranmasını sağlayan bir tekniktir. Detayına daha sonra değineceğim.

Güç Pinleri: Girişler ve çıkışlar için gücün gerekli olduğu yerlerde kullanmak üzere bu pinleri kullanmaktayız. 5V ve 3.3 V etiketli pinleri devremize veya bileşenlere sırasıyla 5 ve 3.3 volt güç sağlamak için kullanmaktayız.

Toprak Pinleri: GND etiketli pinler toprak pinleridir. Devreyi tamamlamak için oldukça önemli pinlerdir. Arduino Uno kartında toplam 3 adet toprak pini bulunmaktadır.

USB Soketi: Arduino kartımızdaki mikro-denetleyiciye ne yapması gerektiğini söylemek için ona yazdığımız kodları iletmeliyiz. Uno modelinde, yazdığımız kodları USB bağlantısı ile mikro-denetleyiciye gönderebiliyoruz. Bu sokete yazıcılarda ve tarayıcalarda kullandığımız USB A/B modeli bir kablo takabiliriz. Bu kabloyu evimizde veya ofisimizde kolaylıkla bulmamız mümkün.

Güç Girişi: Her elektronik cihazı çalıştırmak için bir güç gerekmektedir. Bu gücü ya bir adaptör aracılığıyla ya da piller ile sağlayabilmekteyiz. Arduino’yu da çalıştırmak için de bir güce ihtiyacımız var. AC-DC adaptör, pil ve hatta güneş enerji paneli bile kullanarak Arduino’ya gerekli gücü sağlayabiliriz. Uno kartı için önerilen voltaj 7-12V arasındadır. Eğer daha az bir voltaj sağlarsanız, kartınız doğru çalışmayabilir ya da daha fazla voltaj sağlarsanız kartınızın çok ısınmasına ve zarar görmesine sebep olabilirsiniz.

Vin Pini: Bu pin ile başka bir kaynaktan Arduino’muza 12 V’a kadar güç verilebilmektedir.

Güç LED’i: Arduino’nun çalışıp çalışmadığını gösterir. Yeşil yanıyorsa Arduino’muz çalışıyor demektir.

TX/RX LED’leri: Bu LED’ler bilgisayarımız ile Arduino’muz arasında veri alış verişi olduğu zaman yanıp sönerler. Bu da bize kartın veri alıp/verme durumunu gösterir. Bu LED’leri ayrıca kodlarımızın doğru çalışıp çalışmadığını denetlemek için de kullanabilmekteyiz.

L LED’i: 13. pine bağlı özel bir LED’dir. Bu LED’i kodunuzun herhangi bir anında yakıp, söndürerek kodlarınızın durumunu görebilirsiniz.

Yeniden Başlatma Düğmesi(Reset): Bu düğme ile Arduino’yu yeniden başlatabiliriz. Düğmeye bir süre basılı tutarsanız Arduino’yu kapatacaktır.

Mikro Denetleyici: Arduino Uno modelinde ATmega328 modeli bir çip bulunmaktadır. Aslında bu mikro-denetleyici çip, bir nevi Arduino’muzun beynidir. Yazdığımız kodlar derlenerek bu çipte saklanır ve çalıştırılır. Uno modelinde 32 KB bellek ve 16 MHz hızında bir çipe sahibiz. Gözümüze ne kadar az gözükse de yapacağımız çoğu proje için oldukça yeterli miktarlar.

Arduino üzerindeki fiziksel incelememiz bu kadar. Şimdi Arduino ile birlikte kullanabileceğimiz bazı bileşenlerden bahsedelim.

Breadboard: Breadboard’ları devreleri inşaa etmek için kullanmaktayız. Breadborad’lar ile lehimleme işlemi yapmadan parçaları bir araya getirebilmekteyiz. Bileşenleri, birleştirmeyi ve sökmeyi oldukça kolaylaştırarak, prototipleme süresini oldukça kısaltan breadboard’ların çeşitli büyüklükte modelleri bulunmaktadır. Ben büyük olan modeli kullanmayı tercih ediyorum fakat bazı durumlarda küçük olan modeli kullanmak da gerekmekte. Örneğin, tekerlekli bir robot yaptık, bunun üzerinde sadece bir LED ve mesafe ölçen bir sensör yerleştireceksek, küçük bir breadboard işimizi görecektir.

breadboard

Şekil 5: Breadboard (Kaynak: Wikipedia)

Jumper Kablolar: Bu kablolar, bileşenleri breadboard üzerinde birbirine veya Arduino kartımıza bağlamamızı sağlamaktadır. Erkek-dişi, erkek-erkek ve dişi-dişi türleri bulunmaktadır.

Jumper Kablo

Şekil 6: Jumper Kanblo(Kaynak: www.arduino.cc)

Direnç: Elektrik enerjisine direnç göstererek, akımın veya voltajın değerini değiştirmek için kullanılmaktadır. Dirençlerin birimi  Ohm’dur, ve Ω ile gösterilmektedir. 0 Ohm ile 1 Milyon Ohm arasında çeşitli büyüklükte dirençler bulunmaktadır. İhtiyacımız olan dirence uygun olanı seçerek uygulamalarımızda kullanmaktayız. Küçük bir örnek verelim; bir LED’i yakmak için sadece 20 mA akım gerekmektedir, ayrıca bir LED, Arduino’dan gelen 5V gerilimden, 2V düşürecektir. Bu durumda geri kalan 3V gerilimi boşaltmak durumundayız. Bu noktada dirençler yardımımızı koşmaktadır. Ne kadarlık bir dirence ihtiyacımız olduğunu hesaplamak için de Ohm Kanunu’ndan yararlanmaktayız. Buna göre;

V = IR

formülü ile ihtiyacımız olan direnç miktarını hesaplayabiliriz. Burada;

V: gerilimi,
I: akımı,
R: direnci göstermektedir.

Örneğimize göre, ihtiyacımız olan direnç;

R = 5V-2V / 20mA = 150 ohm’dur.

Bu miktarda bir direnç bulamıyorsak yakın miktarlarda bir direnç seçebiliriz. Bu örnekte en yakın olan 220 ohm’luk bir dirençtir.

direnc

Şekil 7: Direnç (Kaynak:sparkfun.com)

Diyot: Sadece tek bir yöne doğru akım geçiren bir devre elemanıdır. Bir yöndeki dirençleri oldukça küçüktür, diğer yöndeki dirençleri ise oldukça büyüktür. Böyle akımın ters yönde geçmesini engeller.

DiyotŞekil 8: Diyot (Kaynak: www.arduino.cc)

LED (Light Emitting Diode – Işık Yayan Diyot): Akım üzerinden geçerken aydınlatan bir tür diyottur. Tüm diyotlarda olduğu gibi akım tek yönlüdür. Etrafımızdaki bir çok elektronik cihazda LED’lere rastlamaktayız. Biz de projelerimizde oldukça kullanacağız.

LED

Şekil 9: LED (Kaynak: www.arduino.cc)

Button (Düğme): Etrafımızdaki bir çok elektronik cihazda düğmelere rastlamaktayız. Bir nevi kullanıcı arayüzü olarak kullanılmaktadır. Düğmelere basıldığında ne yapması gerektiğini Arduino’ya kodlarız. Küçük bir örnek olarak; Arduino’muzu bağlı bir LED ve bir düğme bağlarız, düğmeye basıldığında, LED’e bir enerji göndererek LED’i yakabiliriz, tekrar basıldığında LED’e giden enerjiyi keserek, LED’i söndürebiliriz.

Button-Düğme

Şekil 10: Button-Düğme (Kaynak: www.arduino.cc)

 

Çalışma Ortamınızı Hazırlayın

Elektronik ile uğraşmak dikkat isteyen bir iştir. O yüzden iyi bir çalışma ortamına sahip olmak önemlidir, özellikle de yeni başlıyorsanız. Yapacağınız projelerde bir çok minik, çok hassas ve narin parçalar ile çalışacaksınız. Bu yüzden, parçaları kaybetmemek ve bozmamak için çok dikkatli olmanız gerekmektedir. Bana göre ideal bir çalışma ortamında;

  • İyi bir çalışma lambası
  • Rahat bir sandalye
  • Geniş bir masa
  • Elektronik parçalarınızı düzenli bir şekilde saklayabileceğiniz çekmeceli saklama kutuları

olmalıdır.

Bir Sonraki Yazıda Neler Var?

Bu yazımda Arduino Uno modelinin fiziksel incelemesini yaptık ve bazı önemli bileşenleri tanıttım. Bir sonraki yazımda Arduino IDE’sini indirme ve kurulum basamaklarından bahsedeceğim. Bundan sonraki yazılarımı çekeceğim videolar ile de destekleyeceğim.

Bir sonraki yazımda görüşmek üzere,

Robot’lu günler dilerim…

Arduino’ya Giriş

Herkese merhaba,

Bugünkü yazımda Arduino’ya genel bir giriş yapacağız. Genel bir bakışın yanı sıra, bazı detaylar da bulabileceğiniz bir paylaşım olacak.

Son zamanlarda oldukça popüler olan Arduino, Açık Kaynaklı Donanım akımının bir sonucudur. Açık Kaynaklı Donanım ile firmalar ticari kaygıları olmaksızın ürünlerini kaynak kodları ile birlikte sunmaktadır. Böylece bir çok kişi telif engeli olmadan bu ürünleri üretebilir, değişiklikler yapabilir ve hatta satabilir. Bu da çok sayıda kişinin elektronik ve programlamaya yakınlaşmasını sağlamaktadır. Arduino’nun kaynak kodlarını, bileşenlerini ve şemalarını üretici firmanın www.arduino.cc sitesinden bulabilirsiniz ve hatta kendi Arduino’nuzu da çok uygun bir maliyetle yapabilirsiniz.

Şimdi Arduino ile neler yapabileceğimizden bahsetmeliyim. Daha sonra Arduino’nun ne olduğundan ve modellerinden bahsedeceğim.

Aslında, ortalama 40 TL gibi bir rakam ile elde edebileceğiniz Arduino ile yapabileceklerimiz hayal gücümüz ile sınırlıdır. Bir kaç örnek vereyim;

Engelleri fark eden ve bu engellere takılmadan yolunu değiştirerek hareket edebilen robotlar, ortamdaki sıcaklığı ölçebilen ve bunu üzerindeki LED ekrana yazabilen cihazlar, evinize izinsiz bir giriş olduğunda alarm çalan, size SMS atan veya arayan sistemler, gaz kaçağı, yangın gibi tehlikeleri fark edip haber veren sistemler, cep telefonundan yönetilebilen araçlar gibi bir çok şey yapmak mümkün.

Şimdi Arduino’ya genel bir bakış atalım.

Arduino Nedir?

Arduino, basit bir mikro denetleyici kartı ve bu kart için uygulama geliştirme imkânı sağlayan bir yazılımı olan, açık kaynak kodlu bir fiziksel programlama platformudur. Arduino, çeşitli sensörlerden ve anahtarlardan girdi alan; ışıkları, motorları ve diğer fiziksel çıktıları kontrol edebilen cihazlar geliştirmek için kullanılmaktadır (Arduino, 2015). Arduino’yu popüler kılan ise geniş bir kütüphaneye sahip olması, maliyetinin düşük olması, kolay kodlanabilir olması ve çok iyi derecede programlama bilgisine sahip olmayı gerektirmemesidir. Bu özellikleri ile öğrenciler, öğretmenler ve amatörler için oldukça ideal bir platformdur.

Birkaç satır kod ile Arduino’nun mikro denetleyicisine ne yapması gerektiği ile ilgili komutlar verebilirsiniz. Örneğin, devreye bağlı bir LED (light emitting diod – ışık yayan diyot) ışık kaynağını yakmasını belli bir süre sonra tekrar söndürmesini; ya da bu yakıp-söndürme işlemini bir düğmenin konumuna göre yapmasını isteyebilirsiniz. Daha da ileri götürerek internet veya bluetooth üzerinden bu komutları verebilir, sensörler vasıtası ile elde ettiğiniz değerleri size e-posta ile bildirmesini isteyebilirsiniz. İlerleyen bölümlerde benzer uygulamalar geliştireceğiz.

Birçok mikro denetleyicinin IDE(Tümleşik Geliştirme Ortamı)’si sadece Windows işletim sistemi ile çalışmaktadır. Arduino’nun sağladığı IDE ise Windows, Mac OS ve Linux gibi yaygın olan tüm işletim sistemlerinde çalışabilmektedir. İşletim sisteminize uygun IDE’yi www.arduino.cc adresinden indirebilirsiniz.

Arduino’nun Modelleri

Arduino’nun bir çok modeli bulunmaktadır. Bu yazımda sadece bir kaç tanesine değineceğim. Arduino’nun en çok kullanılan ve Arduino ile çalışmaya başlamak için en uygun model olan Arduino Uno R3 ile başlayalım.

Arduino Uno R3

Bu model en basit modellerden birisidir. Uno, İtalyanca’da 1 rakamına karşılık gelen sözcüktür. Dolayısı ile bu modelin adı Arduino 1.0 verisyonuna karşılık gelmektedir. Üzerinde bir USB portu bulunmaktadır ve bilgisayara bu port üzerinden standart bir A/B USB kablo ile bağlanmaktadır. AC-DC bir adaptör ile ya da 9V bir pil ile güç verilebilmektedir.

Arduino Uno R3
Arduino Uno R3

Şekil 1: Arduino Uno R3 Modeli  (Kaynak: www.arduino.cc)

Ayrıca bu model üzerinde ATmega328 mikro denetleyici çipi, 14 adet dijital giriş/çıkış pini, 6 adet analog giriş pini, 1 adet 16 MHz kristal osilator ve ICSP (In-Circuit Serial Programming) header ve yeniden başlatma düğmesi bulunmaktadır. Dijital giriş/çıkış pinlerinin altı tanesi PWM (Pulse Width Modulation) çıkışı olarak da kullanılabilmektedir.

USB Cable A Male B Male

Şekil 2: A/B USB Kablo

Arduino’ya yeni başlayanlar için bu modeli tavsiye ediyorum.

Arduino Leonardo

Üzerinde bir mikro USB portu bulunmaktadır ve bilgisayara bu port üzerinden standart bir USB kablo ile bağlanmaktadır. AC-DC bir adaptör ile ya da 9V bir pil ile güç verilebilmektedir.

Arduino Leonardo Arduino LeonardoŞekil 3: Arduino Leonardo Modeli (Kaynak: www.arduino.cc)

Bu model üzerinde ATmega32u4 mikro denetleyici çipi, 20 adet dijital giriş/çıkış pini, 12 adet analog giriş pini, 1 adet 16 MHz kristal osilator ve ICSP header ve yeniden başlatma düğmesi bulunmaktadır. Dijital giriş/çıkış pinlerinin yedi tanesi PWM çıkışı olarak da kullanılabilmektedir. Leonardo modeli USB ile haberleşebilen ve bir mikro denetleyiciye sahip olan tek modeldir. Diğer modellerde USB ile haberleşmek ve yazılım yüklemek için iki adet mikro denetleyici bulunmaktadır. ATmega32u4 üzerindeki USB modülü sayesinde klavye veya fare gibi bilgisayara direkt takılıp kullanılabilir.

Arduino’nun diğer modelleri de şu şekildedir:

  • Arduino Due
  • Ardiono Yún
  • Arduino Mega
  • Arduino Ethernet
  • Arduino Robot
  • Arduino Mini
  • Arduino Nano

Bu modellere yeri geldikçe değineceğim.

Arduino’ya ek özellikler katan ya da özelleştiren Arduino Shield’lerinden bahsetmeliyim. Örneğin, Arduino’nuzu RC-45 kablo ile internete bağlamak istiyorsunuz, Arduino Uno modelimizde kabloyu takacağımız bir ethernet kartı bulunmamaktadır. Fakat Arduino Ethernet Shield’ı Arduino’muzun üzerine monte ederek kablo ile internet bağlantısını sağlayabilmekteyiz. Benzer şekilde WiFi bağlantısı için de Arduino WiFi Shield  kullanabiliriz. Ya da Arduino’muza bir sim kart takıp, SMS göndermek veya arama yapmak isteyebiliriz. Bu durumda Arduino GSM Shield yardımımıza koşacaktır.

WiFi Shield

Şekil 4: Arduino WiFi Shield (Kaynak: www.arduino.cc)

 Gsm ShieldŞekil 5: Arduino GSM Shield (Kaynak: www.arduino.cc)

 Çeşitli amaçlar için kullanabileceğimiz bazı Shield’ler şu şekildedir:

  • Arduino Motor Shield: Üzerindeki sürücü ile birbirinden bağımsız iki DC motoru kontrol etmemizi sağlar.
  • Arduino USB Host Shield: Arduino’muza USB portu sağlar ve bu port ile klavye, mouse, Bluetooth Dongle gibi cihazları Arduino’muza bağlayabilmemizi sağlar
  • Arduino Bluetooth Shield: Arduino’muza bloetooth ile erişmemizi sağlar.
  • Arduino Joystick Shield: Arduino’muzu bir joyistik gibi kullanmamızı sağlar.

Şekil 4 ve Şekil 5’te gösterilen Shileld’lerin Arduino kartımıza çok benzediğini görebiliriz. Shield’ler Arduino kartımızla aynı boyuttadır ve aynı hizada pinlere sahiptir. Böylece Shield’leri, Arduino’muz ile üst üste birleştirerek kullanabilmekteyiz.

Nereden Temin Edebiliriz?

Çeşitli Arduino modellerini, Shieldleri, sensörleri, motorları, kısacası ihtiyacınız olan herşeyi internet üzerinden bulmanız mümkün. Bununla ilgili Türkiye’de hizmet veren oldukça fazla site bulunmaktadır. Bunlardan bazıları;

Bunların dışında; daha da uygun fiyatlı fakat ürünlerin elinize ulaşması ortalama 20-40 gün süren http://www.aliexpress.com‘u da öneririm.

Başlangıç için bu sitelerin hazırlamış olduğu Başlangıç Setlerini satın alabilirsin. Bu setlerin içinde Arduino Uno R3, çok sayıda LED, kablolar, dirençler, potansiyometreler, çeşitli sensörler gibi bir çok komponent bulunmaktadır.

Bir Sonraki Yazıda Neler Var?

Bir sonraki yazımda, Arduino’nun fiziksel incelemesini yapacağız. Arduino üzerinde bulunan pinlerden ve ledlerden bahsedeceğim.

Bir sonraki yazımda görüşmek üzere,

Robot’lu günler dilerim…