Turinys:

Pigiausias pasaulyje I2C (I-Squared-C) adapteris: 5 žingsniai (su nuotraukomis)
Pigiausias pasaulyje I2C (I-Squared-C) adapteris: 5 žingsniai (su nuotraukomis)

Video: Pigiausias pasaulyje I2C (I-Squared-C) adapteris: 5 žingsniai (su nuotraukomis)

Video: Pigiausias pasaulyje I2C (I-Squared-C) adapteris: 5 žingsniai (su nuotraukomis)
Video: Afigiet - pigiausias klipas pasaulyje 2024, Lapkritis
Anonim
Pigiausias pasaulyje I2C (I-Squared-C) adapteris
Pigiausias pasaulyje I2C (I-Squared-C) adapteris

Sukurkite savo kompiuterio jutiklio sąsają už pinigus! Atnaujinimas 6/9/08: Išnagrinėjęs keletą būdų, padariau išvadą, kad nėra praktinio šios technikos diegimo būdo „Microsoft Windows“. Tai nėra smulkus OS griovimas, aš tikrai bandžiau riešutą! Atsiprašau! „Windows“vartotojams, kuriems reikalingos „I2C“galimybės, geriausiai tinka esami USB pagrindu sukurti sprendimai. Atnaujinimas 5/24/08: pridėtas „Linux“palaikymas, taip pat „Nintendo Wii Nunchuk“valdiklio ir „BlinkM“išmaniojo šviesos diodo kodo pavyzdys. Žiūrėkite „README.txt“failą, įtrauktą į šaltinio kodą, kur rasite kompiliavimo ir sąrankos „Linux“instrukcijas. I2C (sutrumpintai tariant integruota grandinė) yra dviejų laidų nuoseklioji magistralė, paprastai naudojama kompiuteriuose žemo lygio ryšiui tarp vidinių komponentų. I2C taip pat populiarus robotikoje. Visų tipų jutikliai ir pavaros yra prieinamos su I2C suderinama forma: ultragarso nuotolio ieškikliai, pagreičio, pakreipimo, temperatūros ir slėgio jutikliai, servo valdikliai ir magistralės plėtikliai, kurie suteikia papildomų bendrosios paskirties (GPIO) linijų. Dauguma šiuolaikinių mikrovaldiklių (Atmel), „Microchip PIC“ir tt) yra integruotas I2C palaikymas. Tačiau mikrovaldiklių apdorojimo galia yra ribota, o programinės įrangos kūrimas - naudojant specializuotus kryžminius kompiliatorius ir programavimo aplinkas - kartais gali būti vargas. Kadangi nešiojamieji kompiuteriai ir vienos plokštės kompiuteriai tampa vis mažesni ir prieinamesni, vis dažniau pastebima, kad šios sistemos naudojamos tiesiogiai robotikos ir elektronikos projektuose. Tai suteikia daug galios naujoms galimybėms, tokioms kaip regėjimo apdorojimas ir sudėtingesnis dirbtinis intelektas, ir labai išplečia turimų kūrimo priemonių ir kalbų spektrą… tačiau taip pat iškelia naują problemą: šių „įprastų“sistemų sąsaja su periferiniais įrenginiais paprastai atliekama naudojant pagrindines sistemas vartotojams skirtus prievadus, tokius kaip USB; nėra išoriškai prieinamo „I2C prievado“, kurį galime tiesiog panaudoti, kad galėtume pasinaudoti savo jutikliais … ar yra?

1 žingsnis: esamos parinktys

Esamos parinktys
Esamos parinktys
Esamos parinktys
Esamos parinktys

Vienas iš būdų prijungti I2C įrenginius prie paprasto stalinio ar nešiojamojo kompiuterio yra USB-I2C adapteris. Yra bent keliolika tokių variantų: nuo „pasidaryk pats“rinkinių su atvirojo kodo programine įranga iki sudėtingų komercinių vienetų su kiekvienu skambučiu.

Vienas neigiamas požiūris į USB-I2C yra kaina. Visas komercinis modelis gali kainuoti 250 USD ar daugiau. Netgi „nemokamos“namų gamybos alternatyvos reikalauja surinkti dalis ir iš anksto investuoti į mikrovaldiklio programuotoją bei susijusias žinias, kad ja būtų galima pasinaudoti. Kitas neigiamas aspektas yra santykinis vairuotojo palaikymo, esančio už populiaraus „Windows“, trūkumas. Nedaugelis šių įrenginių natūraliai veikia „Macintosh“ar „Linux“kompiuteriuose.

2 žingsnis: DDC yra I2C

DDC yra I2C
DDC yra I2C
DDC yra I2C
DDC yra I2C
DDC yra I2C
DDC yra I2C

Kai įžangoje pasakiau, kad daugelyje kompiuterių nėra išorinio I2C prievado, melavau. Pasirodo, yra, ir jis ten buvo beveik visą dešimtmetį, dažniausiai sėdintis neveiklus.

Dauguma šiuolaikinių vaizdo plokščių ir monitorių palaiko tai, kas vadinama „Display Data Channel“(DDC), ryšio linija vaizdo kabeliu, leidžiančia kompiuteriui ir ekranui suderinti tarpusavyje suderinamas rezoliucijas ir leisti programinei įrangai valdyti monitoriaus funkcijas, paprastai pasiekiamas naudojant fizinius mygtukus ekranas. Tiesą sakant, DDC yra tik I2C magistralės įgyvendinimas su keliomis nustatytomis taisyklėmis. Paspaudus šį ryšį tarp kompiuterio ir monitoriaus (arba pasinaudojus DDC linijomis, esančiomis atsarginiame nepanaudotame vaizdo prievade, pvz., Nešiojamojo kompiuterio išorinio monitoriaus jungtyje), galima praktiškai be jokių sąsajų su kai kuriais I2C įrenginiais, apeinant įprastas adapterio įrenginio poreikis. Viskas, ko mums reikia norint fiziškai pasiekti šį I2C magistralę, yra įsilaužtas vaizdo kabelis …

3 žingsnis: išardykite kabelį

Kabelio išardymas
Kabelio išardymas
Kabelio išardymas
Kabelio išardymas

Mūsų I2C sąsajai reikalingi keturi laidai: +5 V maitinimas, įžeminimas, serijiniai duomenys ir nuoseklus laikrodis. Įvairių tipų vaizdo prievadų kontaktus galima rasti „Wikipedia“arba „Pinouts.ru“. Prisiminkite, jei naudojate VGA kabelį, kad surastumėte vieną su visais kaiščiais; kai kuriuose yra tik pogrupis. Atjungę izoliaciją ir ekranavimą iš kabelio išorės, greičiausiai rasite dvi laidų grupes. Storesni laidai arba laidų ryšuliai, apvynioti papildomu ekranu, paprastai perduoda vaizdo signalą. Mums tai neįdomu ir jie gali būti nukirpti. Plonesni, neekranuoti laidai paprastai perduoda DDC (I2C) signalus. Multimetras arba tęstinumo testeris gali padėti rasti tinkamus keturis kabelio laidus. Naudoti pliką jungtį čia gali būti naudinga, nes jums tereikia lituoti keturis laidus prie dominančių kaiščių. Pastaba dėl +5 V galios: turima srovė yra labai ribota; apie 50 mA pagal DDC specifikaciją. Dauguma I2C įrenginių siurbia tik nedidelę srovę, todėl turėtų būti įmanoma paleisti kelis iš karto … tačiau jei naudojami daugiau nei vienas ar du šviesos diodai (arba kiti palyginti didelės srovės įrenginiai), turėtų būti tiekiama išorinė energija.

4 žingsnis: baigtas adapteris

Užbaigtas adapteris
Užbaigtas adapteris

Štai baigtas adapteris. Tai viskas! Aš padariau savo ypač užsispyrusią, kad ji lengvai tilptų į nešiojamojo kompiuterio krepšį, ir pridėjau keturių kontaktų kištuką, kuris tiesiogiai jungiamas prie turimo I2C servo valdiklio.

5 žingsnis: programinė įranga ir projektai

Programinė įranga ir projektai
Programinė įranga ir projektai
Programinė įranga ir projektai
Programinė įranga ir projektai

„Mac OS X“ir „Linux“šaltinio kodą darbui su adapteriu galima atsisiųsti iš mano svetainės (atsisiuntimo nuoroda yra puslapio apačioje). Jis parašytas C kalba ir jums reikės įdiegti gcc („Linux“paprastai tai įtraukia pagal numatytuosius nustatymus, o „Mac“vartotojai turės įdiegti kūrėjo įrankius, kurie yra neprivalomas diegimo programa jūsų pradiniame OS diske arba kuriuos galima nemokamai atsisiųsti iš „Apple“). Įtrauktas pavyzdinis kodas, skirtas temperatūros jutikliui skaityti, „BlinkM“išmaniajam šviesos diodui mirksėti, serijiniam EEPROM rašyti ir patvirtinti, „Nintento Wii Nunchuk“valdikliui skaityti (tik „Linux“) ir bendrauti su servo valdiklio plokšte. Deja, ši adapterio schema nėra suderinamas su visomis sistemomis. DDC palaikymas nėra privalomas, todėl ne visos vaizdo plokštės palaiko šią funkciją. Man iki šiol pasisekė su „Mac“sistemomis, kuriose yra ATI arba „Intel“grafikos lustai, tačiau NVIDIA pagrįstoms sistemoms nesiseka. „Linux“pusėje aš sėkmingai išbandžiau tik „IBM ThinkPad A31p“(ATI grafika), tačiau jis neveiks su „Asus EeePC“(„Intel“). Čia pateikti vaizdai rodo bandomąjį įrenginį, kuriame demonstruojami įvairūs veikiantys I2C įrenginiai. Kompiuteris nuolat skaito aplinkos temperatūrą iš I2C temperatūros jutiklio, periodiškai registruoja šiuos duomenis į I2C nuosekliąją EEPROM mikroschemą (taip, ji gali tiesiog spausdinti į failą, bet tai dar labiau pademonstravo I2C programas), o po to servo (per I2C valdiklis) yra laikinas indikatoriaus ratukas. Kai jau buvo sukurta šių įrenginių biblioteka ir pavyzdinis kodas, šią demonstracinę versiją sudėti prireikė vos kelių minučių (o daugiausia tai buvo padaryta indikatoriaus skalėje).

Rekomenduojamas: