ARDUINO PROGRAMLAMA


                                                            www.arduino.cc - scratch.mit.edu


ARDUINO PROGRAMLAMA

Arduino, elektronik ile ilgili olan her insanın kolayca kullanabilmesi için geliştirilmiş açık kaynaklı bir platformudur. Arduino kullanarak çeşitli sensörlerden gelen sinyalleri okuyabilir, ışık yakıp söndürebilir, motor çalıştırabilir; kısacası tüm elektronik uygulamalar yapılabilir..

Mikrodenetleyiciler elektronik devreleri kontrol etme imkanı sağlarlar. Mikrodenetleyicilerin pin adı verdiğimiz bacakları bulunmaktadır. Bu pinlerin her biri farklı görevlere sahip olup farklı işlevleri vardır. Mikrodenetleyicileri kullanmamız için belirli devre elemanlarına ihtiyaç duyarız.

Mikro denetleyicilere küçük bilgisayarlar da diyebiliriz. Bu sisteme bilgisayardan kodlarımızı yükleyebilir ve elektronik devremizi çalıştırabiliriz. Kodlarımızı yüklemek için denetleyicimizin türüne göre programlayıcılar kullanabiliriz. 


Mikrodenetleyicileri birkaç özelliğine göre kısaca sıralayalım:

*Boyutları küçüktür. *Kuracağımız küçük devrelerde de işimizi görürler.

ARDUINO KARTLARI

Arduino kartlar üzerinde bir adet mikrodenetleyici bulunur. Arduino Atmel firmasına ait mikrodenetleyicileri kullanmaktadır. Aynı şekilde arduinonun üzerinde kendine ait programlayıcısı vardır. Bir USB kablosu ile kolayca Arduino kodlanabilir. 



* ARDUINO LİLYPAD MODELİ

Kumaşlara Dikilmek için, giyilebilir teknolojilerde kullanılmak üzere tasarlanmıştır. ATmega168 denetleyicisini kullanır. Programlamak için mega da olduğu gibi bir FTDI kartı gerekir. 

- Dijital Giriş / Çıkış Pini: 14
- PWM Pinleri : 6
- Analog Giriş Pinleri: 16
* TEMEL ELEKTRONİK

Elektrik Akımı: Pilimiz ya da güç kaynağımızın iki kutbu bulunur. Bunlar + ve – kutuplarıdır. Elektriğin akabilmesi için iletken malzeme bulunur.. Örneğin altın, demir, alüminyum, bakır gibi. Elektrik kaçağı olmaması için iletken maddelerin çevresinde plastik malzemeler olmalıdır. Elektrik akımının birimi Amper’dir. A harfi ile sembolizedir.

Voltaj (Gerilim) : Elektrik akımının akması için kuvvet gereklidir. Bu kuvvete Voltaj denir. Birimi Volttur. V harfi ile gösterilir. Volt birimi adını ilk pilin mucidi İtalyan fizikçi Alessandro Volta’dan almıştır. Örnek olarak 1.5 V ve 9V ‘luk piller gibi. Direnç: Akıma karşı gösterilen etkidir. Birimi Ohm’dur. İsmini Alman fizikçi George Simon Ohm’dan almıştır. Akımı kısıtlamak için kullanılırlar. ( Ohm kanunu: V = I x R )
Elektronik cihazların kontrol merkezi Elektronik Devre şeklinde adlandırılır. Elektronik cihazları insana benzetebiliriz. Bizim nasıl kana ihtiyacımız varsa elektronik devrelerinde elektriğe ihtiyacı vardır. Aynı zamanda insanın veya elektrik devresinin belli bir düşünme sistemine ihtiyacı vardır. 

MİKRO DENETLEYİCİLER



Direnç üzerindeki renkler direnç değerlerini gösterir. Direnç değerini hesaplamak için 1.BANT ve 2.BANT yan yana yazılır ve 3.BANT’la çarpılır. 4.BANT rengi tolerans değerimizi belirtir. 

* TEMEL DEVRE ELEMANI 

Breadboard  :  Devrelerimizi monte etmenden önce deneyebileceğimiz platformlara breadboard yani deney tahtası denir. ( Bread: Ekmek ) Üzerindeki kırmızı ve mavi satırlar birbiriyle bağlantılıdır. Yani birine güç hattı takarsak diğerinden bu güce erişebiliriz.  Orta bölümdeki 5 delikli iki bölme ise birbirinden ayrı çalışır. !!! Toprak hattı güç kaynağının -  güç hattı  ise + kısmıdır.
LED : Devremizde kullandığımız küçük ışık kaynaklarımızdır. İki bacağı bulunur. Uzun bacağa anot, kısa bacağa katot denir. Aydınlatma ve uyarı sistemlerinde kullanılır. !!! LED’in anot bacağı güç kaynağının + kısmına, katot bacağı ise – kısmına bağlanır.

* Ana maddeleri silikondur. 
* Akım geçtiğinde ışık verirler.
* Enerji tüketimleri düşüktür.

 ( LED’in katot ucu GND’ye anot ucu dirence bağlı. )


Jumper Kablolar :  Breadboard üzerinde bağlantı yapmak için kullanılır. Birçok çeşidi vardır.

* ARDUINO IDE VE S4A’NIN İNDİRİLMESİ

Arduino Kartımızı programlamak için Arduino Ide’yi indirmemiz gerekir. S4A Arduino ile çalışan bir programdır.

https://www.arduino.cc/en/software sayfasına girerek programı işletim sistemimize göre indiriyoruz.  Daha sonra exe dosyasından kurulum yaparken tüm seçeneklerin işaretli olduğuna dikkat edelim.

http://s4a.cat/ sayfasına girerek S4A programını downloads kısmına tıklayarak işletim sistemimize göre indirip kuruyoruz. 

İki uygulamayı da yükledikten sonra Arduino IDE’yi açalım. S4A’nın sitesine tekrar girelim ve Installing the Firmware into your Arduino kısmında olan Download our firmware from here ‘a tıklıyoruz. Sonrasında birlikte açı seçerek tamama tıklıyoruz. Karşımıza gelen soruya tamam diyoruz.  Karşımıza gelen sayfadaki bütün kodları kopyalayalım ve Arduino IDE’de ki kodları sildikten sonra Arduino IDE’ye yapıştıralım. 

( Ctrl + A ile hepsini seçebilirsiniz. )


Arduinomuzu bilgisayara USB kablo ile bağlayalım ve Araçlar / Kartlar / Arduino UNO’yu işaretliyoruz. Arduino kart ayarımızı yaptıktan sonra port ayarını Araçlar / Port kısmından kontrol edelim. Eğer bağlı olduğumuz COM’u bulamazsak Aygıt Yöneticisine giderek buradan nereye bağlı olduğumuzu öğrenebiliriz. Burada bağlantı noktaları ( Com ve LPT ) seçeneğinin altında Arduinomuzun hangi porta bağlı olduğunu öğrenebiliriz. Eğer bilgisayar Arduinomuzu görmüyorsa driver’ını yüklememiz gerekiyor.

1 – Arduino’yu bilgisayara tak.
2- Karşımıza hata mesajı çıkacaktır.
3- CH340 sürücüsünü indir ve kur.

İnternete yazdığımızda birçok siteden indirebiliriz. https://sparks.gogo.co.nz/ch340.html  

İndirdiğimiz uygulamayı açarak install ‘ a tıklayarak driver kurulumunu tamamlıyoruz.

!!! IDE: Integrated Development Enviroment 
    ( Tümleşik Geliştirme Ortamı ) // Artık Arduino program yazmaya hazırız.

* YANIP SÖNEN LED UYGULAMASI

Arduino’nun Üzerinde bulunan ledi 1 saniye aralıklarla yanıp söndüreceğiz.

Malzemeler:

- Arduino Uno
- Breadboard
- LED
- Direnç (220 Ohm)
- Jumper Kablolar

Devre Kurulumu : Led uygulamasını breadboard üzerinde yapalım. Önce LED’i anot + bacağını Arduinonun 13. dijital pinine bağlıyoruz. İki elemanın arasına LED’in bozulmaması için 220 ohm direnç koyuyoruz. 220 ohm direncin renkleri sırasıyla kırmızı, kırmızı, turuncu ve altın rengidir. Son olarak LED’in katot bacağını GND hattına bağlıyoruz. Direnç koymazsak ilerde LED’imiz bozulacaktır. 


Arduino Kod Kısmı : void setup() // sadece 1 kere çalıştırmak istediğimiz kodları void setup içine yazarız.

   {
pinMode(13,OUTPUT);  
   }
void loop() // sürekli çalışmasını istediğimiz kodları loop içerisine yazarız.
   {
  
  digitalWrite(13,HIGH); // digitalWrite pinin gücünü kontrol etmemizi sağlar
  delay(1000); // 1 saniye bekle 
  digitalWrite(13,LOW); // Low ile gücü düşürdük.
  delay(1000); // 1 saniye bekle
  } 
S4A Kod Kısmı : S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim. L ismindeki Led 1 saniye aralıklarla yanıp sönmeye başlayacaktır. Süreyle oynayarak yanıp sönme zamanını değiştirebilirsiniz. 


* PARLAKLIĞI AYARLANABİLİR LED UYGULAMASI

Işığı Kapatınca yanan bir led uygulaması yapacağız.

Malzemeler:

- Arduino Uno
- Tane Breadboard
- LED
- Direnç ( 220 Ohm )
- Tane Jumper Kablolar
- Potansiyometre ( Reosta )



Potansiyometre dışarıdan fiziksel bir kuvvetle direncini değiştiren devre elemanıdır. Döndürerek direnci azaltıp çoğaltabiliriz.  Ledimizin parlaklığını ayarlamak için PWM analog pinlerini kullanacağız. !!! PWM analog sinyalle çalışan cihazları dijital sinyalle kontrol etmeye denir.  Arduino’dan 11,10,9,6,5 ve 3. pinlere 255 e kadar değer verebiliriz. 255’e kadar açık demektir ve değer arttıkça voltaj artar. 

Devre Kurulumu :

Ledimizi 220 ohm direnç ile 5.PWM pinine bağlıyoruz. Ardından katot bacağını GND’ye bağlamayı unutmayalım.



Arduino Kod Kısmı :

void setup() {
pinMode(A0,INPUT); // A0 pinini giriş olarak ayarladık.
pinMode(5,OUTPUT); //5.pini çıkış olarak ayarladık.
}
void loop() {

int Deger=analogRead(A0); 
//A0 dan okunan değerler Deger değişkenine eşitleniyor.

Deger=map(Deger,0,1023,0,255);
//Map fonksiyonu sayesinde değerler 0-255 arasına düşürülüyor.

analogWrite(5,Deger); //5.pine değişen bu değerimiz veriliyor.

}

S4A Kod Kısmı : S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim. Sensör değişkenini tanımlamayı unutmayalım.  -value of sensör Analog0- PWM pinlerinden güç vermemizi sağlar.


* DİJİTAL SİNYALLER

Sürekli olmayan sinyallerdir. Sinyal yükseldiğinde değeri 1 olur, alçaldığında ise değeri 0 olur. 1 iken elektrik var demek, 0 ise elektrik yok demektir.

* ANALOG SİNYALLER

Sürekli sinyallerdir. Şiddetleri ve yönleri değişir. Analog pinleri sayesinde analog sinyalleri kullanabiliriz. Dijitalde 1 ve 0 üzerinden sinyal yararken, analog sinyaller 0 ile 1023 arasında sinyal yayımı yapar. Analogdaki 0 dijitaldeki 0, analogdaki 1023 dijitaldeki 1 e denk gelir. 

* IŞIK SÖNÜNCE YANAN LED UYGULAMASI

Işığı Kapatınca yanan bir led uygulaması yapacağız.

Malzemeler:

- Arduino Uno
- 1 Tane Breadboard
- LED
- Direnç ( 220 Ohm )
- Tane Jumper Kablolar
- LDR ( Foto Direnç )

LDR ( Light Dependent Resisstör ) kelimesinin kısaltmasıdır. Anlam açısından ışığa bağlı olarak değişen direnç demektir. Üzerlerine düşen ışık azalırsa direnç artar, ışık artarsa direnç düşer. Robotlardan aydınlatmalı kapı zillerine kadar birçok kullanım alanı vardır. 
Arduino Kod Kısmı :

void setup() {
pinMode(A0,INPUT); // A0 pinini giriş olarak ayarladık.
pinMode(13,OUTPUT); //butonumuzu çıkış olarak ayarladık.
}
void loop() {
  // Okunan sensör değeri X tam sayısına eşitleniyor.
  int x= analogRead(A0); 
  // Eğer x 500 değerinden küçükse 13.pin açılıyor.
  if (x>500)
  digitalWrite(13,HIGH);
}
else
{
  //Diğer durumlarda ise 13.pin kapalı hale getiriliyor. 
  digitalWrite(13,LOW);
}
}


S4A Kod Kısmı :S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim. Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!
* KLAVYE VE FARE İLE LED UYGULAMASI


Malzemeler:

- Arduino Uno
- 2 Tane LED
- Breadboard
- Jumper Kablolar
- 2 Tane Direnç (10K)

S4A Kod Kısmı:S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim. Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!

S4A Kod Kısmı :S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim. Not: Arduino IDE’ye yüklü olması gereken program yüklü değilse S4A’dan programlama yapamayız. Unutma !!!


Arduino Kod Kısmı :

#define kirmiziled 13
#define maviled 12
char gelen;

void setup()
{ pinMode(kirmiziled,OUTPUT);
  pinMode(maviled,OUTPUT);
  Serial.begin(9600); }

  void loop() {
    if (Serial.available())
    gelen=Serial.read();

    if(gelen=='a')
    {digitalWrite(kirmiziled,HIGH);
    digitalWrite(maviled,LOW);
    }
    else if(gelen=='b')
    { digitalWrite(kirmiziled,LOW);
      digitalWrite(maviled,HIGH);
    }
    else if(gelen=='c')
    { digitalWrite(kirmiziled,HIGH);
      digitalWrite(maviled,HIGH);
    }
     else if(gelen=='d')
    { digitalWrite(kirmiziled,LOW);
      digitalWrite(maviled,HIGH);
    }
  }

Not: Arduino’ya program yükleyebilmemiz için S4A programının kapalı olması gerekmektedir.

* FUTBOL OYUNU YAPIMI

Malzemeler:

- Arduino Uno
- 1 Tane Breadboard
- 3 Tane Buton 
- 3 Tane Direnç 10K
- 8 Adet Jumper Kablo



Devre Kurulumu:

Öncelikle Arduino’muzun GND pini ve 5V pinini breardboard’ımızın mavi ve kırmızı taraflarına bağlayarak toprak ve güç hattını oluşturuyoruz. Uygulamamızda 3 adet buton kullanacağız. Bunlar karakterimizi sağa, sola ve oyunu yeniden başlatmak içindir. Butonlarımızı breardboard’ımıza bağlıyoruz ve ilk butonu 2.pine, ikinci butonu 3.pine ve son butonumuzu ise A0’a bağlıyoruz. Ardından butonlarımızı pull down direnç ile bağlıyoruz. 



S4A Kod Kısmı :

S4A programını açıyoruz. Arduino kartımızı takalım ve bloklarımızı yerleştirelim. Öncelikle butonun basılıp basılmadığını anlamamız gerekiyor. Bunun için butona bastığımız zaman yayınlayın metodunu kullanacağız. Bu blok 1 defa kullanılır. Şimdi eğer buton pressed olursa yani basılırsa programa Bilişim Hocası mesajı yayınlattıracak ve biz bunu kullanacağız.

Öncelikle programımıza istediğimiz bir karakteri ekleyelim. Bunun için Yeni karakter>Dosyadan yeni karakter seçin>People seçeneğine girerek istediğimiz karakteri programımıza ekliyoruz.

Karakterimizi ekledikten sonra programımızda şekillerimizin yani karakterlerimiz görüntüsü bu şekilde olacaktır. Öncelikle biz X yazısını aldığımız zaman karakterimizi ileriye götürelim. O zaman futbolcumuza tıklayalım artık karakterlerimizin kendi sayfasına gitmiş oluruz. Karakterimizde YAZILAR kısmında olduğumuza emin olduktan sonra karakterimizi kontrol etmek için gerekli parçaları birleştirelim. 


Karakterimizi de başarılı bir şekilde hareket ettirdik. Bizim yayınlattıracağımız değerlere ve ne işe yarayacaklarına bir bakalım.«Sola gitmek için= Z «Sağa gitmek için= X
«Yeni oyun başlatmak için= C Karakterimizi sağa hareket için Dijital 3’ü kullanıyorduk. Sola hareket ettirmek için ise Digital 2’yi kullanalım.

Aynı şekilde son butonumuz için C harfini yayınlattıralım.Ama butonu A0 pinine bağlamıştık galiba, o zaman bu pinimizden butona basıldığı zaman 1023 değerini alacağız.1023 değeri de ne? Bunu birazdan göreceğiz. Şimdilik 1023 değerinin butonumuzun basıldığı anlamına gelmediğini 0’ın ise de butonumuza basılmadığı anlamına geldiğini bilmemiz yeterlidir. Tüm kontrol ayarlarımızı bu şekilde yapalım.

Not: Analog0 değerlerinde 1023’ü göremiyorsak kodumuzda küçük bir değişiklik yapabiliriz. C yayınlatmak için kullandığımız ifadeyi aşağıdaki gibi değiştirebiliriz.


Daha sonra oyunumuza arkaplan olarak stadyum ve karakter olarak top ekliyoruz.


Topumuzu programa ekledikten sonra sağ altta duran karakter sekmesinden topumuzun programlama sayfasına geliyoruz. Burada x ve y koordinatlarını 0 yaparak topumuzu sayfamızın tam ortasına koyalım.

Ardından topumuzun sürekli rastgele hareket etmesi için 0 ile 360 derece arasında bir yöne dönerek hareket etmeye başlayacaktır. Eğer topumuz kenara çarpsa da kendiliğinden zıplayacak ve sürekli bir şekilde topumuz futbolcu üstünde duracaktır. Eğer top yere düşerse yani zeminde ki beyaz çizgiye de temas ederse oyunu kaybettiğimizi anlama için kaybettin yayınlatacağız.

Şimdi ise puan için değişken kodlarımıza bakalım.

Şimdide game over ve game win arkaplanlarını ve kodlarımızı ayarlayalım.



Bu kodları arkaplan yani sahne içerisine ekliyoruz.
Aşağıdaki kod bloğunu hem karakterimize hem de topumuza eklemeliyiz.

Kazanma sahnesi oluşturalım. Topumuzun olduğu sahneye giderek skor 25 olursa KAZANDIN yayınlattır şeklinde bir blok yapalım.

Program boyunca kullandığım kod blokları ARDUINO KODLARI:
FUTBOLCU KARAKTERİ KODLARI:


FUTBOL TOPU KARAKTERİ KODLARI

SAHNE KODLARI