Taula de continguts:

Sensor tàctil resistent de 5 fils: 10 passos
Sensor tàctil resistent de 5 fils: 10 passos

Vídeo: Sensor tàctil resistent de 5 fils: 10 passos

Vídeo: Sensor tàctil resistent de 5 fils: 10 passos
Vídeo: Camera Sensor Cleaning Tutorial 2024, Juliol
Anonim
Sensor tàctil resistent de 5 fils
Sensor tàctil resistent de 5 fils

Hola Hola!

Fa temps que treballo en aquest lloc i sembla que ha canviat força. Finalment estic a punt per tornar al volant per a un altre projecte, i crec que és el moment de canviar una mica les coses jo mateix!

Ja feia temps que tenia en ment un projecte basat en Plate and Ball de 271828, però he d’aprendre molt sobre els sensors i la teoria del control abans que acabi. Vaig pensar que mentre aprengués una cosa o dues, us podria portar amb mi.

Amb aquest objectiu, el meu objectiu en aquests tutorials serà una mena d’híbrid entre els meus tutorials més elegants i un registre del propi projecte. Cada tutorial individual serà un pas en aquest viatge i inclourà detalls que he analitzat anteriorment, com ara el desenvolupament de codi (en lloc del codi acabat de completar) i els passos equivocats que vaig fent pel camí.

Estic molt il·lusionat per aquest nou projecte i em fa il·lusió veure el seu funcionament.

Avui només aconseguirem un senzill panell tàctil de 5 fils que funciona amb un DP-32.

Comencem!

Pas 1: què necessiteu

El que necessiteu
El que necessiteu

Com que aquest tutorial tracta de fer funcionar un únic sensor, no necessiteu gaire més que un microcontrolador i el panell tàctil.

  • Un microcontrolador.

    Estic fent servir el meu DP32 amb una placa integrada perquè fa que la creació de prototips sigui increïblement senzilla

  • Assortiment de cables i cables.

    Podria haver utilitzat el cable de cinta integrat del panell tàctil, però si es trenca, tot el panell no serveix de res. En lloc d’això, faig servir un cable de 6 fils per reduir l’estrès al cable incorporat

  • El panell tàctil resistiu de 5 fils titular.

    Tenia un panell tàctil resistiu de 4 fils, però el cable de cinta es va trencar

I ja està!

Pas 2: què és un panell tàctil resistent de 5 fils?

Què és un panell tàctil resistent de 5 fils?
Què és un panell tàctil resistent de 5 fils?
Què és un panell tàctil resistent de 5 fils?
Què és un panell tàctil resistent de 5 fils?
Què és un panell tàctil resistent de 5 fils?
Què és un panell tàctil resistent de 5 fils?

Si heu llegit el meu tutorial de panells tàctils de 4 fils, coneixereu la idea general d’un sensor tàctil resistiu, però els panells de 5 fils i els panells de 4 fils funcionen una mica diferent.

M'agrada aquest panell perquè es poden veure totes les traces de filferro, cosa que fa que sigui fàcil veure què fa què. A la primera imatge, he pintat de manera diferent cada traça. És probable que vegeu que quatre dels cables (rosa, groc, taronja i porpra) van a cadascun dels quatre angles. El cable intermedi (vermell) va al panell del sensor flexible.

A la segona imatge, hem definit dos dels quatre cables (superior dret i inferior dret) a una alta tensió (que es mostra en vermell), mentre que els altres dos (superior esquerre i inferior esquerre) es defineixen a baix tensió (es mostra en blau). Això crea un gradient de tensions a tot el panell. En aquest cas, el gradient va al llarg de l'eix X, de manera que una tensió més alta representa una posició més elevada al llarg de l'eix X.

Quan toquem el dit cap al tauler, això deprimeix el sensor flexible, connectant-nos a algun lloc al llarg del gradient de l’eix X. Els sensors de tensió del nostre microcontrolador poden detectar aquesta tensió i us indiquen on toca el dit a l’eix X.

A la tercera imatge, podeu veure com canvia la configuració per permetre’ns detectar al llarg de l’eix Y. D’aquesta manera, podem saber on toca el dit en l’espai en 2D.

Pas 3: cablejat

Cablejat
Cablejat
Cablejat
Cablejat

Com podeu veure a les imatges anteriors, he connectat les quatre cantonades cadascuna al seu propi pin de sortida digital. Això em permetrà ajustar-los individualment a més o menys. El meu pin del sensor es connecta a un pin d’entrada analògica. L’aspecte positiu d’una pantalla tàctil de 5 fils, a diferència d’un 4 fils, és que només necessiteu un pin analògic, mentre que un de 4 cables en necessitaria 2.

El vostre cablejat pot variar, per descomptat, però el meu cablejat és el següent:

L'analògic 0 (pin 6) es connecta al sensor (pin central)

Digital 3 es connecta a la part superior dreta (pin superior)

Digital 2 es connecta a la part superior esquerra (segon pin superior)

El digital 1 es connecta a la part inferior esquerra (segon pin més inferior)

El 0 digital es connecta a la part inferior dreta (pin inferior inferior)

Val la pena assenyalar de nou que estic fent servir un cable de 6 fils per anar entre el microcontrolador i el tauler. He deixat el pin superior d’aquest cable sense connectar.

Pas 4: desenvolupament de programari

Desenvolupament de software
Desenvolupament de software

En el passat, normalment deixava caure un fitxer de programari complet per fer-lo servir, potser amb un breu recorregut pel que fa tot. Això no m’agrada. Vull que aquesta sèrie tracti de projectes en desenvolupament i, amb aquest objectiu, inclouré el desenvolupament real d’aquest programari de principi a fi.

Com és habitual, faré servir l’IDE Arduino, amb el nucli Digilent. Cada secció inclourà un fitxer de codi, captura de pantalla, així com una descripció de les addicions i del que estem intentant aconseguir.

Ara mateix, estic començant amb un senzill programa de parpelleig d'estil de retard, exactament el mateix que trobareu a la carpeta Exemples. Si llegiu aquesta llarga capçalera que vaig escriure, veureu que cada pas d’aquest procés modificarà el programa per apropar-lo al nostre objectiu final.

Pas 5: parpelleja de màquina estatal

Parpelleig de la màquina d’estat
Parpelleig de la màquina d’estat

El meu primer moviment és canviar la funció de parpelleig d'una de basada en "delay ()" a una màquina d'estats.

Per a aquells que no s’utilitzen per canviar declaracions, funciona de manera similar a una instrucció if. Aquest (al quadre taronja) prova la nostra variable "estat" (que comença a 0). Aleshores passa al cas del nostre estat actual. Veureu que el cas 0 i el 2 són els responsables d’encendre i apagar el LED (respectivament), mentre que el cas 1 i el 3 són els responsables d’esperar entre commutadors.

Pas 6: parpelleja del botó

Parpelleu del botó
Parpelleu del botó
Parpelleu del botó
Parpelleu del botó
Parpelleu del botó
Parpelleu del botó

A continuació, volia que es fes servir el botó per parpellejar la llum. En lloc de complicar-ho excessivament, acabo de moure tots els estats cap avall per un (l’estat 0 es converteix en l’estat 1, etc.). En fer-ho, aneu amb compte d’incrementar els estats de sortida i el mateix estat (vegeu la imatge 3).

També he esborrat el segon estat "espera". Això vol dir que el botó encén el llum durant un segon i podeu tornar a prémer el botó immediatament després que s’apagui.

Val a dir que aquest sistema ens renuncia automàticament al botó, perquè hem d’esperar a que el LED s’apagui abans de tornar a l’estat 0 on el botó pot tornar a activar el cicle.

Pas 7: Comunicació en sèrie

Comunicació en sèrie
Comunicació en sèrie
Comunicació en sèrie
Comunicació en sèrie

Aquesta actualització és molt petita. Tot el que volia fer era establir una connexió en sèrie i enviar missatges. A la primera imatge, podeu veure que començo la sèrie a la funció setup (). Dins de la nostra màquina d’estats, he afegit línies als estats 1 i 3 que enviaran missatges senzills a l’ordinador mitjançant sèries.

Pas 8: Lectura de coordenades

Coordenades de lectura
Coordenades de lectura
Coordenades de lectura
Coordenades de lectura
Coordenades de lectura
Coordenades de lectura
Coordenades de lectura
Coordenades de lectura

Està bé que el darrer pas fos fàcil, perquè aquest era un somriure.

Per començar, he afegit variables per al nostre tauler tàctil, incloses algunes variables de temps dedicades tant per al tauler tàctil com per al nostre botó. Veureu per què d’aquí una mica.

He reescrit completament la màquina estatal. Mirar el codi és una mica confús, de manera que he inclòs un diagrama de blocs que hauria d’il·lustrar el que s’ha fet.

Coses a tenir en compte: ara hi ha tres passos d '"espera". Un per a cada configuració del panell tàctil, per deixar que es redueixin els voltatges abans de fer una mesura, i un per donar temps al botó perquè es degoti correctament. Aquests passos d’espera són els motius pels quals volia donar tant al botó com al tauler tàctil les seves pròpies variables de temps.

Nota: la constant DEBOUNCE_TIME pot ser una mica baixa. No dubteu a augmentar-lo.

Pas 9: neteja

Neteja
Neteja
Neteja
Neteja
Neteja
Neteja

Hem arribat a la versió final del codi d’aquest projecte.

Per començar, he afegit una funció anomenada loop_diff () per calcular el temps transcorregut. El rellotge intern del DP32 és llarg sense signar i, tot i que és extremadament improbable, hi ha la possibilitat que el rellotge pugui funcionar en algun moment durant l'execució d'aquest codi *. En aquest cas, simplement restar el temps actual del temps estalviat a btn_time o panel_time ens donarà alguna cosa estranya, així que vaig escriure loop_diff () per detectar quan es produeixen bucles i comportar-me en conseqüència.

També he fet una mica de neteja menor. He eliminat la variable "state_time" que ja no s'utilitza. He canviat de l'etiqueta LED_BUILTIN (que és un estàndard Arduino) a l'etiqueta PIN_LED1 (que és estàndard per a chipKit i el DP32). També he eliminat tots els missatges de Serial sobre l’inici i la finalització del procés, cosa que fa que les nostres dades de Serial siguin molt més netes.

* Vaig fer les matemàtiques fa anys i crec que per a la funció millis () es necessitaria una setmana de temps d’execució constant abans que la variable es posés en bucle.

Pas 10: Pensaments finals

Pensaments finals
Pensaments finals

I ja està!

Si ho heu seguit, ara hauríeu de tenir un panell tàctil connectat al microcontrolador. Aquest era un projecte petit, però forma part d’un projecte més gran. Estic treballant per aconseguir alguna cosa com Plate and Ball de 271828, i em queda molt camí per recórrer abans que això passi. Intentaré portar-vos tot el procés i cada part hauria de ser el seu propi petit projecte.

Aquest és un procés d'aprenentatge per a mi, així que no dubteu a deixar els vostres pensaments i suggeriments als comentaris que hi ha a continuació.

Gràcies, i ens veurem la propera vegada!

Recomanat: