Obsah:

Nejlevnější adaptér I2C (I-Squared-C) na světě: 5 kroků (s obrázky)
Nejlevnější adaptér I2C (I-Squared-C) na světě: 5 kroků (s obrázky)

Video: Nejlevnější adaptér I2C (I-Squared-C) na světě: 5 kroků (s obrázky)

Video: Nejlevnější adaptér I2C (I-Squared-C) na světě: 5 kroků (s obrázky)
Video: Подключение нескольких устройств, датчиков по I2C (АйТуСи) шине 2024, Červenec
Anonim
Nejlevnější adaptér I2C (I-Squared-C) na světě
Nejlevnější adaptér I2C (I-Squared-C) na světě

Vytvořte rozhraní senzoru pro svůj počítač za málo peněz! Aktualizace 6/9/08: Po prozkoumání několika cest, které jsem uzavřel, neexistuje žádný praktický způsob implementace této techniky v systému Microsoft Windows. To není malicherné mlácení OS, opravdu jsem to pokazil! Promiňte! Uživatelům Windows, kteří potřebují schopnosti I2C, nejlépe poslouží stávající řešení založená na USB. Update 5/24/08: Byla přidána podpora Linuxu a také ukázkový kód pro ovladač Nintendo Wii Nunchuk a „chytrou LED“BlinkM. Pokyny ke kompilaci a nastavení v systému Linux najdete v souboru README.txt, který je součástí zdrojového kódu. I2C (zkratka pro Inter-Integrated Circuit) je dvouvodičová sériová sběrnice, která se obvykle používá v počítačích pro komunikaci na nízké úrovni mezi interními komponentami. I2C je také populární v robotice. Ve formě kompatibilní s I2C jsou k dispozici všechny druhy senzorů a akčních členů: ultrazvukové dálkoměry, senzory zrychlení, náklonu, teploty a tlaku, servopohony a expandéry sběrnic, které poskytují další linky pro všeobecné použití (GPIO). Většina moderních mikrokontrolérů (Atmel (Microchip PIC atd.) Mají podporu integrovaného I2C přímo. Ale výpočetní výkon dostupný na mikrokontrolérech je omezený a vývoj softwaru - se specializovanými křížovými kompilátory a programovacím prostředím - může být někdy oříšek. S tím, jak se notebooky a jednodeskové počítače stávají stále menšími a dostupnějšími, je stále běžnější vidět tyto systémy používat přímo v robotických a elektronických projektech. To poskytuje dostatek energie pro nové funkce, jako je zpracování zraku a sofistikovanější AI, a výrazně to rozšiřuje rozsah dostupných vývojových nástrojů a jazyků … ale také to představuje nový problém: propojení těchto „běžných“systémů s periferiemi se obvykle provádí prostřednictvím hlavního proudu spotřebitelské porty, jako je USB; neexistuje žádný externě dostupný „port I2C“, na který bychom mohli jednoduše využít naše senzory… nebo ano?

Krok 1: Existující možnosti

Existující možnosti
Existující možnosti
Existující možnosti
Existující možnosti

Jedním ze způsobů připojení zařízení I2C k běžnému stolnímu nebo přenosnému počítači je adaptér USB-to-I2C. Existuje nejméně tucet takových možností, od sad pro kutily s otevřeným softwarem až po sofistikované komerční jednotky s každým zvonkem a píšťalkou.

Jednou nevýhodou přístupu USB-I-IC jsou náklady. Plně vybavený komerční model může stát 250 $ nebo více. I „alternativy“homebrew „zdarma“předpokládají sbírku dílů a předchozí investici do programátoru mikrokontrolérů a související znalosti k jeho využití. Další nevýhodou je relativní nedostatek podpory ovladačů mimo populární Windows fold. Jen málo z těchto zařízení pracuje nativně na počítačích Macintosh nebo Linux.

Krok 2: DDC je I2C

DDC je I2C
DDC je I2C
DDC je I2C
DDC je I2C
DDC je I2C
DDC je I2C

Když jsem v úvodu řekl, že na většině počítačů není žádný externí I2C port, lhal jsem. Ukázalo se, že existuje a je tam po celou dobu téměř deset let, většinou sedící spící.

Většina moderních grafických karet a monitorů má podporu něčeho, co se nazývá Display Data Channel (DDC), což je komunikační spojení v rámci video kabelu, který umožňuje počítači a displeji vyjednávat vzájemně kompatibilní rozlišení a umožňuje softwarové ovládání funkcí monitoru běžně přístupných fyzickými tlačítky na Zobrazit. DDC je ve skutečnosti jednoduše implementací sběrnice I2C s několika zavedenými pravidly. Klepnutím na toto spojení mezi počítačem a monitorem (nebo využitím linek DDC na náhradním nepoužívaném video portu, jako je připojení externího monitoru na přenosném počítači) lze rozhraní s některými zařízeními I2C prakticky bez nákladů obejít obvyklá potřeba zcela adaptérového zařízení. K fyzickému přístupu k této sběrnici I2C potřebujeme pouze nabouraný video kabel…

Krok 3: Odpojení kabelu

Rozpojení kabelu
Rozpojení kabelu
Rozpojení kabelu
Rozpojení kabelu

Pro naše rozhraní I2C jsou zapotřebí čtyři vodiče: +5V napájení, zem, sériová data a sériové hodiny. Vývody pro různé typy video portů najdete na Wikipedii nebo Pinouts.ru. Pamatujte, že pokud používáte VGA kabel k nalezení kabelu s plným počtem pinů; některé obsahují pouze podmnožinu. Odříznutím izolace a stínění z vnější strany kabelu pravděpodobně uvnitř najdete dvě skupiny vodičů. Silnější dráty nebo svazky vodičů zabalené v dodatečném stínění obvykle přenášejí video signál. Nemáme o ně zájem a dají se oříznout. Tenčí, nestíněný vodiče obvykle přenášejí mimo jiné signály DDC (I2C). Při hledání správných čtyř vodičů pro váš kabel vám může pomoci multimetr nebo tester spojitosti. Zde může být výhodné použít holý konektor, protože stačí připájet čtyři vodiče k požadovaným pinům. Poznámka k napájení +5V: dostupný proud je velmi omezený; asi 50 mA podle specifikace DDC. Většina zařízení I2C usrkává jen malý kousek proudu, takže by mělo být možné spustit několik najednou … ale pokud používáte více než jednu nebo dvě LED diody (nebo jiná srovnatelně vysoce proudová zařízení), mělo by být zajištěno externí napájení.

Krok 4: Dokončený adaptér

Dokončený adaptér
Dokončený adaptér

Tady je hotový adaptér. To je všechno! Udělal jsem svůj extra tvrdohlavý, aby se snadno vešel do tašky na notebook, a přidal čtyřpólový konektor, který se připojuje přímo k servo ovladači I2C, který mám.

Krok 5: Software a projekty

Software a projekty
Software a projekty
Software a projekty
Software a projekty

Zdrojový kód systému Mac OS X a Linux pro práci s adaptérem lze stáhnout z mého webu (odkaz ke stažení je v dolní části stránky). Je napsán v jazyce C a budete muset mít nainstalovaný gcc (Linux to ve výchozím nastavení obvykle obsahuje, zatímco uživatelé počítačů Mac si budou muset nainstalovat vývojářské nástroje, které jsou volitelným instalačním programem na váš původní disk s operačním systémem nebo je lze zdarma stáhnout od společnosti Apple). Součástí je ukázkový kód pro čtení teplotního čidla, blikání „inteligentní LED diody“BlinkM, zápis a ověření sériové EEPROM, čtení řadiče Nintento Wii Nunchuk (pouze Linux) a komunikaci s deskou řadiče serva. Bohužel toto schéma adaptéru není kompatibilní se všemi systémy. Podpora pro DDC není povinná, takže ne všechny grafické karty tuto možnost podporují. Doposud jsem měl štěstí na systémy Mac, které mají grafické čipy ATI nebo Intel, ale systémy založené na NVIDIA nemají štěstí. Na straně Linuxu jsem úspěšně testoval pouze IBM ThinkPad A31p (grafika ATI), ale to by nefungovalo s Asus EeePC (Intel). Obrázky zde ukazují testovací zařízení, které ukazuje různá zařízení I2C v akci. Počítač nepřetržitě čte okolní teplotu ze snímače teploty I2C, pravidelně zaznamenává tato data do sériového čipu EEPROM I2C (ano, mohl pouze tisknout do souboru, ale toto mělo dále demonstrovat aplikace I2C) a poté servo (prostřednictvím ovladač I2C) slouží jako provizorní indikátor. Vzhledem k tomu, že knihovna a ukázkový kód pro tato zařízení jsou již na svém místě, sestavení této ukázky trvalo jen několik minut (a většina z toho byla při vytváření číselníku).

Doporučuje: