Arduino İle İlk Adım – Başlangıç

Arduino’nun adını şu ana kadar duyduysanız muhtemelen ilginizi çekmiştir. Bu yazıda, elinize aldığınızdan itibaren nasıl bir başlangıç yapmanız gerektiğini inceliyoruz. Arduino, normalde yeni başlayan birinin oldukça yoğun bir öğrenme sürecinden sonra, bilen birinin de uzun zaman harcamasının olası olduğu birçok uygulamayı çok kısa sürede yapmaya olanak sağlayan, kullanımı ve kod yazımı oldukça basit olan ve kısa zamanda sonuca ulaşmak için oldukça ideal bir sistem. Atmel marka AVR serisi mikrodenetleyicileri kullanmakta. Yaygın olarak Atmega 168 ya da Atmega 328/P modellerine rastladığımız Arduino için, PIC modellerinde olduğu gibi dışarıdan bir programlayıcı gerekmiyor. Hatta bootloader denilen yazılımı sayesinde seri port üzerinden programlama işlemi yapılabiliyor. Bu terimler kafanızı karıştırmaya başladıysa sakın telaşlanmayın. Zira Arduino ile bunlarla uzun bir süre uğraşmaktan kurtulabilir, her birini yeri geldikçe oldukça basit bir şekilde anlayabilirsiniz.

Başlamak için ihtiyacımız olan şey tabii ki bir Arduino. Arduino, Türkiye’de de birçok yerde satılan Arduino’nun piyasada birçok modeli var. Şu anlık yine karmaşaya sebep olmaması açısından basit olan ve önerdiğim Arduino UNO modelinden bahsedeceğim. Ancak bilmenizi istediğim şey, Arduino’nun ARM işlemci barındıran bir modeli dahi piyasada var ve yazdığınız kodlar çok fazla değişikliğe uğramadan çalışabiliyor. Ayrıca daha önce görmüşseniz register, pc, osc gibi kavramlara da hiç bulaşmanız gerekmiyor.

Arduino UNO’yu Türkiye’den 50-60 TL civarına temin edebilirsiniz. Daha ucuz bir şey düşünüyorsanız Google’da Paperduino aramasını yaparak elle yapabileceğiniz bir modele ulaşabilirsiniz. Bunu düşünen arkadaşların bir Atmel programlayıcıya da ihtiyaç duyacaklarını belirteyim. Normalde Seri Port kullanılıyor fakat işlemciler boş olarak geldiği için bootloader işleminde Atmel programlayıcıya ihtiyaç oluyor. Farklı programlayıcılar mevcut olduğu için onların isimleriyle de kafa karıştırmak istemedim. Yazının devamında göreceğimiz Arduino menüsünden ya da ufak bir Google aramasından model isimleri ve fiyatları hakkında bilgi edinebilirsiniz. Son olarak, Arduino’nun yurtdışı fiyatlarıyla Türkiye fiyatları arasında çok büyük farklar olmadığını da belirteyim. Yani özel bir sebebiniz yoksa beklemenizi gerektirecek bir etken yok.

Bu paragraf yazının devamının anlaşılması için gerekli değildir. Arduino Bootloader’ı hafızada yer kaplayacağı için dert ediniyorsanız, 32 KB’lık flash hafızayla gelen Atmega328P’de 0.5 KB gibi ufak bir yer kapladığını söyleyeyim. Bu kadar kolaylık sağlayan bir sistem için oldukça az bir yer aslında. Ama yine de 32 KB’ye anca sığan bir projeniz varsa ve bu işlemciyi kullanmanız gerekiyorsa ona diyecek sözüm yok.

Son olarak, Arduino’nun açık kaynak olduğunu belirtelim. Açık kaynak donanım fikrinin gelişimini oldukça hızlandıran bir proje olan Arduino’nun devre şemalarına, bootloader dahil tamamının kaynak kodlarına ilgi alanınızdaysa Google üzerinden rahatça ulaşabilirsiniz. (2 Nisan 2015 Güncelleme: Arduino Yun’un kaynak paylaşımı ile ilgili sıkıntılar var. Bu yüzden şu an tüm Arduino modellerine açık kaynak ve özgür donanımlar diyemiyorum. İlgili forum başlığını buradan görüntüleyebilirsiniz.)

Şimdi konumuza dönelim.  İlgilenen arkadaşlar için aldığımız Arduino UNO’nun özelliklerine bakacak olursak:

– 16 Mhz işlemci- 32 Kb flash bellek
– 6’sı pwm olarak kullanılabilen 14 giriş-çıkış pini
– 6 adet analog giriş
– 7-12 V arası gerilimle dışardan besleme imkanı. İşlemcinize direk elektrik vermeyi düşünüyorsanız sakın bu değerleri denemeyin!
– Windows sürücülerini nasıl kuracağımızı bu yazıda göreceğiz. Linux ve Mac için sürücü kurmak gerekmiyor.
– Oldukça kolay programlanma

1. Arduino Nasıl Bağlanır? Bilgisayara Nasıl Tanıtılır?

Yazının devamı için gerekli uygulamayı buradan indirebilirsiniz. Güncel sürüme direk ulaşabilmeniz için o link verildi. Bu yazının yazılma tarihindeki en güncel sürüm olan 1.0.3 sürümünü Windows için buraya tıklayarak direk indirebilirsiniz. Dosyayı indirdikten sonra arşivi masaüstüne açın. Bu işlemde sonra şu şekilde bir klasörünüz olacak:Arduino Programının Windows'ta Açılması

arduino yazan programı çalıştırmak gerekiyor, herhangi bir kuruluma ihtiyaç yok.

Ubuntu, Linux Mint, Debian veya bu işletim sistemi tabanlı sistemlerin kullanıcıları:

Fedora ya da benzer işletim sistemi altıda yum paket yöneticisini kullananlar:

komutunu kullanarak ya da yazılım merkezinden Arduino aramasını yaparak otomatik kurulum yapabilirler. Ayrıca, Arduino.cc adresinde Linux için indirme linki de mevcut. Tamamen kullanıcı tercihine kalmış. (18 Şubat 2013 Tarihli Not: Linux Mint altında apt-get ile kurulum yaparsanız 1.0 sürümü yükleniyor, güncel sürüm olan 1.0.3’ü kullanmak isterseniz siteden indirmeniz gerekli.) Linux kullanıcıları uygulamayı çalıştırmak için program çalıştırma menüsünden(genelde ALT+F2 ya da programlar menüsü o da olmazsa komut satırı, arduino yazarak programı çalıştıraibilirler. Seri haberleşme yapacağımızdan Arduino’nun bilgisayarımıza bağlayacağımız USB’den seriye çevirici donanıma ulaşması gerekiyor(Çoğu Arduino kartında bu donanım zaten var, mesela UNO, Leonardo gibi modeller). Bu ulaşmanın gerçekleşmesi için programı konsoldan çalıştıranların sudo arduino şeklinde komut vermesi gerekli.

Şimdi Arduino’yu bilgisayara bağlama işleminin nasıl yapıldığına göz atalım. Arduino UNO için basit bir yazıcı kablosuyla, Leonardo için Micro USB kablosuyla doğrudan bilgisayarımızın USB portuna bağlıyoruz. Eğer Linux ya da Mac OS kullanıcısıysanız herhangi bir sürücü kurulumu gerekmiyor. Windows kullanıyorsanız sırasıyla:
Bilgisayarım(Sağ tık) -> Özellikler -> Aygıt Yöneticisi(Win XP’de Donanım sekmesinde, Win 7’de sol tarafta) -> Açılan Listeden Arduino UNO’ya çift tıklayın. Ardından:
Sürücüyü güncelleştir->Belirtilen konumu dahil et(isim değişik olabilir, son seçeneği seçiyoruz) -> Sihirbazın sıradaki ekranında C:\… şeklinde bir yer olacak. Gözat butonuna tıklayıp Arduino klasörü -> Drivers klasörünü seçip İleri’ye basıyoruz. Artık sürücülerimiz de yüklenmiş oluyor.

2. Arduino Programı Nasıl Kullanılır? Arduino’ya Nasıl Program Atılır?

Arduino’ya program atmak için ilk olarak bilgisayarımıza bağladığımız Arduino’yu ve bağlantı portunu Arduino program menüsünden seçmemiz gerekiyor. Bunun için sırayla şu adımları izleyebiliriz:
a) İlk olarak, programı açıp şu ekranı görüyoruz:
1-acilisHemen ardından, Tools menüsü altında Serial Port seçeneğine gelip bağladığımız portun yanında tik işareti yoksa tıklayıp işaretliyoruz. Genelde tek port gözükeceği için burda seçim hakkınız olmayacak. Birden çok seri port olduğu durumlarda Arduino’nuzu söküp takarak hangi port değişiyorsa onu seçmeniz gerektiğini anlayabilirsiniz.
b) İkinci aşama olarak, kullandığımız Arduino modelini tanıtıyoruz. Onun için de şu ekrandan elinizdeki Arduino modelini seçmeniz gerekiyor:
ara

Bu seçenekler arasından da elimizdeki Arduino modelini seçtikten sonra, Arduino üzerinde bulunan örnek programlardan LED yakıp söndüren basit uygulamayı deneyebiliriz. Bu denemeyi yapabilmek için:
4-acilis

Bu ekranda Blink seçeneğine tıklıyoruz ve önceden yazılıp test edilmiş basit bir kod karşımıza geliyor. Şöyle bir ekran olmalı:
5-acilis

Bu ekranı da gördükten sonra, artık kodlarımız derlenmeye ve Arduino üzerinde çalıştırılmaya hazır demektir. Sadece derleyip, kodlarımızı Arduino’ya atmak istemiyorsak en soldaki tik işareti ile gösterilen Verify butonunu kullanabiliriz. Bu butona basıldığında kod derlenecek fakat Arduino’ya atılmayacaktır. Faydası ise kodta yazım vs. herhangi bir hata olduğu zaman derlenmeyi engelleyecek veya uyarıya sebep olacak hataların önceden görülmesidir. Kodumuzu derleyip Arduino’muza atmak içinse şöyle bir yol izleyebiliriz:
6-acilisParlak olan ve sağ ok resmi ile temsil edilen buton, Upload yani gönderme butonu. Bu botun kodumuzu derler ve Arduino’ya yükler. Yükleme bittiğinde şöyle bir yazı alt tarafta gözükür:
7-acilis
Bu işlemin ardından artık kodumuz çalışmaya hazırdır. 13 numaralı pine genelde Arduino modellerinde bir LED bağlıdır. Bağlı değilse de, 330 Ohmluk bir direnç ile bir LED’i, LED’in + ucu 13 numaralı pine, direncin – ucu ise GND yazan uca bağlanacak şekilde ayarlayabilirsiniz.

Elinizdeki Arduino üzerinde halihazırda 13 numaralı pine bağlı bir LED bulunduğunu varsayarak, şöyle de bir uygulama hazırladım. Bunun yaptığı, 13 numaralı pinin kontrolünde 4 tane LED’i aynı anda yakma ve söndürme işidir. Başlangıç için basit bir uygulama olmasını istediğim için daha fazla zorlaştırmadım. Devre şu şekilde:
8-acilis

Sorularınız varsa her daim buradan sorabilirsiniz, elimden geldiğince ve dilim döndüğünce bildiğim her şeyi anlatmaya çalışırım. Hepimize iyi çalışmalar.

Tavsiyeler:

Atmega328 ile Atmega328P arasındaki fark için: http://rajeshkovvuri.wordpress.com/2011/11/01/atmega328p-and-atmega328-what-is-the-difference/
Düşük güç tüketimli modeller hakkında Atmel resmi sayfası: http://www.atmel.com/technologies/lowpower/default.aspx

  • Göktuğ ÖZEL

    Merhaba. Ben arduino nano ATMega38 aldım dediklerinizi aynen uyguladım ancak upload sırasında sadece
    avrdude: stk500_getsync(): not in sync: resp=0x00
    hatasını alıyorum nedenlerini araştırdım düzgün kurulmamış denmiş ancak kurulumda zor olan bir kısım yok düzgün de kurduguma inanıyorum bu hata neyin göstergesi olabilir. şimdiden cok tesekkür ederim. Saygılar…

    • Gur@y

      Merhabalar,
      Bu sorunu ben de çok kez yaşadım. Programı çalıştırırken “Yönetici olarak çalıştır” ı seçerek deneyin. Muhtemelen sonuç vermez ama yine de denemekte fayda var. Daha sonra, Arduino modelini doğru seçtiğinizden emin olun. Nano’yu seçmezseniz böyle bir sorun almış olabilirsiniz. Ek olarak, yine Tools menüsünde “Serial Port” diye bir seçenek var, onda doğru portu seçtiğinize emin olun, birden fazla görüyorsanız sırayla deneyin. Ama yine de mümkünse listedeki diğer Arduino modellerini de bir deneyin. Alakasını çözememiş olmakla birlikte model seçtiğiniz menü altındaki “Programmer” seçeneğiyle oynamak da çözüm olabiliyormuş, yine de pek ihtimal vermiyorum buna isterseniz deneyin. Elinizdeki model otomatik reset özelliğine sahip miydi tam hatırlamıyorum ancak desteklemiyorsa, yazılım tam atılırken(tam olarak bilgisayarınızda “uploading” yazısını gördüğünüz anda) üzerindeki reset butonuna basın.
      İnternette daha önce çok kez arayıp net bir çözüm bulamadığımız için birkaç öneride daha bulunmam gerekiyor. Öncelikle elinizdeki işlemcide Arduino bootloader’ının yüklü olup olmadığını satın aldığınız yere sorabilirsiniz. Zira bootloader yüklü değilse elinizde bir AVR programlayıcısı olmadan(USB-seri çevirici FTDI ler değil) bu işi çözmeniz imkansız olur.
      Son olarak da hiçbiri işe yaramazsa aldığınız yere bir götürüp onlardan herhangi bir programı atmalarını isteyin. UNO ile benzer bir sorunu yaşayan bir tanıdığımın Arduino’sunda problem olduğu anlaşılmış ürün değişimi yapılmıştı, kısacası sizle alakasız bir problem olabilir, yani sorun üründe de olabilir.

  • ali üney

    Merhaba. Ben öğrenciyim temel olarak mikro denetleyiciler dersi aldım.
    Yukarıda anlattıklarınızı kısmen anladım. Ödev olarak arduino itdb02-2.4 ile bir uygulama yapacağım. itdb02-2.4 ü arduino ya program olarak nasıl bağlayacağımı bilmiyorum ne amaçla nasıl program yap çağımı (ekranda yazı yazdırma, butonsal olarak okuma, resim görme vs.) bilmiyorum. bana yardımcı olabilir misiniz veya tavsiye ettiğiniz bir site varsa şimdiden çok teşekkür ederim. :)

    • gurayyildirim

      Merhaba,
      ekranı daha önce kullanmadığım için direk bir şey söyleyemiyorum. Ama şöyle bir kütüphanesi varmış hazırda:
      https://code.google.com/p/itdb02/

  • neslihan çivili

    merhabalar ben arduino sizin paylaştığnıız gibi yaptım ve önce 13 numaraya taktım ona bağlı ışık serisi yandı ama diğer ışakları nasıl yakacağımı bilmiyorum bana yardımcı olur musunuz. Ama çok acil bilgilerinize ihtiyacım var. modeli arduino uno

    • gurayyildirim

      Şu an Arduino ile ilgili Türkçe yazılmış bir kitap var, ondan faydalanabilirsiniz. Temel konularda şu ana kadar hazırladığım videoları da Youtube üzerinden izleyebilirsiniz, ama yeterli olurlar mı bilmiyorum.

  • Neslihan Çivili

    Youtube açılmıyor pc m de onun için videolarınızı izleyemiyorum
    İlginiz için teşekkür ederim.

  • bigcty

    herkese merhaba ben tuşa bastığımda led yakmak istiyorum nasıl yapacağım

  • Mehmet Yolcu

    iyi günler ben airdiuno nano v3 ile bir robot projem vardı. ardiuno nanov3 usb ile bilgisayara taktıgımda serial portu görmuyor

  • armagan

    arduinoya yüklediğimiz programın yazılımını silebilir miyiz yoksa arduinpyu mu değiştirmeliyiz

    • gurayyildirim

      tekrar kod atınca içindeki önceki program geçersiz olur, başka bir işleme gerek kalmaz.

  • Kepenek

    avrdude: stk500_getsync(): not in sync: resp=0x00 hatası veriyor ne yapmalıyım?

  • Burak Halil Ipek

    merhaba ben myo öğrencisiyim arduino ile uzaktan kumandalı araba yapacağız ancak hiç arduino bilgim yok bana yardımcı olabilirmişsiniz rıca etsem

  • ecem

    arduino içine program yazıp attık diyelim çalıştı iyi hoş da ben ne zaman açsam arduinoyu o program içinde mi olacak? başka yazılımları etkilemeyecek mi bu?

    • gurayyildirim

      Arduino kartının üzerindeki çipin içerisine yükleniyor o program. Çip içerisinde en son yüklenen program kalır, ondan önceki program yeni program yüklenirken otomatik olarak silinir. Haliyle karışmaz.

      • Özkan Erzurum

        vs boyut ulasbileceğim sosyal medya hesabı varmı facebook skype

  • Şükrü Avcı

    Aygıt yoneticisine tikladiktan sonra arduino gozukmuyo yardım edin lütfen

    • gurayyildirim

      Driver kurulumu eksik kalmıştır. Orijinal değilse driverı farklı bir yerden kurmak gerekebilir. Ben Linux kullanıyorum şu ana kadar otomatik tanımadığı olmadı.

  • Ertuğrul

    Yükle dedikten sonra seçilen portda bir kart bulunamadı diyor

    • gurayyildirim

      Kart ya da port seçilmemiş/yanlış seçilmiş olabilir. Driver da kurulu olmayabilir.

  • Ahmed-i Bican Ay

    Merhabalar bende arduino mega (klon) sipariş ettim ve geldi iki haftadır bilgisayara tanıtmaya çalışıyorum olmuyor. İnternetten bulduğum butun driverleri kurdum olmuyo. Mac book Pro Sierra sistemim bana yardımcı olabilir misiniz.

    Şimdiden teşekkürler

  • Enes Polat

    Arduino Uno Kartım var fakat Araçlardan kart seçeneğine geldiğimde Arduino Uno Seçeneği yok ekran görüntüsü: https://i.hizliresim.com/p07mBq.png

    • Enes Polat

      Bi bakarmısınız