Kazalo:

Najcenejši vmesnik I2C (I-Squared-C) na svetu: 5 korakov (s slikami)
Najcenejši vmesnik I2C (I-Squared-C) na svetu: 5 korakov (s slikami)

Video: Najcenejši vmesnik I2C (I-Squared-C) na svetu: 5 korakov (s slikami)

Video: Najcenejši vmesnik I2C (I-Squared-C) na svetu: 5 korakov (s slikami)
Video: Суп на Всю Семью! РАССОЛЬНИК в КАЗАНЕ! КАК ПРИГОТОВИТЬ 2024, Julij
Anonim
Najcenejši vmesnik I2C (I-Squared-C) na svetu
Najcenejši vmesnik I2C (I-Squared-C) na svetu

Naredite senzorski vmesnik za vaš računalnik za manj kot dolar! Posodobitev 6/9/08: Po raziskovanju več poti sem ugotovil, da ni praktičnega načina izvajanja te tehnike v sistemu Microsoft Windows. To ni malenkost za OS, res sem se potrudil, da bi poskušal! Oprosti! Uporabnikom sistema Windows, ki potrebujejo zmogljivosti I2C, najbolje služijo obstoječe rešitve, ki temeljijo na USB-ju. Posodobite 5/24/08: dodana je podpora za Linux, pa tudi vzorčna koda za krmilnik Nintendo Wii Nunchuk in "pametno LED" BlinkM. Oglejte si datoteko README.txt, vključeno v izvorno kodo, za navodila o sestavljanju in nastavitvi za Linux. I2C (okrajšava za Inter-Integrated Circuit) je dvožično zaporedno vodilo, ki se običajno uporablja v računalnikih za komunikacijo na nizki ravni med notranjimi komponentami. I2C je priljubljen tudi v robotiki. Vse vrste senzorjev in aktuatorjev so na voljo v obliki, združljivi z I2C: ultrazvočni daljinomeri, senzorji za pospeševanje, nagib, temperaturo in tlak, servo krmilniki in razširitve vodila, ki zagotavljajo dodatne linije splošnega namena (GPIO). Večina sodobnih mikrokrmilnikov (Atmel, Microchip PIC itd.) Imajo vgrajeno podporo za I2C. Toda procesorska moč, ki je na voljo na mikrokrmilnikih, je omejena, razvoj programske opreme - s specializiranimi navzkrižnimi prevajalniki in programskimi okolji - pa je včasih lahko muka. Ker so prenosniki in računalniki z eno ploščo vedno manjši in dostopnejši, je vse pogosteje videti, da se ti sistemi uporabljajo neposredno v projektih robotike in elektronike. To daje veliko moči za nove zmogljivosti, kot so obdelava vida in bolj izpopolnjena AI, ter močno širi obseg razpoložljivih razvojnih orodij in jezikov … predstavlja pa tudi novo težavo: povezovanje teh "običajnih" sistemov s perifernimi napravami običajno poteka prek mainstreama vrata za potrošnike, kot je USB; ni zunanjih "I2C vrat", na katera bi lahko preprosto uporabili naše senzorje … ali obstaja?

1. korak: Obstoječe možnosti

Obstoječe možnosti
Obstoječe možnosti
Obstoječe možnosti
Obstoječe možnosti

Eden od načinov povezovanja naprav I2C z običajnim namiznim ali prenosnim računalnikom je prek adapterja USB-to-I2C. Obstaja vsaj ducat takšnih možnosti, od kompletov, ki jih naredi sam z odprtokodno programsko opremo, do prefinjenih poslovnih enot z vsakim zvonom.

Ena pomanjkljivost pristopa USB-I-C je cena. Kompleten komercialni model lahko stane 250 USD ali več. Tudi "brezplačne" domače alternative predvidevajo zbirko delov in predhodno naložbo v programer mikrokontrolerja ter s tem povezano znanje, da ga bodo uporabili. Druga pomanjkljivost je relativna pomanjkljivost podpore gonilnikov zunaj priljubljene gube Windows. Nekaj teh naprav deluje na računalnikih Macintosh ali Linux.

2. korak: DDC je I2C

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

Ko sem uvodoma rekel, da na večini računalnikov ni zunanjih vrat I2C, sem lagal. Izkazalo se je, da je tam že skoraj desetletje, večinoma miruje.

Večina sodobnih grafičnih kartic in monitorjev podpira nekaj, kar se imenuje Display Data Channel (DDC), komunikacijska povezava v video kablu, ki računalniku in zaslonu omogoča pogajanje o medsebojno združljivih ločljivostih in programski nadzor nad funkcijami monitorja, do katerih običajno dostopate s fizičnimi gumbi na zaslon. DDC je pravzaprav preprosto izvedba vodila I2C z nekaj uveljavljenimi pravili. Če se dotaknete te povezave med računalnikom in monitorjem (ali uporabite linije DDC na rezervnih neuporabljenih video vratih, kot je povezava zunanjega monitorja na prenosnem računalniku), se lahko povežete z nekaterimi napravami I2C skoraj brez stroškov, mimo običajno potrebuje v celoti adapterno napravo. Za fizični dostop do tega vodila I2C potrebujemo samo vdrli video kabel …

3. korak: Odstranitev kabla

Seciranje kabla
Seciranje kabla
Seciranje kabla
Seciranje kabla

Za naš vmesnik I2C so potrebne štiri žice: +5V napajanje, ozemljitev, serijski podatki in serijska ura. Izpiske za različne vrste video vrat najdete na Wikipediji ali Pinouts.ru. Ne pozabite, da z uporabo kabla VGA poiščete enega s polnim kompletom zatičev; nekateri vključujejo le podskupino. Če odrežete izolacijo in zaščito z zunanje strani kabla, boste v notranjosti verjetno našli dve skupini žic. Debelejše žice ali snopi žic, zaviti v dodatno zaščito, običajno nosijo video signal. Te nas ne zanimajo in jih je mogoče zmanjšati. Tanjše, nezaščitene žice običajno med drugim prenašajo signale DDC (I2C). Multimeter ali tester neprekinjenosti vam lahko pomaga najti pravilne štiri žice za vaš kabel. Uporaba golega konektorja je tukaj lahko koristna, saj morate le spajkati štiri žice na zanimive zatiče. Opomba o moči +5V: razpoložljivi tok je zelo omejen; približno 50 mA po specifikaciji DDC. Večina naprav I2C srka le majhen košček toka, zato bi jih bilo mogoče zagnati več hkrati … če pa uporabljate več kot eno ali dve LED (ali druge primerjalno visokotokovne naprave), je treba zagotoviti zunanje napajanje.

4. korak: Dokončan adapter

Dokončan adapter
Dokončan adapter

Tukaj je končan adapter. To je vse! Svojega sem naredil še posebej trdnega, da se je zlahka prilegal v torbo za prenosni računalnik, in dodal še štiri-polni vtič, ki se poveže neposredno s servo krmilnikom I2C, ki ga imam.

5. korak: Programska oprema in projekti

Programska oprema in projekti
Programska oprema in projekti
Programska oprema in projekti
Programska oprema in projekti

Izvorno kodo Mac OS X in Linux za delo z vmesnikom lahko prenesete z moje spletne strani (povezava za prenos je na dnu strani). Napisano je v jeziku C in imeti morate nameščen gcc (Linux običajno to privzeto vključuje, medtem ko bodo uporabniki Mac morali namestiti orodja za razvijalce, ki so izbirni namestitveni program na izvirnem disku OS ali jih je mogoče prenesti brezplačno iz Apple -a). Primer kode je vključen za branje temperaturnega senzorja, utripanje "pametne LED diode BlinkM", pisanje in preverjanje serijskega EEPROM -a, branje krmilnika Nintento Wii Nunchuk (samo za Linux) in komunikacijo s servo krmilno ploščo. Na žalost ta shema vmesnika ni združljiv z vsemi sistemi. Podpora za DDC ni obvezna, zato te kartice ne podpirajo vse video kartice. Doslej sem imel srečo s sistemi Mac, ki imajo grafične čipe ATI ali Intel, vendar sistemi, ki temeljijo na NVIDIA, nimajo sreče. Na strani Linuxa sem uspešno preizkusil le IBM ThinkPad A31p (ATI grafika), vendar ne bi deloval z Asusom EeePC (Intel). Na slikah tukaj je testna naprava, ki prikazuje različne naprave I2C v akciji. Računalnik nenehno bere temperaturo okolja iz temperaturnega senzorja I2C, te podatke občasno beleži v čip EEPROM serijske serije I2C (ja, lahko bi samo natisnil v datoteko, vendar je bil to za dodatno predstavitev aplikacij I2C), nato pa še servo (prek krmilnik I2C) služi kot začasna številčnica. Ker sta knjižnica in vzorčna koda za te naprave že vzpostavljeni, je trajalo le nekaj minut, da je bila sestavljena ta predstavitev (večina pa je bila pri izbiri indikatorja).

Priporočena: