Sadržaj:

Najjeftiniji I2C (I-kvadrat-C) adapter na svijetu: 5 koraka (sa slikama)
Najjeftiniji I2C (I-kvadrat-C) adapter na svijetu: 5 koraka (sa slikama)

Video: Najjeftiniji I2C (I-kvadrat-C) adapter na svijetu: 5 koraka (sa slikama)

Video: Najjeftiniji I2C (I-kvadrat-C) adapter na svijetu: 5 koraka (sa slikama)
Video: Raspberry Pi 4 Mini računar - Review 2024, Studeni
Anonim
Najjeftiniji I2C (I-kvadrat-C) adapter na svijetu
Najjeftiniji I2C (I-kvadrat-C) adapter na svijetu

Napravite senzorsko sučelje za vaše računalo za ispod dolara! Ažuriranje 6/9/08: Nakon što sam istražio nekoliko mogućnosti zaključio sam da ne postoji praktičan način implementacije ove tehnike u sustavu Microsoft Windows. Ovo nije beznačajno lupanje OS -a, stvarno sam poludio pokušavajući! Oprosti! Korisnicima sustava Windows kojima su potrebne I2C sposobnosti najbolje služe postojeća rješenja temeljena na USB-u. Ažurirajte 5/24/08: dodana je podrška za Linux, kao i uzorak koda za Nintendo Wii Nunchuk kontroler i BlinkM "pametnu LED". Za upute o sastavljanju i postavljanju na Linuxu pogledajte datoteku README.txt uključenu izvorni kod. I2C (kratica za Inter-Integrated Circuit) je dvožilna serijska sabirnica koja se obično koristi u računalima za komunikaciju na niskoj razini između unutarnjih komponenti. I2C je popularan i u robotici. Svi načini senzora i aktuatora dostupni su u obliku kompatibilnom s I2C: ultrazvučni daljinomjeri, senzori za ubrzanje, nagib, temperaturu i tlak, servo kontroleri i sabirnički proširivači koji pružaju dodatne linije opće namjene (GPIO). Većina modernih mikrokontrolera (Atmel, Microchip PIC, itd.) Imaju ugrađenu podršku za I2C. No procesorska snaga dostupna na mikrokontrolerima je ograničena, a razvoj softvera - sa specijaliziranim unakrsnim prevoditeljima i programskim okruženjima - ponekad može biti muka. Budući da prijenosna računala i računala s jednom pločom postaju sve manja i pristupačnija, sve je češće vidjeti da se ti sustavi koriste izravno u projektima robotike i elektronike. To daje veliku snagu za nove mogućnosti, poput obrade vida i sofisticiranije umjetne inteligencije, te uvelike proširuje opseg dostupnih razvojnih alata i jezika … ali predstavlja i novi problem: povezivanje ovih "regularnih" sustava s perifernim uređajima obično se vrši putem mainstream -a portovi za potrošače, poput USB-a; ne postoji vanjski dostupan "I2C port" na koji možemo jednostavno iskoristiti naše senzore … ili postoji?

Korak 1: Postojeće opcije

Postojeće opcije
Postojeće opcije
Postojeće opcije
Postojeće opcije

Jedan od načina povezivanja I2C uređaja s običnim stolnim ili prijenosnim računalom je putem USB-to-I2C adaptera. Postoji barem desetak takvih opcija vani, u rasponu od kompleta za izradu s vlastitim rukama s softverom otvorenog koda, do sofisticiranih komercijalnih jedinica sa svakim zvonom.

Nedostatak pristupa USB-u-I2C je cijena. Komercijalni model s puno funkcija može koštati 250 dolara ili više. Čak i "besplatne" alternative homebrewa pretpostavljaju skup dijelova i prethodno ulaganje u programera mikrokontrolera i srodno znanje kako bi ga iskoristili. Još jedan nedostatak je relativna oskudica u podršci za upravljačke programe izvan popularnog Windows folda. Nekoliko ovih uređaja izvorno radi na Macintosh ili Linux računalima.

Korak 2: DDC je I2C

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

Kada sam u uvodu rekao da na većini računala nema vanjskog I2C priključka, lagao sam. Ispostavilo se da postoji i da je tu cijelo vrijeme već gotovo desetljeće, uglavnom sjedeći.

Većina modernih grafičkih kartica i monitora ima podršku za nešto što se naziva Display Data Channel (DDC), komunikacijska veza unutar video kabela koja omogućuje računalu i ekranu dogovaranje međusobno kompatibilnih rezolucija i softversku kontrolu funkcija monitora kojima se normalno pristupa fizičkim gumbima na prikaz. DDC je, zapravo, samo implementacija I2C sabirnice s nekoliko utvrđenih pravila. Dodirivanjem ove veze između računala i monitora (ili korištenjem DDC linija na rezervnom neiskorištenom video priključku, poput veze vanjskog monitora na prijenosnom računalu), možete se povezati s nekim I2C uređajima gotovo bez ikakvih troškova, zaobilazeći uobičajena potreba za adapterom u potpunosti. Sve što nam je potrebno za fizički pristup ovoj I2C sabirnici je hakirani video kabel …

Korak 3: Rastavljanje kabela

Seciranje kabela
Seciranje kabela
Seciranje kabela
Seciranje kabela

Za naše I2C sučelje potrebne su četiri žice: +5V napajanje, uzemljenje, serijski podaci i serijski sat. Ispisi za različite vrste video portova mogu se pronaći na Wikipediji ili Pinouts.ru. Upamtite ako koristite VGA kabel za pronalaženje kabela s punim kompletom pinova; neke uključuju samo podskup. Ako presiječete izolaciju i oklopite s vanjske strane kabela, vjerojatno ćete unutar pronaći dvije grupe žica. Deblje žice ili snopovi žica omotanih dodatnom zaštitom obično nose video signal. Ovo nas ne zanima i možemo ih smanjiti. Tanke, nezaštićene žice obično prenose DDC (I2C) signale između ostalih. Multimetar ili ispitivač kontinuiteta može vam pomoći u pronalaženju ispravne četiri žice za vaš kabel. Korištenje golog konektora može biti korisno jer trebate samo lemiti četiri žice na odgovarajuće pinove. Napomena o +5V napajanju: dostupna struja je vrlo ograničena; oko 50 mA prema DDC specifikaciji. Većina I2C uređaja ispija samo mali dio struje, pa bi trebalo biti moguće pokrenuti nekoliko odjednom … ali ako koristite više od jedne ili dvije LED diode (ili druge uređaje s relativno velikom strujom), trebalo bi osigurati vanjsko napajanje.

Korak 4: Dovršeni adapter

Dovršeni adapter
Dovršeni adapter

Evo gotovog adaptera. To je sve! Napravio sam svoj dodatni zdepast kako bi mogao lako stati u torbu za prijenosno računalo, te dodao četveroiglični utikač koji se izravno povezuje s I2C servo kontrolerom koji imam.

Korak 5: Softver i projekti

Softver i projekti
Softver i projekti
Softver i projekti
Softver i projekti

Izvorni kod Mac OS X i Linux za rad s adapterom možete preuzeti s moje web stranice (veza za preuzimanje nalazi se pri dnu stranice). Napisano je na jeziku C i morat ćete imati instaliran gcc (Linux to obično uključuje prema zadanim postavkama, dok će korisnici Mac -a morati instalirati razvojne alate koji su izborni instalacijski program na vaš izvorni OS disk ili se mogu preuzeti besplatno s Apple -a). Uključen je primjer koda za čitanje osjetnika temperature, treptanje BlinkM "pametne LED diode", pisanje i provjeru serijskog EEPROM -a, čitanje Nintento Wii Nunchuk kontrolera (samo Linux) i komunikaciju sa pločom servo upravljača. Nažalost, ova shema adaptera nije kompatibilan sa svim sustavima. Podrška za DDC nije obvezna, pa ne podržavaju sve video kartice ovu mogućnost. Do sada sam imao sreće s Mac sustavima koji imaju ATI ili Intelove grafičke čipove, ali sustavi temeljeni na NVIDIA-i nemaju sreće. Sa strane Linuxa uspješno sam testirao samo IBM ThinkPad A31p (ATI grafika), ali ne bi radio s Asus EeePC -om (Intel). Slike ovdje prikazuju testnu platformu koja prikazuje različite I2C uređaje na djelu. Računalo neprestano očitava temperaturu okoline s senzora temperature I2C, povremeno zapisuje te podatke na serijski E2ROM čip I2C (da, mogao se samo ispisivati u datoteku, ali to je za daljnju demonstraciju I2C aplikacija), a zatim i servo (kroz I2C kontroler) služi kao privremeni pokazivač brojača. S već postavljenom knjižnicom i uzorkom koda za ove uređaje, trebalo je samo nekoliko minuta za sastavljanje ove demonstracije (a većina toga bila je pri odabiru indikatora).

Preporučeni: