BÖLÜM1:ARDUİNO DÜNYASINA HOŞGELDİNİZ!
ELEKTRONİK DEVRİMİ Son yüzyılda dünyamız müthiş bir değişim geçirdi. Elektronoğin ortaya çıkışıyla gelişen bilgisayar teknolojisi bütün dünyayı büyük bir değişime uğrattı. Artık elektronik ve bilişim teknolojilerinin içine girmediği bir alan hemen hemen hiç kalmadı. Elektronik alanındaki en önemli iki gelişme olarak transistörün keşfi ve mikroçip teknolojisinin ortaya çıkışı sayılabilir. Transistör ile daha önceden çok büyük boyutlardaki diyot lambaların yerini daha ufak devreler aldı. Mikroçip teknolojisi ile de birim alana daha çok transistörün sığdırılması mümkün hale geldi. Bugün bir işlemci içerisinde milyarlarca transistör bulunuyor. Gelişen teknoloji ile geçmişte insan eliyle yapılan birçok işlem otomatik olarak bilgisayarlar sayesinde gerçekleştirilmeye başladı. Böylelikle içerisinde yer aldığı sistemleri akıllı hale getiren gömülü sistemler gibi bir alan da doğmuş oldu. Dijital elektronik ile birlikte sayısal işlemler yapan devreler tasarlandı. Ardından bu sayılarla yapacağı işlemleri belirli bir program dahilinde yürüten mikroişlemciler ortaya çıktı. Artık belirli komutların belirli sıralamalarla girilmesine göre işlemler yürüten yapılar belirdi. Geçmişte her bir iş için ayrı bir dijital devre kurulması gerekirken, artık devre üzerindeki fiziki bir değişiklik yapmadan sadece programın değiştirilmesiyle farklı işlemler yapılabiliyordu. Bu aynı zamanda yeni bir çağın, bilişim çağının başlangıcıydı.
Bugün bilinenin aksine üretilen mikroişlemcilerin çoğunluğu kişisel bilgisayarlarda değil hayatımızın her alanına yayılmış olan akıllı cihazların içerisinde bulunuyor. Mikroişlemcilerde kontrol edilen akıllı sistemleri bugün artık hayatımızın her alanında görmek mümkün. Zaman içinde artık içerisinde mikroçip bulunmayan hiçbir ürün kalmayacak gibi görünüyor. Genel olarak elektronik mühendisliğinin uygulama alanına giren elektronik sistem tasarımı günümüzde artık tasarımcıların da ilgisini çeken bir alan haline geldi. Çok değişik fiziki ve görsel tasarımlara olanak sağladığından elektronik bilgisi tasarım yapacak kişilerin de ihtiyaç duyduğu bir dal olarak öne çıktı. Fiziki dünya ile etkileşime giren sistemler tasarımcıların da alanına girdi. Dolayısıyla tasarımcıların projelerini kolaylıkla gerçekleştirebilecekleri bir platforma ihtiyaç vardır. İşte Arduino böyle bir temeli baz alarak oluşturulmuş bir proje. Derin elektronik ve yazılım bilgisine sahip olmayan kişilerin de kolaylıkla interaktif projeler oluşturmasını sağlamak amacıyla tasarlanmış olan Arduino bugün dünyanın en popüler açık kaynak donanım projelerinden birisi. Arduino temel olarak açık kaynaklı donanıma dayalı bir fiziki programlama platformu. Aynı zamanda gömülü sistemler geliştirmeye olanak veren bir platform da diyebiliriz. Şimdi gelin bütün bu kavramların ne olduklarını kısaca inceleyelim.
FİZİKİ PROGRAMLAMA(PYSİCAL COMPUTİNG) Programlamayla uğraşanların bildiği gibi genellikle ortaya çıkan yazılımlar daha çok bilgisayar içerisinde çalışan sanal işlemler yaparlar. İşte bundan farklı olarak dış dünya ile etkileşimde bulunan sistemlerin programlanmasına fiziki programlama(physical computing) adı veriliyor. Burada sözü edilen sistemler dış dünyadan algılayıcılar(sensör) aracılığıyla aldığı sıcaklık, ses, ışık şiddeti gibi büyüklükleri elektronik ortama aktarıp elektronik olarak işleyip daha sonra eyleyiciler(aktuator) aracılığıyla yine dış dünyaya bir etki olarak sunan sistemlerdir. Dış dünya ile elektronik ve interaktif sistemlerin etkileşimlerini aşağıdaki diyagramda görebiliriz:
Dış dünyaya ait fiziki büyüklükler algılayıcılar aracılığıyla elektronik dünyaya aktarılır. Elektronik dünya analog ve dijital olarak iki bölüme ayrılıyor. Analog elektronik sürekli ve sonsuz farklı değer alabilen sinyallerle uğraşırken dijital elektronik ikili(binary) sayı sisteme dayalı olan ve o hep duyduğumuz biler ve sıfırlardan oluşan sinyallerle ilgilenir. Dış dünyadan alınan algılayıcı verilerin mikroişlemcilerle işlenebilmesi için sayısal veriler haline dönüştürülmeleri gerekir. Yapılan işlemlerin sonucunda dış dünyaya bir veri iletimi veya sonuç üretimi için de yine eyleyiciler veya çıktı araçları kullanılır.
GÖMÜLÜ SİSTEMLER(EMBEDDED SYSTEMS) Çok farklı tanımları olsa da gömülü sistemlere belirli bir işi gerçekleştirmek için tasarlanmış donanım, yazılım ve bazen de mekanik bileşenlerden oluşan ve çoğu zaman kendisinden büyük bir sistemin içine gömülü olarak çalışan sistemler diyebiliriz. Gömülü sistemler otomobillerimizin içerisindeki alt sistemlerden, evlerimizde kullandığımız elektrikli ev eşyalarına, otomasyon sistemlerinden çeşitli eğlence araçlarına kadar geniş bir alana kapsamaktadır. Artık içerisinde bir mikroçip bulunmayan modern bir sistem hemen hemen hiç kalmamış durumda.
AÇIK KAYNAKLI DONANIMLAR Açık kaynak kavramı ilk olarak yazılım dünyasında çıkmış olsa da son dönemde donanım alanında kendine yer bulmaya başladı. Kullanıcılara kaynak kod üzerinde değişiklik yapma hakkı ile donanıma ait tasarım elemanlarını donanım ile birlikte değişiklik yapma v e serbestçe üretme haklarını kapsıyor. Arduino’da günümüzde en popüler açık kaynak donanım projelerinden birisidir. Web sitesinden indireceğimiz tasarım bilgileriyle kendi Arduino donanomlarımızı üretebiliriz. Ticari kazanç dahil istediğimizi yapmakta özgürüz tek şart Arduino ismini kullanmamak. Arduino projesi Creative Commons adlı lisans altında geliştirilmektedir. Arduino wed sitesindeki .cc buradan gelmektedir. Bizim asıl amacımız kendi projelerimizi kolaylıkla geliştirebilmektir. Proje geliştirmek için mühendis olmamıza gerek yok. Sahip olmamız gereken iki özellik var. Sabır ve öğrenmez azmi. Şimdi Arduino projesi nasıl doğmuş ona bakalım.
ARDUİNO Arduino’nun kökenleri Wiring ve Processing projeleri yatar. Processing, hiç programlama bilmeyen kişilere programlama öğretmek amacıyla Casey Reas ve Ben Fry adlı araştırmacılar tarafından geliştirilmiş program dilidir. Wiring, Hernando Barragan’nın yüksek lisans tezidir. Processing projesini temel alarak kolay bir şekilde interaktif sistemler geliştirilebilmesini sağlamak amacıyla geliştirildi. Arduino projesi ise Massimo Banzi liderliğinde bir ekip tarafından Wiring temel alınarak yapılmıştır. Bu 3 projenin temel özelliği programlama konusunda bilgisi sınırlı olan kişilere kolayca tasarım yapabilecekleri ortam sağlamaktır.
Arduino bütün dünyada popüler hale geldi Arduino bütün dünyada popüler hale geldi. Arama motorlarında arama sonucunda fazlaca proje bulmamız mümkün. İnsansız hava aracı bile vardır. Bu kadar popüler hale gelmesinin birkaç sebebi; Bütün platformlarda çalışması Geniş kütüphane desteği Uygun fiyat Birlikte çalışabilecek ek donanıma destek vermesi Açık kaynaklı Büyük bir topluluk desteği
BU KİTAP KİMLER İÇİN YAZILDI? Genel olarak Arduino ile projeler geliştirmek isteyen herkes için yazıldı. Bir elektronik öğrencisi, profesyonel elektronikçiler, elektroniğe ilgisi olan, elektronikle yeni tanışan herkes için uygun bir kitaptır. Sonuçta bu kitapta Arduino programlamayı öğreniyoruz. Arduino dediğimiz zaman sadece yazılım değil donanımda olduğunu bilmeliyiz. Bu kitapta programlamaya eğilsekte basit komponentler kullanılacak.
ARDUİNO ÇEŞİTLERİ Birçok çeşidi vardır. Temel olarak bütün kartlarda benzer bileşenler olmakla beraber mikro denetleyici modelleri, giriş/çıkış pinleri ve dahili modüllerin sayısı, boyut, çalışma gerilimleri gibi farklılıklara sahipler. İstediğiniz gibi size gerekli Olan kartı seçebilirsiniz.
Mikrodenetleyici Atmega 2560 Atmega 328 Atmega 168 Çalışma gerilimi 5V 3.3V veya 5V Dijital Giriş/Çıkış 54(14 tanesi PWM) 14(6 tanesi PWM) Analog Giriş Pinleri 16 6 Her bir G/Ç pini başına akım 40 mA 3.3V gerilim çıkışı akımı maksimum 50 mA Flash bellek 256 KB(8 KB’ı program yükleyici(bootloader)tarafından kullanılıyor. 32 KB(2KB bootloader tarafından kullanılıyor.) 16 KB SRAM 8 KB 2 KB 1 KB EEPROM 4 KB 512 Bayt Saat Hızı 16 Mhz 8 Mhz(3.3V için) 16 Mhz(5V için
ARDUİNO UNO Piyasada en çok kullanılan Arduino modellerinden birisidir. Üzerinde Atmega328 mikro denetleyici, USP bağlantı port, güç regülatörü 16mhz kristal gibi bileşenleri bulunuyor. Üzerindeki seri- USB dönüştürücü sayesinde USP portu üzerinden hem programlanabilmekte hem de bilgisayar ile direk bağlantı kurulabilmektedir.
ARDUİNO MEGA Arduino Mega üzerinde Atmega2560 mikrodenetleyicisi bulunuyor.54 dijital giriş-çıkış pinine(14 tanesi PWM çıkışı olarak kullanılabilen) , 16 analog girişe 4 donanımsal seriporta(UART) ve 16 mhz kristal osilatöre sahip. Hem USP üzerinden hem de DC adaptör üzerinden beslenebiliyor. Arduino Uno/Duemilanove gibi kartları için hazırlanmış donanım eklentileryle (shield) uyumlu.
ARDUİNO LİLYPAD Arduino lilypad elbiseler ve kumaş üzerine dikilecek şekilde tasarlanmıştır. Giyilebilir şekilde tasarlanabilecek ilginç projelerde kullanılabiliyor. Üzerinde Atmega 168V (Atmega168’in düşük-güçlü versiyonu) mikro denetleyicisi bulunuyor.
ARDUİNO ADK ADK temel olarak Mega modeliyle aynı. Üzerinde ‘’host’’ özelliğiyle kullanılabilecek ekstra bir USB bağlantısı daha bulunuyor. Bu bağlantı ile Android işletim sistemine sahip cep telefonları veya tabletlerle iletişim kurabilen projeler yapmak mümkün. Daha ayrıntı için: http://accessories.android.com
ARDUİNO ETHERNET Arduino Ethernet’in üzerinden internet bağlantı projeler yapabilmek için üzerinde bir ethernet çipi bulunmaktadır. Üzerinde SD-kart yuvası da vardır.
ARDUİNO BLUETOOTH Özellikle telefondan kontrol için kullanılan arduino kartıdır. Bluetooth protokolüyle haberleşen uygulamalar yapmak için ideal olan Arduino BY üzerinde bir modülü vardır. Daha detaylı bilgi: http://arduino.cc/en/Guide/ArduinoBT
ARDUİNO MİNİ VE MİNİ PRO Breadboard veya herhangi bir tasarıma entagre olarak çalıştırılabilecek şekilde tasarlanmış modellerdir. Üzerinde Atmega168 ve Atmega328 model mikrodenetleyici bulunuyor. Programlanabilmeleri için harici bir USB-Seri dönüştürücüye ihtiyaç duyuyorlar. http://arduino.cc/en/Guide/ArduinoMini
ARDUİNO NANO Arduino Nano oldukça ufak ve devre tahtası üzerindeki uygulamalar için uygun şekilde tasarlanmış bir model. Üzerinde Atmega328 veya Atmega168 mikrodenetleyecisi bulunmaktadır. USB portu üzerinden programlanabiliryor.
ARDUİNO LEONARDO Arduino leonardo üzerinde Atmega32u4 mikrodenetleyicisi vardır ayrıca USB bağlantısı için ayrıca bir çipe gerek duymayan yeni Arduino kartlarından birisidir. Üzerinde 20 dijital giriş/çıkış, 12 analog girişi olan kart üzerindeki mikrodenetleyicisi yüzeye montaj kılıfa (SMD) sahiptir. USB portu sayesinde bilgisayara fare yada klavye olarak da bağlanabiliyor.
ARDİUNO ESPLORA Diğer kartlardan farklıdır sebebi ise üzerinde sensörler bulunmasıdır. Üzerindeki sensörler sayesinde başka eklentilere ve fazla elektronik bilgisine ihtiyaç duymadan birçok uygulamayı gerçekleştirmek mümkündür. Üzerinde kaydırmalı potansiyometre, buzzer, 2 tane mini analog joystick, ışık ve ses sensörü 3 renkli LED ve bir ivme ölçer bulunuyor. Bütün bu birimler sayesinde Esplora birçok ilginç uygulama yapma potansiyeli barındırıyor. Esplora üzerinde de Leonarda’daki gibi Atmega32U4 AVR mikrodenetleyici bulunuyor. Sahip olduğu mikro USB bağlantısı ile bilgisayara bağlandığında fare veya klavye gibi davranabilen uygulamalar geliştirilebilir.
ARDUİNO DUE En son kartıdır. Yeni olması arduino dünyasına yeni bir aşama kattığını söyleyebiliriz. Daha önceki kartlarda 8 bitlik Atmega AVR serisi mikro denetleyiciler bulunuyorken Due üzerinde 32 bit ARM Cortex – M3 çekirdeğe Atmel SAM3X8E adlı çok daha güçlü bir mikro denetleyici bulunuyor. Bu uygulamalar açısından ne anlama geliyor dersek due ile çok daha yüksek performans ve kapasite gerektiren uygulamalar geliştirmek artık mümkün tabi ki yine arduino kolaylığında… Due üzerinde 12’si PWM çıkışı olarak kullanılabilen 54 dijital giriş-çıkış pini, 12 analog giriş, 4 seri haberleşme portu (UART), OTG(On The Go) özelliği olan USB portu, 2 dijital – analog çevirici (DAC), 2 TWI(two-wire) iletişim, CANBUS ve DMA modülleri bulunuyor ve karta baktığımızda 2 USB portu olduğunu görüyoruz. Bu portlardan birisi kartı programlamak içi kullanıyorken diğer USB bağlantılı bileşenlerle haberleşmede kullanılabiliyor.
Arduino Muadili Donanımlar Bu bölümde tanıttıklarımız Arduino ekibi tarafından tasarlanıp satılan ürünler olmakla beraber SeedStudio, Sparkfun gibi firmalar da kendi Arduino uyumlu kartlarını üretip satıyorlar. Bu tip kartlarda aynı şekilde programlanabilmektedir. Kullanım acısından farkları bulunmamaktadır. Aşağıda Seeedino kartının bir fotoğrafı bulunmaktadır . Bu kart Arduino kartının bir klonu niteliğindedir. Bu yüzden Arduino geliştirme ortamıyla rahatlıkla programlanabilmektedir.
Arduino Donanım Eklentileri (Shield) Arduino’nun popüler hale gelmesinin nedenlerinden biri de oldukça geniş bir donanım eklentisi seçeneğinin olmasıdır. Ardoino kartları üzerine kolaylıkla monte edilebilen ve Shield adı verilen donanım eklentileridir. Hemen her türlü sensör ,giriş-cıkış birimi vs için donanım eklentileri bulunmaktadır. Böylelikle zahmetli ve karmaşık tasarımlar Arduino ile cok rahatlıkla yapılabilmektedir. İnternet üzerinde uyumlu birçok ek tasarım satıldığı gibi özel yapılan tasarımlarda eklenebilinmektedir.
Arduino Web Sitesi Aduino geliştirme ortamını ücretsiz olarak indirebiliceğiniz web sitesinde aynı zamanda Arduino ile ilgili temel bilgileri ve örnek programlarda bulunmaktadır. Ayrıca Arduinoya Katkıda bulunan kişilerin ekledikleri kütüphanelerde bulunmaktadır. Wep sitesindeki bölümleri kısaca inceleyelim: Buy(Satın Alma): Arduino’nun resmi olarak satılan donanımların bulunduğu bölümdür. Download(İndirme): Arduino geliştirme ortamlarını Windows, Linux ve Mac versiyonlarını indirebilirsiniz.Ayrıca Arduino’nun eski versiyonlarıda bu bölümde yer alıyor.
Getting Started (Başlangıç): Bu bölümde Arduino ile programlar yazmak için temel bilgiler bulunuyor.Arduino’nun her 3 platformdada kurulumu anlatılıyor. Learning (Ögrenme): Bu bölümde Arduino Fonksiyonları ve kütüphanelerine dair örnek programlar yer alıyor. References (Referans) : Bu bölümde temel Arduino fonksiyonları ve diline ait temel yapılara ait kısa açıklamalar bulunmaktadır. Hardware(Donanım): Bu bölümde Arduino Donanımlarının tanıtımları bulunmaktadır. FAQ (Sıkça Sorulan Sorular): Arduino projesi ile alakalı sıkça sorulan soruların yanıtları bu bölümdedir. Playground (Oyun Alanı): Bu bölümde Arduino ile alakalı internette yer alan projelerden derlemeler yer almaktadır.
Arduino 1.0 Sonrası Versiyonlar Hakkında Arduino geliştirme ortamı çok uzun zamandır sıfır ile başlayan versiyonlarla devam ettikten sonra bu seri 0.23 versiyonu ile sonlanmıştır. Ve 1.0 versiyonuna geçildi. 1.0 ile beraber pek çok değişiklik yapılmıştır. Bu değişikliklerin başında Arduino program dosyalarının processing programlama dili dosyalarıyla aynı pde uzantısının Arduino’nun son 3 harfi olan ino karakterleriyle değiştirilmesidir. Ancak ardunio basit yapılı text dosyaları olduğundan bu bir sorun oluşturmaz.Eski Arduino Programları 1.0 versiyonu ilede açılabilir.Yazılan program otomatik olarak İno uzantısıyla kaydedilir.
Sırada Ne Var ? Bundan Sonraki Bölümde Arduino geliştirme ortamının kurulumunu yapmayı öğrenip donanım bağlantılarını gerçekleştirerek ilk programımızı çalıstırmayı göreceğiz.
AD-SOYAD NUMARA YİĞİT BABA 2021150023 ENES SÖZEN 2021150013 ONUR BAYRAKLI 2021150010 CANBERK ERBAŞ 2021150031