4 Nisan 2020 Cumartesi

Arduino ile Programlama

Son yılların popüler kavramı "robotik kodlama" sistemlerinin en çok kullanılan mikro denetleyici devre kartı olan Arduino ile programlama konularını genel bilgileri ve M.E.B. müfredatına göre örnekleri inceleyelim.

Robotik sistemler elektronik devrelere kodlama yaparak ve bu elektronik sistemlerin de gerektiğinde çeşitli mekanik sistemlerle çalışarak çeşitli görevler yapmasıdır. Bu robotik sistemleri kurmak ve kodlamak da robotik kodlama kapsamındadır. Robotik kodlamada programlanabilir bir devre kartı kullanılmalıdır. Bu devre kartları çeşit çeşittir. İçlerinde kolay ulaşılır, ucuz, basit programlanabilir kartların en başında Arduino gelmektedir. Arduino kartların da çeşitleri bulunmaktadır. Biz burada popüler ve basit olan Arduino Uno kartı kullanacağız.

Arduino Uno Kartı Tanıyalım

Yukarıda gördüğünüz Arduino Uno devre kartı 0-13 arası 14 tane dijital pin, A0 ve A5 arası 6 adet analog pinden oluşur. 

  • USB girişinden usb kablosu ile bilgisayara bağlantı sağlanır.
  • Harici güç girişinden pil ve batarya bağlanarak sisteme enerji verilir.
  • Reset butonu sistemi yeniden başlatır.
  • AREF pini analog girişler için voltaj referansı içindir.
  • Dijital pinler, dijital(sayısal) olarak yani 0 veya 1 ikili sisteminde elektrik var ya da yok anlamında giriş ya da çıkış kullanılır. Bazı dijital pinlerin sayısının önünde ~ işareti vardır. Bu pinler gerektiğinde analog olarak da kullanılmaktadır.
  • Seri programlama pinleri seri port kullanılacak devrelerde kullanılır.
  • Analog girişler 0-1023 arası değer döndüren analog pinlerdir. 
  • Güç besleme pinlerinde GND şase, topraklama ya da - olarak kullanılır. 5V, 5 volt veren + uç olarak kullanılır. 3.3V, 3.3 volt verir. Reset pin sistemin gücünü kapatıp açar yani yeniden başlatır. Vin ise harici güç verileceği zaman kullanılır. Bu güç besleme pinleri elektronik devreler kurulduğunda o devrelere güç aktarmak ya da sisteme güç almak için kullanılır. Tüm bunları örnek yaparak daha iyi anlayacaksınız. 
Arduino ile gerçek ortamda çalışma imkanınız yoksa, bir Arduino karta sahip değilseniz bu sistemi sanal ortamda bir simülasyon olarak kurabilir ve programlayabilirsiniz. Bunun için Tinkercad adlı internet sitesi platformu bizlere yardımcı olacaktır. Tinkercad tanıtımı ile ilgili sunuyu indirmek için tıklayınız.
Tinkercad ile ilgili temel Arduino örnekleri için tıklayınız.

ARDUINO İLE PROGRAMLAMA

Arduino Uno kartını tanıdıktan sonra bu kart ile nasıl devre oluşturulur ve programlanır konularına değinmek gerekir.


Arduino Uno kartı ile bir elektronik/robotik devre oluşturulacak ise elektronik bileşenlerin fiziki kurulumu yapıldıktan sonra/önce (programlamayı sonra ya da önce yapmak farketmez) Arduino programında oluşturulan kodlar Arduino kartına yüklenmelidir.
Bunun için metin tabanlı kodlama yapacağımız Arduino programı gereklidir.
Programı Arduino’nun resmi internet sitesinden (www.arduino.cc) ücretsiz indirebiliriz. 
Programı indirdikten sonra sürekli ileri butonu ile ve soru olarak çıkan usb driver kurulumlarına da evet seçeneğini tıklanarak tam kurulum yapılmalıdır.

ARDUINO PROGRAMINI TANIYALIM


Yukarıdaki menüde bulunan Dosya-Düzenle-Taslak-Araçlar-Yardım seçeneklerini gerektiğinde göreceğiz.
Programda beyaz kısma metin tabanlı kodlar yazılır.
Arduino programlama dili Java, C ve C++ programlama dillerini temel almaktadır.
Kodlama kısmını 2 bölümde inceleyelim. (açıklamalarla birlikte yukarıdaki Android programı ekran görüntüsünü inceleyiniz.)
1. void setup() bölümü, süslü parantezler içine eklenecek kodlar program çalıştığında bir kez çalışır. Bu kodlar tanımlama ve kurulum kodlarıdır. Arduino ile ilgili tanımlamalar yapılır. Ya da başlangıçta bir kez çalışmasını istediğiniz kodlar buraya yazılır.
2. void loop() bölümü ise ana program bölümüdür. Asıl kodlar yani programlama yapılacak kodlar buraya yazılır. Bu döngü program sonlanmadığı sürece sonsuz döngü şeklinde çalışır.
Şimdi bir örnek üzerinde çalışarak programlama yapalım. Bu örnekte aşağıdaki hareketli resimde gördüğünüz gibi Arduino’da dijital pinlerden birine led(ışık) bağlayıp onu 1 saniye aralıklarla yakıp söndüreceğiz. Bunu program kodları kullanarak yapacağız.


Dijital (sayısal) pinler 5 volt ya da 0 volt olarak giriş ya da çıkış işlemi yaparlar. Yani ya elektrik vardır ya da yoktur. Bu da dijital sistemlerin kaynağı olan 0 ve 1 ikili sistemini bize anlatır. Bazı dijital pinlerin önünde ~ işareti vardır. Bu pinler bazı özel durumlarda analog gibi kullanılabilir. Bunu ilerleyen aşamalarda öğreneceğiz.


Programlamayı yapmadan önce yukarıda görülen elektronik devreyi kuralım. 


Lede Arduino’dan sinyal göndereceğiz. Bu yüzden dijital pinlerden herhangi birini seçmemiz gerekiyor. Bu örnekte 9 numaralı pini seçtik.
Ledi resimde görüldüğü gibi yeşil çizilmiş hatlara – ve + uçlara dikkat edilecek şekilde yerleştirdik. Ledin eksi ucunu çalışma tahtasında mavi renkli hatta direnç bağlayarak bağladık. (Direnç led üzerine gelen fazla voltajı azaltarak ledin sağlıklı çalışmasını sağlar. Mavi hatta Arduino’dan gri kablo ile GND yani – güç bağladık.) 
Arduino’daki 9 numaralı pini ise kırmızı kablo ile ledin + ucu olan hatta bağladık.
Bu şekilde devremizi tamamladık. Şimdi Arduino’yu programlayalım.

Programlama yapmak için Arduino’yu USB kablo ile bilgisayarın USB portuna takmamız gerekir. Sonra Arduino programına geçip aşağıda anlatılan gerekli ayarları yapmamız gerekir.






Kullandığımız Arduino Uno kartını programa tanıtmak gerekir. Menüden Araçlar ardından Kart sekmesi ve listeden Arduino Uno’ yu seçin




Sonraki aşama port seçimidir. Araçlar bölümünde Port sekmesinde COM seçimi yapılmalıdır. Arduinoyu USB’ye bağlayınca hangi port ismi çıkıyorsa o seçilir.

İpucu : Birden fazla COM yazıyorsa. Önce Arduino USB bağlantısını sökün ve Araçlardan Port kısmına bakın sonra USB’yi bağlayın ve tekrar Port kısmına bakın. Hangi COM numarası çıkıyorsa o sizin Arduino kartınızın bilgisayara bağlantısıdır.
Bu bağlantıların doğru olması Arduino kartın ve Arduino programın iletişim sağlamasını ve Arduino karta kod yüklenmesi için önemlidir.

Kodlayalım ve Karta Yükleyelim
Arduino programına yandaki kodları yazdıktan sonra kırmızı işaretli tik simgesine tıklayınca kodları kontrol eder, derleme yapar. Yanlış var ise programın en altında bilgilendirme yapar. Her şey doğru ise mavi işaretli ok simgesine tıklayınca kodları Arduino kartına yükler ve yükleme sonrasında en aşağıda bilgilendirme yazar.
Setup bölümünde 9 numaralı dijital pini çıkış olarak ayarlayacağız. 9 numarayı biz seçtik ve buradan lede sinyal göndereceğimiz için çıkış olarak ayarladık.
pinMode(9,OUTPUT); komutu 9 numaralı pini çıkış olarak ayarlama komutudur.
Loop bölümünde kodlarımızı yazacağız.
digitalWrite(9,HIGH); komutu 9 numaralı pine HIGH (1) yani elektrik verme komutudur. Bu şekilde ışık verir. Çünkü lede elektrik gider.
delay(1000); komutu ise 1000milisaniye = 1 saniye bekleme komutudur. Bu komut HIGH’dan sonra geldiği için led 1 saniye ışık verir şekilde bekler.
digitalWrite(9,LOW); komutu 9 numaralı pine LOW (0) yani elektrik vermez. Bu şekilde ışık vermez. Çünkü lede elektrik gitmez.
delay(1000); bu komut LOW’dan sonra geldiği için led 1 saniye ışık vermez sönük kalır. Bu şekilde loop kısmı aksi belirtilmedikçe ya da sistem kapatılmadıkça sonsuza dek çalışır ve led 1 saniye ışık verir 1 saniye ışık vermez şekilde yanıp-söner.

Kodlar ;
void setup() {
pinMode(9,OUTPUT);
}

void loop() {
digitalWrite(9,HIGH);
delay(1000);
digitalWrite(9,LOW);
delay(1000);
}

Not: Kodlarda büyük-küçük harf duyarlılığı vardır. Görüldüğü gibi yazılması gerekir. Her koddan sonra noktalı virgül kullanılır.

NELER ÖĞRENDİK?
  • Arduino kart ve çalışma tahtası(breadboard) ile devre tasarladık.
  • Arduino programı ile bu devreyi bilgisayara tanıtıp kod yükledik.
  • digitalWrite komutu ile istediğimiz dijital pine HIGH ya da LOW yazdırarak elektrik verdik ya da vermedik.
  • digitalWrite(pin numarası,HIGH ya da LOW); 
  • pin numarası 0 ile 13 arası değer alır Arduino Uno kartında.
  • delay komutu ile milisaniye cinsinden bekleme yaptırdık.
  • delay(500); 500ms yani 0.5 saniye bekleme yapar.
Bu dersi sunu olarak indirmek için tıklayınız.

Başka örnekler ile Arduino programlamaya buradan devam edeceğiz...





Hiç yorum yok:

Yorum Gönder