İçindekiler:

Dünyanın En Ucuz I2C (I-Squared-C) Adaptörü: 5 Adım (Resimlerle)
Dünyanın En Ucuz I2C (I-Squared-C) Adaptörü: 5 Adım (Resimlerle)

Video: Dünyanın En Ucuz I2C (I-Squared-C) Adaptörü: 5 Adım (Resimlerle)

Video: Dünyanın En Ucuz I2C (I-Squared-C) Adaptörü: 5 Adım (Resimlerle)
Video: 2.4 GHZ Akıllı Uzaktan Kumanda Yapımı-DIY 2.4 GHZ Remote Controler(2.Bölüm) 2024, Kasım
Anonim
Dünyanın En Ucuz I2C (I-Squared-C) Adaptörü
Dünyanın En Ucuz I2C (I-Squared-C) Adaptörü

Bir doların altında bir fiyata bilgisayarınız için bir sensör arayüzü yapın! 6/9/08 Güncellemesi: Birkaç yolu keşfettikten sonra, bu tekniği Microsoft Windows'ta uygulamanın pratik bir yolu olmadığı sonucuna vardım. Bu küçük bir işletim sistemi darbesi değil, gerçekten denerken bir ceviz kırdım! Üzgünüm! I2C özelliklerine ihtiyaç duyan Windows kullanıcılarına en iyi şekilde mevcut USB tabanlı çözümler sunulur. 24/05/08 Güncellemesi: Linux desteğinin yanı sıra Nintendo Wii Nunchuk denetleyicisi ve BlinkM "akıllı LED" için örnek kod eklendi. Linux'ta derleme ve kurulum yönergeleri için kaynak koduyla birlikte verilen README.txt dosyasına bakın. I2C (Inter-Integrated Circuit'in kısaltması), dahili bileşenler arasında düşük seviyeli iletişim için genellikle bilgisayarlarda kullanılan iki kablolu bir seri veriyoludur. I2C, robotikte de popülerdir. Her tür sensör ve aktüatör, I2C uyumlu bir biçimde mevcuttur: ultrasonik telemetreler, hızlanma, eğim, sıcaklık ve basınç sensörleri, servo denetleyiciler ve ek genel amaçlı (GPIO) hatlar sağlayan veri yolu genişleticiler. Çoğu modern mikro denetleyici (Atmel), Microchip PIC, vb.) doğrudan yerleşik I2C desteğine sahiptir. Ancak mikrodenetleyicilerde kullanılabilen işlem gücü sınırlıdır ve yazılım geliştirme - özel çapraz derleyiciler ve programlama ortamları ile - bazen bir angarya olabilir. Dizüstü bilgisayarlar ve tek kartlı bilgisayarlar giderek daha küçük ve daha uygun fiyatlı hale geldikçe, bu sistemlerin doğrudan robotik ve elektronik projelerinde kullanıldığını görmek giderek yaygınlaşıyor. Bu, görüntü işleme ve daha karmaşık yapay zeka gibi yeni yetenekler için bol miktarda güç sağlar ve mevcut geliştirme araçlarının ve dillerin kapsamını büyük ölçüde genişletir… ancak aynı zamanda yeni bir sorunu da ortaya çıkarır: bu "normal" sistemlerin çevre birimlerine arabirimi genellikle ana akım aracılığıyla yapılır. USB gibi tüketici sınıfı bağlantı noktaları; sensörlerimizi kullanmak için dokunabileceğimiz harici olarak kullanılabilen bir "I2C bağlantı noktası" yok…yoksa var mı?

1. Adım: Mevcut Seçenekler

Mevcut Seçenekler
Mevcut Seçenekler
Mevcut Seçenekler
Mevcut Seçenekler

I2C cihazlarını sıradan bir masaüstü veya dizüstü bilgisayara bağlamanın bir yolu, USB'den I2C'ye adaptör kullanmaktır. Açık kaynaklı yazılıma sahip kendin yap kitlerinden her zil ve ıslık ile sofistike ticari ünitelere kadar en az bir düzine bu tür seçenek var.

USB'den I2C'ye yaklaşımının bir dezavantajı maliyettir. Tam özellikli bir ticari model 250 $ veya daha fazlaya mal olabilir. "Ücretsiz" homebrew alternatifleri bile, bir parça koleksiyonunu ve bir mikrodenetleyici programlayıcısına önceden yatırım yapıldığını ve bunu kullanmak için ilgili bilgiyi varsayar. Diğer bir dezavantaj, popüler Windows kıvrımının dışındaki sürücü desteğinin göreli azlığıdır. Bu aygıtlardan çok azı yerel olarak Macintosh veya Linux bilgisayarlarda çalışır.

2. Adım: DDC, I2C'dir

DDC I2C'dir
DDC I2C'dir
DDC I2C'dir
DDC I2C'dir
DDC I2C'dir
DDC I2C'dir

Girişte çoğu bilgisayarda harici I2C bağlantı noktası olmadığını söylediğimde yalan söyledim. Görünüşe göre var ve neredeyse on yıldır orada, çoğunlukla uykuda oturuyor.

Modern grafik kartlarının ve monitörlerin çoğu, bilgisayar ve ekranın karşılıklı olarak uyumlu çözünürlükler üzerinde anlaşmasını sağlayan ve normalde fiziksel düğmelerle erişilen monitör işlevlerinin yazılım denetimine izin veren bir video kablosu içindeki bir iletişim bağlantısı olan Görüntü Veri Kanalı (DDC) adı verilen bir şeyi destekler. Görüntüle. DDC, aslında, birkaç yerleşik kurala sahip bir I2C veri yolunun basit bir uygulamasıdır. Bilgisayar ve monitör arasındaki bu bağlantıya dokunarak (veya bir dizüstü bilgisayardaki harici monitör bağlantısı gibi kullanılmayan yedek bir video bağlantı noktasındaki DDC hatlarını kullanarak), bazı I2C cihazlarıyla neredeyse hiçbir ücret ödemeden arabirim kurabilirsiniz. tamamen bir adaptör aygıtına olan olağan ihtiyaç. Bu I2C veriyoluna fiziksel olarak erişmek için ihtiyacımız olan tek şey, hacklenmiş bir video kablosu…

Adım 3: Kablonun Kesilmesi

Kablonun Kesilmesi
Kablonun Kesilmesi
Kablonun Kesilmesi
Kablonun Kesilmesi

I2C arayüzümüz için dört kablo gereklidir: +5V güç, toprak, seri veri ve seri saat. Çeşitli video bağlantı noktaları için pin çıkışları Wikipedia veya Pinouts.ru'da bulunabilir. Tüm pinlere sahip olanı bulmak için bir VGA kablosu kullanıyorsanız unutmayın; bazıları yalnızca bir alt küme içerir. Kablonun dışından yalıtımı ve korumayı keserseniz, muhtemelen içinde iki grup kablo bulacaksınız. Daha kalın teller veya ek korumaya sarılmış tel demetleri genellikle video sinyalini taşır. Bunlarla ilgilenmiyoruz ve bunlar kısaltılabilir. Daha ince, blendajsız teller genellikle diğerleri arasında DDC (I2C) sinyallerini taşır. Bir multimetre veya süreklilik test cihazı, kablonuz için doğru dört kabloyu bulmanıza yardımcı olabilir. Burada sadece dört kabloyu ilgili pinlere lehimlemeniz gerektiğinden çıplak bir konektör kullanmak avantajlı olabilir. +5V güçle ilgili bir not: mevcut akım çok sınırlıdır; DDC spesifikasyonuna göre yaklaşık 50 mA. Çoğu I2C cihazı sadece küçük bir miktar akım emer, bu nedenle aynı anda birkaçını çalıştırmak mümkün olmalıdır… ancak bir veya ikiden fazla LED (veya diğer nispeten yüksek akımlı cihazlar) kullanılıyorsa, harici güç sağlanmalıdır.

Adım 4: Tamamlanmış Bağdaştırıcı

Tamamlanmış Adaptör
Tamamlanmış Adaptör

İşte bitmiş adaptör. Hepsi bu kadar! Dizüstü bilgisayar çantama kolayca sığabilmesi için benimkini fazladan kısa yaptım ve sahip olduğum bir I2C servo kontrol cihazına doğrudan bağlanan dört pinli bir fiş ekledim.

Adım 5: Yazılım ve Projeler

Yazılım ve Projeler
Yazılım ve Projeler
Yazılım ve Projeler
Yazılım ve Projeler

Adaptörle çalışmak için Mac OS X ve Linux kaynak kodu web sitemden indirilebilir (indirme bağlantısı sayfanın altındadır). C ile yazılmıştır ve gcc'nin kurulu olması gerekir (Linux genellikle bunu varsayılan olarak içerir, Mac kullanıcılarının ise orijinal işletim sistemi diskinizde isteğe bağlı bir yükleyici olan veya Apple'dan ücretsiz olarak indirilebilen geliştirici araçlarını yüklemeleri gerekir). Bir sıcaklık sensörünü okumak, bir BlinkM "akıllı LED'i" yanıp sönmek, bir seri EEPROM yazmak ve doğrulamak, bir Nintento Wii Nunchuk kontrolörünü okumak (yalnızca Linux) ve bir servo kontrol kartı ile iletişim kurmak için örnek kod dahildir. Ne yazık ki bu adaptör şeması değil tüm sistemlerle uyumludur. DDC desteği zorunlu değildir, bu nedenle tüm video kartları bu özelliği desteklemez. ATI veya Intel grafik yongalarına sahip Mac sistemlerinde şimdiye kadar iyi şanslar elde ettim, ancak NVIDIA tabanlı sistemlerde şans kalmadı. Linux tarafında sadece bir IBM ThinkPad A31p'yi (ATI grafikleri) başarıyla test ettim, ancak Asus EeePC (Intel) ile çalışmaz. Buradaki resimler, çeşitli I2C cihazlarını çalışırken gösteren bir test teçhizatını göstermektedir. Bilgisayar sürekli olarak bir I2C sıcaklık sensöründen ortam sıcaklığını okur, bu verileri periyodik olarak bir I2C seri EEPROM yongasına kaydeder (evet, sadece bir dosyaya yazdırabilir, ancak bu I2C uygulamalarını daha fazla göstermek içindi) ve ardından bir servo (aracılığıyla bir I2C kontrolörü) geçici bir gösterge kadranı görevi görür. Bu cihazlar için kitaplık ve örnek kod zaten mevcut olduğundan, bu demoyu bir araya getirmek yalnızca birkaç dakika sürdü (ve bunun çoğu gösterge kadranını yapmaktı).

Önerilen: