Sommario:

Occhiali per il relax - ITTT: 5 passaggi (con immagini)
Occhiali per il relax - ITTT: 5 passaggi (con immagini)

Video: Occhiali per il relax - ITTT: 5 passaggi (con immagini)

Video: Occhiali per il relax - ITTT: 5 passaggi (con immagini)
Video: OCCHIALI MULTIFOCALI O PROGRESSIVI: COME ABITUARSI/MULTIFOCAL GLASSES 2024, Luglio
Anonim
Occhialini relax - ITTT
Occhialini relax - ITTT
Occhialini relax - ITTT
Occhialini relax - ITTT
Occhialini relax - ITTT
Occhialini relax - ITTT

Progetto HKU - ITTT (Se questo poi quello) - Julia Berkouwer, 1B

Ti sei mai sentito stressato e non sai come calmarti, allora dovresti provare questi occhiali rilassanti! Li indossi e chiudi gli occhi, quindi verrà riprodotto uno schema di respirazione. Seguendo questo schema di respirazione, il tuo ritmo respiratorio scenderà a inspirare ed espirare 6 volte al minuto. In questo modo si allevia lo stress quotidiano.

Puoi anche monitorare l'intensità della tua respirazione premendo un interruttore, usando un sensore fsr.

Con questo tutorial ti guiderò passo dopo passo nella costruzione dei tuoi occhialini per il relax.

Passaggio 1: materiali e parti necessarie:

Materiali e parti necessarie
Materiali e parti necessarie
Materiali e parti necessarie
Materiali e parti necessarie
Materiali e parti necessarie
Materiali e parti necessarie

Materiali:

1x arduino uno;

1xbreadboard o PCV;

3 resistenze da 10k

Fili (preferibilmente di colori diversi in modo che sia più facile dire quali cose andranno a terra e quali a pin diversi, ecc.);

Alcuni tubi termorestringenti;

2x anello NeoPixel - LED RGB 16 x 5050 con driver integrati;

1x interruttore;

1x sensore FSR;

1x occhiali SteamPunk (puoi acquistarli in un negozio per feste, sono facili da usare perché l'anello in neopixel si adatta perfettamente agli occhiali. Prova sempre a usare altri occhiali o creane uno tuo.);

1x una sorta di elastico (elastico) da mettere intorno al petto.

Strumenti:-Laptop

-Saldatore

-Software Arduino IDE

Vedrai due pulsanti e un interruttore sul mio pvc, uso solo il pulsante sinistro per collegarlo all'interruttore, non uso il secondo pulsante a destra dell'immagine. Ho messo i pulsanti sul pvc prima di rendermi conto che non mi servivano e che invece avevo bisogno di usare un interruttore.

Qui sotto vedrai le immagini di tutto ciò che ho usato:

Passaggio 2: anelli Neopixel

Anelli Neopixel
Anelli Neopixel

Il filo bianco è collegato a terra sul retro dell'anello neopixel.

Il filo arancione è collegato al 5V.

E il filo marrone è collegato all'ingresso dati

Passaggio 3: connessioni

Connessioni
Connessioni
Connessioni
Connessioni

Questo è l'aspetto della mia breadboard durante la prototipazione, puoi usarlo come riferimento.

Ho anche realizzato un layout del cablaggio di come dovrebbe apparire con un solo pulsante.

Passaggio 4: il codice:

Probabilmente non è il codice più efficiente, ma funziona per me. Sfida te stesso e cerca di renderlo più efficiente;P

#includere

// Quale

pin su Arduino è collegato ai NeoPixel?

#definire

PIN 6

// Quale

pin su Arduino è collegato al pulsante

#definire

BUTTON_PIN 9

// Come

quanti NeoPixel sono collegati ad Arduino?

#definire

NUMPIXELS 16

// Quando

impostiamo la libreria NeoPixel, le diciamo quanti pixel e quale pin usare per inviare i segnali.

// Nota

che per le vecchie strisce NeoPixel potrebbe essere necessario modificare il terzo parametro--guarda lo strandtest

//

esempio per maggiori informazioni sui possibili valori.

Adafruit_NeoPixel

pixel = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int pausa

= 1; //ritardo2

int

pausa2 = 80; //scendo quando si usa fsr

int

pausa3 = 150; // facendo su quando viene utilizzato fsr

int

valore ritardo = 4; // ritardo1

int

fsrPin = 0; // l'FSR e il pulldown 10K sono collegati a a0

int

fsrLettura;

vuoto

impostare() {

pinMode(BUTTON_PIN, INPUT);

Serial.begin(9600);

pixel.begin(); // Questo inizializza il

Libreria NeoPixel.

pixel.mostra();

}

bool

buttonpressed(int pin){

restituisce digitalRead(pin);

}

vuoto

loop() { // legge se l'input del pin è vero o falso

fsrReading = analogRead(fsrPin);

Serial.print("Lettura analogica = ");

Serial.print(fsrReading);

if (pulsante premuto(BUTTON_PIN) == true){

// effetto luce quando si utilizza il sensore fsr

if (fsrReading > 50){

pixels.setPixelColor(0, 1, 0, 1);

pixels.setPixelColor(15, 1, 0, 1);

pixels.setPixelColor(1, 1, 0, 1);

pixels.setPixelColor(14, 1, 0, 1);

pixel.mostra();

ritardo(pausa3);

}

if (fsrReading < 52){

pixels.setPixelColor(0, 0, 0, 0);

pixels.setPixelColor(15, 0, 0, 0);

pixels.setPixelColor(1, 0, 0, 0);

pixels.setPixelColor(14, 0, 0, 0);

pixel.mostra();

ritardo(pausa2);

}

if (fsrReading > 57){

pixels.setPixelColor(2, 1, 0, 1);

pixels.setPixelColor(13, 1, 0, 1);

pixels.setPixelColor(3, 1, 0, 1);

pixels.setPixelColor(12, 1, 0, 1);

pixel.mostra();

ritardo(pausa3);

}

if (fsrReading < 59){

pixels.setPixelColor(2, 0, 0, 0);

pixels.setPixelColor(13, 0, 0, 0);

pixels.setPixelColor(3, 0, 0, 0);

pixels.setPixelColor(12, 0, 0, 0);

pixel.mostra();

ritardo(pausa2);

}

if (fsrReading > 65){

pixels.setPixelColor(4, 1, 0, 1);

pixels.setPixelColor(11, 1, 0, 1);

pixels.setPixelColor(5, 1, 0, 1);

pixels.setPixelColor(10, 1, 0, 1);

pixel.mostra();

ritardo(pausa3);

}

if (fsrReading <67){

pixels.setPixelColor(4, 0, 0, 0);

pixels.setPixelColor(11, 0, 0, 0);

pixels.setPixelColor(5, 0, 0, 0);

pixels.setPixelColor(10, 0, 0, 0);

pixel.mostra();

ritardo(40);

}

if (fsrReading > 79){

pixels.setPixelColor(6, 1, 0, 1);

pixels.setPixelColor(9, 1, 0, 1);

pixels.setPixelColor(7, 1, 0, 1);

pixels.setPixelColor(8, 1, 0, 1);

pixel.mostra();

ritardo(pausa3);

}

if (fsrReading <85){

pixels.setPixelColor(6, 0, 0, 0);

pixels.setPixelColor(9, 0, 0, 0);

pixels.setPixelColor(7, 0, 0, 0);

pixels.setPixelColor(8, 0, 0, 0);

pixel.mostra();

ritardo(20);

}

}

altro{

respiro_blu(20, 100, 0, 1, 1); // normale

effetto

}

}

// Pausa

= ritardo tra le transizioni

// Passi

= numero di passi

// R, G, B = Valori RGB completi

// De void Breath is voor het licht effect als de

fsrsensor niet gebruikt wordt. Deze void wordt in de void loop() weer aangeroepen.

void Breath_blue(int pausa, int passi, byte R, byte G, byte B) {

int

tmpR, tmpG, tmpB; // Valori temporanei

// Dissolvenza

for (int s=1; s<=passi; s++) {

tmpR = (R * s) /

passaggi; // Moltiplica prima per evitare errori di troncamento

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0;

iopixels.setPixelColor(0, tmpR, tmpG+1, tmpB);

pixels.setPixelColor(15, tmpR, tmpG+1, tmpB);

}

pixel.mostra();

ritardo(4);

}

// Dissolvenza

for (int s=1; s<=passi; s++) {

tmpR = (R * s) /

passaggi; // Moltiplica prima per evitare errori di troncamento

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0;

iopixels.setPixelColor(1, tmpR, tmpG+1, tmpB);pixels.setPixelColor(14, tmpR, tmpG+1, tmpB);

}

pixel.mostra();

ritardo(4);

}

// Dissolvenza

for (int s=1; s<=passi; s++) {

tmpR = (R * s) /

passaggi; // Moltiplica prima per evitare errori di troncamento

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0;

iopixels.setPixelColor(2, tmpR, tmpG+2, tmpB);pixels.setPixelColor(13, tmpR, tmpG+2, tmpB);

}

pixel.mostra();

ritardo(3.5);

}

// Dissolvenza

for (int s=1; s<=passi; s++) {

tmpR = (R * s) /

passaggi; // Moltiplica prima per evitare errori di troncamento

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0;

iopixels.setPixelColor(3, tmpR, tmpG+3, tmpB+5);pixels.setPixelColor(12, tmpR, tmpG+3, tmpB+5);

}

pixel.mostra();

ritardo (3);

}

per (int i=0;

iopixels.setPixelColor(0, 0, 0, 0);pixels.setPixelColor(15, 0, 0, 0);

}

// Dissolvenza

for (int s=1; s<=passi; s++) {

tmpR = (R * s) /

passaggi; // Moltiplica prima per evitare errori di troncamento

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0;

io

pixels.setPixelColor(4, tmpR, tmpG+3, tmpB+15);pixels.setPixelColor(11, tmpR, tmpG+3, tmpB+15);

}

pixel.mostra();

ritardo (3);

}

// Dissolvenza

for (int s=1; s<=passi; s++) {

tmpR = (R * s) /

passaggi; // Moltiplica prima per evitare errori di troncamento

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0;

iopixels.setPixelColor(5, tmpR, tmpG+4, tmpB+20);pixels.setPixelColor(10, tmpR, tmpG+4, tmpB+20);

}

pixel.mostra();

ritardo(2);

}

per (int i=0;

iopixels.setPixelColor(1, 0, 0, 0);

pixels.setPixelColor(14, 0, 0, 0);

}

// Dissolvenza

for (int s=1; s<=passi; s++) {

tmpR = (R * s) /

passaggi; // Moltiplica prima per evitare errori di troncamento

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0;

iopixels.setPixelColor(6, tmpR, tmpG+2, tmpB+40);

pixels.setPixelColor(9, tmpR, tmpG+2, tmpB+40);

}

pixel.mostra();

ritardo(ritardo);

}

per (int i=0;

iopixels.setPixelColor(2, 0, 0, 0);pixels.setPixelColor(13, 0, 0, 0);

}

// Dissolvenza

for (int s=1; s<=passi; s++) {

tmpR = (R * s) /

passaggi; // Moltiplica prima per evitare errori di troncamento

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0;

io

pixels.setPixelColor(7, tmpR, tmpG, tmpB+44);pixels.setPixelColor(8, tmpR, tmpG, tmpB+44);

}

pixel.mostra();

ritardo(ritardo);

}

// Dissolvenza

for (int s=passi; s>0; s--) {

tmpR = (R * s) / passi; // Moltiplica prima per evitare il troncamento

errori

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0; i

pixels.setPixelColor(7, tmpR, tmpG, tmpB);

pixels.setPixelColor(8, tmpR, tmpG, tmpB);

}

pixel.mostra();

ritardo(1);

}

// Dissolvenza

for (int s=passi; s>0; s--) {

tmpR = (R * s) / passi; // Moltiplica prima per evitare il troncamento

errori

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0; i

pixels.setPixelColor(6, tmpR, tmpG, tmpB);

pixels.setPixelColor(9, tmpR, tmpG, tmpB);

}

pixel.mostra();

ritardo(1);

}

// Dissolvenza

for (int s=passi; s>0; s--) {

tmpR = (R * s) / passi; // Moltiplica prima per evitare il troncamento

errori

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0; i

pixels.setPixelColor(5, tmpR, tmpG, tmpB);

pixels.setPixelColor(10, tmpR, tmpG, tmpB);

}

pixel.mostra();

ritardo(2);

}

// Dissolvenza

for (int s=passi; s>0; s--) {

tmpR = (R * s) / passi; // Moltiplica prima per evitare il troncamento

errori

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0; i

pixels.setPixelColor(4, tmpR, tmpG, tmpB);

pixels.setPixelColor(11, tmpR, tmpG, tmpB);

}

pixel.mostra();

ritardo(2);

}

// Dissolvenza

for (int s=passi; s>0; s--) {

tmpR = (R * s) / passi; // Moltiplica prima per evitare il troncamento

errori

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0; i

pixels.setPixelColor(3, tmpR, tmpG, tmpB);

pixels.setPixelColor(12, tmpR, tmpG, tmpB);

}

pixel.mostra();

ritardo (3);

}

// Dissolvenza

for (int s=passi; s>0; s--) {

tmpR = (R * s) / passi; //

Moltiplica prima per evitare errori di troncamento

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0; i

pixels.setPixelColor(2, tmpR, tmpG, tmpB);

pixels.setPixelColor(13, tmpR, tmpG, tmpB);

}

pixel.mostra();

ritardo (3);

}

// Dissolvenza

for (int s=passi; s>0; s--) {

tmpR = (R * s) / passi; // Moltiplica prima per evitare il troncamento

errori

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0; i

pixels.setPixelColor(1, tmpR, tmpG, tmpB);

pixels.setPixelColor(14, tmpR, tmpG, tmpB);

}

pixel.mostra();

ritardo(4);

}

// Dissolvenza

for (int s=passi; s>0; s--) {

tmpR = (R * s) / passi; // Moltiplica prima per evitare il troncamento

errori

tmpG = (G * s) / passi;

tmpB = (B * s) / passi;

per (int i=0; i

pixels.setPixelColor(0, tmpR, tmpG, tmpB);

pixels.setPixelColor(15, tmpR, tmpG, tmpB);

}

pixel.mostra();

ritardo(4);

}

}

Passaggio 5: mettere tutto insieme:

Mettere tutto insieme
Mettere tutto insieme

Potresti semplicemente lasciare tutti i tuoi fili collegati alla tua breadboard o a un PVC, dipende da te (ho scelto di mettere un PVC sopra l'arduino è bello e pulito in quel modo).

Il prossimo passo è mettere i tubi termorestringenti attorno a tutti i fili in modo che sia meno disordinato.

Se hai scelto di usare un PVC, dovresti aver saldato tutto insieme ormai.

Dopodiché metti gli anelli in neopixel all'esterno degli occhiali (assicurati che i led siano allineati in basso) e fissali in posizione con del nastro adesivo o della colla (io ho usato del nastro adesivo).

Puoi scegliere di attaccare il sensore fsr all'elastico con del nastro adesivo o semplicemente lasciarlo fuori da solo.

Goditi i tuoi occhiali:)

Consigliato: