22nd Apr2013

Arduino ile Melodi ve Müzik Çalmak

by robonik

Arduino Mikroişlemci birimi ile yapılabileceklerin sınırı yok gibi, işte eğlenceli bir uygulama, Arduino kartımıza şarkı söyleticez. Bu uygulama için Arduino kartınız ve basit bir speaker yeterli.

Gerekli Malzemler

Uygulama

Arduino kartımızla melodi çalabilmek için basit bir bağlantı yapmamız gerekiyor, bu bağlantı aşağıdaki şekilde gösterilmiştir.

Devrenin kurulmuş hali ise aşağıda gösterilmiştir.

Şimdi sıra Arduino koduna geldi. Aşağıdaki linkten gerekli Arduino kütüphanesini indirin ve Arduino klasörü içerisindeki Libraries klasörüne kopyalayınız.

Arduino Kütüphanesi

Arduino kütüphanesini yükledikten sonra File>Examples>Tone klasöründen RTTTL örneğini açın

Açılan örnekten aşağıda resimde gösterildiği gibi // karakterlerini silin ve void (setup) içerisindeki tone1.begin(13); komutunu 11 olarak düzeltin (ya da speaker’ı 13. pin’e bağlayın) sonra da  istediğiniz melodiyi Arduino kartınıza yükleyin.

Ve işte birkaç süpriz

//char *song = "smb:d=4,o=5,b=100:16e6,16e6,32p,8e6,16c6,8e6,8g6,8p,8g,8p,8c6,16p,8g,16p,8e,16p,8a,8b,16a#

,8a,16g.,16e6,16g6,8a6,16f6,8g6,8e6,16c6,16d6,8b,16p,8c6,16p,8g,16p,8e,16p,8a,8b,16a#,8a,16g.,16e6,16g6,8a6,

16f6,8g6,8e6,16c6,16d6,8b,8p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16g#,16a,16c6,16p,16a,16c6,16d6,8p,16g6

,16f#6,16f6,16d#6,16p,16e6,16p,16c7,16p,16c7,16c7,p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16g#,16a,16c6,16p

,16a,16c6,16d6,8p,16d#6,8p,16d6,8p,16c6";

//char *song = "SpongeB:d=4,o=6,b=180:d.,8d,8e,8d,8b5,8g5,8b5,8d,8e,8d,b5,8p,16p,g.,e.,d.,b5,8p,g.,e.,d.,b5

,8p,d.,e.,p,8p,f_.,g,8p,16p,d.,8g,8a,8b,8a,8p,8b,g,32p,8d,g";

//char *song = "coculardu:d=4,o=6,b=200:e,8d,e,8d,8e,8p,d,8c,d,8c,8b5,8p,c,8b5,8d,8c,8b5,8a5,8g5,8a5,8b5,8c

,d,8e,8f,8p,e,8d,e,8d,e,d,8c,d,8c,8b5,8p,c,8b5,8d,8c,8b5,8a5,8g5,8a5,8b5,c,e,8d";

//char *song = "Nationala:d=4,o=6,b=112:c5,f5,g5,g_5,8e.5,16g5,2f5,p,f5,a_5,c,8c_.,16c,8a.5,16c,2a_5,p,16c,16b5

,8c,g5,g.5,16p,16a_5,8g_.5,16e5,8f.5,16g5,8g_.5,16a_5,8c.,16c_,8d_.,16f,d_,16d_5,16d5,8d_5,c,a_5,2g_5,p,c5,f5

,g5,g_5,8e.5,16g5,2f5,p,f5,a_5,c,8c_.,16c,8a.5,16c,2a_5,p,16c,16b5,8c,g5,g.5,16p,16a_5,8g_.5,16e5,8f.5,16g5,8g_.5

,16a_5,8c.,16c_,8d_.,16f,d_,16d_5,16d5,8d_5,c,a_5,2g_5";

//char *song = "konyali:d=4,o=6,b=112:16g5,16a5,16a5,16a5,8a5,e,16e,16d,16d,16d,16e,16c,c,8d,16d,16d,16g,16e,e,16c

,16b5,16b5,16b5,16b5,16a5,a5,8a5,16a5,16a5,8a5,a5,16g5,16a5,16a5,16a5,8a5,e,16e,16d,16d,16d,16e,16c,c,8d,16d,16d,16g,16e,e";

//char *song = "IbrahimTa:d=4,o=6,b=225:8e,8p,8e5,8p,8e5,8p,e5,p,e5,8g5,e5,8d5,8e5,8p,8e5,8d5,8e5,8p,e5,p,e5,8g5,e5

,16d5,16p,d5,e5,d5,e5,p,8e5,16d5,16p,8d5,16c5,16p,c5,d5,e5,d5,e5,p,8e5,16d5,16p,d5,8e5,16d5,16p,d5";

//char *song = "Athena1:d=4,o=6,b=200:b5,b5,8f_,8e,d_,e,8e,8e,8c,8b5,a5,b5,b5,8f_,8e,d_,8e,8p,e,8p,8e,8e,8p,b5

,b5,8f_,8e,d_,e,8e,8e,8c,8b5,a5,b5,b5,8f_,8e,d_,8e,8p,e,8p,8e,8e";

//char *song = "TarkanH:d=4,o=6,b=112:16e5,16a5,16a5,16e5,16a5,16a5,16e5,16a5,16e5,16a5,16a5,16e5,16a5,16a5,16e5

,16a5,16f5,16a5,16a5,16f5,16a5,16a5,16f5,16a5,16c,16d,16e,16d,16d,16c,16c,16b5,16b5,16p,16d,16c,16c,16b5,16b5,16a5,16a5";

Ve Arduino Super Mario :)

22nd Apr2013

CHR-UM6 AHRS (IMU)

by robonik

CHR-UM6 AHRS Birimini satın almak için : CHR UM6

AHRS sisteminin ismi İngilizce “Attitude and Reference Heading System” kelimelerinden gelmektedir, içerdiği farklı eksenlere yerleştirilmiş algılayıcılar sayesinde uyguladığı çeşitli süzgeçler ile (kalman süzgeci vb.) yuvarlanma, yunuslama ve sapma (roll, yaw ve pitch) açılarını elde eder.

CHR UM6 CH Robotics firmasının ürettiği en kapsamlı ataletsel ölçüm birimidir. Birim AHRS (attitude and heading reference system) sınıfındadır. Algılayıcı birimi içerdiği gyro, ivmeölçer ve manyetik algılayıcıların ölçümlerini toplar ve 1000Hz hızı ile 32 bit ARM Cortex işlemcisi ile işler. İşlenmiş yönelim açılarını quaternion ya da Euller açıları olarak TTL seri arayüz ile kullanıcıya iletir. Ücretsiz PC yazılımı ile de kullanılabilen algılayıcı birimi kolay kullanımı ve tutarlı ölçümleri ile tercih sebebidir.

Küüçük boyutu ve hafifliği ile birçok farklı uygulamada rahatlıkla kullanılabilen algılayıcı birimi 20 Hz ile 300 Hz arasında veri aktarabilir. Bu aktarımda işlenmemiş algılayıcı verileri, işlenmiş açı verileri gibi aktarım hızı ve içeriği ile ilgili ayarlar kolaylıkla yapılabilir.

GENEL ÖZELLİKLERİ

  • EKF (Extended Kalman Filter) süzgeci ile doğru açı değerlerine ulaşma
  • Otomatik gyro bias kalibrasyonu
  • 20 – 300 Hz arasında ayarlanabilir veri çıkışı
  • TTL veri arayüzü
  • 3.3V voltaj regülatörü
  • Ücretsiz PC yazılımı
  • Plastik koruma kasası

TEKNİK ÖZELLİKLERİ

  • 2° den az bir sapma ile pitch ve roll açılarının hesaplanması
  • 5° den az bir sapma ile yaw açısının hesaplanması
  • 16-bit çözünürlüğünde Euller açıları çıkışı
  • 3.5 – 5 V çalışma aralığı
  • ±2000°/s maksimum ölçülebilen açısal hızlar
  • ±2 g ivme ölçüm aralığı
  • Ağırlık: 7 grams
  • Boyut: 27.8 × 35.6 × 11.5 mm

UYGULAMA ALANLARI

CHR-UM6 birçok uygulama alanında rahatlıkla kullanılabilir.

  • UAV (İHA) navigasyon
  • Robotik
  • Hareket takibi
  • Platform sabitleme
  • Görüntü sabitleme
  • Gelişmiş GPS uygulamaları

CHR-UM6 AHRS Birimini satın almak için : CHR UM6

22nd Apr2013

Mbed Mikroişlemci Birimi

by robonik

Mbed Mikoişlemci birimini satın almak için : mbed mikroişlemci

mbed elektronik prototipleme için kullanılan bir mikroişlemci birimidir. Mikroişlemciler giderek ucuzlamakta, esnekleşmekte ve hızlanmaktadır, fakat tüm bunlara rağmen hala daha bazı işlemler için yetersiz kalmaktadır, özellikle prototip geliştirme uygulamaları için farklı mimariler avantaj kazanmaktadır. Mbed bu mimarilerden birisidir ve gelişmiş mimarisi ile rakiplerine göre farklı avantajlar sunar.

MBED Mikroişlemci

40-pin DIP soket ile PCB ve breadboard üzerine rahatlıkla bağlanabilen mbed mikroişlemci birimi sahip olduğu USB girişi ile rahatlıkla programlanabilir ve aşağıdaki şekilde görüldüğü üzere sahip olduğu farklı giriş çıkış özellikleri ile birçok uygulamada rahatlıkla kullanılabilir. Mbed geliştirme kartı gelişmiş NXP LPC1768 Cortec-M3 işlemcisi ile 96 MHz hızında çalışır ve 512 KB flash ve 64 KB SRAM özellikleri ile kullanıcılara geniş bir esneklik sağlamaktadır. 12 bit ADC, 10 bit DAC, UART, SPI, I2C ve CAN giriş ve çıkışları ile diğer geliştirme kartlarına göre ciddi anlamda gelişmiş bir yapıya sahiptir.

Teknik Özellikleri

  • Boyutları: 54 mm × 26 mm
  • USB Beslemeli
  • Devre bağlantısı: 40-pin DIP
  • Cortex-M3 donanım
    • 96 MHz ARM işlemci
    • Ethernet, USB OTG
    • SPI, I2C, UART, CAN
    • GPIO, PWM, ADC, DAC, DMA
  • Kullanımı kolay ücretsiz arayüz yazılımları
    • Web-tabanlı C/C++ programlama ortamı

MBED Compiler

Mbed Compiler C++ dilinde kod yazmanıza izin veren arayüzdür, bu arayüz ile geliştirdiğiniz kodları rahatlıkla mbed mikroişlemci birimine yükleyebilirsiniz. Mbed’in rakiplerinden farklı bir diğer özelliği de compiler yazılımının online olmasıdır. Hiçbir program yüklemeden tek bir web adresine tıklayarak mbed mikroişlemci kartınıza kod yükleyebilirsiniz.

/media/uploads/simon/mbedcompiler2.png

Compiler yazılımın online olması ile üye girşi yaptığınız her bilgisayardan kaldığınız yerden kodunuzu yazmaya, denemeye ve yüklemeye devam edebilirsiniz ayrıca web uygulaması olduğu için işletim sisteminizin Windows, Mac ya da Linux olmasıda hiçbir problem yaşatmaz. Compiler yazılımının kullanımı ile ilgili bir video;

MBED Kütüphanesi

Mbed, sahip olduğu kütüphaneleri ile rahatlıkla kod geliştirmenize imkan sağlamaktadır.

/media/uploads/simon/mbedlibrary.png

Mbed kütüphanelerinden bir kısmı yukarıdaki resimde gösterilmiştir. tüm kütüphaneleri ile ilgili bilgi almak için mbed’in sitesine bakınız.

Mbed mikroişlemci birimi hakkında çeşitli videolar;

Mbed Mikoişlemci birimini satın almak için : mbed mikroişlemci

22nd Apr2013

Arduino C# ile Bilgisayar Haberleşmesi

by robonik

Gerekli Malzemeler

Uygulama

Bu uygulamada C# ile geliştirdiğimiz arayüz (GUI) ile Arduino mikroişlemci kartımız ile iletişim kuracağız. Öncelikle Arduino devre kartımız üzerine aşağıdaki resimde gösterildiği gibi bir led bağlayalım.

Sistemimizin çalışma mantığı şöyle: Bilgisayardan geliştirdiğimiz arayüz ile led açık ve led kapalı bilgisi ileticez, yani 1 ve 0 bilgisi, bu bilgiyi Arduino mikroişlemci kartı ile okuyarak gelen veri 1 ise led yakma komutunu 0 ise led söndürme komutunu çağırıcaz. C# üzerinde oluşturulan kod aşağıda verilmiştir.

 using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO.Ports;

namespace Led_Example

{

publicpartialclassForm1 : Form

{

bool LedOn;

string SerialAvailable;

SerialPort serialport;

public Form1()

{

InitializeComponent();

serialport = newSerialPort();

serialport.PortName = "COM8";

serialport.BaudRate = 9600;

serialport.Open();

}

privatevoid Form1_FormClosing(object sender, FormClosingEventArgs e)

{

if (serialport.IsOpen) serialport.Close();

}

privatevoid btnOn_Click(object sender, EventArgs e)

{

serialport.Write("1");

txtmessage.Text = "Isik Acik!";

btnOn.Enabled = false;

btnOFF.Enabled = true;

LedOn = true;

}

privatevoid btnOFF_Click(object sender, EventArgs e)

{

serialport.Write("0");

txtmessage.Text="Isik Kapali";

btnOn.Enabled = true;

btnOFF.Enabled = false;

LedOn = false;

}

}

}

Bu kod ile oluşturulacak olan form ise aşağıdaki resimde gösterilmiştir.

Arduino IDE üzerinden Arduino mikroişlemci kartı üzerine yüklenecek olan kod ise aşağıda verilmiştir.

www.roboloji.com
Her hakkı saklıdır
void setup()
{
pinMode(2, OUTPUT);                    //2. pin çıkış olarak ayarlandı
Serial.begin(9600);                          //Seri iletişim
}

void loop()
{
int led_durum = Serial.read();        //2. pin çıkış olarak ayarlandı
if (led_durum == '1')                         //Eğer led_durum değeri 1 ise
{
digitalWrite(2,HIGH);                    //ledi yak
}
else if (led_durum == '0')               //Eğer led_durum değeri 0 ise
{
digitalWrite(2,LOW);                    //ledi söndür
}
}

Ve PC ile Arduino arasındaki ilk bağlantıyı gerçekleştirdiniz. Eğer PC kısmındaki C# programında sıkıntı yaşıyorsanız Arduino kartınızın bağlı olduğu COM bağlantı numarasını düzeltmeniz gerekmektedir. C# ile kod derleyemiyor, gerekli programlar bilgisayarınızda bulunmuyor ise de ledyak programını linkten indirebilirsiniz.Programın görüntüsü aşağıdaki resimde gösterilmiştir.

Arduino ve PC arasındaki iletişimi gerçekleştirip en basit uygulama olan Led yakıp söndürme işlemini tamamladığınıza göre yaratıcılığınızı kullanarak daha gelişmiş çalışmalar geliştirebilirsiniz.

Gerekli Malzemeler

22nd Apr2013

Arduino Nedir?

by robonik

Arduino esnek, kolay kullanımlı donanım ve yazılım tabanlı bir açık kaynaklı elektronik prototip platformudur. Bu platform kolay kullanım özelliği sayesinde özellikle sanatçılar, tasarımcılar, hobi ve etkileşimli nesne veya ortam oluşturmayı isteyen kişiler için tasarlanmıştır.

Arduino geliştirme kartı üzerindeki mikroişlemci Arduino programlama dili (wiring tabanlı) ile programlanır ve bu program Processing tabanlı Arduino Yazılım Geliştirme Ortamı (IDE) yardımı ile karta yüklenir.

Kısacası Arduino, elektronik ve yazılım bilginiz sınırlı olsa bile aklınızdaki fikrinizi kolaylıkla prototiplemenize imkan sunar.

Arduino Geliştirme Kartı Modelleri

Arduino geliştirme kartı ailesi her gün büyümektedir. Özellikle katman (shield) yapısı, kolay kullanımı, örnek uygulamaları, kodları ve kütüphaneleri ile uygulamalarınız için hızlandırıcı bir unsurdur. En son güncellenen Arduino geliştirme kartları;

Farklı özellikleri ile birçok uygulamada kullanılmaktadır.

Arduino UNO

Genel Bilgi

Arduino Uno, ATmega 328 tabanlı bir mikroişlemci geliştirme kartıdır. Kart, 14 adet dijital giriş/çıkış bağlantısına (bunların 6 tanesi PWM çıkışı olarak kullanılabilir), 6 analog girişe, 16 Mhz kristal osilatöre, USB bağlantısına, güç bağlantısına, ICSP bağlantısına ve reset tuşuna sahiptir. Bilgisayar ile USB portu üzerinden bağlamanız kartın çalışması için yeterlidir, pil ya da adaptör ile de kullanılabilir.

Teknik Özellikleri

Mikroişlemci ATmega328
Çalışma Voltajı 5V
Besleme Voltajı (önerilen) 7-12V
Besleme Voltajı (limit) 6-20V
Dijital G/Ç bağlantıları 14 (6 tanesi PWM çıkışı sağlayabilir)
Analog Giriş Bağlantıları 6
G/Ç bağlantısı başına DC Akım 40 mA
3.3V bağlantısı için DC Akım 50 mA
Flash Bellek 32 KB (ATmega328)
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Hızı 16 MHz

Güç

Arduino Uno, USB bağlantısı tarafından, pil ya da güç kaynağı tarafından beslenebilir. Güç beslemesi, besleme soketinden yapılabileceği gibi Gnd ve Vin soketleri ile de sağlanılabilir.

Güç Pinleri:

  • VIN. Güç bağlantı soketi yerine kullanılabilecek olan giriş bağlantısı Arduino Uno’yu beslemenizi sağlar (Sadece tek bir bağlantı ile beslemeniz yeterlidir. Güç bağlantı soketi ya da Vin giriş bağlantısından bir tanesini kullanınız.)
  • 5V. Arduino Uno devresi üzerinde regüle edilmiş 5 Volt çıkışı olan bağlantıdır.
  • 3V3. Arduino Uno devresi üzerinde regüle edilmiş 3.3 Volt çıkışı olan bağlantıdır.
  • GND. Toprak bağlantısıdır.

Giriş ve Çıkışlar

14 Dijital bağlantının her biri giriş ya da çıkış olarak kullanılabilir, pinMode() komutu ile pinlerin giriş ya da çıkış olacakları, digitalWrite() ve digitalRead() komutları ile de bu pinlerdeki durumu değiştirme ya da okuma işlemleri gerçekleştirilebilir. Bağlantılar 5 Volt ile çalışır ve 20-50 kOhm iç direnç değerlerine sahiplerdir. Bunların dışında bazı bağlantıların kendine has özellikleri bulunmaktadır:

  • Seri İletişim : 0 (RX) ve 1 (TX). Bu bağlantılar, USB çıkışına bağlı olup TTL seri sinyalini taşımak için kullanılmaktadır.
  • Dış Kesmeler: 2 ve 3. Bu bağlantılar düşük değer, alçalan ve yükselen sinyal, durum değişikliği gibi olaylar için ayarlanabilen kesme bağlantılarıdır. attachInterrupt() komutu ile kullanılmaktadır.
  • PWM: 3, 5, 6, 9, 10, ve 11. analogWrite() komutu ile 8-bit çözünürlüğünde PWM çıkışı sağlayabilen bağlantılardır.
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). SPI kütüphanesi ile SPI iletişim uygulamarında kullanılan bağlantılardır.
  • LED: 13. Devre kartı üzerinde bulunan LED 13. Girişe bağlanmıştır ve 13. Girişin durumuna göre yakılıp söndürülebilir.

Arduino Uno 6 analog girişe sahiptir ve bunlar A0‘dan A5’e kadar numaralandırılmışlardır. Her biri 10 bit çözünürlüğe sahiptir. Genel kullanımda 5 volt ile toprak arasında ölçüm yapan girişler için AREF bağlantısı kullanılarak ölçüm aralığı değiştirilebilir. Bu işlem için analogReference() komutu kullanılmaktadır.  Bu pinlerden bazıları farklı özellikler için kullanılmaktadır:

  • I2C: 4 (SDA) ve 5 (SCL). Wire kütüphanesi ile I2C (TWI) bağlantısını destekleyen bağlantılardır.

Arduino Mega 2560

Genel Bilgi

Arduino Mega, Atmega2560 mikroişlemci tabanlı bir geliştirme kartıdır. Kart 54 adet dijital giriş/çıkış pinlerine (14 tanesi PWM sinyal çıkışı için kullanılabilir), 16 adet analog girişe, 4 UART portuna, 16 Mhz kristal osilatöre, USB bağlantısına ve güç girişine sahiptir. Bir mikroişlemci için gerekli bütün elemanlara sahip olan kart USB kablosu, AC/DC adaptör ya da pil ile beslenebilir. Kolay ara yüzü ile programlanabilen kart kullanım açısından ciddi avantajlar sağlamaktadır.

Teknik Özellikleri

Mikroişlemci ATmega2560
Çalışma Voltajı 5V
Besleme Voltajı (önerilen) 7-12V
Besleme Voltajı (limit) 6-20V
Dijital G/Ç bağlantıları 54 (16 tanesi PWM çıkışı sağlayabilir)
Analog Giriş Bağlantıları 16
G/Ç bağlantısı başına DC Akım 40 mA
3.3V bağlantısı için DC Akım 50 mA
Flash Bellek 256 KB (8 KB’lık kısmı bootloader için kullanılmaktadır)
SRAM 8 KB (ATmega2560)
EEPROM 4 KB (ATmega2560)
Hızı 16 MHz

Güç

Arduino Mega2560, USB bağlantısı tarafından, pil ya da güç kaynağı tarafından beslenebilir. Güç beslemesi, besleme soketinden yapılabileceği gibi Gnd ve Vin soketleri ile de sağlanılabilir.

Güç Pinleri:

  • VIN. Güç bağlantı soketi yerine kullanılabilecek olan giriş bağlantısı Arduino Mega2560’ı beslemenizi sağlar (Sadece tek bir bağlantı ile beslemeniz yeterlidir. Güç bağlantı soketi ya da Vin giriş bağlantısından bir tanesini kullanınız.)
  • 5V. Arduino Mega2560 devresi üzerinde regüle edilmiş 5 Volt çıkışı olan bağlantıdır.
  • 3V3. Arduino Mega2560 devresi üzerinde regüle edilmiş 3.3 Volt çıkışı olan bağlantıdır. Maksimum 50mA akım çekebilmektedir.
  • GND. Toprak bağlantısıdır.

Giriş ve Çıkışlar

14 Dijital bağlantının her biri giriş ya da çıkış olarak kullanılabilir, pinMode() komutu ile pinlerin giriş ya da çıkış olacakları, digitalWrite() ve digitalRead() komutları ile de bu pinlerdeki durumu değiştirme ya da okuma işlemleri gerçekleştirilebilir. Bağlantılar 5 Volt ile çalışır ve 20-50 kOhm iç direnç değerlerine sahiplerdir. Bunların dışında bazı bağlantıların kendine has özellikleri bulunmaktadır:

  • Seri İletişim: 0 (RX) ve 1 (TX); Seri İletişim 1: 19 (RX) ve 18 (TX); Seri İletişim 2: 17 (RX) ve 16 (TX); Seri İletişim 3: 15 (RX) ve 14 (TX). Bu bağlantılar, USB çıkışına bağlı olup TTL seri sinyalini taşımak için kullanılmaktadır. 0 ve 1 numaralı pinler, ATmega8u2 USB-TTL seri çipiyle ilişkili olan pinlerle bağlıdır.
  • Dış Kesmeler: 2, 3, 18, 19, 20, 21. Bu bağlantılar düşük değer, alçalan ve yükselen sinyal, durum değişikliği gibi olaylar için ayarlanabilen kesme bağlantılarıdır. attachInterrupt() komutu ile kullanılmaktadır.
  • PWM: 0-13. analogWrite() komutu ile 8-bit çözünürlüğünde PWM çıkışı sağlayabilen bağlantılardır.
  • SPI: 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS). SPI kütüphanesi ile SPI iletişim uygulamarında kullanılan bağlantılardır.
  • LED: 13. Devre kartı üzerinde bulunan LED 13. Girişe bağlanmıştır ve 13. Girişin durumuna göre yakılıp söndürülebilir.
  • I2C: 20 (SDA) ve 21 (SCL). Wire kütüphanesi ile I2C (TWI) bağlantısını destekleyen bağlantılardır.

Arduino Mega2560 16 analog girişe sahiptir. Her biri 10 bit çözünürlüğe sahiptir. Genel kullanımda 5 volt ile toprak arasında ölçüm yapan girişler için AREF bağlantısı kullanılarak ölçüm aralığı değiştirilebilir. Bu işlem için analogReference() komutu kullanılmaktadır.

22nd Apr2013

Giriş Çıkış Katmanı ve Servo Motor Sürüş

by robonik

Malzeme Listesi

Arduino Giriş Çıkış Katmanı V5

Bu katman Xbee ve Bluetooth Bee kablosuz iletişim modüllerini Arduino ve DFRduino mikroişlemci kartları ile birlikte kullanmanızı sağlamaktadır. SD kart desteği de sağlayan bu katman RS485, APC220 ve bluetooth iletişim protokollerini desteklemektedir. Servo sürüşü için gerekli bağlantı noktalarına sahip olan katman Arduino ve DFRduino mikroişlemci kartları ile birçok farklı proje ve çalışmayı kolaylıkla geliştirmenizi sağlayacaktır. Katman üzerindeki bağlantılar aşağıda gösterilmiştir.

DC Servo Motor
DC Servo motorlar, özel sinyal ile çalışan ve sinyal genişliğine göre çeşitli açılara kontrollü bir şekilde dönen motorlardır. Standart bir servo motor aşağıdaki resimde gösterilen sinyaller için resimde belirtilen açılara hareket etmektedir.

Bu sinyali üretmek için Arduino servo motor kütüphanesine sahiptir.
Arduino ile Servo Motor Uygulaması
Servo motoru, giriş çıkış katmanı üzerinde dijital 9. Pine sinyal kablosu dışa gelecek şekilde takınız ve aşağıdaki kodu Arduino donanımına yükleyiniz.

#include <Servo.h>

Servo myservo; // bir servo objesi oluşturur (en fazla 8 tane)

int pos = 0; // servo pozisyonu için değişken

void setup()

{

myservo.attach(9); // pin 9’u servo motor olarak belirtir

}

void loop()

{

for(pos = 0; pos < 180; pos += 1) // 0 dereceden 180 dereceye kadar 1 derece artışla dönüş

{

myservo.write(pos); // servo motoru pos değişkenindeki değere gönderme

delay(15); // 15ms bekleme

}

for(pos = 180; pos>=1; pos-=1) // 180 dereceden 0 dereceye 1 derece eksilmeyle dönüş

{

myservo.write(pos); // servo motoru pos değişkenindeki değere gönderme

delay(15); // 15ms bekleme

}

}

Giriş Çıkış katmanı, prototipleme uygulamalarınızı ciddi anlamda kolaylaştıracak bir prototipleme birimidir. Servo motor ile ilgili daha fazla uygulama için Arduino IDE üzerinden File > Examples > Servo > Knob örneğine bakabilirsiniz.

22nd Apr2013

Arduino Katman (Shield) Yapısı

by robonik

Arduino Katmanları Genel
Arduino katmanları üst üste eklenebilir (stackable) yapıları ile Arduino ve uyumluları ile rahatlıkla kullanabilir. Çeşitli Arduino katmanları ve Arduino tabanlı mikroişlemci kartları ile birlikte kullanımı Şekil 1’de gösterilmiştir.

Arduino katmanları üst üste eklenebilirlik ve Arduino tabanlı mikroişlemci kartları ile uyumluluk konularında çeşitlilik göstermektedir.

Arduino Katmanları Uyumluluk
Arduino katmanları ve bu katmanların çeşitli Arduino tabanlı mikroişlemci kartları ile uyumlulukları Tablo 1’de gösterilmiştir.

Arduino Katmanları Üst Üste Eklenebilirlik (Stackable)
Arduino Katmanları ve bu katmanların üst üste eklenebilirlik (stackable) özellikleri Tablo 2’de gösterilmiştir.

Arduino Katmanları Kontrol Pinleri
Arduino katmanları ve bu katmanların kullandıkları kontrol pinleri Tablo 3’de gösterilmiştir.

22nd Apr2013

3pi Robot Setinin Arduino IDE ile Kullanımı

by robonik

Malzeme Listesi
3pi Robot Setinin Arduino IDE ile Kullanımı uygulaması için gereken malzeme listesi;

3pi Robot Setinin Arduino IDE ile Kullanımı

3pi mobil robot platformu, iki adet dişli kutulu mikro motor, 2 adet sürüş tekerleği, 5 adet çizgi izleme algılayıcısı, 8×2 karakter LCD, ses üreteci, üç adet anahtar ve hepsinin bağlantılı olduğu Atmega328 mikroişlemci birimi içermektedir. Birçok uygulama için ideal olan robot platform özellikle çizgi izleme ve labirent çözme gibi uygulamalarda kullanılmaktadır. Örnek uygulama ve kodları internet üzerinde rahatlıkla bulunabilir, geliştirilmeye açık ve kolay kullanımlı bir birimdir. 3pi Robot Şekil 1’de gösterilmiştir.

AVR Programlayıcı
3pi Robotu programlamak için AVR programlayıcıya ihtiyaç vardır. Bu programlayıcı Şekil 2’de gösterilmiştir. AVR programlayıcı 6 kablolu ISP soket ile 3pi robot üzerine bağlanır.

3pi Robot Pin Bağlantıları

3pi mobil robot platformu, ana fonksiyonları ve bu fonksiyonların Arduino pin diagramına göre bağlantıları Tablo 1’de gösterilmiştir.

Arduino Ortamının Ayarlanması

3pi mobil robot platformunun, Arduino IDE programı ile birlikte kullanılması için Arduino IDE programı içeriğinde bir takım değişikliklerin gerçekleştirilmesi gerekmektedir.

1. arduino-0021/hardware/arduino adresindeki klasördeki boards.txt dosyasının sonuna aşağıdaki satırları ekleyin.

############################################################## orangutan328p.name=Pololu Orangutan or 3pi robot w/ATmega328p via Programmer

orangutan328p.upload.using=avrispv2

orangutan328p.upload.maximum_size=32768

orangutan328p.build.mcu=atmega328p

orangutan328p.build.f_cpu=20000000L

orangutan328p.build.core=arduino

2. arduino-0021/hardware/arduino adresindeki klasördeki programmers.txt dosyasının sonuna aşağıdaki satırları ekleyin.

vrispv2.name=AVR ISP v2

avrispv2.communication=serial

avrispv2.protocol=avrispv2

3pi Robot Arduino IDE ile İlk Uygulama

Arduino ortamındaki değişiklikleri tamamladıktan sonra 3pi Robot platformumuza ilk örnek kodun yüklenmesi aşamasına geldik. Aşağıdaki kodu Arduino IDE yazılımında hazırlayınız (kopyala yapıştır kullanabilirsiniz).

int ledPin = 1; // LED dijital pin 1 (PD1) e bağlanmış

void setup()

{

pinMode(ledPin, OUTPUT); // dijital pin çıkış olarak ayarlandı

}

void loop() // sonsuz döngü

{

digitalWrite(ledPin, HIGH); // LED açık

delay(1000); // bir saniye bekle

digitalWrite(ledPin, LOW); // LED kapalı

delay(1000); // bir saniye bekle

}

Arduino IDE üzerinden Tools>Boards ayarını Şekil 3’de gösterildiği gibi gerçekleştirin.

Programlayıcının seri port ayarını Şekil 4’de gösterildiği gibi gerçekleştirin.

AVR programlayıcı ile ilgili düzenleme yazılımı ve sürücü dosyaları aşağıdaki adreste verilmiştir.
AVR programlayıcı sürücüsü ve Düzenleme yazılımı

AVR programlayıcının hangi seri porta bağlı olduğunu öğrenmek için Şekil 5’de gösterildiği gibi aygıt yöneticisinden (device manager) bakabilirsiniz.

AVR Programmer Programming Port : Programlama portudur, program yüklerken bu port kullanılacaktır.

AVR Programmer TTL Serial Port : Seri bağlantı portudur, 3pi robot ile seri port aracılığı ile veri alıp gönderirken bu port kullanılacaktır.

Şekil 3 ve 4’de gösterilen ayarlar gerçekleştirildikten sonra, gömülü yazılım (LED yakıp söndürme) Şekil 6’da gösterilen upload to I/O board tuşu ile 3pi Robot üzerine yüklenebilir. Yükleme işlemi tamamlandıktan sonra sol alt köşede Done Uploading ibaresi belirecektir.

3pi Robot Arduino Kütüphaneleri

3pi Robot ile Arduino IDE yazılımı kullanarak uygulamalar geliştirebilmek için, 3pi Robot Arduino kütüphanelerinin Arduino IDE yazılımına yüklenmiş olması gerekmektedir. Arduino IDE kütüphaneleri aşağıdaki adresten indirilebilir.

Pololu Arduino Kütüphanesi Versiyon 101215

İndirilen klasör içerisindeki klasörler Şekil 7’de gösterildiği gibi arduino-0021/libraries adresindeki klasöre kopyalanmalıdır.

3pi Robot Uygulamaları

3pi Robot Arduino kütüphaneleri yüklendikten sonra, Arduino IDE yazılımı ile Şekil 8’de gösterildiği gibi Sketch > Import Library > Pololu3pi adresinden basit çizgi izleyen, PID çizgi izleyen, Labirent çözen gibi uygulamalara kolaylıkla ulaşabilirsiniz. Ayrıca analog giriş, dijital giriş, LCD, LEDler, butonlar ve algılayıcıların ayrı ayrı kullanımı ile ilgili örnek dosyalara da rahatlıkla ulaşabilirsiniz.

22nd Apr2013

Arduino Seri Monitör ile Sharp GP2D12 Kalibrasyonu

by robonik

Malzeme Listesi
Arduino Seri Monitör ile Sharp GP2D12 uygulaması için gereken malzeme listesi;

Arduino Seri Monitör
Arduino donanımı, bağlı olduğu bilgisayar ile veri alış verişi imkanı sunmaktadır. Bu veri alış verişi Arduino IDE yazılımının sahip olduğu Seri Monitör (Serial Monitor) arayüzü ile gerçekleşmektedir. Seri Monitörü çalıştırmak için Arduino IDE yazılımında Seri Monitör imgesine tıklamanız yeterlidir.

Seri Monitör, Arduino donanımı ile iletişim kurabilmeniz için veri gönderme bölümü, veri alma bölümü ve aktarım hızı ayarlama bölümünden oluşmaktadır.

Analog Giriş
Arduino 6 adet analog giriş bağlantısına sahiptir. Bu bağlantılardan analog sinyal okumak için analogRead() komutu kullanılmaktadır. Yani;

int sensorValue=analogRead(A0);

Satırı, sensorValue adında bir değişken tanımlayarak, A0 analog bağlantısından okuduğu değeri bu değişkene atıyacaktır.

Seri Haberleşme
Arduino donanımı bilgisayar ile seri haberleşme ile iletişim kurar. Bu iletişimi kurmak için gerekli olan ayarlama komutu Serial.begin(aktarım hızı)’dır. Yani;

Void setup()

{

Serial.begin(9600);

}

Kodu, 9600 br hızında seri haberleşme başlatacaktır. Bu haberleşme ile veri göndermek için Serial.println() komutu kullanılmaktadır.

Uygulama – Sharp GP2D12 Algılayıcı Kalibrasyonu
Sharp GP2D12 Algılayıcısı bir mesafe ölçüm birimidir ve 10 ile 80 cm arasında ölçüm almaktadır. Algılayıcı analog çıkış vermektedir. Bu uygulamada, analog çıkış veren bu algılayıcıdan gelen veri alınacak, bu veri (voltaj değeri) mesafe değerine dönüştürülecek ve bilgisayara aktarılacaktır.
İlk olarak Sharp GP2D12 algılayıcısını Arduino donanımına şekildeki gibi bağlayınız.

Aşağıda verilen kodu Arduino donanımına yükleyiniz.

void setup()

{

Serial.begin(9600);

}

void loop()

{

int sensorValue = analogRead(A0);

Serial.println(sensorValue, DEC);

}

Seri Monitörü çalıştırın, aktarım hızını 9600 baud olarak ayarlayın, artık algılayıcı çıkışını 10 bit olarak (0 ile 1024 değerleri arasında)bilgisayar ekranında görmektesiniz. Bu gördüğünüz değerlerde 1024 5 volt değerine 0 ise 0 volt değerine tekabül etmektedir.

Bir cetvel ya da metre yardımı ile aşağıdaki tabloda, verilen mesafe değerleri için okuduğunuz analog giriş değerlerini doldurunuz.

Bu değerleri kullanarak Ax+B şeklinde lineer bir fonksiyon belirleyiniz ve belirlediğiniz fonksiyonu (A ve B değerlerini) aşağıda verilen kod içerisinde kullanarak Arduino donanımına yükleyiniz.

void setup()

{

Serial.begin(9600);

}

void loop()

{

int sensorValue = analogRead(A0);

int sharp = sensorValue*A+B;

Serial.println(sharp, DEC);
}

Artık Seri Monitör’ü kullanarak mesafe değerlerini cm cinsinden bilgisayarınıza aktarmaktasınız.

Not: Sharp GP2D12 algılayıcı birimi doğrusal bir şekilde çıkış vermediği için bilgisayar ekranında gördüğünüz mesafe değerlerinde ufak farklılıklar olabilir. Bunu gidermek için daha iyi bir kalibrasyon gerçekleştirmeniz (2., 3. da da 4. dereceden bir fonksiyon atamanız) gerekmektedir.

22nd Apr2013

Arduino IDE Yazılımı ve Arduino Kartına Kod Yüklenmesi

by robonik

Malzeme Listesi
Arduino IDE Yazılımı ve Arduino Kartına Kod Yüklenmesi uygulaması için gereken malzeme listesi;

Arduino IDE Yazılımı ve Arduino Kartına Kod Yüklenmesi

Arduino Uno mikroişlemci geliştirme birimi processing dilinde (www.processing.org) kod geliştirmeye imkan tanır. Arduino Uno için yazılan kodlara “Sketch” (karalama) adı verilir. Arduino IDE (Integrated Development Environment) Sketch geliştirebildiğiniz, USB bağlantısı sayesinde Arduino Uno mikroişlemci geliştirme birimi ile haberleşebildiğiniz, geliştirdiğiniz kodları derleyebildiğiniz, bilgisayarınıza yüklediğiniz yazılımdır. Arduino çalışma prensibi çok basittir.
1. Arduino’yu bilgisayara bağlayın
2. Kod geliştirin
3. Tek tuş ile kodunuzu Arduino’ya yükleyin
4. Arduino yüklediğiniz kodu çalıştırsın

Arduino IDE Yazılımının Bilgisayara Yüklenmesi
www.arduino.cc/en/Main/Software linkinden işletim sisteminizi seçerek Arduino IDE programını rahatlıkla bilgisayarınıza yükleyebilirsiniz.

Arduino IDE İmgeleri
Arduino IDE, çeşitli içerdiği imgeler ile birçok işlemi tek tuşla ya da tıklama ile gerçekleştirmenize imkan sağlar. Bu imgeler;

Şeklindedir ve belirtilen amaçlar için kullanılmaktadır.

Arduino Donanım Sürücülerinin Yüklenmesi
Arduino donanımını bağladığınızda Windows yeni bir donanım görecektir fakat sürücüsünü yükleyemeyecektir. Aygıt Yöneticisini açın, Bağlantı Noktaları (COM ve LPT) kısmını açın, Arduino UNO’nun üzerine tıklayın ve sürücüyü güncelleştirin, indirdiğiniz ARDUINO dosyası içersinde bulunan arduinoUNO.inf dosyasını seçin ve sürücü yüklenecektir.

Arduino donanımınızın hangi porta bağlı olduğunu aklınızda tutun, ileride (Arduino IDE ile devre kartına kod yüklerken, vb.) kullanıcaksınız.

İlk Arduino Uygulaması
İndirdiğiniz klasörün içerisinden Arduino.exe dosyasını çalıştırınız. LED blink örneğini açın: File > Examples > 1.Basics > Blink.
Arduino kodu hazırlarken;
void setup() { } Kısmında parantez içerisinde ayarlar yapılacaktır (hangi pinin giriş olduğu, hangi pinin çıkış olduğu, seri haberleşme hızı gibi).

Bu örnekte LedPin değişkeni 13 olarak ayarlanmış ve 13. Pin (LesPin) çıkış olarak ayarlanmıştır.

NOT: 13. Pin Arduino üzerindeki LED’e bağlıdır. void loop() { } Kısmı ise sonsuz döngü kısmıdır, Arduino’nun bir döngü halinde yapmasını istediğiniz işlemler bu kısıma yazılır. Bu örnekte LED 1 saniye yakılıp bir saniye söndürülüyor. Örnek olarak verilen bu kodu Arduino donanımına yükleyebilmek için çeşitli donanım ayarları yapmak gerekmektedir.

Tools > Board > Arduino UNO
Tools > Serial Port > Arduino’nun bağlı olduğu COM portu
Not : Kullandığınız kart Dfrduino ise Duemilanove 328 seçeneğini seçiniz

Yazdığınız kodu, toolbardaki yükle tuşu ile yükleyin,

Birkaç saniye bekleyin ve LED’in yanıp söndüğünü görün.

Artık Arduino UNO birimini kullanabiliyorsunuz, örnekler kısmındaki kodları inceleyin ve farklı uygulamalar geliştirmeye çalışın.

Pages:123»