Sadržaj:

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

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

Video: Najjeftiniji I2C (I-Squared-C) adapter na svijetu: 5 koraka (sa slikama)
Video: Тестирование корпусов Raspberry Pi с помощью Stressberry и iPerf 2024, Novembar
Anonim
Najjeftiniji I2C (I-Squared-C) adapter na svijetu
Najjeftiniji I2C (I-Squared-C) adapter na svijetu

Napravite senzorsko sučelje za vaš računar 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 Microsoft Windows. Ovo nije beznačajno lupanje OS -a, stvarno sam poludio pokušavajući! Izvini! Korisnicima Windowsa kojima su potrebne I2C sposobnosti najbolje služe postojeća rješenja zasnovana 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 diodu". Pogledajte datoteku README.txt koja se nalazi uz izvorni kod za upute o sastavljanju i postavljanju na Linuxu. I2C (skraćeno od Inter-Integrated Circuit) je dvožilna serijska sabirnica koja se obično koristi u računarima za komunikaciju na niskom nivou između unutrašnjih komponenti. I2C je popularan i u robotici. Svi tipovi senzora i aktuatora dostupni su u obliku kompatibilnom sa I2C: ultrazvučni daljinomjeri, senzori za ubrzanje, nagib, temperaturu i pritisak, servo kontroleri i sabirnici za proširenje koji pružaju dodatne linije opće namjene (GPIO). Većina modernih mikrokontrolera (Atmel, Microchip PIC, itd.) Imaju ugrađenu podršku za I2C. Ali procesorska snaga dostupna na mikrokontrolerima je ograničena, a razvoj softvera - sa specijaliziranim unakrsnim kompajlerima i programskim okruženjima - ponekad može biti muka. S obzirom na to da su prijenosna računala i jednokrilni računari sve manji i pristupačniji, sve je češće vidjeti ove sisteme koji se koriste izravno u projektima robotike i elektronike. Ovo pruža veliku snagu za nove mogućnosti, poput obrade vida i sofisticiranije umjetne inteligencije, i uvelike proširuje opseg dostupnih razvojnih alata i jezika … ali predstavlja i novi problem: povezivanje ovih "regularnih" sistema 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 sa običnim desktop ili laptop računarom je putem USB-to-I2C adaptera. Postoji barem desetak takvih opcija vani, u rasponu od kompleta za izradu sa vlastitim rukama sa softverom otvorenog koda, do sofisticiranih komercijalnih jedinica sa svakim zvonom.

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

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čunara nema vanjskog I2C porta, lagao sam. Ispostavilo se da postoji i da je tu već skoro čitavu deceniju, uglavnom uspavan.

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ćava računaru i ekranu da pregovaraju o međusobno kompatibilnim rezolucijama i dopuštaju softversku kontrolu funkcija monitora kojima se normalno pristupa fizičkim tipkama na prikaz. DDC je, zapravo, samo implementacija I2C sabirnice s nekoliko utvrđenih pravila. Dodirivanjem ove veze između računara i monitora (ili korištenjem DDC linija na rezervnom neiskorištenom video portu, poput veze vanjskog monitora na prijenosnom računaru), 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: Seciranje kabela

Seciranje kabla
Seciranje kabla
Seciranje kabla
Seciranje kabla

Za naše I2C sučelje potrebne su četiri žice: napajanje +5V, uzemljenje, serijski podaci i serijski sat. Rasporedi za različite vrste video portova mogu se pronaći na Wikipediji ili Pinouts.ru. Upamtite ako koristite VGA kabel za pronalaženje kabla s punim kompletom pinova; neke uključuju samo podskup. Ako presiječete izolaciju i oklop sa 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 ovdje može biti od koristi, jer samo trebate lemiti četiri žice na odgovarajuće pinove. Napomena o napajanju +5V: 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), treba osigurati vanjsko napajanje.

Korak 4: Dovršeni adapter

Kompletan adapter
Kompletan adapter

Evo gotovog adaptera. To je sve! Napravio sam svoj ekstra zdepast kako bi mogao lako stati u torbu za prijenosno računalo, i dodao četveroiglični utikač koji se povezuje izravno 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 sa moje web stranice (veza za preuzimanje nalazi se pri dnu stranice). Napisano je na jeziku C i morat ćete imati instaliran gcc (Linux obično uključuje ovo prema zadanim postavkama, dok će korisnici Mac -a morati instalirati razvojne alate koji su opcionalni instalacijski program na vašem originalnom OS disku ili se mogu preuzeti besplatno s Apple -a). Primjer koda je uključen za čitanje senzora temperature, treptanje BlinkM "pametne LED diode", pisanje i provjeru serijskog EEPROM -a, čitanje Nintento Wii Nunchuk kontrolera (samo za Linux) i komunikaciju sa pločom servo kontrolera. Nažalost, ova shema adaptera nije kompatibilan sa svim sistemima. Podrška za DDC nije obavezna, pa ne podržavaju sve video kartice ovu mogućnost. Do sada sam imao sreću sa Mac sistemima koji imaju ATI ili Intel grafičke čipove, ali sistemi zasnovani 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 ove podatke u serijski E2ROM čip I2C (da, mogao se samo ispisivati u datoteku, ali to je radi dodatne demonstracije I2C aplikacija), a zatim i servo (preko I2C kontroler) služi kao privremeni pokazivač brojača. S već postavljenom bibliotekom 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čuje se: