INHOUDSOPGAWE:

Wêreld se goedkoopste I2C (I-Squared-C) adapter: 5 stappe (met foto's)
Wêreld se goedkoopste I2C (I-Squared-C) adapter: 5 stappe (met foto's)

Video: Wêreld se goedkoopste I2C (I-Squared-C) adapter: 5 stappe (met foto's)

Video: Wêreld se goedkoopste I2C (I-Squared-C) adapter: 5 stappe (met foto's)
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, November
Anonim
Die goedkoopste I2C-adapter (I-Squared-C) ter wêreld
Die goedkoopste I2C-adapter (I-Squared-C) ter wêreld

Maak 'n sensor -koppelvlak vir u rekenaar vir minder as 'n dollar! Update 6/9/08: Nadat ek verskeie maniere ondersoek het, het ek tot die gevolgtrekking gekom dat daar geen praktiese manier is om hierdie tegniek in Microsoft Windows te implementeer nie. Dit is nie 'n klein OS bashing nie, ek het regtig 'n moer probeer probeer! Jammer! Windows-gebruikers wat I2C-funksies benodig, word die beste bedien deur bestaande USB-gebaseerde oplossings. Opdatering 24/05/08: Linux-ondersteuning is bygevoeg, sowel as voorbeeldkode vir die Nintendo Wii Nunchuk-beheerder en die BlinkM "smart LED." Sien die README.txt-lêer wat by die bronkode ingesluit is vir aanwysings oor die opstel en opstel van Linux. I2C (afkorting vir Inter-Integrated Circuit) is 'n tweedraads reeksbus wat tipies in rekenaars gebruik word vir kommunikasie op lae vlak tussen interne komponente. I2C is ook gewild in robotika. Alle soorte sensors en aandrywers is beskikbaar in 'n I2C-versoenbare vorm: ultrasoniese afstandmeters, versnellingsensors, kantel, temperatuur en druk, servobestuurders en busuitbreiders wat addisionele algemene (GPIO) lyne bied. Die meeste moderne mikrobeheerders (Atmel), Microchip PIC, ens.) Het ondersteuning vir I2C ingebou. Maar die verwerkingskrag wat op mikrobeheerders beskikbaar is, is beperk, en sagteware -ontwikkeling - met gespesialiseerde kruis -samestellers en programmeeromgewings - kan soms 'n taak wees. Aangesien skootrekenaars en enkelbordrekenaars al hoe kleiner en meer bekostigbaar word, word dit toenemend algemeen dat hierdie stelsels direk in robotika- en elektronika-projekte gebruik word. Dit bied genoeg krag vir nuwe vermoëns, soos visieverwerking en meer gesofistikeerde AI, en dit vergroot die omvang van beskikbare ontwikkelingshulpmiddels en tale baie … verbruikerspoorte soos USB; daar is geen ekstern beskikbare 'I2C-poort' waarmee ons net ons sensors kan gebruik nie … of is daar?

Stap 1: Bestaande opsies

Bestaande opsies
Bestaande opsies
Bestaande opsies
Bestaande opsies

Een manier om I2C-toestelle aan 'n gewone lessenaar of skootrekenaar te koppel, is deur 'n USB-na-I2C-adapter. Daar is ten minste 'n dosyn sulke opsies, wat wissel van doen-dit-self-kits met open source sagteware, tot gesofistikeerde kommersiële eenhede met elke klok en fluitjie.

Een nadeel van die USB-tot-I2C-benadering is die koste. 'N Volledige kommersiële model kan $ 250 of meer kos. Selfs die 'gratis' tuisbier -alternatiewe veronderstel 'n versameling dele en 'n voorafgaande belegging in 'n mikrobeheerderprogrammeerder en die verwante kennis om daarvan gebruik te maak. Nog 'n nadeel is die relatiewe skaarste aan bestuurdersondersteuning buite die gewilde Windows -vou. Min van hierdie toestelle werk oorspronklik op Macintosh- of Linux -rekenaars.

Stap 2: DDC is I2C

DDC is I2C
DDC is I2C
DDC Is I2C
DDC Is I2C
DDC Is I2C
DDC Is I2C

Toe ek in die inleiding sê dat daar geen eksterne I2C -poort op die meeste rekenaars is nie, het ek gelieg. Dit blyk dat dit so is, en dit is nou al byna 'n dekade lank daar, en het meestal geslaap.

Die meeste moderne grafiese kaarte en monitors ondersteun ondersteuning vir iets wat Display Data Channel (DDC) genoem word, 'n kommunikasieverbinding binne 'n videokabel waarmee die rekenaar en die skerm onderlinge verenigbare resolusies kan beding en sagtewarebeheer van monitorfunksies toelaat wat normaalweg met fisiese knoppies op die vertoon. DDC is in werklikheid bloot 'n implementering van 'n I2C -bus met 'n paar vasgestelde reëls. Deur hierdie verbinding tussen die rekenaar en die monitor aan te sluit (of gebruik te maak van die DDC -lyne op 'n ekstra ongebruikte videopoort, soos die eksterne monitorverbinding op 'n skootrekenaar), kan 'n mens met 'n paar I2C -toestelle sonder enige koste in verbinding tree. Die gewone behoefte aan 'n adapter is heeltemal nodig. Al wat ons nodig het om fisies toegang tot hierdie I2C-bus te kry, is 'n opgekapte videokabel …

Stap 3: Ontleed die kabel

Ontleed die kabel
Ontleed die kabel
Ontleed die kabel
Ontleed die kabel

Vier drade is nodig vir ons I2C -koppelvlak: +5V krag, grond, seriële data en seriële klok. Pinouts vir die verskillende soorte video -poorte kan gevind word op Wikipedia of Pinouts.ru. Onthou, as u 'n VGA -kabel gebruik om 'n kabel met die volledige penne te vind; sommige bevat slegs 'n subset. As u die isolasie en die afskerming van die buitekant van die kabel afskakel, vind u waarskynlik twee groepe drade binne. Dikker drade, of bondels drade toegedraai in ekstra afskerming, dra gewoonlik die videosignaal. Ons stel nie daarin belang nie en dit kan teruggesny word. Dunner, onafgeskermde drade dra gewoonlik onder andere die DDC (I2C) seine. 'N Multimeter of kontinuïteitstoetser kan help om die korrekte vier drade vir u kabel te vind. Die gebruik van 'n kaal aansluiting kan hier voordelig wees, aangesien u net vier drade aan die penne van belang moet soldeer. 'N Opmerking oor die +5V -krag: beskikbare stroom is baie beperk; ongeveer 50 mA volgens die DDC -spesifikasie. Die meeste I2C-toestelle drink net 'n klein bietjie stroom, so dit moet moontlik wees om verskeie gelyktydig te werk … maar as u meer as een of twee LED's (of ander relatief hoëstroom toestelle) gebruik, moet eksterne krag voorsien word.

Stap 4: Die voltooide adapter

Die voltooide adapter
Die voltooide adapter

Hier is die voltooide adapter. Dit is al wat daar is! Ek het myne ekstra stomp gemaak sodat dit maklik in my skootrekenaarsak kon pas, en ek het 'n vierpenprop bygevoeg wat direk aansluit by 'n I2C-servobestuurder wat ek het.

Stap 5: Sagteware en projekte

Sagteware en projekte
Sagteware en projekte
Sagteware en projekte
Sagteware en projekte

Die bronkode van Mac OS X en Linux om met die adapter te werk, kan van my webwerf afgelaai word (die aflaai -skakel is onderaan die bladsy). Dit is in C geskryf, en u moet gcc geïnstalleer het (Linux bevat dit gewoonlik standaard, terwyl Mac -gebruikers die ontwikkelaarsgereedskap moet installeer wat 'n opsionele installeerder op u oorspronklike bedryfstelselskyf is, of gratis af te laai by Apple). Voorbeeldkode is ingesluit vir die lees van 'n temperatuursensor, die flits van 'n "Smart LED" van BlinkM, die skryf en verifiëring van 'n seriële EEPROM, die lees van 'n Nintendo Wii Nunchuk -kontroleerder (slegs Linux) en kommunikasie met 'n servo -beheerbord. Ongelukkig is hierdie adapterskema nie versoenbaar met alle stelsels. Ondersteuning vir DDC is nie verpligtend nie, dus nie alle videokaarte ondersteun hierdie vermoë nie. Ek het tot dusver baie geluk gehad met Mac-stelsels met ATI- of Intel-grafiese skyfies, maar op NVIDIA-gebaseerde stelsels is daar geen geluk nie. Aan die Linux -kant het ek slegs 'n IBM ThinkPad A31p (ATI -grafika) suksesvol getoets, maar dit werk nie met 'n Asus EeePC (Intel) nie. Die rekenaar lees voortdurend die omgewingstemperatuur van 'n I2C -temperatuursensor, teken hierdie data periodiek aan op 'n I2C -seriële EEPROM -chip (ja, dit kan net na 'n lêer druk, maar dit was om I2C -toepassings verder te demonstreer) en dan 'n servo (deur 'n I2C -beheerder) dien as 'n tydelike aanwyser. Aangesien die biblioteek en voorbeeldkode vir hierdie toestelle reeds in plek was, het dit slegs 'n paar minute geneem om hierdie demo saam te stel (en die meeste daarvan was om die aanwyser in te skakel).

Aanbeveel: