Arduino Nedir ?
Arduino kolay programlanabilir, ucuz bir donanıma sahip, açık kaynak kodlu bir mikro denetleyicidir. Arduino devre kartları girişlerine bağlanan sensörleri okuyabilir. Farklı cihazlar ile haberleşebilir. Yazdığınız program neticesinde çıkışlarına bağlanan elektronik anahtarları kontrol edebilirsiniz.
Arduino kolay programlanabilir, ucuz bir donanıma sahip, açık kaynak kodlu bir mikro denetleyicidir.
Arduino bir Giriş/Çıkış (Input/Output) kartı ve Processing Programlama dilinin uygulamasını barındıran bir fiziksel programlama platformudur.
Arduino farklı cihazlar ile haberleşebilir
Arduino tek başına çalışan interaktif nesneler oluşturmak için kullanıldığı gibi bilgisayar üzerinde çalışan yazılımlarda da kullanılabilir.
Arduino için hazır üretilmiş kartlar satın alabilirsiniz veya kendi Arduino kartlarınızı üretebilirsiniz.
Arduino devre kartları girişlerine bağlanan sensörleri okuyabilir.
Arduino yazdığınız program ile çıkışlarına bağlanan elektronik anahtarları kontrol edebilirsiniz
Arduino, buton veya sensörlerden gelen elektriksel değerleri algılar ve buna bağlı olarak ışıkları, motorları veya diğer aktüatörleri istediğimiz doğrultuda çalıştırır.
Arduino C / C++ programlama dilleri ile geliştirilmektedir.
Arduino geliştirme kartı üzerindeki mikroişlemci (AtmegaXX) Arduino programlama dili (wiring tabanlı) ile programlanır ve bu program Processing tabanlı Arduino Yazılım Geliştirme Ortamı (IDE) yardımı ile karta yüklenir.
Arduino’nun kullandığı dilden bahsedecek olursak, kullandığı dil oldukça basittir,temel bir C bilgisi ile usb üzerinden direkt olarak mikrodenetleyicimizi programlayabiliyoruz ve gerçek zamanlı uygulamalar çalıştırabiliyoruz. Programlama yaparken java üzerine yazılmış güzel, sade bir o kadarda akıllı bir editör tasarlanmıştır bu editörün içerisinde bir çok kütüphane mevcuttur ve bu editör geliştiricileri tarafından sürekli güncel tutulması sebebiyle gün geçtikçe daha kullanışlı ve fonksiyonel hale getirildiği görülüyor. Bütün bunları göz önünde bulundurduğumuzda çok ileri bir yazılımcı olmadan bir çok uygulamayı Arduino kullanarak yapabiliriz. Arduino yazılımının diğer bir güzel yanı ise geliştiricileri tarafından hazırlanan zengin kütüphanelerdir. Bu kütüphane dosyaları sayesinde, bir çok kod yükünden kurtularak, sadece yapmak istediğiniz projenin kodlarına yönelebiliyorsunuz.
Biraz da donanımdan bahsedecek olursak, Arduino kartlarında Atmel işlemcilerini kullanmaktadır. Mikrodenetleyicimiz önceden Bootloader programı içine atılmış şekilde geldiğinden dolayı harici bir programlama cihazına ihtiyaç duymaz. Bu da bizim için çok büyük bir avantaj, yani ek bir programlayıcı gereksinimini ortadan kaldırıyor. Arduinonun bir çok çeşidi bulunmaktadır, uygulamanızın büyüklüğü veya küçüklüğüne göre bu çeşitlerden herhangi birini seçebiliriz. Uzun bir araştırma sürecine girdiğinizde karşınıza çok fazla çeşidinin çıktığını göreceksiniz ve halen daha bu kartlar yenilenmekte ve geliştirilmektedir.
Arduino’nun şu an ki kartlarına uygun olarak geliştirilen bir çok shield Türkçesi kalkan olan ek donanımlar yapılmıştır (Bluetooth, Ethernet, Wireless, Motor sürücü katmanları vs.).
Arduino kartları biline birçok sensörden veri alıp işleyebiliyor. sıcaklık uzaklık ultrasonik kızılötesi, nem ölçer vs.
Neden Arduino ?
Arduino, açık kaynak kodlu bir mikrodenetleyici kartıdır. Ana MCU Atmel tabanlıdır. (MCU’ya önceden bir mini program – bootloader yüklenmiştir). Kart ile robotik ve elektronik uygulamalarınızı kolayca gerçekleştirebilirsiniz.
Bu kadar popüler olmasının bir kaç nedeni vardır. Bunlar:
- Açık kaynaklı bir geliştirme platformudur. (Devre şemasından, programlama arayüzüne kadar…)
- Program geliştirmek basittir. Aynı kart üzerinden hem programlanır hem test edilebilir.
- Ardunino Programlama dili de basittir. Bolca örneği mevcuttur.
- Yapmak istediğiniz Arduino Projeleri benzerleri de önceden yapılmıştır. Diğer proje yapımcılarıyla daha kolay bilgi alışverişinde bulunabilirsiniz.
- Çevresiyle çok kolay bir şekilde etkileşime girebilen sistemler tasarlayabilirsiniz.
- Arduino kütüphaneleri ile kolayca mikrodenetleyicileri programlayabilirsiniz.
- Girişleri sayesinde analog ve dijital verileri işleyebilirsiniz.
- Sensörlerden gelen verileri kolayca kullanabilirsiniz.
- Arduino sayesinde dış dünyaya çıktılar (ses, ışık vb…)üretebilirsiniz.
Arduino Bileşenleri
Arduino geliştirme ortamı (IDE)
Arduino bootloader (Optiboot)
Arduino kütüphaneleri
AVRDude (Arduino üzerindeki mikrodenetleyici programlayan yazılım)
Derleyiciden (AVR-GCC) oluşur.
Arduino yazılımı bir geliştirme ortamı (IDE) ve kütüphanelerden oluşur. IDE, Java dilinde yazılmıştır ve Processing adlı dilin ortamına dayanmaktadır. Kütüphaneler ise C ve C++ dillerinde yazılmıştır ve AVR-GCC ve AVR Libc. ile derlenmiştir.
Optiboot bileşeni Arduino ‘nun bootloader bileşenidir. Bu bileşen, Arduino kartlarının üzerindeki mikrodenetleyicinin programlanmasını sağlayan bileşendir.
Arduino ‘nun bu kadar çok tercih edilmesini sağlayan en önemli bileşen ise mikrodenetleyici konusunda detaylı bilgi sahibi olmayı gerektirmeden herkesin programlama yapabilmesini sağlayan Arduino kütüphaneleridir. Arduino kütüphanelerinin bir listesine resmi sitesinden ulaşabilirsiniz. Arduino kütüphaneleri, geliştirme ortamı ile birlikte gelmekte ve “libraries” klasörünün altında bulunmaktadır. Kodları inceleyerek mikrodenetleyicilerin nasıl programlandığını ve kütüphanelerin yapısını görmeniz mümkündür.
Son olarak AVRDude bileşeni ise derlenen kodları programlamak için kullanılır.
Arduino ile ilgili temel kavramlar
µP (Mikroişlemci): Mikroişlemci, bir Arduinonun beynidir. Arduino geliştirme kartı çeşitli AVR mikroişlemciye dayalıdır, hepsinin de kendine has fonksiyonları ve özellikleri vardır.
Giriş Voltajı: Kart için önerilen voltaj aralığıdır. Kart maksimum voltaj aralığından çok az daha fazla voltajla da beslenebilir, bu da güvenlidir. Aklımızda bulunması gereken püf nokta ise Li-Po piller 3.7V desteklemektedir. Piyasadaki Arduino çeşitleri de bu voltaj değerini desteklemektedir. Dolayısıyla arduinolar 3.7V Li-Po pillerle doğrudan beslenebilir.
Sistem Voltajı: Kartın sistem voltajıdır diğer bir deyişle mikroişlemcinin çalıştığı voltajdır. Bu, kartın uyumluluğu için –özellikle 5V’tan 3.3V’a geçildiğinden beri- önemli bir faktördür. Bağlanmak istenilen dış sistem ne olursa olsun her zaman elimizde bulunan işlemcinin voltaj seviyesiyle eşleştirme gereği duyulacaktır.
Saat Hızı: Mikroişlemcinin hıza bağlı frekans aralığıdır ve komutları çalıştırma hızıyla bağlantılıdır. Ayrıca bazı nadir beklentiler oluşabilir. Çoğu ATMega mikroişlemci 3V’ta iken saat hızı 8MHz kaldırırken çoğu 5V’ta 16MHz’de çalışır.
Dijital I/O: Arduinodaki dijital Giriş/Çıkış’ların sayısıdır. Bunların her biri giriş ya da çıkış olarak bazısı da PWM olabilecek şekilde tasarlanmıştır.
Analog Giriş: Arduinodaki kullanılabilir analog girişlerin toplam sayısıdır. Analog pinler ‘’A’’ harfi ve yanındaki numaralarla isimlendirilir ve bu da ATMega yonga içindeki Analog to Digital Converter (ADC) aracılığıyla analog değerleri okumayı sağlar. Analog girişler eğer ihtiyaç olursa daha fazla dijital Giriş/Çıkış olarak kullanılabilir.
PWM: PWM sinyal üretebilme kapasitesi olan dijital Giriş/Çıkış’ların sayısıdır. PWM sinyalleri analog çıkışlar gibidir. Arduinoyu analog voltajını 0 ve sistem voltajı arasında kandırma imkânı tanır.
UART: Arduinonun desteklediği, birbirinden ayrı seri bağlantı çizgileri sayısıdır. Çoğu arduino kartta, dijital Giriş/Çıkış pinleri 0 ve 1 serilerin 2 katıdır ve alınan pinler seri programlama portuyla paylaşılmıştır. Bazı arduino kartları birden fazla UART’a sahiptir ve birden fazla seri portu bir kerede destekleyebilir. Bütün arduino kartlar programlama için en az bir UART’a sahiptirler. Fakat bazılarında pinlere erişilebilir değildir.
Flash Memory: Taslakların depolanabileceği maksimum mevcut hafızadır. Bütün bu hafızanın tamamı kullanılabilir değildir, zira küçük bir kısmı bootloader tarafından kullanılmaktadır ( genellikle 0,5 ve 2 KB arası).
Bootloader: Eğer mikroişlemci arduinonun beyni olarak nitelendirilirse, bootloader kişiliği olarak değerlendirilebilir. Bootloader ATMega’nın içinde bulunur ve seri port aracılığıyla donanım programlaması için yükleme yapılmasını sağlar. Çünkü farklı Arduino kartları farklı mikroişlemciler ve programlama arayüzleri kullanır. Her birinde farklı bootloader programı vardır. Bootloader için olan kaynak kodları, arduino dağıtımı içinde bulunabilir. Bütün Arduino bootloaderlar Arduino IDE yazılımından kod yüklenmesini sağlar.
Programlama Arayüzü: Arduino kartını programlamak için bilgisayarla bağlantı kurulmasını sağlar. Bazı kartlar gömülü USB jacklar barındırır, dolayısıyla tek yapılması gereken USB kabloyu bilgisayara bağlamaktır. Bazı kartlar ise headerlara sahiptir böylece onlara da yapmanız gereken tek işlem FTDI Basic breakout ya da FTDI kabloyu bağlamaktır. Arduino Mini gibi kartlar ise seri pinler programlama için bulunur fakat FTDI headerlarla uyumlu değildirler. Gömülü USB jack taşıyan her Arduino USB dönüşümleri için bazı farklı donanımlara sahiptir. Bununla birlikte, bazı kartlar ek donanıma ihtiyaç duymazlar çünkü mikroişlemcilerinin gömülü USB desteği vardır[37].
Arduino temel donanım özellikleri
Şekil : Arduino Uno R3
Donanım özellikleri board’a göre farklı özellikler göstermektir.
- ATmega8, ATmega168, ATmega328 mikroişlemci
- 5 voltluk regüle entegresi,
- 16MHz kristal osilator yada seramik rezonatör,
- Flash Memory,
- SRAM
- EEPROM
Arduino ile basitçe ne yapabilirim?
- Kolay bir şekilde çevresiyle etkileşime girebilen sistemler tasarlayabileceğiniz
- Açık kaynaklı bir geliştirme platformudur.
- Arduino kartları üzerinde Atmega firmasının 8 ve 32 bit mikrodenetleyicileri (arduino due) bulunur.
- Arduino kütüphaneleri ile mikrodenetleyicileri kolaylıkla programlayabilirsiniz.
- Analog ve dijital girişleri sayesinde analog ve dijital verileri işleyebilirsiniz.
- Sensörlerden gelen verileri kullanabilirsiniz
- Dış dünyaya çıktılar (ses, ışık, hareket vs…) üretebilirsiniz.
Arduino Nasıl Kullanılır?
Arduino’nun çalışma prensibi oldukça basittir. Öncelikle, bir Arduino kartı seçilir ve bir bilgisayara USB aracılığıyla bağlanır. Arduino IDE adı verilen yazılım ortamında kod yazılır ve bu kod kartın mikrodenetleyicisine yüklenir. Arduino kartı, bu kodu çalıştırarak girişlerden aldığı verileri işleyip çıkışlara sinyal gönderir.
Arduino’nun genel çalışma adımları:
- Arduino Kartının Bağlanması: İlk olarak, bir Arduino kartı (örneğin, Arduino Uno) bir USB kablosu aracılığıyla bilgisayara bağlanır.
- Arduino IDE ile Kod Yazma: Arduino IDE yazılımı açılır ve projeye uygun bir kod yazılır. Bu kod, kartın mikrodenetleyicisine yüklenecek programı içerir.
- Kodun Yüklenmesi: Yazılan kod, USB üzerinden Arduino kartına yüklenir. Arduino, bu kodu çalıştırarak giriş ve çıkış bileşenlerini kontrol eder.
- Sonuçları Gözlemleme: Kartın çalışması sonucunda, sensörlerden gelen veriler işlenir ve motorlar, LED’ler, ekranlar gibi çıkış bileşenleri kontrol edilir.
Arduino donanım kartının temel bileşenleri
1- Power USB : Arduino ile bilgisayarınız arasındaki iletişimi sağlar. Aynı zamanda USB üzerinden gereken gücü temin eder.
2- Power Socket : Arduino’nun çalışması için gereken gücü, harici bir DC adaptör ile bu soket üzerinden sağlayabilirsiniz.
3- Voltaj Regülatörü : Arduino için sağladığınız elektriksel gücü kart üzerindeki devre elemanlarına kararlı şekilde dağılımını sağlar.
4- Kristal Osilatör : Arduino işlemcisinin çalışabilmesi için gereken frekans üretimini yapar.
5- Reset : Arduino devre kartını sıfırlar.
8- GND : – Bağlantısının yapılacağı pindir. Toprak veya şase olarak da ismi geçer.
9- Vin : Arduino için harici güç girişi olarak kullanılır.
10- Analog In : 6 adet analog pin bulunmaktadır. A0..A5 olarak isimlendirilir. Isı, nem gibi sensörlerden gelen analog sinyalleri okumak için kullanılırlar. Bu sinyallerden analog / dijital çeviriciler ile mikroişlemciye iletilir.
11- Mikrodenetleyici: Giriş pinlerinden gelen verileri okuma, üzerindeki yazılımı çalıştırma, çıkış pinlerine veri gönderme gibi işlemleri yürütür.
12- ICSP : Bu pinler SPI kütüphanesi ile SPI haberleşmeyi sağlar.
13- Power LED : Arduino’ya güç geldiğini gösterir LED ışık kaynağıdır.
14- Çıkış LED : Arduinonun 13 nolu çıkış pinidir. Bu çıkış direkt olarak devre kartının üzerindeki bir LED’e bağlıdır.
15- Arduino Uno ‘da bulunan 14 tane dijital giriş / çıkış pininin tamamı, pinMode(), digitalWrite() ve digitalRead() fonksiyonları ile giriş ya da çıkış olarak kullanılabilir. Bu pinler 5 V ile çalışır. Her pin maksimum 40 mA çekebilir ya da sağlayabilir ve 20-50 KOhm dahili pull – up dirençleri vardır. Ayrıca bazı pinlerin özel fonksiyonları vardır.
Serial 0 (RX) ve 1 (TX) :Bu pinler TTL seri data almak (receive – RX) ve yaymak (transmit – TX) içindir.
Harici kesmeler (2 ve 3) :Bu pinler bir kesmeyi tetiklemek için kullanılabilir.
PWM: 3, 5, 6, 9, 10, ve 11 :Bu pinler analogWrite () fonksiyonu ile 8-bit PWM sinyali sağlar.
AREF :Analog girişler için referans voltajıdır. analogReference() fonksiyonu ile kullanılır.
16- GND : – Bağlantısının yapılacağı pindir. Toprak veya şase olarak da ismi geçer.
17- Reset : Mikrodenetleyiciyi resetlemek içindir.
Arduino’nun Avantajları
Kullanım Kolaylığı: Arduino, hem yazılım hem de donanım açısından kullanıcı dostudur. Programlama dilleri basit ve anlaşılır olduğu için, yeni başlayanlar için idealdir.
Açık Kaynaklı Olması: Arduino’nun açık kaynaklı olması, kullanıcıların projelerini özgürce geliştirebilmesine ve paylaşabilmesine olanak tanır. Aynı zamanda, topluluk desteği de oldukça güçlüdür.
Geniş Ekosistem: Arduino, sensörler, motorlar, ekranlar ve modüller gibi geniş bir aksesuar yelpazesi sunar. Bu sayede, projeler için uygun donanım bulmak oldukça kolaydır.
Uygun Maliyet: Arduino kartları, profesyonel çözümlere kıyasla oldukça uygun maliyetlidir. Bu da düşük bütçeli projeler için ideal bir çözüm sunar.
Arduino’nun Dezavantajları
Arduino modellerinin büyük bir kısmının “CPU Speed” kısmının 16Mhz gibi yavaş bir hız olduğunu görebilirsiniz (Sadece Arduino DUE 32-bit ARM çekirdek mikro denetleyicisi – Çalışma frekansı 84 MHz ). Arduino’yu yüksek hız gerektiren uygulamalarda istenileni verememektedir. Bu nedenle hız gerektiren uygulamalarda farklı yöntemlere başvurulmaktadır.
Led Bağlantısı İçin Hangi Direnç Seçilmeli
Ledlerin çalışma voltajı ve çektikleri akımlar
Kırmızı LED için yaklaşık 1,8V-15mA
Sarı LED için yaklaşık 2V-15mA
Yeşil LED için yaklaşık 2,2V-15mA
Mavi ve Beyaz LED için ise yaklaşık 3V-30mA’dir.
Kırmızı LED için yaklaşık 1,8V-15mA
Kırmızı led için R= (5v-1.8v) / 0.015A = 3.2/0.015= 213 Ohm çıkar.
Piyasada 213 ohm direç bulamazsınız. Bunun yerine 220 ohm ve 330 ohm gibi yakın değerlerdeki dirençler kullanılır.
Arduino ile kullanılan Sensörler
Arduino ile birlikte kullanabileceğiniz birçok sensör bulunmaktadır.
- Mesafe sensörleri (Ultrasonik, PIR , Kapasitif, Endüktif, Kızılötesi Optik…)
- Kuvvet/Ağırlık/Basınç sensörleri
- Eğim sensörleri (Flex, Lineer/Esnek Potansiyometre …)
- Manyetik sensörler (Hall effect, reed röle…)
- Sıcaklık/Nem/Su Seviyesi sensörleri ( NTC , PTC , Yağmur Sensörü…)
- Ses sensörleri (Dinamik/Kapasitif/Şeritli/Kristal/Karbon Tozlu Mikrofon)
- Işık/renk sensörleri ( LDR , RGB , UV , Fototransistör , Fotodiyot …)
Arduino kartları
Arduino Uno R3
Mikrodenetleyici: ATmega328 klon ise CH340 yada CH341
Çalışma gerilimi: 5 Volt
Önerilen giriş voltajı: 7 – 12 Volt
I/O (giriş/çıkış) pin sayısı: 14 (6 PWM)
I/O çıkış akımı: 40 mA
Analog giriş pin sayısı: 6
Flash bellek: 32 KB
SRAM: 2 KB
EEPROM: 1 KB
Arduino Nano
Arduino Nano kartı, Uno kartı ile aynı özelliklere ve aynı yapıya sahip olup Uno’dan çok daha küçüktür. Bu sayede daha küçük tasarımlı projelerde Uno yerine tercih edilirler. Arduino Uno’dan sonra en ünlü kartlardan biridir.
Mikrodenetleyici : ATmega328
Çalışma Gerilimi : 5V
Analog Giriş Pinleri : 8
Giriş Gerilimi (önerilen) : 7–12V
Dijital G/Ç Pinleri : 22 (6 tanesi PWM çıkışını sağlamak için)
Arduino Mega
Arduino Mega , çalışma prensibi olarak Arduino Uno’ya benzeyen ve ondan sonra en ünlü olan bir diğer karttır. Arduino Mega, Nano’nun tersine Uno’dan çok daha büyük bir yapıya sahiptir. Bununla birlikte çok daha fazla giriş/çıkış pini vardır. Arduino Mega daha büyük tasarımlı ve daha çok elektronik komponentin bulunduğu, daha fazla pine ihtiyaç duyulan projeler için kullanılmaktadır.
Mikrodenetleyici: ATmega2560
Çalışma gerilimi: 5 Volt
Önerilen giriş voltajı: 7 – 12 Volt
I/O (giriş/çıkış) pin sayısı: 54 (15 PWM)
I/O çıkış akımı: 40 mA
Analog giriş pin sayısı: 16
Flash bellek: 256 KB
SRAM: 8 KB
EEPROM: 4 KB
Arduino Mini
Arduino Mini kartı , Pro Mini ile neredeyse aynı olup sadece Breadboard üzerinde kablolama imkanı sunmaktadır.
Arduino Pro Mini
Arduino Pro Mini, Uno’dan farklı olarak fazladan 2 analog girişe sahiptir ve doğrudan USB kablosu üzerinden programlanmamaktadır. Pinleri lehimsiz olarak gelmektedir.
LilyPad
LilyPad. Arduino’nun giyilebilir teknoloji için özel olarak tasarladığı bir kart, değişik pin tasarımı ve dikilebilir yapısı ile amaca özel olarak tasarlanmış bir Arduino modelidir.
Arduino DUE
Arduino DUE kartı diğer kartlardan çok daha farklı olup 32 Bit işlemciye sahip ilk Arduino modelidir. Üzerinde ARM mimarisine sahip 32 Bitlik işlemci vardır. Bu, diğer Arduino kartlarına göre çok daha fazla veri işleyebildiği anlamına gelmektedir. Yapı olarak Arduino Mega ile aynıdır.
Arduino Leonardo
Arduino Leonardo modeli pin yapısı olarak Uno’ya benzemektedir. Uno’dan en büyük farkı üzerinde dahili bir serial dönüştürücü olmamasıdır. Bunun sebebi Leonardo üzerinde bulunan Atmega32u4 işlemcisinin kendi pinleri vardır. Kullanım olarak Uno’dan bir farkı yoktur.
Mikrodenetleyici: ATmega32u4
Çalışma Voltajı: 5Volt
Giriş Voltajı (önerilen): 7–12V
Dijital I/O Pinleri : 20 (7 tanesi PWM çıkışı, 12 tanesi analog giriş)
Analog Giriş Pinleri : 12
Arduino Esplora
Arduino Esplora yapı olarak diğer modellerden farklıdır, biraz daha kumandaya benzemektedir. Esplora’nın yapılış amacı Arduino’ya yeni başlayanlara çeşitli sensörlerin kullanımını öğretmektir. Üzerinde çeşitli sensörler, Joystick ve farklı elektronik komponentler bulunmaktadır.
Arduino YUN
Arduino YUN, üzerinde dahili olarak hem ethernet hem de WiFi modülü içermektedir. Kartın üzerinde hem bir Atmega mikroişlemci hem de Linux mikroişlemci bulunmaktadır. Host özellikli, Linux işlemciye bağlı ikinci bir USB portu bulunmaktadır. Kartın hafızası harici bellek ile artırılabilmektedir.
Arduino Micro
Arduino Micro
Mikrodenetçi: ATmega32U4
Çalışma voltajı: 5V
Giriş voltajı(önerilen): 7–12V
Dijital I/O Pinleri: 20 (7 tanesi PWM)
Analog Giriş Kanal Sayısı: 12