Obsah:

Najlacnejší adaptér I2C (I-Squared-C) na svete: 5 krokov (s obrázkami)
Najlacnejší adaptér I2C (I-Squared-C) na svete: 5 krokov (s obrázkami)

Video: Najlacnejší adaptér I2C (I-Squared-C) na svete: 5 krokov (s obrázkami)

Video: Najlacnejší adaptér I2C (I-Squared-C) na svete: 5 krokov (s obrázkami)
Video: Программирование МК STM32. Урок 94. DS18B20. Несколько датчиков на одной шине. Часть 3 2024, Júl
Anonim
Najlacnejší adaptér I2C (I-Squared-C) na svete
Najlacnejší adaptér I2C (I-Squared-C) na svete

Vytvorte pre svoj počítač rozhranie senzora, ktoré bude k dispozícii za peniaze! Aktualizácia 6/9/08: Po preskúmaní niekoľkých spôsobov, ktoré som dospel k záveru, neexistuje žiadny praktický spôsob implementácie tejto techniky v systéme Microsoft Windows. Toto nie je drobné narážanie na operačný systém, naozaj som pokazil pokus o orech! Prepáč! Používateľom systému Windows, ktorí potrebujú schopnosti I2C, najlepšie slúžia existujúce riešenia založené na USB. Aktualizácia 24. 5. 2008: Bola pridaná podpora systému Linux, ako aj ukážkový kód pre ovládač Nintendo Wii Nunchuk a „inteligentnú diódu“BlinkM. Pokyny na kompiláciu a nastavenie v systéme Linux nájdete v súbore README.txt, ktorý je súčasťou zdrojového kódu. I2C (skratka pre integrovaný obvod) je dvojvodičová sériová zbernica, ktorá sa bežne používa v počítačoch na nízkoúrovňovú komunikáciu medzi vnútornými komponentmi. I2C je populárny aj v robotike. K dispozícii sú všetky druhy senzorov a akčných členov vo forme kompatibilnej s I2C: ultrazvukové diaľkomery, senzory zrýchlenia, náklonu, teploty a tlaku, servopohony a expandéry zberníc, ktoré poskytujú ďalšie linky na všeobecné použitie (GPIO). Väčšina moderných mikrokontrolérov (Atmel) (Microchip PIC, atď.) Majú podporu pre integrovaný I2C. Procesorový výkon dostupný na mikrokontroléroch je však obmedzený a vývoj softvéru - so špecializovanými krížovými kompilátormi a programovacími prostrediami - môže byť niekedy práca. Keďže notebooky a jednodoskové počítače sú stále menšie a dostupnejšie, je stále bežnejšie vidieť, ako sa tieto systémy používajú priamo v projektoch robotiky a elektroniky. To poskytuje dostatok energie pre nové možnosti, ako je spracovanie zraku a sofistikovanejšia AI, a výrazne to rozširuje rozsah dostupných vývojových nástrojov a jazykov … ale predstavuje to aj nový problém: prepojenie týchto „bežných“systémov s perifériami sa zvyčajne vykonáva prostredníctvom hlavného prúdu spotrebiteľské porty, ako napríklad USB; neexistuje žiadny externe dostupný „port I2C“, na ktorý by sme mohli jednoducho využiť naše senzory … alebo áno?

Krok 1: Existujúce možnosti

Existujúce možnosti
Existujúce možnosti
Existujúce možnosti
Existujúce možnosti

Jeden zo spôsobov pripojenia zariadení I2C k bežnému stolnému alebo prenosnému počítaču je prostredníctvom adaptéra USB-I2C. Existuje najmenej tucet takýchto možností, od súprav pre domácich majstrov s otvoreným softvérom až po sofistikované komerčné jednotky s každým zvonením a hvizdom.

Jednou nevýhodou prístupu USB-I-IC sú náklady. Plne vybavený komerčný model môže stáť 250 dolárov alebo viac. Dokonca aj „bezplatné“alternatívy homebrew predpokladajú zbierku dielov a predchádzajúcu investíciu do programátora mikrokontrolérov a súvisiace znalosti, ktoré je potrebné použiť. Ďalšou nevýhodou je relatívny nedostatok podpory ovládačov mimo populárneho záhybu systému Windows. Len málo z týchto zariadení pracuje natívne na počítačoch Macintosh alebo Linux.

Krok 2: DDC je I2C

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

Keď som v úvode povedal, že na väčšine počítačov nie je žiadny externý port I2C, klamal som. Ukázalo sa, že existuje a je to tam už takmer desať rokov, väčšinou sediac nečinne.

Väčšina moderných grafických kariet a monitorov podporuje niečo, čo sa nazýva Display Data Channel (DDC), komunikačné prepojenie vo video kábli, ktoré umožňuje počítaču a displeju vyjednávať o vzájomne kompatibilných rozlíšeniach a umožňuje softvérovú kontrolu funkcií monitora, ku ktorým sa bežne pristupuje pomocou fyzických tlačidiel na displej. DDC je v skutočnosti jednoducho implementácia zbernice I2C s niekoľkými zavedenými pravidlami. Kliknutím na toto prepojenie medzi počítačom a monitorom (alebo využitím liniek DDC na náhradnom nepoužívanom video porte, ako je pripojenie externého monitora na prenosnom počítači) sa dá prepojiť s niektorými zariadeniami I2C prakticky bez nákladov, pričom sa obíde zvyčajná potreba úplne adaptérového zariadenia. Všetko, čo potrebujeme na fyzický prístup k tejto zbernici I2C, je hacknutý video kábel …

Krok 3: Odpojenie kábla

Rozoberanie kábla
Rozoberanie kábla
Rozoberanie kábla
Rozoberanie kábla

Pre naše rozhranie I2C sú potrebné štyri vodiče: +5V napájanie, uzemnenie, sériové údaje a sériové hodiny. Vývody pre rôzne typy video portov nájdete na Wikipedii alebo Pinouts.ru. Nezabudnite, že ak použijete kábel VGA, nájdete ho s úplným počtom pinov; niektoré obsahujú iba podmnožinu. Odrezaním izolácie a tienenia z vonkajšej strany kábla pravdepodobne nájdete dve skupiny drôtov. Hrubšie vodiče alebo zväzky vodičov zabalené v dodatočnom tienení obvykle prenášajú video signál. Nemáme záujem o tieto položky a je možné ich orezať. Tenšie netienené vodiče obvykle prenášajú okrem iného signály DDC (I2C). Multimeter alebo tester kontinuity vám môže pomôcť nájsť správne štyri vodiče pre váš kábel. Použitie holého konektora tu môže byť výhodné, pretože stačí spájkovať štyri vodiče s príslušnými kolíkmi. Poznámka k napájaniu +5 V: dostupný prúd je veľmi obmedzený; asi 50 mA podľa špecifikácie DDC. Väčšina zariadení I2C napije len malý kúsok prúdu, takže by malo byť možné spustiť niekoľko naraz … ale ak používate viac ako jednu alebo dve diódy LED (alebo iné porovnateľne silnoprúdové zariadenia), malo by byť k dispozícii externé napájanie.

Krok 4: Dokončený adaptér

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

Tu je hotový adaptér. To je všetko, čo k tomu patrí! Urobil som ten môj extra tvrdohlavý, aby sa ľahko zmestil do tašky na prenosný počítač, a pridal som štvorpólový konektor, ktorý sa pripája priamo k servopohonu I2C, ktorý mám.

Krok 5: Softvér a projekty

Softvér a projekty
Softvér a projekty
Softvér a projekty
Softvér a projekty

Zdrojový kód systému Mac OS X a Linux pre prácu s adaptérom je možné stiahnuť z mojej webovej stránky (odkaz na stiahnutie je v spodnej časti stránky). Je napísaný v jazyku C a budete musieť mať nainštalovaný gcc (Linux ho spravidla predvolene obsahuje, zatiaľ čo používatelia počítačov Mac si budú musieť nainštalovať nástroje pre vývojárov, ktoré sú voliteľným inštalátorom na váš pôvodný disk s operačným systémom alebo ktoré je možné stiahnuť zadarmo od spoločnosti Apple). Je zahrnutý príklad kódu na čítanie snímača teploty, blikanie „inteligentnej diódy LED“BlinkM, zápis a overenie sériovej pamäte EEPROM, čítanie ovládača Nintento Wii Nunchuk (iba Linux) a komunikáciu s doskou riadiacej jednotky serva. Táto schéma adaptéra bohužiaľ nie je kompatibilný so všetkými systémami. Podpora pre DDC nie je povinná, takže nie všetky grafické karty túto funkciu podporujú. Doteraz som mal šťastie na systémy Mac, ktoré majú grafické čipy ATI alebo Intel, ale systémy založené na NVIDIA nemajú šťastie. Na strane Linuxu som úspešne testoval iba IBM ThinkPad A31p (grafika ATI), ale s Asus EeePC (Intel) by to nefungovalo. Obrázky tu ukazujú testovacie zariadenie, ktoré predvádza rôzne zariadenia I2C v prevádzke. Počítač nepretržite číta teplotu okolia zo snímača teploty I2C, pravidelne zaznamenáva tieto údaje na sériový čip EEPROM I2C (áno, mohol sa len tlačiť do súboru, ale toto malo ďalej demonštrovať aplikácie I2C) a potom servo (prostredníctvom ovládač I2C) slúži ako provizórny indikátor. Keďže knižnica a ukážkový kód pre tieto zariadenia sú už k dispozícii, zostavenie tejto ukážky trvalo iba niekoľko minút (a väčšina z nich spočívala vo vytáčaní indikátora).

Odporúča: