Category Archives: Arduino

Arduino IDE Tanıtımı ve Belirli Aralıklarla Yanıp Sönen LED

Herkese merhaba,

Bir önceki yazımda Arduino IDE’sini nasıl edineceğimize ve kuracağımıza değinmiştim. Bu yazımda bu IDE’yi tanıtacağım ve örnek bir uygulama yapacağız.

Dilerseniz konuyu anlattığım videomu da izleyebilirsiniz.

 

Arduino IDE’sini çalıştırdığımızda Şekil 1’deki gibi oldukça basit bir ara yüz ile karşılaşacaksınız. Arduino için geliştirdiğiniz programlara sketch yani Türkçe olarak eskiz denmektedir. Şekil 1’de de gösterdiğim gibi Arduino IDE’si menü çubuğu, araç çubuğu, bir metin alanı, bir mesaj alanı ve durum çubuğundan oluşmaktadır.

Arduino IDE

Şekil 1: Arduino IDE

Menü Çubuğu: Kullandığımız bir çok uygulamadan alışık olduğumuz gibi Arduino IDE’mizde de bir menü çubuğu bulunmaktadır. Çeşitli fonksiyonları yerine getirmek için gerekli bağlantıları barındırır.

Araç Çubuğu: Araç çubuğunda, sıkça ihtiyacımız olan düğmeler yer almaktadır. Buradaki düğmeler sırasıyla; Verify, Upload, New, Open, Save ve Serial Monitor’dur.

  • Verify(Doğrula): Yazdığımız kodda bir hata olup olmadığını denetler. Bu doğrulama gramatik açıdan kodunuzu doğrular, mantıksal bir hata varsa bunu tespit etmez.
  • Upload(Yükle): Yazdığımız kodu derleyerek, bağlı olan Arduino’muza yükler.
  • New(Yeni): Yeni bir eskiz oluşturur.
  • Open(Aç): Mevcut bir eskizi açar.
  • Save(Kaydet): Eskizimizi kaydeder.
  • Serial Monitor(Seri Ekran): Arduino’muza gönderdiğimiz ve Arduino’muzdan aldığımız verileri gösterir.

Metin Alanı: Bu alana kodlarımızı yazarız.

Mesaj Alanı: Bu alanda yaptığımız hatalar veya derleme sonuçları görüntülenir.

Durum Çubuğu: Bu çubukta, o anda metin alanında imlecin bulunduğu satır numarası ve bilgisayarımıza bağlanmış olan Arduino modeli ve portu gösterilir.

Kullanıcı arayüzünü tanıdıktan sonra, uygulamamıza geçelim. USB kablomuzun bir ucunu Arduino Uno kartımızdaki ilgili porta, diğer ucunu ise bilgisayarımızın USB portuna takıyoruz. Arduino kartımızın, bilgisayarımızın USB portundan aldığı enerji ile hemen çalışmaya başladığını ve üzerindeki ışıkların yandığını farkedeceksiniz.

Öncelikle; Arduino IDE’mize, bilgisayarımıza taktığımız Arduino kartımızı kullanacağımızı belirtmeliyiz. Bunun için; Tools(Araçlar) menüsünden, Board(Kart) menüsünün altında listelenen Arduino Kart modellerinden, kullanmak istediğimiz Arduino modelini seçiyoruz. Bu uygulamada Arduino Uno modelini kullanacağımız için Arduino Uno seçeneğini seçtik. Daha sonra bilgisayarımıza bağlamış olduğumuz Arduino kartımız ile iletişim kurabilmek için; Tools(Araçlar) menüsünden, Port menüsünün altından;

İşletim sistemimiz MAC OS ise “/dev/tty.usbmodemXXXXX”,

işletim sistemimiz windows ise COM1, COM2 ve COM3

şeklinde isimlendirilmiş seri portu seçiyoruz. Bu adımları tamamlayarak Arduino’muza geliştirmiş olduğumuz kodları iletmek için gerekli ayarları yapmış olduk.

Seçtiğiniz Arduino modelini ve seri portunu durum çubuğunun sağ tarafında görebilirsiniz.

Artık uygulamamızı kodlamaya geçebiliriz. Bunun için ilk çalışmamızı hazır bir örnekden faydalanarak yapalım. Örneği açmak için;

File(Dosya)->Examples(Örnekler)->Basics(Temel)->Blink adımlarını takip ediniz.

Şekil 2’deki gibi bir eskiz açılacaktır.

Arduino Blink ÖrneğiŞekil 2: Yanıp Sönen Led Uygulaması

Bir çok Arduino modelinin üzerinde, kontrol edebileceğimiz bir LED bulunmaktadır. Uno ve Leonardo modellerinde bu LED doğrudan 13. dijital pine bağlıdır.  Bu örnekteki uygulamamız Arduino’muzun üzerindeki LED’i, 1 saniye aralıklarla yakıp, söndürmektedir.

Arduino’muzu USB portundan bilgisayarımıza bağladıktan sonra, Araç Çubuğunda bulunan Upload(Yükle) ikonuna tıklıyoruz. Mesaj alanımızda yaptığımız işlemle ilgili bir hata olup olmadığını kontrol edebilirsiniz. Eğer bir hata mesajı almadıysak, Arduino’muzdaki LED’in 1 saniye aralıklarla yanıp söndüğünü görebilirsiniz.

Şimdi örneğimizdeki kodları irdeleyelim.

Yorumlar

“/*” ile başlayan ve “*/” ile biten satırlar ve bu satırların arasındaki her bir satır yorum satırı olarak adlandırılmaktadır. Yorum satıları ayrıca “//” ile de başlayabilmektedir. Yorum satırlarının kodlama açısından hiç bir işlevi yoktur. Yani mikro denetleyicimiz, bu satırları bir kod olarak algılamaz ve görmezden gelir. Peki neden yorum satırlarını kullanırız? Uygulama geliştirirken yüzlerce ve hatta binlerce satırdan oluşan kodlar yazarız. Bizden bir başkası bu kodları incelediğinde ne yapmak istediğimizi kolayca anlayabilsin veya uzun bir aradan sonra tekrar bu kodları incelediğimizde ne yaptığımızı hatırlamamız için yorum satırlarını kullanırız.

Fonksiyonlar

Bir fonksiyon, bir çok kez kullanılacak ve belirli bir görevi yapan kodları içeren yapılardır. Aynı kodu tekrar tekrar yazmak yerine, bir fonksiyon olarak tanımlarız ve gerekli yerlerde bu fonksiyonu çağırırız. Örneğin; her sabah yaptığımız işleri bir fonksiyon olarak tanımlayalım;

void sabahUyaninca(){

7:00'de uyan;

banyoya git;

yüzünü yıka;

dişlerini Fırçala;

duş al;

kıyafetlerini giy;

}

Burada void ifadesi fonksiyonumuzun geriye bir değer döndürmeyeceğini ifade eder. Bazı durumlarda; fonksiyonlardan, işlemler tamamlandıktan sonra geriye bir değer döndürmelerini isteyebiliriz. Böyle durumlarda, void ifadesi yerine geri döndürmesini istediğimiz veri tipini tanımlarız. Ayrıntısını ilerleyen yazılarımda göreceğiz. Şimdi sadece geriye bir değer döndürmeyen bir fonksiyon ile devam edelim. Örnekte de görüldüğü gibi yapılmasını istediğimiz işlemleri { } süslü parantezlerin arasına yazıyoruz. Her sabah bu sırayla yaptığımız işlemleri fonksiyonlaştırmış olduk. Artık; bu işlemleri ne zaman yapmak istersek bu fonksiyonu çağırmamız yeterli olacaktır. Dolayısı ile içerisindeki kodları devamlı yazmak zorunda kalmayacağız.

İpucu: Zorunlu olmamasına karşın yazdığımız kodların daha kolay okunabilmesi için;  değişkenlere veya fonksiyonlara birden fazla kelimeden oluşan isim verilecekse izlenen bir eğilim vardır. İlk kelimeden sonraki her kelimenin baş harfleri büyük yazılır. Örnek; ileriGit, geriyeDon, lediYakSondur gibi. Değişkenlerinizi ve fonksiyonlarınızı bu şekilde isimlendirmenizi öneriyorum.

Her Arduino eskimizde mutlaka olması gereken iki fonksiyon bulunmaktadır. Bunlar void setup ve void loop fonksiyonlarıdır. Arduino kartımıza kodlarımızı yüklerken bu iki fonksiyonun var olup olmadığı kontrol edilir. Bu fonksiyonlar olmadan eskimiz derlenmez.

Setup Fonksiyonu

Setup, Arduino’muzun okuduğu ilk fonksiyondur. Bu fonksiyon sadece bir kez okunur ve içerisinde yer alan kodları çalıştırılır. Adından (setup:kurulum, kurma anlamına gelir) da anlaşılacağı gibi Arduino’yu çalışmaya başlamadan önce hazırlar. Burada çalışma süresi boyunca değişmeyecek değerler ve özellikler tanımlanır. Şekil 2’de de görüleceği üzere void setup ve void loop ifadeleri turuncu renkte yazılmıştır. Bunun nedeni; bu fonksiyonların Arduino tarafından çekirdek fonksiyonlar olarak önceden tanımlanmış olmasıdır.

void setup(){

pinMode(13, OUTPUT);

}

Örneğimizde; 13. pinimizin bir çıkış pini olarak tanımlıyoruz. Burada kullandığımız pinMode fonksiyonu; veri alınması veya gönderilmesi için belirtilen pinin giriş yada çıkış olacağını tanımlamak için kullanılır. pinMode fonksiyonunun da turuncu olduğuna dikkat ediniz, bu fonksiyon da çekirdek fonksiyonlardır. Şekil 2’de OUTPUT ifadesinin de mavi renkte yazıldığı görülmektedir. Bunun nedeni de bu ifadenin sabit bir değer olarak önceden tanımlanmış olmasıdır.

Loop Fonksiyonu

Bu fonksiyonun özelliği, Arduino’muzun reset düğmesine basana kadar veya çalışması için verdiğimiz gücü kesene kadar sürekli çalışmaya devam etmesidir. Loop kelimesi, döngü demektir. İsminden de bu fonksiyonun sürekli çalışan bir fonksiyon olduğu anlaşılabilir.

void loop(){

digitalWrite(13, HIGH);

delay(1000);

digitalWrite(13, LOW);

delay(1000);

}

loop fonksiyonuna baktığımızda da digitalWrite ve delay şeklinde iki turuncu fonksiyon görmekteyiz.

digitalWrite fonksiyonu; belirtilen pine dijital bir veri gönderir. Bildiğiniz üzere LED’lerin iki durumu vardır; elektrik terimleriyle HIGH(yüksek) ve LOW(düşük) yani yanık veya sönük olma durumlarıdır. Bir Arduino Uno kartı çalışmak için 5V güce ihtiyaç duymaktadır. Dolayısı ile buradaki HIGH ve LOW ifadeleri 5V ve 0V‘a karşılık gelmektedir.

digitalWrite(13, HIGH);

satırı ile şu komutu vermiş oluyoruz: “Arduinomuzun 13. pinine bağlı olan LED’i yakmak için; bu pine 5V gönder”

delay fonksiyonu; belirlenmiş milisaniye kadar programımızı bekletmektedir. Bu örnekte yazılmış olan delay(1000) ifadesi, 1 saniye süreyle programımızı bekletmektedir.

Kodun tamamını irdeleyecek olursak;

  • 13. pine 5V güç iletiyoruz,
  • 1 saniye bekletiyoruz(bu süreçte LED’imiz hala yanık),
  • 13. pine 0V güç iletiyoruz,
  • 1 saniye bekletiyoruz(bu süreçte LED’imiz sönük)

Şimdi kodumuzu Arduino’muza yükleyeceğiz. Bunun için Arduino’muzu USB portundan bilgisayarımıza bağlayalım. Yukarıda anlattığım ayarları yapalım. Daha sonra kodu Araç Çubuğumuzdaki Upload(Yükle) düğmesi ile Arduino’muza yüklüyoruz.

Herşeyi doğru yaptıysak bize göz kırpan bir LED’imiz olacak.

Bu yazımda Arduino IDE’mizi tanıdık ve küçük bir uygulama yaptık. Bir sonraki yazımda breadboardlar, jumper kablolar ve LEDler ile bir uygulama yapacağız. Görüşmek üzere,

Robot’lu günler dilerim…

 

Arduino IDE Kurulumu

Merhaba,

Bu yazımda Arduino IDE’sinin nasıl kurulacağını anlatacağım. İlk yazımda da bahsettiğim gibi Arduino hem Windows, hem Mac, hem de Linux tabanlı işletim sistemlerinde çalışabilmektedir.

Öncelikle; Arduino IDE uygulamasını bilgisayarımıza indirmemiz gerekmekte.

Video 1: Arduino IDE İndirme

Bunun için;

http://www.arduino.cc adresine gidip, üstteki menüde yer alan Download linkine tıklıyoruz. Açılan sayfada kullandığınız işletim sistemine uygun olan uygulama versiyonunu seçiyoruz. Şekil 1’de de görüldüğü gibi Windows Installer, Windows Zip file for non admin install, Mac OS X, Linux 32 bits ve Linux 64 bits şeklinde seçenekler mevcut.

Download PageŞekil 1: Arduino IDE Download Sayfası

Daha sonra açılan sayfada Arduino’yu geliştirmeyi bu şekilde sürdürebilmek için bağış yapmanız istenmektedir. Tabii ki bu isteğe bağlı, zorunlu değil. Bağış yapmadan direkt uygulamayı indirmek için; “Just Download” düğmesine tıklayabilirsiniz. Bağış yaparak indirmek isterseniz, önce bağış yapmak istediğiniz miktarı seçip, daha sonra “Contribute&Download” düğmesine tıklayabilirsiniz.

DownloadPage2

Şekil 2: Arduino IDE Download Sayfası 2

Daha sonra uygulama bilgisayarınıza kaydedilecektir.

Şimdi geldik kurulum işlemine;

Windows İşletim Sistemi İçin Kurulum

Windows İşletim sistemi için “Windows Installer”, “Windows Zip file for non admin install” şeklinde iki kurulum dosyası tipi mevcut. “Windows Installer” ile tipik bir kurulum dosyası gelmektedir. Kurulum için dosyayı çalıştırmak ve yönetici haklarına sahip olmak gerekmektedir.

Video 2: Windows İşletim Sistemi İçin Arduino IDE Kurulumu

Eğer kullandığınız bilgisayarda yönetici hakkına sahip değilseniz “Windows Zip file for non admin install” sizin için. Bu seçenek ile sıkıştırılmış bir dosya bilgisayara inmektedir. Kurulum için ZIP dosyasının içindekileri bir klasöre çıkartmak yeterli olacaktır.

MAC OS İşletim Sistemi İçin Kurulum

Bilgisayarınıza indirmiş olduğunuz DMG uzantılı dosyaya çift tıklayınız. Bu dosyayı başka bir kaynaktan edindiğinizi ve bunu yine açmak isteyip istemediğinizi soran bir uyarı alacaksınız. Buna “Aç”/”Open” demeniz yeterli. Uygulama açılacaktır.

Linux İşletim Sistemi İçin Kurulum 

Eğer kullandığınız Linux işletim sistemi bir uygulama yöneticisine(Ubuntu için “Ubuntu Software Center” gibi) sahip ise, bu uygulama yöneticisinde doğrudan “Arduino” yazıp arama yapınız. “Arduino IDE” uygulamasını bulacaksınız. Uygulamayı seçip, “Install” düğmesine tıklamak yeterli olacaktır.

Terminal ekranından kurulum için ise;

sudo apt-get install arduino

yazıp Enter’e basın. Yönetici şifrenizi soracaktır, şifrenizi girip Enter’e basın.

“Do you want to continue [Y/n]” sorusuna cevap olarak “y” yazıp, Enter’e basın. Kurulum tamamlanacaktır.

Kurulum işlemi tamamlandıktan sonra uygulamayı çalıştırdığınızda Şekil 3’deki gibi bir uygulama ara yüzü ile karşılaşacaksınız.

Arduino IDEŞekil 3: Arduino IDE Uygulama Ara Yüzü

Bir Sonraki Yazıda Neler Var?

Bu yazımda Arduino IDE’sinin edinmesinden ve kurulumundan bahsettim. Bir sonraki yazımda Arduino ile kodlamaya başlayacağız. Öncelikle Arduino IDE’sini tanıtacağım ve daha sonra temel programlama bilgisi vererek, küçük bir örnek yapacağım. Bir sonraki yazımda görüşmek üzere,

Robot’lu günler dilerim…

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…

Merhaba

Merhaba, Bloğumda düzenli olarak Robotik alanıyla ilgili paylaşımlarda bulunacağım. İlk paylaşımlarım Arduino ile ilgili olacak.

arduino-UNO

Kaynak: www.arduino.cc

Arduino’nun tanımını şu şekilde yapabiliriz:

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 ile yolculuğumuza bazı temel kavram ve kanunlardan bahsederek başlayacağız. Daha sonra küçük robotlar yaparak ilerleyeceğiz.

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