Arduino Usb Host Shield
Arduino USB Host Shield, standart bir Arduino kartının USB cihazlara bağlanan bir "host" (ana bilgisayar) gibi davranmasını sağlayan bir genişletme kartıdır. Kartın merkezinde, SPI arabirimi üzerinden Arduino ile haberleşen MAX3421E USB host/çevre birimi denetleyici çipi bulunur. Normalde bir Arduino, USB üzerinden yalnızca bilgisayara bağlanabilen bir "cihaz" (device) konumundadır; bu shield takıldığında Arduino artık kendisi USB klavye, fare, USB bellek, seri dönüştürücü veya Android telefon gibi cihazları doğrudan sürebilen host tarafına geçer. Açık kaynaklı USB Host Shield 2.0 kütüphanesiyle birlikte kullanılır ve Arduino Uno ile Mega gibi kartların standart shield ayak izine oturacak şekilde üretilmiştir. Robotik, gömülü sistem ve maker projelerinde, bir bilgisayara ihtiyaç duymadan Arduino'yu bağımsız bir USB kontrol merkezine dönüştürmek için tercih edilir.
Teknik Özellikler
| Ana kontrolcü çipi | MAX3421E (Maxim Integrated / Analog Devices) - SPI tabanlı USB host/çevre birimi denetleyicisi |
| Arduino ile haberleşme arabirimi | SPI (Serial Peripheral Interface) |
| Desteklenen USB hızları | Full Speed (12 Mbps) ve Low Speed (1.5 Mbps) |
| USB bağlantı noktası | 1 adet USB Type-A dişi (host) konnektör |
| Maksimum SPI saat hızı | 26 MHz (MAX3421E çipinin donanımsal sınırı) |
| Kullanılan yazılım kütüphanesi | USB Host Shield 2.0 (açık kaynak, Circuits@Home kökenli) |
| Varsayılan kesme (INT) pini | Dijital pin 9 |
| Varsayılan Slave Select (SS) pini | Dijital pin 10 |
| Uyumlu kart ailesi | Arduino Uno, Mega2560, Leonardo ve benzeri standart shield ayak izine sahip kartlar |
| Lojik seviye uyumluluğu | Hem 5V hem 3.3V sistemlerle çalışacak şekilde tasarlanmıştır |
| Besleme kaynağı | Arduino'nun 5V hattından beslenir |
| Çip çekirdek gerilimi | MAX3421E çekirdeği 3.3V ile çalışır, gerilim dönüşümü kart üzerindeki regülatör ile sağlanır |
| Bağlantı şekli | Arduino üzerine doğrudan oturan, üst üste bindirilebilir (stackable) pin başlıkları |
| Kütüphane ile desteklenen cihaz sınıfları | HID (klavye/fare/gamepad), Mass Storage (USB bellek), CDC/ACM (seri), Bluetooth HID, Android ADK, PTP (kamera), MIDI |
| MAX3421E çalışma modu | Hem USB host hem USB peripheral (cihaz) modunda çalışabilir; bu kartta tipik kullanım host modudur |
Öne Çıkan Özellikler
- Arduino'yu USB cihazlar için bir host'a dönüştürür; normalde yalnızca cihaz (device) modunda çalışabilen kartı ana bilgisayar rolüne taşır.
- MAX3421E çipi, USB protokol işlemlerinin (paketleme, zamanlama, hata denetimi) büyük kısmını donanım seviyesinde yürütür, Arduino'nun işlemcisini ek yükten kurtarır.
- SPI arabirimi üzerinden sadece birkaç dijital pin kullanarak Arduino ile haberleşir, kalan pinleri projeye bırakır.
- Açık kaynaklı USB Host Shield 2.0 kütüphanesi ile HID, Mass Storage, CDC/ACM, Bluetooth ve Android ADK gibi birçok cihaz sınıfını destekler.
- Arduino Uno ve Mega gibi kartların standart shield ayak izine uyar, üzerine başka bir shield eklenerek istiflenebilir.
- Hem 5V hem 3.3V mantık seviyeli Arduino kartlarıyla çalışacak şekilde tasarlanmıştır.
- MAX3421E çipi hem host hem peripheral modunu destekler; bu esneklik sayesinde aynı donanım farklı proje senaryolarına uyarlanabilir.
Kullanım Alanları
- Arduino'ya USB klavye takıp tuş girişlerini okuyarak şifreli kilit veya erişim kontrol paneli yapmak.
- USB bellek (flash disk) takıp FAT16/FAT32 dosya sisteminden veri okuyup yazarak sensör kayıtlarını dosya olarak saklayan bir veri kaydedici (data logger) kurmak.
- USB-seri dönüştürücü (FTDI, CP2102, PL2303) üzerinden başka bir mikrodenetleyici, GPS alıcısı veya GSM/GPRS modülüyle haberleşmek.
- Android telefonu Google ADK (Accessory Development Kit) protokolüyle Arduino'ya bağlayıp telefon ekranından röle, motor veya LED şeridi gibi donanımları kontrol etmek.
- USB gamepad veya joystick takarak bir robot kolunu ya da RC aracı elle kumanda etmek.
- USB Bluetooth dongle takıp kablosuz klavye, fare veya oyun kolunu Arduino'ya bağlamak.
- 3G/4G USB modem takarak sahada çalışan bir Arduino projesine internet bağlantısı eklemek.
Bağlantı ve Kullanım
Kart, Arduino'nun ICSP başlığı ve dijital pinleri üzerinden SPI protokolüyle haberleşir; kütüphanenin varsayılan ayarında kesme (INT) sinyali dijital pin 9'a, Slave Select (SS) sinyali ise dijital pin 10'a bağlanır, MOSI/MISO/SCK hatları ise ICSP başlığı üzerinden aktarılır. Shield, Arduino'nun üzerine doğrudan takılacak şekilde üretildiği için ayrı bir kablolama gerekmez, sadece pin başlıkları hizalanarak oturtulur. Yazılım tarafında Arduino IDE'ye açık kaynaklı USB Host Shield 2.0 kütüphanesi kurulur, ardından bağlanacak cihazın sınıfına uygun örnek kod (örneğin USBHID veya USB Mass Storage örnekleri) temel alınarak proje geliştirilir. USB Type-A konnektöre takılan cihaz, shield tarafından otomatik olarak numaralandırılır (enumeration) ve kütüphane üzerinden Arduino'nun erişimine açılır; bağlantının sürekli izlenebilmesi için Arduino kodundaki ana döngüde Usb.Task() fonksiyonunun düzenli aralıklarla çağrılması gerekir, aksi halde bağlı cihazla iletişim kesilebilir.
Paket İçeriği
- 1 adet Arduino USB Host Shield kartı
- Kart üzerinde fabrika çıkışında lehimlenmiş, Arduino kartına doğrudan takım için stackable pin başlıkları
- Kart üzerinde MAX3421E USB host denetleyici çipi ve USB Type-A (host) konnektör
- Kütüphane, örnek kod ve dokümantasyon kutu içinde basılı gelmez; USB Host Shield 2.0 kütüphanesi internetten ayrıca indirilmelidir
Dikkat Edilmesi Gerekenler
- Kart varsayılan olarak dijital pin 9'u (INT) ve pin 10'u (SS) kullanır; bu pinleri projenizde başka bir amaçla kullanıyorsanız kütüphane ayarlarında çakışma çıkabilir.
- Bazı USB cihazları (özellikle harici diskler veya çok LED'li klavyeler gibi yüksek akım çeken cihazlar) Arduino'nun 5V hattından güvenle çekilebilecek akımı aşabilir; bu durumda harici beslemeli bir USB hub kullanılması önerilir.
- MAX3421E yalnızca Full Speed (12 Mbps) ve Low Speed (1.5 Mbps) USB hızlarını destekler; Hi-Speed (480 Mbps) USB 2.0 cihazlar bu shield ile daha düşük hızda, geriye dönük uyumlu modda çalışır.
- Her USB cihazı kütüphane tarafından otomatik desteklenmez; bağlanacak cihazın sınıfına (HID, Mass Storage, CDC vb.) uygun bir sürücü veya örnek kod bulunmalıdır, aksi halde cihaz tanınmaz.
- Shield Arduino üzerine takılırken pin başlıklarının doğru hizada ve tam oturduğundan emin olunmalıdır; eğik takılan bir shield SPI hattında temassızlığa ve kararsız çalışmaya yol açabilir.
- Kütüphaneyle gelen örnek kodlar, farklı SPI pin yerleşimine sahip Arduino modellerinde doğrudan çalışmayabilir; kullanılan kart tipine göre pin tanımlarının kontrol edilmesi gerekir.
- Bazı klon üretimlerde MAX3421E çevresindeki pasif bileşen değerleri veya osilatör kristali farklılık gösterebilir; kararsız numaralandırma (enumeration hatası) yaşanırsa kütüphanenin güncel sürümüne geçilmesi ve kablo/temas noktalarının kontrol edilmesi önerilir.