Arduino Tutorial: sensori tattili capacitivi

Ciao a tutti!

Questo tutorial è un tutorial che ti guiderà sull'uso dei sensori tattili capacitivi con Arduino. Un sensore capacitivo è una specie di sensore tattile, che richiede poca o nessuna forza per l'attivazione.

In questo documento sul rilevamento tattile capacitivo, ti mostrerò:

  • Come funzionano i sensori capacitivi
  • Come usarli con un Arduino
  • Come implementarli in 3 progetti Arduino, inclusi in questo Instructable
  • Come utilizzare la libreria CapSense, che viene utilizzata nei primi due progetti. Ho anche incluso il codice demo ed è una spiegazione per la libreria CapSense ...

Le competenze richieste per questi progetti sono minime:

  • Conoscenze di base di elettronica e arduino.
  • Saldatura (opzionale)

Quindi cominciamo prima a scoprire di cosa tratta questo rilevamento tattile capacitivo!

Passaggio 1: Informazioni sulla libreria CapSense e il rilevamento capacitivo ...

Per la maggior parte dei progetti relativi al rilevamento capacitivo, ho usato la libreria CapSense. Il parco giochi Arduino ha una buona spiegazione della libreria Capsense. Tuttavia, se sei un principiante in Arduino, sono abbastanza sicuro che capiresti solo la metà di ciò che è scritto lì. Quindi qui ho una spiegazione semplificata ...

Rilevamento capacitivo:

Il rilevamento tattile capacitivo è un modo per rilevare il tocco umano, che richiede poca o nessuna forza per attivarsi. Può essere utilizzato per rilevare il tocco umano attraverso più di un quarto di pollice di plastica, legno, ceramica o altro materiale isolante (non qualsiasi tipo di metallo però), consentendo al sensore di essere completamente nascosto visivamente.

Perché tocco capacitivo?

  • Ogni sensore tattile richiede solo un filo collegato ad esso.
  • Può essere nascosto sotto qualsiasi materiale non metallico.
  • Può essere facilmente utilizzato al posto di un pulsante.
  • Può rilevare una mano da pochi pollici di distanza, se necessario.
  • Molto economico.

Come funziona?

La piastra del sensore e il tuo corpo formano un condensatore. Sappiamo che un condensatore immagazzina la carica. Più è la sua capacità, più carica può immagazzinare.

La capacità di questo sensore tattile capacitivo dipende dalla vicinanza della mano alla piastra.

Cosa fa Arduino?

Fondamentalmente l'arduino misura quanto tempo impiega il condensatore (cioè il sensore tattile) a caricarsi, dandogli una stima della capacità.

La capacità può essere molto piccola, tuttavia Arduino la misura con precisione.

Un modo di usare il tocco capacitivo in un progetto è usare la libreria CapSense. Per la libreria Capsense, arduino utilizza un pin di invio e un numero qualsiasi di pin di ricezione richiesti. Un pin di ricezione è collegato al pin di invio tramite un resistore di valore medio-alto.

Ecco alcune linee guida per i resistori ma assicurati di sperimentare la risposta desiderata.

  • Utilizzare una resistenza da 1 megaohm (o meno forse) per l'attivazione del tocco assoluto.
  • Con una resistenza da 10 megohm, il sensore inizierà a rispondere a 4-6 pollici di distanza.
  • Con una resistenza da 40 megohm, il sensore inizierà a rispondere a 12-24 pollici di distanza (in base alla dimensione della lamina). Le dimensioni comuni dei resistori di solito terminano a 10 megaohm, quindi potrebbe essere necessario saldare quattro resistori da 10 megaohm end-to-end. Un compromesso con resistori più grandi è che la maggiore sensibilità del sensore significa che è più lento.

* Queste linee guida sul valore del resister servono solo per l'uso della libreria CapSense. L'ultimo progetto non utilizza questa libreria.

Riepilogo: i sensori tattili capacitivi richiedono poca o nessuna forza per l'attivazione. La libreria CapSense può essere utilizzata per creare più sensori tattili con Arduino.

Passaggio 2: Codice demo della libreria CapSense ...

Ecco una spiegazione del codice demo per la libreria CapSense.

 CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); 

Puoi sostituire "cs_4_2" con qualsiasi altro nome. '4' è il pin di invio, '2' è il pin di ricezione.

 void setup () { 
L'installazione viene eseguita una sola volta.
 cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // disattiva la calibrazione automatica sul canale 1 - solo come esempio 
 Serial.begin (9600);} 
Inizia la comunicazione seriale a 9600baud ...
 long total1 = cs_4_2.capacitiveSensor (30); 

L'istruzione precedente è dichiarata in 'void loop ()'. Quando si utilizza un resistore da 1 M, total1 sarà inferiore o pari a circa dieci. Quando viene toccato, diventa più di 60 ...

 Serial.println (Totale1); 

Invia il valore di total1 alla finestra Seriale del computer ...

Vengono spiegate le parti importanti del codice. Questo non è il codice completo; quello completo è riportato in allegato. Salta il passaggio se pensi che il codice sia facile.

allegati

  • Download di CapacitiveSensorSketch.pde

Passaggio 3: progetti con tocco capacitivo e Arduino ...

Ora che hai un'idea di cosa sia il tocco capacitivo (se ti è capitato di leggere il passaggio precedente), vediamo cosa possiamo fare con esso. In questo istruttivo ti mostrerò 3 progetti che incorporano il tocco capacitivo.

Touch Operated Light:

Un progetto di base che ti aiuterà a cogliere le idee di tocco capacitivo e implementarlo in altri progetti. L'uso di un relè e la saldatura è opzionale, ma è necessario se si desidera utilizzare apparecchi ad alta tensione.

Interruttore del sensore di prossimità:

Avvicinando la mano a questo interruttore si accende o si spegne un led. L'aggiunta di un relè e la saldatura consentiranno il funzionamento di dispositivi ad alta tensione, sebbene sia facoltativo.

Inseguitore manuale touchless 3D:

Tiene traccia della posizione della tua mano in 3 dimensioni. Può essere utilizzato per innumerevoli applicazioni, tuttavia ho incluso progetti con esso che sono semplici e facili da hackerare, quindi puoi usarlo per i tuoi scopi. Nessuna saldatura richiesta .

Step 4: Touch Controlled Light: - Materiali richiesti ...

Questo è un progetto molto economico e facile. Dà una buona idea di come funziona il tocco capacitivo e di come implementarlo in diverse altre applicazioni. Questo semplice progetto utilizza un sensore tattile capacitivo, che accende e spegne un led, o anche apparecchi ad alta tensione, toccando un foglio di alluminio.

Tempo : <1 ora, +1 ora per relè di saldatura (opzionale)

Costo : pochi centesimi, ~ 1 $ per un relè (escluso Arduino)

Difficoltà : molto, molto facile.

Materiali : (disponibile su RadioShack)

  • Scheda Arduino
  • Resistenza da 500K a 1M
  • Resistenza 220ohm
  • Qualsiasi colore LED
  • Foglio
  • Ponticello
  • Relè (opzionale)
  • Spina di rete (maschio e femmina) (opzionale)

Step 5: Touch Controlled Light: - il circuito

Il circuito è semplice Voglio dire così semplice che non avrai nemmeno bisogno di una breadboard!

Nota che ho usato un Arduino Mega, perché in questo momento è l'unico che ho. Se si utilizza uno Uno, collegare il LED a qualsiasi altro pin conveniente. Tuttavia, è necessario apportare una piccola modifica al codice in un secondo momento. Vedi il prossimo passo.

Segui le immagini per il circuito.

  1. Ho collegato il resistore a led e 220ohm in serie attraverso il pin 42 e la terra.
  2. Ho usato il pin 4 come pin di invio e il pin 2 come pin di ricezione su Arduino.
  3. C'è una resistenza 1M su questi pin. La lamina è collegata al pin di ricezione, ovvero al pin 2.

Passaggio 6: Touch Controlled Light: - Codice Arduino ...

Ora alla parte di programmazione. Il codice utilizza la libreria CapSense (scarica qui), che si occupa del rilevamento capacitivo. Se non hai familiarità con il processo di installazione di una libreria, dai un'occhiata a questo fantastico tutorial:

Installazione di una libreria Arduino - Learn.SFE

Il codice è semplice e facile da capire. Basta copiare questo codice e incollarlo in una finestra vuota di Arduino. Sostituire il pin del led, se necessario. Quindi carica ...

 #include int led = 42; // cambia '42' in qualsiasi pin desiderato ... lungo tempo = 0; int state = HIGH; booleano sì; booleano precedente = falso; int debounce = 200; CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // Resistenza da 10 M tra i pin 4 e 2, il pin 2 è il pin del sensore, aggiungere un filo e / o una lamina se desiderato // Per aggiungere altri sensori ... // CapacitiveSensor cs_4_6 = CapacitiveSensor (4, 6); // Resistenza da 10 M tra i pin 4 e 6, il pin 6 è il pin del sensore, aggiungere un filo e / o un foglio // CapacitiveSensor cs_4_8 = CapacitiveSensor (4, 8); // Resistenza da 10 M tra i pin 4 e 8, il pin 8 è il pin del sensore, aggiungi un filo e / o svuota la configurazione del vuoto () {cs_4_2. set_CS_AutocaL_Millis (0xFFFFFFFF); // Calibrare il sensore ... pinMode (led, OUTPUT); } void loop () {long total1 = cs_4_2. capacitiveSensor (30); if (total1> 60) {yes = true;} else {yes = false;} // per attivare / disattivare lo stato di stato if (yes == true && precedente == false && millis () - time> debounce) {if ( stato == BASSO) {stato = ALTO; } else state = LOW; time = millis (); } digitalWrite (led, stato); precedente = sì; Seriale . println (millis () -time); ritardo (10); } 

Passaggio 7: Touch Controlled Light: - Aggiunta di un relè ...

Quindi hai un LED touch control. E allora? Puoi rendere il progetto un po 'più utile controllando gli apparecchi come luci e ventole con il tocco. E per fortuna, devi solo aggiungere un relè ad Arduino per farlo.

Che cos'è un relè?

Un relè è un interruttore azionato elettricamente. Di solito i relè utilizzano un elettromagnete per azionare meccanicamente un interruttore isolato. La sua funzione principale è quella di utilizzare una piccola tensione per accendere / spegnere separatamente un'alta tensione o una corrente elevata. È utile per il controllo di apparecchi di rete con piccoli circuiti o microcontroller.

Per saperne di più sui relè, dai un'occhiata a questo fantastico manuale: come funzionano gli switch elettronici per Noobs: relè e transistor

Il circuito:

L'Arduino non può fornire abbastanza corrente per far funzionare un relè, quindi sarebbe necessario un transistor BC547. Il transistor amplifica la corrente dell'Arduino per attivare il relè. Per assistenza nella comprensione, consulta questo utile video - Come controllare i relè con Arduino

Ho fornito lo schema del circuito per il transistor e il relè. C'è anche un diagramma della fritzing breadboard, per aiutarti a capire le connessioni.

Successivamente, preparare la spina maschio come mostrato nelle immagini sopra ...

Step 8: Touch Controlled Light: - Creare una scatola per il relè ...

Ho usato una scatola di plastica di 5 * 2 * 2 pollici per alloggiare il relè e i fili. Potrebbe essere un po 'troppo grande, ma abbastanza buono per la dimostrazione. La mia intenzione principale era di tenere separati i cavi dell'alta tensione dall'Arduino e dal mio corpo.

Prepara la scatola:

Tagliare un foro quadrato dal coperchio della scatola per adattarsi alla spina femmina. Praticare i fori per le viti, quindi inserire la spina. Attaccare il relè sul fondo della scatola.

Crea connessioni:

Il circuito che coinvolge l'alta tensione è molto semplice. Segui le immagini e i relativi tag o i seguenti passaggi:

  1. Relè COM su un terminale dell'alimentazione di rete.
  2. Il relè è NO su un terminale dell'apparecchio.
  3. L'altro terminale della rete al secondo terminale dell'apparecchio.

Step 9: Touch Controlled Light: - Aggiungi il Touch Sensor e Arduino ...

Attacca un pezzo di pellicola sulla scatola con del nastro adesivo come mostrato sopra. Questo è collegato al pin di ricezione dell'Arduino (pin 2 nel mio caso). Il "pin led", o pin 42 nel mio caso, è collegato al transistor.

Step 10: Touch Controlled Light: - Finito!

Collegare la spina maschio alla presa di corrente e collegare l'apparecchio che si desidera controllare alla scatola. Accendi il tuo Arduino con una batteria.

Ecco qua: la tua luce controllata al tocco! È possibile utilizzare più relè e sensori tattili per controllare più apparecchi o incorporarli in un sistema di automazione domestica. Per ora lo uso per controllare la mia lampada da scrivania e funziona abbastanza bene.

Ecco un video che mostra il funzionamento dell'interruttore touch ...

Inoltre ho un video che mostra il prototipo funzionante ...

Spero non ti dispiaccia l'esplosione alla fine: P .....

Passaggio 11: interruttore della luce di rilevamento di prossimità

Avvicinare la mano all'interruttore o semplicemente agitando la mano su di essa accenderà o spegnerà una luce. In realtà è molto simile alla "Touch Controlled Light" nei passaggi precedenti. In realtà, quest'ultimo può essere facilmente modificato per rendere questo interruttore di rilevamento della prossimità ...

Tempo : totale <1 ora, +1 ora per la saldatura opzionale

Costo : ~ 1 $, escluso Arduino

Difficoltà : facile

Materiali richiesti:

  • Scheda Arduino
    • Resistenza da 5, 6 M.
    • Resistenza 220ohm
    • Qualsiasi colore LED
    • Foglio
    • Ponticello
    • Relè (opzionale)
    • Spina di rete (maschio e femmina) (opzionale)
  • Passaggio 12: interruttore della luce di rilevamento di prossimità: - il circuito ...

    Il circuito è semplice, è solo una modifica della "Touch Controlled Light". In effetti l'unica cosa che devi cambiare è una resistenza; questa volta devi usare una resistenza di ~ 5M tra i pin 2 e 4 dell'Arduino.

    Passaggio 13: interruttore della luce di rilevamento di prossimità: - il codice ....

    Qui il codice è simile a "Touch Controlled Light". Devi solo cambiare il tempo di debounce nel codice e regolare alcuni altri valori con tentativi ed errori ...

    Copia questo codice e incollalo nella finestra di Arduino ....

     #include int led = 42; // cambia '42' in qualsiasi pin desiderato ... lungo tempo = 0; int state = HIGH; booleano sì; booleano precedente = falso; int debounce = 200; CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // Resistenza da 10 M tra i pin 4 e 2, il pin 2 è il pin del sensore, aggiungere un filo e / o una lamina se desiderato // Per aggiungere altri sensori ... // CapacitiveSensor cs_4_6 = CapacitiveSensor (4, 6); // Resistenza da 10 M tra i pin 4 e 6, il pin 6 è il pin del sensore, aggiungi un filo e / o un foglio // CapacitiveSensor cs_4_8 = CapacitiveSensor (4, 8); // Resistenza 10M tra i pin 4 e 8, il pin 8 è il pin del sensore, aggiunge un filo e / o svuota la configurazione del vuoto () {cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // Calibrare il sensore ... pinMode (led, OUTPUT); } void loop () {long total1 = cs_4_2.capacitiveSensor (30); if (total1> 60) {yes = true;} else {yes = false;} // per attivare / disattivare lo stato di stato if (yes == true && precedente == false && millis () - time> debounce) {if ( stato == BASSO) {stato = ALTO; } else state = LOW; time = millis (); } digitalWrite (led, stato); precedente = sì; Serial .println (millis () - time); ritardo (10); } 

    Passaggio 14: controllo degli apparecchi ad alta tensione ...

    Per controllare apparecchi ad alta tensione, è necessario un relè. Seguire le stesse istruzioni per la configurazione del relè come nel progetto precedente ...

    Step7- Aggiunta di un relè

    Passaggio 15: controller touchless 3D

    Questo controller 3D traccia la posizione della tua mano in 3 dimensioni. Si basa sul rilevamento tattile capacitivo. Come il progetto precedente, l'interruttore della luce di rilevamento di prossimità, il sensore tattile sarà in grado di rilevare la mano da pochi pollici di distanza.

    Questo progetto è ispirato al fantastico Controller 3D fai-da-te Instructable di kylemcdonald. Dai un'occhiata anche al suo Instructable per avere un'idea di questo controller 3D ...

    Ci sono molte cose che puoi fare con questo controller 3D, ad esempio come un mouse del computer, per controllare una scena di animazione 3D, controllare i cubi di LED e molto altro. Ma ovviamente, non sono così facili ed economici da fare.

    Quindi ho un progetto semplice ma interessante adatto ai principianti: un LED RGB controllato con tracker 3D. Fondamentalmente puoi controllare il colore di un LED muovendo la mano in diverse posizioni. Non l'hai capito? Passa al passaggio successivo per ulteriori informazioni ....

    Passaggio 16: come funziona e materiali ...

    Questo controller 3D ha 3 sensori tattili, che rispondono da pochi pollici di distanza. Giudicando la distanza da ciascun sensore, l'Arduino può calcolare le coordinate x, ye z della tua mano.

    Il LED RGB ha 3 colori: rosso, verde e blu. La luminosità di ciascun colore dipende dalle rispettive coordinate della mano. Ad esempio, minore è la coordinata x (più la mia mano è vicina al sensore destro), più luminoso è il colore rosso del LED RGB.

    Tempo : 1 - 1, 5 ore

    Costo : <$ 1, escluso Arduino ...

    Difficoltà : facile

    Materiali richiesti:

    • Foglio di alluminio
    • Scheda Arduino (raccomando l'uno)
    • Resistori da 10k ohm x3
    • Resistori 220kohm x3
    • Resistori da 220 ohm x3
    • Filo
    • LED RGB

    Passaggio 17: Preparazione dei sensori tattili ....

    Abbiamo bisogno di tre pezzi separati di pellicola, con dimensioni di circa 8 * 8 pollici. Un pezzo di pellicola è bloccato su una spessa base di polistirolo (thermocol). Le fessure sono realizzate sul polistirolo su 2 lati adiacenti della lamina, come mostrato nelle immagini sopra.

    Gli altri due pezzi di lamina sono bloccati su un supporto (che è di cartone bianco).

    Questi due pezzi di mountboard sono inseriti nelle fessure dello Styrofoam, perpendicolari tra loro e allo Styrofoam, come mostrato nelle immagini sopra.

    Per rendere il tutto robusto, ho usato un piccolo pezzo rettangolare di mountboard per tenere insieme i due mountboard con il foglio. Le immagini sopra e i loro tag aiuteranno sicuramente molto.

    Step 18: The Circuit ...

    Collegare un filo a ciascun sensore a sfioramento con nastro isolante. Quindi assemblare il circuito su una breadboard, con l'aiuto del layout della breadboard Fritzing sopra.

    Passaggio 19: carica il codice ...

    Il codice è riportato nell'allegato in basso. Basta fare clic su di esso e copiare e incollare il codice nella finestra del codice Arduino.

    Prima di eseguire il caricamento, assicurati di apportare modifiche ai pin, se necessario.

    Calibrazione dei sensori tattili ..

    Dopo aver caricato il codice, apri Serial Monitor, con Arduino ancora connesso. Vedrai scorrere molte linee di valori, con ogni linea con 3 valori che rappresentano ciascun sensore tattile. Toccare un sensore a tocco singolo (è necessario sapere quale si sta toccando) e vedere il valore corrispondente sul monitor seriale.

    Vedrai questa riga nel codice prima di void setup () {

     int maxval = 20; 

    Cambia 20 nel valore ottenuto dopo aver toccato uno dei sensori.

    Quindi caricare nuovamente il codice. Spostare la mano all'interno del controller 3D produrrà una varietà di colori.

    Nota importante: il codice seguente funziona solo per le schede compatibili con Arduino Uno (e probabilmente Leonardo). Ho provato il Mega e non ha funzionato, perché ha "PORTI" molto diversi (anche se all'inizio mi è stato difficile capire, questo è per i tipi più esperti) ...

    Riepilogo: carica il codice, regola la variabile "maxval" e carica di nuovo. Si consiglia di utilizzare un Arduino Uno o un clone.

    allegati

    • _3d_controller.ino Scarica

    Passaggio 20: conclusione ...

    Questi sono solo 3 progetti che puoi realizzare con il tocco capacitivo. Spero che ti diano una solida idea sull'uso dei sensori tattili per creare cose fantastiche. Non limitarti a fermarti qui: le cose che puoi fare con il rilevamento tattile capacitivo sono infinite: tastiere touch, trackpad, mouse per computer touchless, orologio touch controllato sono solo alcune delle innumerevoli idee a cui riesco a pensare.

    Andare avanti.....

    Potresti fare di più con i progetti che ho mostrato. Ad esempio, usando l'idea del 1 ° progetto, crea una scheda di commutazione a sfioramento per controllare diverse luci e ventilatori in una stanza. O forse incorporarlo in un progetto di automazione domestica.

    Con l'idea della prossimità che rileva la luce, prova a creare una lampada da scrivania automatica, che rilevi la tua presenza.

    Con il controller 3D, prova a creare un mouse 3D con un Arduino Leonardo. O utilizzare un programma di elaborazione per comunicare con il controller 3D.

    Altri tutorial e altro ...

    playground.arduino.cc/Main/CapSense

    Tutorial di Hackaday

    Ecco un ottimo video (non è il mio però) solo un semplice tutorial touch capacitivo, che ho anche trattato. Un video può rendere le cose più chiare però ...

    Passaggio 21: commentare ed esprimere le proprie opinioni ...

    Con il tuo aiuto posso sicuramente migliorare questo Instructable ..

    Articoli Correlati