Taula de continguts:
- Pas 1: què necessitem?
- Pas 2: prototipatge:
- Pas 3: Codi:
- Pas 4: ara per al cas:
- Pas 5: el resultat final hauria de ser semblant a això:
- Pas 6: soldar
- Pas 7: ja hem acabat
Vídeo: Llum interactiva sense tacte: 7 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Hola a tothom! M'agradaria compartir el projecte en què he estat treballant aquí. Em vaig inspirar a experimentar amb la detecció tàctil capacitiva a través d’un projecte a la meva universitat. Vaig conèixer aquesta tecnologia a través d’instruccions instructives i vaig utilitzar les coses que vaig aprendre aquí i d’altres llocs d’Internet per construir el meu propi controlador sense tacte, que utilitzo per combinar diferents valors RGB per crear interessants colors clars.
Per començar, quan vaig començar aquest projecte no sabia gairebé res ni sobre l’electrònica ni sobre la detecció tàctil capacitiva.
Alguns dels problemes que vaig trobar abans es van produir per malentendre el que realment passa. Per tant, una breu introducció de com ho entenc:
Un sensor capacitiu utilitza múltiples components, principalment:
Un condensador (en aquest projecte fem servir paper d'alumini, però també és possible utilitzar fluids conductors, etc.), cables (per descomptat, la seva electrònica)
i una resistència, qualsevol cosa inferior a 10 MOhm és una resistència massa petita per tenir més que un tacte directe.
la forma en què funciona és mesurant una diferència de temps entre el punt A i el punt B. Des del pin d'inici envia un senyal a un pin final, el temps que triga es mesura amb un temporitzador. En disminuir el valor de resistència (en acostar un condensador (en aquest cas la mà) més proper al condensador del sensor (el paper d'alumini) aquest temps s'escurça, la diferència de temps és el que el sensor retorna com a valor.
A causa que el sensor es veu afectat per les superfícies capacitives, les dades poden ser enormement erràtiques a causa de la interferència. Això es pot solucionar en gran part aïllant correctament el condensador i també mitjançant una terra (mostraré com més endavant).
Per tant, ara no podem començar a inventariar tot el que necessitem:
Pas 1: què necessitem?
Electrònica:
1. 2 x 22M Ohm + resistències (com més gran sigui el valor de resistència, més lluny reacciona el vostre sensor, personalment he utilitzat 22M Ohm, el mínim per obtenir dades útils que he experimentat va ser de 10M Ohm)
2. Resistències de 3x 330 Ohm
3. Fils
4. Taula de pa
5. Circuit (el meu tenia tires de coure continouos)
6. Múltiples leds RGB de càtode comuns (he utilitzat 8, però podeu tenir més o menys depèn de la quantitat de llum que vulgueu)
7. Paper d’alumini
8. Adheriu-lo
9. Arduino Uno
10. Cinta
El cas:
1. Fusta: he utilitzat MDF de 50 x 50 x 1,8 CM (podeu fer servir qualsevol cosa. Depèn de l'efecte que vulgueu i de les eines que tingueu a la vostra disposició)
2. El plexiglàs acrílic he utilitzat 50 x 50 x 0,3 CM (o qualsevol altre material transparent / translúcid com el paper d'arròs)
3. Paper de vidre (paper de vidre fi)
4. Cola de fusta
5. nit (opcional)
6. Cola acrílica
Eines:
Decapant de filferro
Soldador + estany
Ganivet Stanley
trepant
Serra (he utilitzat una serra de taula)
Pas 2: prototipatge:
Ara ho tenim tot i podem començar a fer un prototip per veure com funciona:
Treball de preparació:
Retalleu 4 rectangles del paper d’alumini (els meus mesuren aproximadament 10 cm per 5 cm), emboliqueu-los amb paper adhesiu per aïllar-los del tacte directe i enganxeu-hi un cable al paper d’alumini. Acabo de gravar un extrem pelat al paper d'alumini (sempre que estiguin en contacte).
Per assegurar-me que l’alumini estigui aïllat de forma segura, vaig embolicar-lo en paper adhesiu i el vaig planxar entre papers (només uns segons perquè no es fongui del tot).
A continuació, configureu el circuit tal com es veu a la imatge.
El pin 4 s’utilitza com a pin d’enviament per als dos sensors, mentre que els pins de recepció són els pins 2 i 5. Podeu utilitzar diversos pins d’enviament, però causa problemes, ja que no estan perfectament sincronitzats.
utilitzeu aquesta configuració per a la depuració abans de soldar-ho tot junt, per assegurar-vos que tot funcioni realment com es volia.
Pas 3: Codi:
Ara ho tenim tot i podem començar a depurar els sensors.
Per utilitzar el meu codi, heu de descarregar la biblioteca de detecció capacitiva d'Arduino i instal·lar-la segons les indicacions de la pàgina de referència: Feu clic a mi
El codi: (no sóc capaç de codificar, així que si sabeu fer-ho millor, feu-ho)
#include // importa la biblioteca de codis
CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // Enviar pin = 4, rebre són 2 i 5 CapacitiveSensor cs_4_5 = CapacitiveSensor (4, 5); const int redPin = 11; const int greenPin = 10; const int bluePin = 9; const int numIndexR = 10; // mida de la matriu const int numIndexG = 10; int colorR = 0; int colorG = 0; color flotant B = 0; int indexR [numIndexR]; int posIndexR = 0; llarg total R = 0; // ha de ser llarg perquè el total de la meva matriu era gran per a un nombre enter. int mitjana R = 0; int indexG [numIndexG]; int posIndexG = 0; llarg total G = 0; int mitjana G = 0; void setup () {pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); for (int thisIndexR = 0; thisIndexR <numIndexR; thisIndexR ++) {// estableix la matriu a 0 indexR [thisIndexR] = 0; } per a (int thisIndexG = 0; thisIndexG = 4500) {// limiteu els valors del sensor fins a un màxim útil, això no és el mateix per a cada valor de resistència i també pot diferir una mica d'un entorn a un altre. les seves pròpies necessitats. total1 = 4500; } if (total2> = 4500) {total2 = 4500; } totalR = totalR - indexR [posIndexR]; // aquí es crea una matriu que afegeix contínuament una sortida del sensor i produeix la mitjana. indexR [posIndexR] = total1; totalR = totalR + indexR [posIndexR]; posIndexR = posIndexR + 1; if (posIndexR> = numIndexR) {posIndexR = 0; } mitjanaR = totalR / numIndexR; // fem servir la mitjana en lloc de les dades brutes per suavitzar la sortida, alenteix lleugerament el procés, però també crea un bon flux suau. totalG = totalG - indexG [posIndexG]; indexG [posIndexG] = total2; totalG = totalG + índexG [posIndexG]; posIndexG = posIndexG + 1; if (posIndexG> = numIndexG) {posIndexG = 0; } mitjanaG = totalG / numIndexG; if (averageR> = 2000) {// no volem que els leds canviïn constantment de valor tret que hi hagi informació de la vostra mà, de manera que això ens assegura que no es tinguin en compte totes les lectures ambientals més baixes. colorR = mapa (mitjana R, 1000, 4500, 255, 0); analogWrite (redPin, colorR); } else if (averageR = 1000) {colorG = map (averageG, 1000, 4500, 255, 0); analogWrite (greenPin, colorG); } else if (averageG <= 1000) {colorG = 255; analogWrite (greenPin, colorG); } if (colorR <= 125 && colorG <= 125) {// B funciona una mica diferent perquè només he utilitzat 2 sensors, de manera que he assignat B als dos sensors colorB = mapa (colorR, 255, 125, 0, 127,5) + mapa (colorG, 255, 125, 0, 127,5); analogWrite (BluePin, colorB); } else {colorB = mapa (colorR, 255, 125, 127,5, 0) + mapa (colorG, 255, 125, 127,5, 0); if (colorB> = 255) {colorB = 255; } if (colorB <= 0) {colorB = 0; } analogWrite (bluePin, colorB); } Serial.print (millis () - start); // això és per depurar Serial.print ("\ t"); Serial.print (colorR); Serial.print ("\ t"); Serial.print (colorG); Serial.print ("\ t"); Serial.println (colorB); retard (1); }
El que fa aquest codi és extreure les dades brutes del sensor (aquestes dades sempre seran lleugerament irregulars a causa de tots els diferents factors que afecten el sensor) i col·loca les dades brutes contínuament en una matriu, quan la matriu arriba al valor màxim (en el meu cas 10) purga l’últim valor i n’afegeix un de nou. Cada vegada que s’afegeix un valor, calcula el valor mitjà i el col·loca en una nova variable. Aquesta variable mitjana s’utilitza per assignar un valor a un valor de 0 a 255, aquest és el valor que escrivim als pins RGB per augmentar la brillantor de cada canal (els canals són R G i B).
Ara, si pengeu el vostre codi a l’arduino i obriu el monitor sèrie, hauríeu de veure els valors RGB més baixos quan passeu la mà sobre cada sensor, també hauria de canviar el color clar del led.
Pas 4: ara per al cas:
El cas: vaig fer el cas fent servir eines disponibles a la meva universitat, de manera que aquest flux de treball no és aplicable per a tothom. Tot i això, no hi ha res d’especial, necessita un forat a un costat perquè hi pugui entrar el port USB, però a part és només una caixa oberta.
Les dimensions són les següents:
15 x 15 CM per a la part superior transparent
i
15 x 8 CM per a la base de fusta (el gruix de la fusta era d’1,8 CM per a mi).
Vaig utilitzar una serra de taula per tallar una placa de MDF en les dimensions correctes que necessitava (que són 4 panells de 15 x 8 CM i 1 tauler de terra de 15 x 15 CM), després dels quals vaig tallar les cantonades en un angle de 45 graus. Totes les parts que vaig enganxar utilitzant cola de fusta i pinces (deixeu-les assecar almenys 30 minuts), he utilitzat el mateix procediment per al plexiglàs, però amb una fulla de serra especial.
1 dels costats de fusta ha de tenir un forat al centre a l’alçada del endoll USB arduino per permetre que l’arduino es connecti.
Vaig acabar la base de amb xapa. El tallo a trossos una mica més grans que la superfície de cada costat.
Això el vaig enganxar, després el vaig subjectar 30 minuts per cada costat (és millor fer-ho individualment per assegurar-vos que no rellisqui i, després d'assecar-lo, vaig tallar el que quedés fora.
La tapa la vaig enganxar utilitzant una cola específica per a Acryl anomenada Acryfix.
Tingueu en compte que si utilitzeu plexiglàs acrílic, la cola dissol el plexiglàs una mica, així que sigueu el més precís i ràpid possible (s’asseca en un parell de minuts, però s’exposa a l’aire en qüestió de segons).
Per acabar la tapa, he esmerilat el cub amb un sorrejador, però també podeu utilitzar paper de vidre fi, només cal molt més temps perquè quedi uniforme. Tingueu en compte, però, que si utilitzeu paper de vidre, ha de ser de gra fi i també enganxar les parts després del procediment de glaciació (de manera que no es trenqui accidentalment aplicant molta pressió)
Per assegurar-me que el tap no llisqui massa, vaig enganxar un parell de petites barres de fusta a les vores del cub de fusta.
Pas 5: el resultat final hauria de ser semblant a això:
Pas 6: soldar
Si teniu una placa de circuit, podeu començar a soldar totes les peces juntes amb la mateixa configuració que té la vostra taula de proves.
La meva placa de circuit conté tires de coure contínues per facilitar-ne l’ús.
Per a cada sensor vaig tallar un quadrat petit per soldar les resistències i els cables.
Els cables d’enviament (els cables que van del pin 4 a cada sensor) es solden en seqüència a un quadrat separat, amb 1 cable que entra al pin 4.
Vaig mantenir un llarg rectangle per fer una tira led improvisada (mesureu-la perquè quedi dins de la tapa però a les vores de la base). Només podeu soldar els leds en seqüència l’un de l’altre (tingueu en compte a la imatge que heu soldat accidentalment els leds i les resistències del costat equivocat de la placa de circuit, les tires de coure sempre haurien d’estar a la part inferior).
Quan hàgiu acabat de soldar les peces individuals, ajusteu-les a la caixa. No he soldat els fils individuals junts per poder canviar-los fàcilment si cal.
És hora d’ajustar-ho tot a la base: aquest és pràcticament el pas més senzill, l’arduino ha de situar-se primer amb el port USB a través del forat situat a la part posterior de la caixa. Ara afegiu els sensors, assegureu-vos que la làmina del sensor s’adapti a la fusta pels dos costats, amb la làmina de terra recta contra ella. Quan tot encaixi bé, connecteu els leds RGB als passadors de la dreta (9, 10, 11) i deixeu-los recolzar-se a les vores de la base.
Pas 7: ja hem acabat
Si heu seguit tot això, ara hauríeu de tenir una llum de treball amb barreja de colors tàctils capacitius. Diverteix-te!
Recomanat:
Interruptor intel·ligent sense tacte: 8 passos (amb imatges)
Interruptor intel·ligent sense tacte: la necessitat de distanciament social i pràctiques sanitàries segures, com ara utilitzar desinfectants després d’utilitzar entorns públics com aixetes, interruptors, etc., és molt essencial per reduir la propagació del coronavirus. Per tant, hi ha una necessitat immediata en la innovació
Aixeta automàtica (sense tacte) amb Arduino: rentar-se les mans i mantenir-se segur durant la crisi del COVID-19: 4 passos
Aixeta automàtica (sense tacte) amb Arduino: renteu-vos les mans i estigueu segurs durant la crisi del COVID-19: Ei amics! En aquest post, us explicaré el meu prototip que vaig dissenyar per rentar-me les mans amb seguretat. Vaig fer aquest projecte amb recursos limitats. Els interessats poden refer aquest pro
Pintor de llum multicolor (sensible al tacte): 8 passos (amb imatges)
Pintor de llum multicolor (tàctil): la pintura de llum és una tècnica fotogràfica que s’utilitza per crear efectes especials a velocitats d’obturació lentes. Normalment s’utilitza una llanterna per " pintar " les imatges. En aquest instructiu, us mostraré com construir un pintor de llum tot en un amb tacte
Interruptor de llum controlat per control remot Bluetooth: reforma. El commutador de llum encara funciona, sense escriptures addicionals: 9 passos (amb imatges)
Interruptor de llum controlat per control remot Bluetooth: reforma. El commutador de llum continua funcionant, no hi ha cap escrit extra. Alguns taulers BLE / programari emmagatzemen
Refredador / suport per a portàtils de cost zero (sense cola, sense perforació, sense femelles i cargols, sense cargols): 3 passos
Refredador / suport per a portàtils de cost zero (sense cola, sense perforació, sense femelles i cargols, sense cargols): ACTUALITZACIÓ: SI US PLAU VOT PER EL MEU INSTRUCTABLE, GRÀCIES ^ _ ^ TAMBÉ POTS AGRADAR-ME ENTRADA A www.instructables.com/id/Zero-Cost-Aluminum-Furnace-No-Propane-No-Glue-/ O POTS VOTAR ELS MEUS MILLORS AMICS