Sommario:
- Passaggio 1: opzioni esistenti
- Passaggio 2: DDC è I2C
- Passaggio 3: dissezione del cavo
- Passaggio 4: l'adattatore completato
- Passaggio 5: software e progetti
Video: L'adattatore I2C (I-Squared-C) più economico al mondo: 5 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:05
Crea un'interfaccia sensore per il tuo computer per meno di un dollaro! Aggiornamento 6/9/08: dopo aver esplorato diverse strade, ho concluso che non esiste un modo pratico per implementare questa tecnica in Microsoft Windows. Questo non è un meschino attacco al sistema operativo, ho davvero rotto un dado nel tentativo! Scusa! Gli utenti Windows che necessitano di funzionalità I2C sono meglio serviti dalle soluzioni esistenti basate su USB. Aggiornamento 24/5/08: è stato aggiunto il supporto per Linux, così come il codice di esempio per il controller Nintendo Wii Nunchuk e il "LED intelligente" BlinkM. Vedere il file README.txt incluso con il codice sorgente per istruzioni sulla compilazione e l'impostazione su Linux. I2C (abbreviazione di Inter-Integrated Circuit) è un bus seriale a due fili tipicamente utilizzato nei computer per la comunicazione di basso livello tra i componenti interni. I2C è anche popolare nella robotica. Tutti i tipi di sensori e attuatori sono disponibili in una forma compatibile con I2C: telemetri a ultrasuoni, sensori per accelerazione, inclinazione, temperatura e pressione, servocontrollori ed espansori bus che forniscono linee generiche aggiuntive (GPIO). La maggior parte dei moderni microcontrollori (Atmel, Microchip PIC, ecc.) hanno il supporto per I2C integrato. Ma la potenza di elaborazione disponibile sui microcontrollori è limitata e lo sviluppo del software, con cross-compilatori specializzati e ambienti di programmazione, a volte può essere un lavoro ingrato. Con laptop e computer a scheda singola che diventano sempre più piccoli e convenienti, è sempre più comune vedere questi sistemi utilizzati direttamente nei progetti di robotica ed elettronica. Ciò fornisce ampio potere per nuove funzionalità come l'elaborazione della visione e l'intelligenza artificiale più sofisticata, e amplia notevolmente la portata degli strumenti e dei linguaggi di sviluppo disponibili… ma presenta anche un nuovo problema: l'interfacciamento di questi sistemi "normali" con le periferiche viene generalmente eseguita porte di livello consumer come USB; non esiste una "porta I2C" disponibile esternamente a cui possiamo semplicemente attingere per utilizzare i nostri sensori… o no?
Passaggio 1: opzioni esistenti
Un modo per collegare i dispositivi I2C a un normale computer desktop o laptop è tramite un adattatore da USB a I2C. Ci sono almeno una dozzina di queste opzioni là fuori, che vanno dai kit fai-da-te con software open source, a sofisticate unità commerciali con ogni campana e fischietto.
Uno svantaggio dell'approccio da USB a I2C è il costo. Un modello commerciale completo può costare $ 250 o più. Anche le alternative homebrew "gratuite" presuppongono una raccolta di parti e un investimento precedente in un programmatore di microcontrollori e le relative conoscenze per utilizzarlo. Un altro aspetto negativo è la relativa scarsità di supporto per i driver al di fuori della popolare piega di Windows. Pochi di questi dispositivi funzionano in modo nativo su computer Macintosh o Linux.
Passaggio 2: DDC è I2C
Quando ho detto nell'introduzione che non c'è una porta I2C esterna sulla maggior parte dei computer, ho mentito. Si scopre che c'è, ed è stato lì per quasi un decennio ormai, per lo più inattivo.
La maggior parte delle schede grafiche e dei monitor moderni supporta qualcosa chiamato Display Data Channel (DDC), un collegamento di comunicazione all'interno di un cavo video che consente al computer e al display di negoziare risoluzioni reciprocamente compatibili e consentire il controllo software delle funzioni del monitor normalmente accessibili tramite pulsanti fisici sul Schermo. DDC è, infatti, semplicemente un'implementazione di un bus I2C con poche regole stabilite. Attingendo a questa connessione tra computer e monitor (o sfruttando le linee DDC su una porta video libera inutilizzata, come la connessione del monitor esterno su un laptop), è possibile interfacciarsi con alcuni dispositivi I2C praticamente senza spese, bypassando il consueta necessità di un dispositivo adattatore del tutto. Tutto ciò di cui abbiamo bisogno per accedere fisicamente a questo bus I2C è un cavo video hackerato…
Passaggio 3: dissezione del cavo
Sono necessari quattro fili per la nostra interfaccia I2C: alimentazione +5V, massa, dati seriali e clock seriale. I pinout per i vari tipi di porte video possono essere trovati su Wikipedia o Pinouts.ru. Ricorda se usi un cavo VGA per trovarne uno con il complemento completo di pin; alcuni includono solo un sottoinsieme. Riducendo l'isolamento e la schermatura dall'esterno del cavo, probabilmente troverai due gruppi di fili all'interno. I cavi più spessi o i fasci di cavi avvolti in una schermatura aggiuntiva di solito trasportano il segnale video. Non siamo interessati a questi e possono essere tagliati indietro. I fili più sottili e non schermati di solito trasportano, tra gli altri, i segnali DDC (I2C). Un multimetro o un tester di continuità può aiutare a trovare i quattro fili corretti per il cavo. L'utilizzo di un connettore nudo può essere vantaggioso in questo caso, poiché è sufficiente saldare quattro fili ai pin di interesse. Una nota sull'alimentazione a +5V: la corrente disponibile è molto limitata; circa 50 mA secondo la specifica DDC. La maggior parte dei dispositivi I2C assorbe solo una piccola quantità di corrente, quindi dovrebbe essere possibile eseguirne diversi contemporaneamente … ma se si utilizzano più di uno o due LED (o altri dispositivi relativamente ad alta corrente), dovrebbe essere fornita alimentazione esterna.
Passaggio 4: l'adattatore completato
Ecco l'adattatore finito. Questo è tutto quello che c'è da fare! Ho reso il mio extra tozzo in modo che potesse adattarsi facilmente alla borsa del mio laptop e ho aggiunto una spina a quattro pin che si collega direttamente a un servo controller I2C che ho.
Passaggio 5: software e progetti
Il codice sorgente di Mac OS X e Linux per lavorare con l'adattatore può essere scaricato dal mio sito web (il link per il download è in fondo alla pagina). È scritto in C e dovrai avere gcc installato (Linux di solito lo include per impostazione predefinita, mentre gli utenti Mac dovranno installare gli strumenti di sviluppo che sono un programma di installazione opzionale sul disco del sistema operativo originale o scaricabile gratuitamente da Apple). È incluso un codice di esempio per leggere un sensore di temperatura, far lampeggiare un "LED intelligente" BlinkM, scrivere e verificare una EEPROM seriale, leggere un controller Nintento Wii Nunchuk (solo Linux) e comunicare con una scheda controller servo. Purtroppo questo schema adattatore non è compatibile con tutti i sistemi. Il supporto per DDC non è obbligatorio, quindi non tutte le schede video supportano questa funzionalità. Finora ho avuto fortuna con i sistemi Mac dotati di chip grafici ATI o Intel, ma i sistemi basati su NVIDIA sono sfortunati. Per quanto riguarda Linux, ho testato con successo solo un IBM ThinkPad A31p (grafica ATI), ma non funzionerebbe con un Asus EeePC (Intel). Le immagini qui mostrano un banco di prova che mostra vari dispositivi I2C in azione. Il computer legge continuamente la temperatura ambiente da un sensore di temperatura I2C, registra periodicamente questi dati su un chip EEPROM seriale I2C (sì, potrebbe semplicemente stampare su un file, ma questo era per dimostrare ulteriormente le applicazioni I2C), e poi un servo (attraverso un controller I2C) funge da quadrante indicatore improvvisato. Con la libreria e il codice di esempio per questi dispositivi già a posto, ci sono voluti solo pochi minuti per mettere insieme questa demo (e la maggior parte di questo è stato nel creare il quadrante dell'indicatore).
Consigliato:
Inverter solare off-grid più efficiente al mondo: 3 passaggi (con immagini)
Inverter solare off-grid più efficiente al mondo: l'energia solare è il futuro. I pannelli possono durare per molti decenni. Supponiamo che tu abbia un sistema solare off-grid. Hai un frigorifero/congelatore e un sacco di altre cose da gestire nella tua bellissima cabina remota. Non puoi permetterti di sprecare energia
Realizza gli auricolari con armatura bilanciata più piccoli al mondo: 7 passaggi (con immagini)
Realizza gli auricolari con armatura bilanciata più piccoli al mondo: questo è un progetto per realizzare probabilmente gli auricolari BA singoli più piccoli con una qualità del suono audiofila. Il design è stato ispirato da Final F7200, un IEM ad alta risoluzione da $ 400+ su Amazon. Mentre con i componenti disponibili sul mercato aperto, i fai-da-te possono farcela in
Arduino più economico -- Arduino più piccolo -- Arduino Pro Mini -- Programmazione -- Arduino Neno: 6 passaggi (con immagini)
Arduino più economico || Arduino più piccolo || Arduino Pro Mini || Programmazione || Arduino Neno:……………………………. ISCRIVITI al mio canale YouTube per altri video……. .Questo progetto riguarda come interfacciare un arduino più piccolo ed economico di sempre. L'arduino più piccolo ed economico è arduino pro mini. È simile ad arduino
L'auto più piccola al mondo con controllo elettronico della stabilità!: 5 passaggi (con immagini)
L'auto più piccola del mondo con controllo elettronico della stabilità!: Hai una di quelle piccole auto per lattine di Coca Cola? E la sua controllabilità fa schifo? Allora ecco la soluzione: Arduino 2.4GHz "Micro RC" modifica del controllo proporzionale!Caratteristiche: controllo proporzionale Arduino "Micro RC" conversione
Costruisci un robot molto piccolo: crea il robot a ruote più piccolo del mondo con una pinza.: 9 passaggi (con immagini)
Costruisci un robot molto piccolo: crea il robot a ruote più piccolo del mondo con una pinza: costruisci un robot da 1/20 di pollice cubo con una pinza che può raccogliere e spostare piccoli oggetti. È controllato da un microcontrollore Picaxe. A questo punto, credo che questo potrebbe essere il robot su ruote più piccolo al mondo con una pinza. Questo senza dubbio ch