Arduino Yun, Atmega32u4 ve Atheros AR9331 temelli bir mikrodenetleyici kartıdır. Atheros üzerinde OpenWRT temelli OpenWrt-Yun isimli bir Linux dağıtımı çalışmaktadır. Kart üzerinde dahili ethernet, dahili Wi-fi, Usb port, micro sd kart soketi, 20 adet dijital giriş/çıkış pini (7 tanesi PWM çıkışı, 12 tanesi analog giriş olarak kullanılabilir), 16Mhz kristal, mikro usb soketi, güç soketi, ICSP konektörü ve reset tuşu bulundurmaktadır.
Kartın yapım amacı, karmaşık web servislerine doğrudan Arduino üzerinden bağlanmayı basit haline getirmektir. Yún Çin dilinde "Bulut" anlamına gelmektedir.
Linux konusunda geniş deneyimlere sahip olan Dog Hunter firması ile işbirliği içinde tasarlanan kart, linino adlı, cihaza yüklenen programların orijinalliğinden emin olmak için imzalı paketler sağlayan bir dağıtım kullanmaktadır.
Geçmişte, Arduino nun kullanılabilir belleğinin kısıtlı olması ve Xml gibi gereksiz text tabanlı formatların çok fazla ram’e ihtiyaç duyması nedeniyle, Arduino'yu kompleks web servisleri ile etkileşimde kullanmak oldukça zordu. Arduino Yún ‘da bu sorunların çözülmesi için, ağ bağlantıları ve tüm HTTP işlemlerini basitçe Linux makine üzerinde halledecek olan Bridge Library adında bir kütüphane oluşturulmuştur.
|
|
Arduino Yun ön yüz |
Arduino Yun arka yüz |
Arduino Yun, Atmega32U4 tabanlı klasik Arduino Leonardo ile üzerinde Wifi barındıran ve Linino ( MIPS GNU/Linux lisanlı OpenWrt tabanlı bir dağıtım.) çalıştıran Atheros AR9331 ‘in bir bileşimidir. Bridge kütüphanesi sayesinde iki işlemci arası haberleşme gerçekleşir. Atheros üzerinde OpenWRT temelli OpenWrt-Yun isimli bir Linux dağıtımı çalışmaktadır. Kart üzerinde dahili ethernet, dahili Wi-fi, Usb port, micro sd kart soketi, 20 adet dijital giriş/çıkış pini (7 tanesi PWM çıkışı, 12 tanesi analog giriş olarak kullanılabilir), 16Mhz kristal, mikro usb soketi, güç soketi, ICSP konektörü ve reset tuşu bulundurmaktadır.
Yun'u diğer bir çok Arduino modelinden ayıran en büyük özellik; Arduino'nun rahatlığı ile Linux'u kendi üzerinde barındırarak güçlü network bilgisayarları yapmanızı sağlamasıdır. Ek olarak cURL gibi Linux komutları ile kendi shell veya python script'leri yazarak daha sağlam sistemler kurulabilir.
Yun kartı Leonardo gibi üzerinde Atmega32u4 bulundurduğu için ikinci bir usb-seri dönüştürücü işlemcisine gerek duymaz. Bu sayede sanal com portun (CDC) dışında yun bilgisayara mouse, klavye gibi tanıtılabilir.
Bridge kütüphanesi kart üzerindeki iki işlemci arasında haberleşmeyi sağlar, Arduino kodunuza shell script'leri çalıştırma yeteneği verir, network arayüzleri (ethernet, Wi-fi) ile haberleşir ve AR9331 işlemcisinden data alır. Host usb, network arayüzleri ve sd kart 32u4'e değil AR9331'e bağlıdır ve Bridge kütüphanesi arduino ile bu cihazlar arası iletişim kurmanızı sağlar.
Aşağıdaki resimde Arduino Yun kartının pin özellikleri gösterilmektedir.
Arduino Yun Teknik Özellikleri
AVR Arduino Mikrodenetleyici İçin :
Mikrodenetleyici : ATmega32U4
Çalışma gerilimi : +5 V DC
Giriş gerilimi :5 V DC
Dijital giriş / çıkış pinleri : 20 tane (7 tanesi PWM çıkışını destekler)
Analog giriş pinleri : 12 tane
Giriş / çıkış pini başına düşen DC akım : 40 mA
3,3 V pini için akım : 50 mA
Flash hafıza : 32 KB (4 KB bootloader için kullanılır)
SRAM : 2.5 KB
EEPROM : 1 KB
Saat frekansı : 16 MHz
Linux Mikroişlemci İçin :
Mikrodenetleyici : Atheros AR9331
Mimari : MIPS @400 MHz
Çalışma gerilimi : 3.3 V DC
Ethernet : IEEE 802.3 10/100Mbit/s
WiFi : IEEE 802.11b/g/n
USB Type-A : 2.0 Host
Kart okuyucu : Mikro-SD
RAM : 64 MB DDR2
Flash hafıza : 16 MB
SRAM : 2.5 KB
EEPROM : 1 KB
Saat frekansı : 16 MHz
Arduino Yun kart şematiği (PDF)
Arduino Yun kart şematiği (DSN)
Güç
Arduino Yun'un gücünün micro-usb (5V) üzerinden verilmesi önerilir.
Eğer kartı Vin pini üzerinden beslenecekse, buradan regüle edilmiş 5 V verilmesi gerekmektedir. Yun üzerinde dahili regülatör bulunmamaktadır. Bu yüzden 5 V 'dan yüksek gerilimler karta zarar verecektir.
Yun aynı zamanda PoE modülü üzerinden de güç alabilir. PoE modülü kart üzerinde gelmez. Bunu harici olarak alınıp karta lehimlenmesi gerekmektedir.
VIN : Arduino Uno kartına harici bir güç kaynağı bağlandığında kullanılan voltaj girişidir. Buradan güç beslemesi yapılacaksa, regüle edilmiş 5 V verilmelidir.
5V : Eğer kart sadece usb (5V) üzerinden çalışıyor ise usb üzerinden gelen 5V doğrudan bu pin üzerinden çıkış olarak verilir.
3.3V : Arduino kart üzerindeki regülatörden sağlanan 3,3V çıkışıdır. Maksimum 50 mA dir.
GND : Toprak pinidir.
IOREF : Arduino kartlar üzerindeki bu pin, mikrodenetleyicinin çalıştığı voltaj referansını sağlar. Arduino Yun için bu değer 5 V 'tur.
Hafıza
Atmega32u4 32 KB'lık flash belleğe sahiptir (4 KB kadarı bootloader tarafından kullanılmaktadır). 2.5 KB SRAM ve 1 KB EEPROM'u bulunmaktadır.
AR9331 üzerindeki bellek işlemci içine gömülü değildir. RAM ve depolama belleği harici olarak işlemciye bağldır. Yun 64 MB DD2 Ram'e ve 16 MB flash belleğe sahiptir. OpenWrt-Yun işletim sistemi fabrikada flash bellek üzerine yüklenerek gönderilir. Config dosyaları değiştirilerek fabrika imajı değiştirilebilir. Tekrar fabrika ayarlarına dönmek için 30 saniye boyunca "WLAN RST" butonuna basılması yeterlidir.
OpenWrt-Yun işletim sistemi Yun üzerindeki 16 MB flash belleğin 9 MB kadarını kullanır. Farklı uygulamalar için fazladan belleğe ihtiyaç duyulursa micro-sd kart ile bellek boyutu arttırılabilir. Bu işlem için How to expand the Yún disk space dökümanını takip edebilirsiniz.
Giriş ve Çıkışlar
AR9331 üzerindeki I/O pinlerine ulaşılamaz. Kart üzerindeki tüm I/O pinleri 32u4'e bağlıdır.
Yun üzerindeki 20 adet dijital pinin hepsi giriş veya çıkış olarak kullanılabilir. Bu pinlerin tamamının lojik seviyesi 5 V 'tur. Her pin maks. 40 mA giriş ve çıkış akımı ile çalışır. Ek olarak, bazı pinlerin farklı özellikleri bulunmaktadır. Özel pinler aşağıda belirtildiği gibidir.
Serial 0 (RX) ve 1 (TX) : Seri veri alıp (RX), vermek (TX) için kullanılır. Dikkat edilmesi gereken nokta, Serial sınıfı yun üzerindeki USB (CDC) haberleşmesinde kullanılır. Pin 0 ve 1 pinleri üzerindeki seri haberleşme için Serial1 sınıfı kullanılmalıdır. 32u4'ün donanımsal seri port'u ile Ar9331 birbirine bağlıdır, iki işlemci arasındaki haberleşme bu pinler üzerinden yapılır. Bir çok Linux sisteminde olduğu gibi AR9331'in seri portuda sisteme erişmek için konsola açılmıştır, bu da Linux tarafından sunulan program ve araçlara arduino kodu ile erişebileceğimiz anlamına gelir.
Harici kesmeler, 3 (interrupt 0), 2 (interrupt 1), 0 (interrupt 2), 1 (interrupt 3), 7 (interrupt 4): Bu pinler yükselen kenar, düşen kenar veya değişiklik kesmesi pinleri olarak kullanılabilir. Ayrıntılı bilgi için attachInterrupt() fonksiyon sayfasını inceleyebilirsiniz. 0 ve 1. pinlerin bu işlem için kullanılmaması önerilir. Çünkü bu pinler Linux işlemcisi ile olan haberleşma için kullanılır. Pin 7'de AR9331 işlemcisine bağlıdır ve bu pin ileride el sıkışma sinyali (handshake) olarak kullanılabilir. Bu pin'de kesme pini olarak kullanılacaksa dikkat edilmelidir.
PWM: 3, 5, 6, 9, 10, ve 11 : Bu pinler analogWrite () fonksiyonu ile 8-bit PWM sinyali sağlar.
SPI: ICSP Header'i üzerinde: Bu pinler SPI haberleşmesi için kullanılır. Dikkat edilmesi gereken nokta ICSP header'ı üzerindeki SPI pinleri kart üzerindeki başka hiç bir pine bağlı değildir. Yani Arduino Uno daki gibi bu pinler 10,11,12 ve 13. pinlere bağlı değildir. Eğer SPI haberleşmesi yapan bir shied kullanılacaksa, bu shield üzerinde 3x2 pinlik ICSP header'ı olması gerekiyor. Yoksa bu shield Arduino Yun ile kullanılamaz. SPI pinleri aynı zamanda AR9331 işlemcisine de bağlıdır. Bu 32u4 ile AR9331 arasıda SPI protokolü ile de haberleşilebilir demektir.
LED 13 : Dijital pin 13 e bağlı bir leddir. Pinin değeri High olduğunda yanar, Low olduğunda söner.
Analog girişler A0-A5 ve A6-A11(aynı zamanda 4,6,8,9,10 ve 12. dijital pinler): Yun 12 tane 10-bit çözünürlüğünde analog giriş pinine sahiptir. Bu pinlerden A0-A5 arasında olanlar Arduino Uno 'da olduğu gibi analog pin kısmındadır. A6-A11 arasındakiler ise dijital pin kısmındadır ve sırasıyla dijital 4,6,8,9,10 ve 12. pinlere bağlıdır. Bu pinler kartın altında belirtilmektedir. Tüm analog pinler dijital giriş ve çıkış içinde kullanılabilir. Pinlerin ölçüm aralığı 0-5V'dur. AREF pini ve analogReference() foksiyonu kullanılarak alt limit yükseltilip, üst limit düşürülebilir.
I2C, 2 veya SDA pini ve 3 veya SCL pini: Bu pinler I2C haberleşmesi için kullanılır. Bu pinler Arduino Uno üzerinde A4 ve A5 pinlerine bağlıydı. Yun da ise pin 2 ve 3'e bağlıdır.
AREF : Analog girişler için referans voltajıdır. analogReference() fonksiyonu ile kullanılır.
RESET : Kart üzerinde 3 adet reset butonu vardır.
- Yun RST: AR9331'in resetlenmesi için gerekli olan hattı LOW yapar. AR9331'i resetlemek Linux sisteminin yeniden başlamasına neden olur. RAM'de saklanana tüm bilgi silinecek ve çalışan tüm programlar sonlandırılacaktır.
- 32u4 RST: 32u4 mikrodenetleyici resetlenmek istendiğinde bu pin LOW yapılır. Reset işlemi kart üzerinde bulunan Reset Butonu ile de yapılabilir.
- WLAN RST: Bu butonun iki özelliği vardır. Öncelikli amacı Wifi'yı fabrika ayarlarına döndürmektir. Fabrika ayarları Yun'un Wifi'yını access point (AP) yapacaktır ve IP adresini 192.168.240.1 olarak değiştirecektir. Bu durumda bilgisayarınız ile "Arduino Yun-XXXXXXXXXXXX" isimli Wifi ağına bağlanabilirsiniz (12 haneli 'X' Yun'un MAC adresini göstermektedir). Bağlandıktan sonra Yun'un web paneline tarayıcı üzerinden 192.168.240.1 veya "http://arduino.local" adresinden ulaşılabilir. Wifi ayarlarını sıfırlamakda Linux sisteminin yeniden bağlamasına neden olacaktır. Wifi reset için WLAN RST tuşuna 5 saniye boyunca basmanız yeterlidir. Butona basmaya başladığınız zaman mavi WLAN ledi yanıp sönmeye başlayacaktır, 5 saniye sonra tuşu bıraktığınızda da led yanıp sönmeye devam edecektir, bu Wifi resetlemenin doğru gerçekleştiği gösterir. WLAN RST tuşunun ikinci amacı ise Linux sistemini fabrika çıkışı imaj ayarlarına döndürmektir. Linux sistemini fabrika çıkışı ayarlara döndürmek için bu tuşa 30 saniye boyunca basmanız gerekmektedir. Bu durumda AR9331'e bağlı olan flash belleğin içerisindeki tüm dosya ve programların silineceğini unutmayınız.
Haberleşme
Arduino Yun 'un bilgisayarla, başka bir arduino veya mikrodenetleyici ile haberleşmesi için bir kaç farklı seçenek mevcuttur.
Atmega32u4, 0 (RX) ve 1 (TX) pinleri üzerinden UART TTL (5V) seri haberleşme imkanı sunar. 32u4 usb üzerinden bilgisayara bağlanarak sanal bir com port açar ve serial (CDC) haberleşme yapmaya imkan sağlar. Arduino bilgisayar programı içerisinde barındırdığı seri monitör ile arduino ile bilgisayar arasında text temelli bilgilerin gönderilip alınmasını sağlar. Yun ile bilgisayar arasında usb üzerinden haberleşme olduğu zaman kart üzerinde bulunan RX ve TX ledleri yanacaktır.
0 ve 1. pinler 32u4 ile AR9331 arasında ki haberleşme için kullanılır. İki işlemci arasındaki haberleşme için Bridge Kütüphanesi kullanılır. Bu pinler mecbur kalınmadıkça kullanılmamalıdır.
Yun üzerinde donanımsal olarak bir adet seri port bulunmaktadır. Ancak SoftwareSerial kütüphanesi ile bu sayı yazılımsal olarak arttırılabilir.
Atmega32u4 aynı şekilde I2C ve SPI portlarıda sağlamaktadır. Arduino bilgisayar programı ile gelen Wire kütüphanesi I2C kullanımını, SPI kütüphanesi de SPI haberleşmesini sağlamak için kullanılır.
Yun bilgisayara mouse, klavye gibi tanıtılabilir ve Keyboard and Mouse sınıfları ile kullanılabilir.
Kart üzerindeki dahili ethernet ve Wifi arayüzleri AR9331 işlemcisine bağlıdır. Bu arayüzler üzerinden bilgi gönderip almak için yine Bridge Kütüphanesi kullanılır. Arayüz ayarları ağ kontrol paneli üzerinden getting started sayfasında anlatıldığı gibi yapılabilir.
Yun aynı zamanda OpenWrt-Yun Linux dağıtımı sayesinde usb host özelliği bulundurmaktadır. Usb flash bellek, klavye ve webcam gibi cihazları bu usb üzerinden karta bağlayabilirsiniz. Bu cihazların çalışması için ekstra yazılımlar indirip kurmanız gerekebilir. AR9331'e yazılım kurma ile ilgili ayrıntılı bilgi için using the package manager sayfasını inceleyebilirsiniz.
Programlama
Arduino Yun kartı Arduino bilgisayar programı (Arduino IDE) ile programlanmaktadır. Programda Tools > Board sekmesi altında Arduino Yun'u seçilmelidir.
Ayrıntılı bilgi için referans ve temel fonksiyonlar sayfasını inceleyebilirsiniz. Arduino Yun üzerindeki Atmega32u4 üzerine bootloader denilen özel bir yazılım yüklüdür. Bu sayede kartı programlarken ekstra bir programlayıcı kullanılmasına gerek yoktur.Haberleşme orjinal AVR109 protokolü ile sağlanır.
Bootloader yazılımı bypass edilerek kart doğrudan mikrodenetleyicinin ICSP header'i üzerinden ISP programlayıcı ile programlanabilir (Referans).
USB Aşırı Akım Koruması
Arduino Yun üzerinden bulunan resetlenebilir sigorta bilgisayarın usb portunu kısa devrelerden veya aşırı akım tüketimi durumlarından korumaktadır. Kart bilgisayar usb portu üzerinden 500mA'den fazla akım çektiğinde kart otomatik olarak usb'den aldığı gücü koruma amacıyla kesmektedir. Fazla akım durumu veya kısa devre ortadan kaldırıldığında sigorta normal konuma döner ve tekrar bağlantı kurulur.
* Bu makale Robotiksistem tarafından hazırlanmıştır. Robotiksistem.com kaynak gösterilmek kaydıyla kullanılabilir. |