Geliştirme kartı denilince ilk akla gelenlerden biri olan ilkel ama güncel olan kartın adıdır Arduino. Biraz bu kartı tanıyalım. Atmel Mikroişlemciye sahip olan bu aile Ar-Ge temelli Açık Kaynak olarak bulunmaktadır. Açık kaynak olduğu için kullanıcılar isteğe bağlı olarak geliştirebilmektedir.
Yapabilecekleri:
C diline az da olsa hakimseniz tam size göre bir kart. Yapabilecekleri ise Akıllı ev otomasyonun dan tutun uzaktan kontrollü cihazlardan robot sektörüne kadar kullanabilirsiniz. Örnek verecek olursak bluetooth ile telefonunuz Arduino ile iletişim kurarak gönderdiğiniz komutları kolaylıkla yapabilir. Bir led de yakabilirsiniz robot kolu da yapabilirsiniz. 3d Printer, CNC routter, xy Plotter bile yapılabiliyor.
Başlıca Modelleri:
UNO: Arduino’nun en sık kullanılan modellerinden biridir. Her mühendis öğrencisinin elinde olabilecek bir şey aslnda.Fiyatı ile de diğerlerine oranla daha uygun olanıdır.Üzerinde ATMEL mikrodenetleyici ailesinden ATmega328P vardır.
MEGA: Bu ailenin pin(bacak) sayısı olarak zengin olanıdır.Arduino uno ile aynı işleri yapabilir extra yanı ise pin sayısının fazla olmasıdır.
LILY PAD: Ailenin en ilginç üyelerinden biridir. Elbise üzerine giyilebilen bir karttır. Kıyafete iletken bir iplikle dikilebilir.
MİNİ: Buna küçük çocuk diyebiliriz. Drone yapımında vb. ağırlığı az işlevi olan bir karttır.
ARDUINO IDE
Öncelikle IDE nedir? IDE geliştirilebilir bir yazılımdır. Arduino IDE ise kendi sitesinden indirmek mümkündür. Burada yazdığınız kodları derleyip arduinonun takılı olduğu porttan yolluyoruz.belli başlı hatalar vardır. Hatalar ile karşılaşırsanız araştırarak bulabilirsiniz genelde başkası da aynı hatayı yaşamıştır.
Arduino sadece kartı programakla kalmıyor harici bağlanan bir ATMEL mikroişlemciyi de aynı kart ile doğru pinlerle programlayabiliriz.
Örnek Fonksiyon Kullanımlarını Reference kısmından bulabilirsiniz.
Bu kadar teknik bilgi verdikten sonra isterseniz biraz kodlar üzerinden inceliyelim.
// bu kısımda portların yani bacakların modları belli edilir.
//Giriş mi yoksa buradan çıkış mı alacağız onu belirtiriz. Burada 13. pin çıkış olarak girilmiştir.
//yani 13. pinden 5v luk bir gerilim bizim kontrolumüze göre verilecektir
void setup() {
pinMode(13, OUTPUT);
}
//Bu kısımda loop yani döngü olarak adlandırabiliriz. Buraya yazdığımız kod sürekli dönüp duracaktır.
void loop() {
digitalWrite(13, HIGH); // 13. pini HIGH yaparak o bacağa 5 volt göndermiş olduk
delay(1000); //'delay' yani bekleme komutu verilir bu komut ms (milisaniye) cinsindendir.
//1 saniye bekledikten sonra aşağıya geçer.
digitalWrite(13, LOW); // 13. pini LOW yaparak o bacağa gidrn 5 volt gerilimi kesmiş olduk
delay(1000); // 1 saniye bekledikten sonra başa geri döner sebebi sonrasında bir kod bulamamasıdır.
}
Bu uygulamaya 13. pine led bağlarsak bir saniye yanar ve 1 saniye sönük kalıp tekrar yanar böyle devam eder.Bir devrin Karaşimşek figürü bunları çoğaltarak yapabilirsiniz.
Yeni bir örnek;
// aynı mantıkla bu sefer yukarda tanımlandı pinlere ne bağlanacağı
const int buttonPin = 2; // button 2. pine bağlanmış durumda kodda yazdığına göre
const int ledPin = 13; // led yine 13. pin de
int buttonState = 0;
void setup() {
// çıkış mı giriş mi onu belirlemek gerekli
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}
void loop() {
// burada ise buttonun durumunu okuyoruz dijital olarak gelen değere göre de kodları değerlendireceğiz.
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) //butonun durumu HIGH ise if döngüsü içine girecek program
{
// eğer HIGH ise buraya girer ve ledi yakma komudu verildi.
digitalWrite(ledPin, HIGH);
}
else //butonun durumu LOW ise if döngüsü içine girecek program
{
// eğer LOW ise buraya girer ve ledi söndürme komudu verildi.
digitalWrite(ledPin, LOW);
}
}
Burada çok daha fazlası var kendi IDE si için de dosya>örnekler kısmından ulaşabilirsiniz.