Semplici opzioni di amplificatore adattivo per le interfacce dei sensori


8

Correlati : ADC ad alta risoluzione per sensori rumorosi in condizioni variabili


Sto costruendo un'interfaccia utilizzando sensori resistivi a base tessile che possono avere intervalli di resistenza diversi a seconda delle condizioni ambientali. Per sfruttare al meglio i miei convertitori A / D, mi piacerebbe esplorare usando un amplificatore adattivo che contribuirà a compensare le prestazioni inaffidabili dei sensori.

quali sono le mie opzioni? Oppure puoi indicarmi alcuni riferimenti sull'argomento?

Posso pensare a due schemi generali che sarebbero utili:

  1. Auto-calibrazione trovando i valori minimo e massimo in una determinata finestra di analisi (~ 30s-2min)
  2. Calibrazione esplicita mediante un'interfaccia toggle-to-train
  3. ... Ci sono schemi alternativi a cui non sto pensando?

Alcuni vincoli

  • Dovrebbe essere una soluzione a un chip (piccola) se possibile (come i chip di rilevamento capacitivo)
  • Dovrebbe essere facile da configurare e utilizzare (non sono un ingegnere e non vengo pagato)
  • Probabilmente ci sarà un microcontrollore nelle vicinanze

Ancora meglio sarebbe un chip fai-da-te con bridge / partitore di tensione Wheatstone, filtro passa basso e amplificatore.

Maggiori informazioni sulla mia configurazione particolare

  • I convertitori A / D saranno o i convertitori integrati in un chip Atmel (potrebbe essere ATtiny85 o ATmega32u4) o i convertitori integrati in una radio XBee serie 2. Non ho mai usato chip A / D dedicati prima - non sono sicuro se ci sarebbe qualche beneficio nel farlo.
  • Il sensore sarà un pezzo di lycra conduttiva drogata con polimero di Eeonyx. La resistenza cambia di circa 1 ordine di grandezza al 30% di allungamento.
  • Il tutto verrà montato sulla mano di un artista, quindi deve essere piccolo e fisicamente robusto. Ci sono buone probabilità che sia wireless.
  • La precisione è importante. L'interfaccia verrà utilizzata per variare continuamente gli effetti audio in tempo reale, ovvero non è un interruttore.

Sei in grado di fornire ulteriori dettagli sulla tua configurazione attuale? vale a dire: tipo di ADC utilizzati, quale sensore tattile, quale controller tattile.
tyblu,

Quanto sono grandi le variazioni che ti aspetti di ottenere dai cambiamenti ambientali?
jpc

Che tipo di risoluzione bit è necessaria? Lo chiedo perché penso che sarebbe più semplice aumentare le specifiche sui tuoi ADC di 4 bit (x16) e fare l'adattamento nel software. Ciò dovrebbe essere sufficiente per catturare un singolo ordine di variazione della grandezza. Naturalmente, se hai già bisogno di 16 o 20 bit di risoluzione, sarà molto costoso.
anthony137,

@ anthony137 è un'idea interessante. Ho pensato in termini di convertitori a 10 bit poiché è quello che di solito hanno incorporato i microcontrollori, ma darò un'occhiata ai convertitori ad alto rez.
terrazza

@jpc dovrò provare. Mi piacerebbe avere un sistema in grado di adattarsi a una vasta gamma di condizioni sconosciute, ma posso ottenere alcune figure da baseball.
terrazza

Risposte:


5

Ecco l'idea di base:

sensore

V1 è l'uscita PWM filtrata e R2 è il tuo sensore. U1 è un convertitore da tensione a corrente, con corrente attraverso il carico R1 che è I = V1 / R2. Ciò significa che la tensione attraverso R1 dipende da entrambi gli ingressi. U2 e U3 è un amplificatore di strumentazione con guadagno 10, che amplifica la tensione attraverso R1.

Con R1 = 100 Ohm e V1 = 0..5V il circuito funziona per R2 = 50..5000 ad es. Su due ordini di grandezza, che da quello che dici dovrebbe essere sufficiente.

Quello che fai è estrarlo e confrontarlo con la tensione di riferimento (4 V sarebbe appropriato qui per la massima gamma dinamica) e usare un'approssimazione successiva su V1 per uscire il più vicino possibile alla tensione di riferimento. Da V1 e caduta di tensione nota su R1 (ad es. Tensione di riferimento) è ora possibile calcolare il valore di R2, il sensore. Questo ovviamente ti porterà solo nella risoluzione di PWM, ma puoi usare il secondo amplificatore di strumentazione per amplificare l'errore (differenza tra tensione di uscita e di riferimento) per farlo rientrare nell'intervallo dell'ADC del tuo microcontrollore e questo ti darà bit aggiuntivi di risoluzione.

Sono necessari due opamp (U1 e comparatore) e due amplificatori di strumentazione. Usa quelli veri invece di farli da opamp, perché le imprecisioni di resistori e opamp introdurranno errori.

Se due ordini di grandezza non fossero sufficienti, è possibile sostituire R1 con potenziometro digitale per ottenere un altro grado di libertà. Non ho mai lavorato con uno, quindi non so quanto siano precisi e se tale soluzione avrebbe bisogno di una calibrazione o meno.

Inoltre, dovrei menzionare che è stata jpc a venire con l'idea.

AGGIORNARE:

Ok, devo essere d'accordo con OP sul fatto che questa non è davvero la risposta alla sua domanda (sebbene risolva il problema tecnicamente). Mi sono lasciato trasportare dall'amplificatore adattivo nel titolo come scusa per realizzare un design analogico. Dimentica tutto ciò che è stato scritto sopra, a meno che tu non voglia imparare qualcosa (poco) sugli opamp. Ecco, spero, una risposta migliore e una soluzione molto più semplice:

Usa un divisore resistivo alimentato da un regolatore di tensione (per separarlo dal rumore di altri circuiti), con la resistenza superiore impostata su circa la massima resistenza che i tuoi sensori possono avere (Rmax) e con la resistenza inferiore come sensore.

Imposta la tensione di riferimento per il tuo ADC a metà dell'uscita del regolatore di tensione.

Quindi campiona la tensione sul sensore con il tuo ADC. In questo modo è necessario un solo canale single-ended per sensore. Ho fatto una raccomandazione ADC nell'altro post.

Se usi un ADC a 10 bit integrato nei microcontrollori che hai citato, non otterrai una gamma dinamica. Il potenziamento della gamma utilizzando circuiti analogici, come quello che ho pubblicato originariamente, aggiungerebbe troppe parti aggiuntive, motivo per cui consiglierei semplicemente di usare un ADC a 24 bit, come l'ADS1256 che ho raccomandato nell'altro post, perché ti darà basso rumore e alta gamma dinamica, in un singolo chip (più il riferimento, che è minuscolo, e il regolatore di tensione, che può anche essere minuscolo - puoi anche provare a lasciare fuori il regolatore e alimentare il divisore resistivo direttamente dal riferimento - questo ti toglierà 1 bit di risoluzione, ma ce ne sono comunque molti). Dovrai eseguire alcuni crunching numerici ("Auto-calibrazione trovando i valori minimo e massimo in una determinata finestra di analisi" - è una buona idea),

Spero che questo sia un po 'più utile.

AGGIORNAMENTO 2:

Questo è l'ultimo: ho esaminato i microcontrollori MSP430 di TI e ho scoperto che alcuni di essi hanno ADC sigma-delta a 16 bit con riferimento interno. Vale a dire MSP430F2003 e MSP430F20013 . Questa sarebbe la tua soluzione a un chip se sei disposto a rinunciare ad Atmels. Anche a bassissima potenza. E hanno in coda microcontrollori con 24 ADC, ma questi non sono ancora in produzione. Inoltre ci sono anche microcontrollori PSoC di Cypress, che hanno ADC sigma-delta a 20 bit (serie PSoC 3 e PSoC 5 ), anche con riferimento. Questi sarebbero ancora meglio.


@Jaroslav Non sono sicuro di aver capito. In un convertitore da tensione a corrente, V1 viene solitamente dal sensore - in questo caso, poiché R2 è il sensore, qual è l'effetto di U1? A cosa servono U3 e U2? Sono gli amplificatori di strumentazione? Cosa stanno aspettando? Infine, dici qualcosa sulla misurazione della caduta di tensione su R1. Come misuro questo calo e perché ne ho bisogno? Infine, che tipo di schema di calibrazione hai in mente (vedi le due opzioni che presento nel post)? Grazie!
terrazza

@Jaroslav Ah, penso che tu abbia risposto al post sbagliato. Vedi qui: electronics.stackexchange.com/questions/11978/…
terrazza

Grazie per il riconoscimento, ma ad essere sincero, stavo immaginando qualcosa di più semplice. :) Penso che non stai usando molto l'ADC qui?
jpc,

@jpc, in effetti, 3 amplificatori operazionali occuperanno comunque molto spazio (8 canali, da polso)
terrazza

@jpc La tua soluzione non aumenta davvero la gamma dinamica. Simula o misura per scoprire perché. Inoltre, ha una non linearità durante i primi 0,6 V circa a causa del diodo emettitore di base.
Jaroslav Cmunt,

3

Se i cambiamenti nella resistenza del sensore sono grandi (> 50%), è possibile utilizzare un circuito divisore di tensione invece del (più complicato) ponte di Wheatstone. È quindi possibile migliorare facilmente la gamma dinamica variando la tensione di alimentazione.

La tensione di alimentazione regolabile può essere facilmente creata dal PWM nel microcontrollore insieme a un filtro RC e una sorgente di corrente controllata in tensione.

Ecco uno schema approssimativo della mia idea:

schematico(da Socratic Electronics di Tony R. Kuphaldt )

Quindi collegare la tensione PWM filtrata all'ingresso non invertente (+) dell'amplificatore operazionale.

Per un multiplexing veloce potresti creare due di queste fonti attuali. Se si collegano tutti i sensori pari a uno e tutti i dispari all'altro, è possibile modificare la tensione sul sensore successivo mentre l'ADC sta ancora campionando.

È necessario utilizzare un riferimento di tensione di precisione per l'ADC. Puoi anche guadagnare 1 o 2 bit usando un filtro a media mobile nel tuo software.

PS. Vorrei ringraziare Jaroslav Cmunt per i suoi enormi miglioramenti a questa risposta.


3

Hai letto questo sito?

Ci sono molti esempi di elettronica indossabile, inclusi alcuni con tessuti Eeonyx. Il sito contiene esempi di circuiti di rilevamento (ardunio e xbee).

Non hai bisogno di molti componenti per costruire un ponte di Wheatstone e probabilmente il meglio con 1 circuito di rilevamento multiplexato agli 8 sensori, puoi comunque ottenere 100 campioni al secondo o più facilmente su ciascun ingresso. Utilizzare un PCB in tessuto (controllare nuovamente il sito sopra) per creare il bridge. O semplicemente fai passare i cavi del sensore sul guanto e metti tutta l'elettronica di rilevamento in un pacchetto montato sulla cintura. La maggior parte dei "sensori" di tessuto che ho visto hanno una resistenza relativamente elevata, gli 0,1 ohm che puoi ottenere dal filo tra l'unità cinghia e i guanti non contano.

Inserire un sensore di temperatura in ciascun guanto e utilizzare il risultato per apportare una correzione nel software, se necessario, per adattarsi ai cambiamenti ambientali. Forse calibrare i guanti prima di ogni utilizzo, potrebbe non essere necessario a seconda dell'intelligenza dell'interprete.

Suppongo che il modulo Xbee trasmetta a un computer, crei la funzione di calibrazione nel computer, in effetti eseguo il più possibile l'elaborazione, come la correzione della temperatura, sul computer.

Punti bonus se usi semplicemente una rete neurale per convertire l'ingresso del sensore in un'azione. Questo renderà l'allenamento facile e si adatterà ai movimenti della mano di persone diverse.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.