Cuprins:

Cel mai ieftin adaptor I2C (I-Squared-C) din lume: 5 pași (cu imagini)
Cel mai ieftin adaptor I2C (I-Squared-C) din lume: 5 pași (cu imagini)

Video: Cel mai ieftin adaptor I2C (I-Squared-C) din lume: 5 pași (cu imagini)

Video: Cel mai ieftin adaptor I2C (I-Squared-C) din lume: 5 pași (cu imagini)
Video: rd # 289 MYRIA MY 8311 prezentare BIOS - varianta lunga 2024, Iulie
Anonim
Cel mai ieftin adaptor I2C (I-Squared-C) din lume
Cel mai ieftin adaptor I2C (I-Squared-C) din lume

Creați o interfață de senzor pentru computerul dvs. sub un dolar! Update 6/9/08: După ce am explorat mai multe căi, am ajuns la concluzia că nu există o modalitate practică de implementare a acestei tehnici în Microsoft Windows. Acesta nu este un mic sistem de operare, chiar am aruncat o încercare! Scuze! Utilizatorii Windows care au nevoie de capabilități I2C sunt deserviți cel mai bine de soluțiile existente bazate pe USB. Actualizare 24.05.08: a fost adăugat suport Linux, precum și cod de eșantion pentru controlerul Nintendo Wii Nunchuk și „LED-ul inteligent” BlinkM. Consultați fișierul README.txt inclus cu codul sursă pentru instrucțiuni de compilare și configurare pe Linux. I2C (prescurtare pentru circuitul inter-integrat) este o magistrală serială cu două fire utilizată în mod obișnuit în computere pentru comunicarea la nivel scăzut între componentele interne. I2C este, de asemenea, popular în robotică. Toate tipurile de senzori și dispozitive de acționare sunt disponibile într-o formă compatibilă cu I2C: telemetre cu ultrasunete, senzori pentru accelerație, înclinare, temperatură și presiune, servo controlere și expansoare de autobuz care oferă linii suplimentare de uz general (GPIO)., Microchip PIC etc.) au suport pentru I2C încorporat chiar înăuntru. Dar puterea de procesare disponibilă pe microcontrolere este limitată, iar dezvoltarea de software - cu cross-compilatoare specializate și medii de programare - poate fi uneori o corvoadă. Odată cu laptopurile și computerele cu o singură placă, devenind din ce în ce mai mici și mai accesibile, este din ce în ce mai frecvent să vezi aceste sisteme utilizate direct în proiecte de robotică și electronică. Acest lucru oferă o putere amplă pentru noi capabilități, cum ar fi procesarea viziunii și AI mai sofisticate, și extinde mult domeniul de instrumente și limbaje de dezvoltare disponibile … dar prezintă, de asemenea, o nouă problemă: interfața acestor sisteme „obișnuite” la periferice se face de obicei prin mainstream porturi pentru consumatori precum USB; nu există un „port I2C” disponibil extern pe care să-l putem folosi doar pentru a folosi senzorii noștri … sau există?

Pasul 1: Opțiuni existente

Opțiuni existente
Opțiuni existente
Opțiuni existente
Opțiuni existente

O modalitate de conectare a dispozitivelor I2C la un computer obișnuit desktop sau laptop este prin intermediul unui adaptor USB-la-I2C. Există cel puțin o duzină de astfel de opțiuni acolo, variind de la truse de bricolaj cu software open source, până la unități comerciale sofisticate cu fiecare clopoțel și fluier.

Un dezavantaj al abordării USB-to-I2C este costul. Un model comercial complet dotat poate costa 250 USD sau mai mult. Chiar și alternativele „gratuite” pentru homebrew presupun o colecție de piese și o investiție prealabilă într-un programator de microcontroler și cunoștințele aferente pentru a-l utiliza. Un alt dezavantaj este relativa lipsă de asistență pentru șoferi în afara popularului fold Windows. Puține dintre aceste dispozitive funcționează nativ pe computerele Macintosh sau Linux.

Pasul 2: DDC este I2C

DDC este I2C
DDC este I2C
DDC este I2C
DDC este I2C
DDC este I2C
DDC este I2C

Când am spus în introducere că nu există port I2C extern pe majoritatea computerelor, am mințit. Se pare că există și a fost acolo de-a lungul timpului de aproape un deceniu, în cea mai mare parte stând latente.

Cele mai multe plăci grafice și monitoare moderne au suport pentru ceva numit Display Data Channel (DDC), o legătură de comunicație într-un cablu video care permite computerului și afișajului să negocieze rezoluții compatibile reciproc și să permită controlul software al funcțiilor monitorului accesate în mod normal cu butoanele fizice de pe afişa. DDC este, de fapt, pur și simplu o implementare a unei magistrale I2C cu câteva reguli stabilite. Atingând această conexiune între computer și monitor (sau folosind liniile DDC pe un port video de rezervă neutilizat, cum ar fi conexiunea monitorului extern de pe un laptop), se poate interfața cu unele dispozitive I2C practic fără nici o cheltuială, ocolind nevoie obișnuită de un dispozitiv adaptor în întregime. Tot ce avem nevoie pentru a accesa fizic acest autobuz I2C este un cablu video piratat …

Pasul 3: Disecarea cablului

Disecarea cablului
Disecarea cablului
Disecarea cablului
Disecarea cablului

Sunt necesare patru fire pentru interfața noastră I2C: alimentare + 5V, masă, date seriale și ceas serial. Pinouts pentru diferitele tipuri de porturi video pot fi găsite pe Wikipedia sau Pinouts.ru. Amintiți-vă dacă utilizați un cablu VGA pentru a găsi unul cu completarea completă a pinilor; unele includ doar un subset. Reducând izolația și ecranarea din exteriorul cablului, veți găsi probabil două grupuri de fire în interior. Firele mai groase sau pachetele de fire înfășurate în ecranare suplimentară, transportă de obicei semnalul video. Nu suntem interesați de acestea și pot fi reduse. Sârmele mai subțiri, neecranate, transportă de obicei semnalele DDC (I2C) printre altele. Un multimetru sau un tester de continuitate vă poate ajuta să găsiți cele patru fire corecte pentru cablul dvs. Folosirea unui conector gol poate fi avantajoasă aici, deoarece trebuie doar să lipiți patru fire la pinii de interes. O notă privind puterea + 5V: curentul disponibil este foarte limitat; aproximativ 50 mA conform specificației DDC. Majoritatea dispozitivelor I2C consumă doar un pic de curent, deci ar trebui să fie posibil să rulați mai multe simultan … dar dacă utilizați mai mult de unul sau două LED-uri (sau alte dispozitive comparativ cu curent ridicat), ar trebui furnizată energie externă.

Pasul 4: adaptorul finalizat

Adaptorul finalizat
Adaptorul finalizat

Iată adaptorul terminat. Cam despre asta e! Mi-am făcut-o extraordinară, ca să se încadreze cu ușurință în geanta laptopului și am adăugat o priză cu patru pini care se conectează direct la un servo controler I2C pe care îl am.

Pasul 5: Software și proiecte

Software și proiecte
Software și proiecte
Software și proiecte
Software și proiecte

Codul sursă Mac OS X și Linux pentru lucrul cu adaptorul poate fi descărcat de pe site-ul meu web (linkul de descărcare este în partea de jos a paginii). Este scris în C și va trebui să aveți gcc instalat (Linux include de obicei acest lucru în mod implicit, în timp ce utilizatorii de Mac vor trebui să instaleze instrumentele de dezvoltator care sunt un program de instalare opțional pe discul dvs. OS original sau care pot fi descărcate gratuit de la Apple). Este inclus un exemplu de cod pentru citirea unui senzor de temperatură, intermitentul unui „LED inteligent” BlinkM, scrierea și verificarea unei EEPROM seriale, citirea unui controler Nintento Wii Nunchuk (numai Linux) și comunicarea cu o placă de servocontrol. Din păcate, această schemă de adaptor nu este compatibil cu toate sistemele. Suportul pentru DDC nu este obligatoriu, deci nu toate plăcile video acceptă această capacitate. Am avut noroc până acum cu sistemele Mac care au cipuri grafice ATI sau Intel, dar sistemele bazate pe NVIDIA nu au noroc. În ceea ce privește Linux, am testat cu succes un IBM ThinkPad A31p (grafică ATI), dar nu ar funcționa cu un Asus EeePC (Intel). Computerul citește continuu temperatura ambiantă de la un senzor de temperatură I2C, înregistrează periodic aceste date pe un cip EEPROM serial I2C (da, ar putea imprima doar într-un fișier, dar aceasta a fost pentru a demonstra în continuare aplicațiile I2C), apoi un servo (prin un controler I2C) servește drept cadran indicator improvizat. Cu biblioteca și codul de eșantionare pentru aceste dispozitive deja la locul lor, a durat doar câteva minute pentru a pune împreună această demonstrație (și cea mai mare parte a fost în realizarea cadranului indicator).

Recomandat: