Arduino

Vikipedi, özgür ansiklopedi
Arduino
Arduino Logo.svg
Arduino Uno - R3.jpg
Arduino Uno SMD R3
Tip Tekli mikrodenetleyici
İşletim sistemi Yok
CPU Atmel AVR (8-bit),
ARM Cortex-M (32-bit),
Intel Quark (32-bit)
Depolama kapasitesi Flash, EEPROM
Hafıza SRAM
Grafik Yok
Website arduino.cc
Arduino Uno ile bana dokun projesi. Kurşun kalem yazısına dokununca LED ışığı yanıyor

Arduino bir G/Ç (I/O) kartı ve Processing/Wiring dilinin bir uygulamasını içeren geliştirme ortamından oluşan bir fiziksel programlama platformudur. Arduino tek başına çalışan interaktif nesneler geliştirmek için kullanılabileceği gibi bilgisayar üzerinde çalışan yazılımlara da (Macromedia Flash, Processing, Max/MSP, Pure Data, SuperCollider gibi) bağlanabilir. Hazır üretilmiş kartlar satın alınabilir veya kendileri üretmek isteyenler için donanım tasarımı ile ilgili bilgiler mevcuttur.

Donanım[değiştir | kaynağı değiştir]

Arduino Diecimila

Arduino Açık kaynak donanım'dır. Donanım referans tasarımları Creative Commons Attribution Share-Alike 2.5 lisansı altında dağıtılır ve Arduino web sitesinde mevcuttur. Donanımın bazı sürümleri için düzen ve üretim dosyaları[1] da mevcuttur.

Arduino kartları bir Atmel AVR mikrodenetleyici (Eski kartlarda ATmega8 veya ATmega168, yenilerinde ATmega328 ya da ATmega4809[2]) ve programlama ve diğer devrelere bağlantı için gerekli yan elemanlardan oluşur. Her kartta en azından bir 5 voltluk lineer regülatör ve bir 16 MHz kristal osilator (bazılarında seramik rezonatör) bulunur. Mikrodenetleyiciye önceden bir bootloader programı yazılı olduğundan programlama için harici bir programlayıcıya ihtiyaç duyulmaz.

RS-232 seri arayüzü (sol üst) ve Atmel ATmega8 mikro denetleyici çipi (siyah, sağ alt) ile erken bir Arduino kartı[3]; 14 sayısal G/Ç pimi üstte, 6 analog giriş pimi sağ altta ve güç konnektörü sol alttadır.

Arduino mikrodenetleyicileri, programların çip üzerindeki flash belleğe yüklenmesini kolaylaştıran bir önyükleyici ile önceden programlanmıştır. Arduino Uno'nun varsayılan önyükleyicisi Optiboot önyükleyicisidir.[4] Başka bir bilgisayara seri bağlantı yoluyla bağlanarak kartlara program kodu yüklenir. Bazı seri Arduino kartlarının RS-232 mantık seviyeleri ve transistör–transistör mantığı (TTL) seviye sinyalleri arasında dönüştürme için seviye değiştirici devreleri vardır. Mevcut Arduino kartları, FTDI FT232 gibi USB'den seriye adaptör çipleri kullanılarak uygulanan Evrensel Seri Veri Yolu (USB) aracılığıyla programlanır. Daha sonraki model Uno kartları gibi bazı kartlar FTDI çipini, kendi “Sistem içi programlama(ICSP)” başlığı aracılığıyla yeniden programlanabilen USB'den seriye bellenim (ingilizce:firmware) içeren ayrı bir AVR çipiyle değiştirir. Arduino Mini ve resmi olmayan Boarduino gibi diğer çeşitler, ayrılabilir USB'den seriye adaptör kartı veya kablosu, Bluetooth veya başka yöntemleri kullanır. Geleneksel mikrodenetleyici araçlarıyla kullanıldığında Arduino IDE yerine standart AVR sistem içi programlama (ISP) kullanılır.

I/O konum açıklamalarıyla birlikte resmi Arduino Uno R2 kartı

Arduino kartı, diğer devreler tarafından kullanılmak üzere mikrodenetleyicinin I/O pinlerinin çoğuna sahiptir. Diecimila, Duemilanove, Duemilanove ve mevcut Uno ‘da altısı darbe genişlik modülasyonlu sinyaller üretebilen 14 dijital I/O pini ve altı dijital I/O pini olarak da kullanılabilen altı analog giriş vardır. Bu pinler, 0.1 inçlik (2,54 mm) dişi başlıklarla kartın üstündedir. Çeşitli eklenti uygulama kartları da ticari olarak bulunur. Arduino Nano ve Arduino uyumlu Bare Bones kartı[5] ve Boarduino[6] kartları, kartın alt tarafında lehimsiz breadboard‘lara takılabilen erkek başlık pinleri sağlayabilir.

Arduino çeşitleri[değiştir | kaynağı değiştir]

Arduino kartları yetenek ve bağlantı sayılarına göre farklı modeller olarak sunuluyor. Bu çeşitliliğin ardında ise Arduino'nun açık ve özgür bir platform olması yatar. Arduino tabanlı donanım kartlarını özellikleri ve hedef alanları bağlamında aşağıdaki gibi bir sınıflandırmaya ayırmak mümkün[7]:

Arduino anakart ve setlerinin sınıflandırması (Eylül 2018 itibariyle)

Resmi kartlar[değiştir | kaynağı değiştir]

Orijinal Arduino donanımı, İtalyan Smart Projects şirketi tarafından üretildi.[kaynak belirtilmeli] Arduino markalı bazı kartlar, Amerikan şirketleri SparkFun Electronics ve Adafruit Industries tarafından tasarlandı.[8] 2016 itibarıyla, Arduino donanımının 17 versiyonu ticari olarak üretilmiştir.

Arduino Eklentileri[değiştir | kaynağı değiştir]

Arduino ve Arduino uyumlu kartlar, normalde tedarik edilen Arduino pin başlıklarına takılan “shields” denilen baskılı devre genişletme kartlarını kullanır.[25] Eklenti kartları, 3D baskı ve diğer uygulamalar için motor kontrolleri, GNSS (uydu navigasyonu), Ethernet, Sıvı kristal ekran (LCD) veya breadboard (prototip yapımı) için kontroller sağlayabilir. Birkaç eklenti kartı da kendin yap (DIY) yöntemiyle yapılabilir.[26][27][28]

Yazılım[değiştir | kaynağı değiştir]

Arduino IDE, kod editörü ve derleyici olarak görev yapan, aynı zamanda derlenen programı karta yükleme işlemini de yapabilen, platform bağımsız çalışabilen Java programlama dilinde yazılmış bir geliştirme çatısıdır.

Geliştirme ortamı, sanatçıları programlamayla tanıştırmak için geliştirilmiş Processing yazılımından yola çıkılarak geliştirildi.

Sketch[değiştir | kaynağı değiştir]

Sketch, Arduino IDE ile yazılmış bir programdır.[29] Sketch’ler, geliştirme bilgisayarına .ino dosya uzantısıyla metin dosyaları olarak kaydedilir. Arduino Yazılımı (IDE) 1.0 öncesi sketch‘leri .pde uzantılı olarak kaydetti.

Minimal bir Arduino C/C++ programı yalnızca iki fonksiyondan oluşur:[30]

  • ​setup()​: Bu fonksiyon, güç açıldıktan veya sıfırlandıktan sonra bir sketch başladığında bir kez çağrılır. Değişkenleri, giriş ve çıkış pin modlarını ve sketch‘de gerek duyulan diğer kitaplıkları başlatmak için kullanılır. ​main()​ fonksiyonuna benzer.[31]
  • ​loop()​: ​setup()​ fonksiyonu bittikten sonra ana programda ​loop()​ fonksiyonu tekrar tekrar yürütülür. Kart kapanana veya sıfırlanana kadar kartı kontrol eder. ​while(1)​ fonksiyonuna benzer.[32]
Led yakıp söndürme örneği
Arduino Uyumlu Anakartta Güç LED'i ve Entegre LED'i
Arduino uyumlu bir kartta pin 13'e bağlı Güç LED'i (kırmızı) ve Kullanıcı LED'i (yeşil)

Çoğu Arduino kartının bir LED’i (ışık yayan diyot) ve pin 13 ile toprak arasına bağlı bir akım sınırlayıcı direnci vardır; bu, birçok test ve program fonksiyonu için uygun bir özelliktir.[33]

Yeni başlayanlar tarafından kullanılan tipik bir program, Merhaba, Dünya!'ya benzer Arduino kartına entegre yerleşik LED'i art arda yakıp söndüren "blink" ‘dir (Türkçe: yanıp söner). Bu program, IDE ortamında bulunan dahili kitaplıklar tarafından sağlanan ​pinMode()​, ​digitalWrite()​ ve ​delay()​ fonksiyonlarını kullanır.[34][35][36] Bu program genellikle üretici tarafından yeni Arduino kartına yüklenir.

# define LED_PIN 13                  // Pin number attached to LED.

void setup() {
    pinMode(LED_PIN, OUTPUT);       // Configure pin 13 to be a digital output.
}

void loop() {
    digitalWrite(LED_PIN, HIGH);    // Turn on the LED.
    delay(1000);                    // Wait 1 second (1000 milliseconds).
    digitalWrite(LED_PIN, LOW);     // Turn off the LED.
    delay(1000);                    // Wait 1 second.
}

Kütüphaneler[değiştir | kaynağı değiştir]

Arduino projesinin açık kaynak yapısı, diğer geliştiricilerin projelerini geliştirmek için kullandıkları birçok özgür yazılım kütüphanesinin yayınlanmasını kolaylaştırdı.

İşletim sistemleri[değiştir | kaynağı değiştir]

Atmega328p (Arduino Uno ve aynı çipe sahip diğerleri) için temel özelliklerin çoğunu içeren Xinu işletim sistemi bağlantı noktası (ing:port) vardır.[37] Bu sürümün kaynak kodu ücretsiz olarak kullanılabilir.[38]

Protothreads adlı bir iş parçacığı aracı (ing:threading) da vardır. Protothreads, "küçük gömülü sistemler veya kablosuz sensör ağ düğümleri gibi ciddi ölçüde bellek kısıtlı sistemler için tasarlanmış son derece hafif yığınsız iş parçacıkları" olarak tanımlanır.

Özgür donanım ve açık kaynak kodu[değiştir | kaynağı değiştir]

Arduino donanım referans tasarımları Creative Commons Attribution Share-Alike 2.523 Şubat 2011 tarihinde Wayback Machine sitesinde arşivlendi. lisansı ile dağıtılmaktadır ve Arduino web sitesinden indirilebilir. Bazı Arduino donanımları için yerleşim ve üretim dosyaları da mevcuttur.[39] Geliştirme ortamının kaynak kodu ve Arduino kütüphane kodları GPLv2 lisansıyla lisanslanmıştır.[40]

Geliştirme takımı[değiştir | kaynağı değiştir]

Arduino ekibi, Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino ve David Mellis'den oluşur. Nicholas Zambetti başından beri katkıda bulunmuştur.

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ "Arşivlenmiş kopya". 23 Ağustos 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Mart 2022. 
  2. ^ Bozdoğan, Berkin. "Yeni Arduino Kartlarına Merhaba!". Mucitiz.Biz. 10 Temmuz 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Temmuz 2018. 
  3. ^ "Hardware Index". Arduino Project. 11 Ekim 2007 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Aralık 2013. 
  4. ^ "Optiboot Bootloader for Arduino and Atmel AVR". GitHub. 12 Şubat 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 1 Ekim 2015. 
  5. ^ "Bare Bones Board (BBB) Kit". moderndevice.com. 30 Temmuz 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Kasım 2018. 
  6. ^ "DC Boarduino (Arduino compatible) Kit (w/ATmega328) - v1.0". adafruit.com. 18 Mayıs 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Kasım 2018. 
  7. ^ Bozdoğan, Berkin. "Arduino Nedir? Yenir Mi?". Mucitiz.Biz. 6 Eylül 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Eylül 2018. 
  8. ^ Schmidt, M. ["Arduino: A Quick Start Guide"], Pragmatic Bookshelf, January 22, 2011, Pg. 201
  9. ^ "Arduino RS232 official webpage (arduino.cc)". 1 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  10. ^ "Arduino Diecimila official webpage (arduino.cc)". 26 Kasım 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  11. ^ "Arduino Duemilanove official webpage (arduino.cc)". 10 Temmuz 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  12. ^ "Arduino Uno official webpage (arduino.cc)". 28 Kasım 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  13. ^ "Differences between Official Arduino Uno, R2, R3 boards; Starting Electronics". 21 Şubat 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  14. ^ "Arduino Uno SMD official webpage (arduino.cc)". 13 Temmuz 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  15. ^ "Arduino Leonardo official webpage (arduino.cc)". 10 Mayıs 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  16. ^ "Arduino Pro official webpage (arduino.cc)". 4 Temmuz 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  17. ^ "Arduino Mega official webpage (arduino.cc)". 6 Haziran 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  18. ^ "Arduino Nano official webpage (arduino.cc)". 10 Mayıs 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  19. ^ "Arduino LilyPad official webpage (arduino.cc)". 10 Temmuz 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  20. ^ "Arduino Robot official webpage (arduino.cc)". 5 Temmuz 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  21. ^ "Arduino Esplora official webpage (arduino.cc)". 9 Haziran 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  22. ^ "Arduino Ethernet official webpage (arduino.cc)". 27 Mart 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  23. ^ "Arduino Yun official webpage (arduino.cc)". 13 Haziran 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  24. ^ "Arduino Due official webpage (arduino.cc)". 10 Mayıs 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2017. 
  25. ^ "Arduino - ArduinoShields". www.arduino.cc (İngilizce). 17 Mart 2006 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Ekim 2017. 
  26. ^ "Arduino breadboard shield: $10 & 10 mins". todbot blog. 16 Eylül 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Haziran 2022. 
  27. ^ "Arduino Shields for Prototyping". tigoe.net. 2 Temmuz 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 13 Haziran 2022. 
  28. ^ Jonathan Oxer. "Arduino Shield list". 12 Ekim 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Kasım 2013. 
  29. ^ Programming Arduino Getting Started with Sketches. McGraw-Hill. 8 Kasım 2011. ISBN 978-0071784221. 
  30. ^ "Arduino - BareMinimum". www.arduino.cc. 1 Ekim 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Şubat 2018. 
  31. ^ "setup() - Arduino Reference". www.arduino.cc. 27 Şubat 2018 tarihinde kaynağından arşivlendi. 
  32. ^ "loop() - Arduino Reference". www.arduino.cc. 27 Şubat 2018 tarihinde kaynağından arşivlendi. 
  33. ^ "pinMode() - Arduino Reference". www.arduino.cc. 1 Aralık 2017 tarihinde kaynağından arşivlendi. 
  34. ^ "digitalWrite() - Arduino Reference". www.arduino.cc. 5 Ocak 2018 tarihinde kaynağından arşivlendi. 
  35. ^ "delay() - Arduino Reference". www.arduino.cc. 1 Aralık 2017 tarihinde kaynağından arşivlendi. 
  36. ^ Xinu AVR version (Arduino)
  37. ^ "Xinu avr atmega328p source code". 12 Mart 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Mart 2022. 
  38. ^ "Arduino - Home". Arduino. 23 Şubat 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Haziran 2020. 
  39. ^ "Arduino - Software". 12 Mart 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Aralık 2008. 

Dış bağlantılar[değiştir | kaynağı değiştir]