Obsah:

Relaxační brýle - ITTT: 5 kroků (s obrázky)
Relaxační brýle - ITTT: 5 kroků (s obrázky)

Video: Relaxační brýle - ITTT: 5 kroků (s obrázky)

Video: Relaxační brýle - ITTT: 5 kroků (s obrázky)
Video: NEVHODNÉ OSVĚTLENÍ při práci💡 Zoom: jak svítit na home office? Světlo, výkon a bdělost. 2024, Červenec
Anonim
Relaxační brýle - ITTT
Relaxační brýle - ITTT
Relaxační brýle - ITTT
Relaxační brýle - ITTT
Relaxační brýle - ITTT
Relaxační brýle - ITTT

Projekt HKU - ITTT (If This Then That) - Julia Berkouwer, 1B

Cítili jste se někdy ve stresu a prostě nevíte, jak se uklidnit, pak byste měli vyzkoušet tyto relaxační brýle! Když si je obléknete a zavřete oči, začne hrát dechový vzor. Při dodržování tohoto dechového schématu se váš dýchací rytmus 6krát za minutu zhluboka nadechne a vydechne. Tím se uvolní každodenní stres.

Intenzitu dýchání můžete také sledovat přepnutím přepínače pomocí senzoru fsr.

S tímto toturiálem vás krok za krokem provedu budováním vlastních relaxačních brýlí.

Krok 1: Potřebné materiály a součásti:

Potřebné materiály a součásti
Potřebné materiály a součásti
Potřebné materiály a součásti
Potřebné materiály a součásti
Potřebné materiály a součásti
Potřebné materiály a součásti

Materiály:

1x arduino uno;

1xbreadboard nebo PCV;

3x 10k odpory

Dráty (nejlépe různé barvy, aby bylo snazší zjistit, které věci směřují k zemi a které do různých kolíků atd.);

Některé trubice smršťující teplo;

2x NeoPixel Ring - 16 x 5050 RGB LED s integrovanými ovladači;

1x přepínač;

1x snímač FSR;

1x brýle SteamPunk (Můžete si je koupit v obchodě s party, snadno se používají, protože neopixel prsten na brýle perfektně sedí. Vždy zkuste použít jiné brýle nebo si vytvořte vlastní.);

1x nějaký druh (elastického) pásku, který si dáte kolem hrudníku.

Nástroje: -Laptop

-Páječka

-Arduino IDE software

Na mém pvc uvidíte dvě tlačítka a přepínač, já k připojení k přepínači používám pouze levé tlačítko, druhé tlačítko na pravé straně obrázku nepoužívám. Dal jsem tlačítka na pvc, než jsem si uvědomil, že je nepotřebuji a místo toho jsem potřeboval použít přepínač.

Níže uvidíte obrázky všeho, co jsem použil:

Krok 2: Neopixelové prsteny

Neopixelové prsteny
Neopixelové prsteny

Bílý vodič je připojen k zemi na zadní straně neopixelového prstence.

Oranžový vodič je připojen k 5V.

A hnědý vodič je připojen ke vstupu dat

Krok 3: Připojení

Připojení
Připojení
Připojení
Připojení

Takto vypadal můj prkénko při prototypování, můžete to použít jako referenci.

Jediným tlačítkem jsem také provedl rozvržení kabeláže, jak to má vypadat.

Krok 4: Kód:

Pravděpodobně to není nejúčinnější kód, ale funguje to pro mě. Vyzvěte se a zkuste to zefektivnit; P

#zahrnout

// Který

je pin na Arduinu připojen k NeoPixels?

#definovat

PIN 6

// Který

pin na Arduinu je připojen k tlačítku

#definovat

BUTTON_PIN 9

// Jak

je k Arduinu připojeno mnoho NeoPixelů?

#definovat

NUMPIXELY 16

// Když

nastavíme knihovnu NeoPixel, řekneme jí, kolik pixelů a jaký pin použít k odesílání signálů.

// Poznámka

že u starších proužků NeoPixel budete možná muset změnit třetí parametr-viz strandtest

//

příklad pro více informací o možných hodnotách.

Adafruit_NeoPixel

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

int pauza

= 1; // zpoždění2

int

pause2 = 80; // jde dolů, když se používá fsr

int

pause3 = 150; // dělá to, když se používá fsr

int

delayval = 4; // zpoždění1

int

fsrPin = 0; // FSR a 10K pulldown jsou připojeny k a0

int

fsrReading;

prázdné

založit() {

pinMode (BUTTON_PIN, INPUT);

Serial.begin (9600);

pixely.begin (); // Tím se inicializuje

Knihovna NeoPixel.

pixely.show ();

}

bool

stisknutí tlačítka (int pin) {

vrátit digitalRead (pin);

}

prázdné

loop () {// čte, zda je pinový vstup true nebo false

fsrReading = analogRead (fsrPin);

Serial.print ("Analogové čtení =");

Serial.print (fsrReading);

if (buttonpressed (BUTTON_PIN) == true) {

// světelný efekt při použití snímače fsr

if (fsrReading> 50) {

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

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

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

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

pixely.show ();

zpoždění (pause3);

}

if (fsrReading <52) {

pixely.setPixelColor (0, 0, 0, 0);

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

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

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

pixely.show ();

zpoždění (pause2);

}

if (fsrReading> 57) {

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

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

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

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

pixely.show ();

zpoždění (pause3);

}

if (fsrReading <59) {

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

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

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

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

pixely.show ();

zpoždění (pause2);

}

if (fsrReading> 65) {

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

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

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

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

pixely.show ();

zpoždění (pause3);

}

if (fsrReading <67) {

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

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

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

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

pixely.show ();

zpoždění (40);

}

if (fsrReading> 79) {

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

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

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

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

pixely.show ();

zpoždění (pause3);

}

if (fsrReading <85) {

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

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

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

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

pixely.show ();

zpoždění (20);

}

}

jiný{

dýchat_modrou (20, 100, 0, 1, 1); // normální

účinek

}

}

// Pauza

= zpoždění mezi přechody

// Kroky

= počet kroků

// R, G, B = Plné hodnoty RGB

// De void dýchání je váš velký het licht účinek také

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

neplatné Breathe_blue (int pauza, int kroky, byte R, byte G, byte B) {

int

tmpR, tmpG, tmpB; // Teplotní hodnoty

// Fade up

pro (int s = 1; s <= kroky; s ++) {

tmpR = (R * s) /

kroky; // Nejprve vynásobte, abyste se vyhnuli chybám zkrácení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0;

jápixely.setPixelColor (0, tmpR, tmpG+1, tmpB);

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

}

pixely.show ();

zpoždění (4);

}

// Fade up

pro (int s = 1; s <= kroky; s ++) {

tmpR = (R * s) /

kroky; // Nejprve vynásobte, abyste se vyhnuli chybám zkrácení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0;

jápixely.setPixelColor (1, tmpR, tmpG+1, tmpB);pixely.setPixelColor (14, tmpR, tmpG+1, tmpB);

}

pixely.show ();

zpoždění (4);

}

// Fade up

pro (int s = 1; s <= kroky; s ++) {

tmpR = (R * s) /

kroky; // Nejprve vynásobte, abyste se vyhnuli chybám zkrácení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0;

jápixely.setPixelColor (2, tmpR, tmpG+2, tmpB);pixely.setPixelColor (13, tmpR, tmpG+2, tmpB);

}

pixely.show ();

zpoždění (3,5);

}

// Fade up

pro (int s = 1; s <= kroky; s ++) {

tmpR = (R * s) /

kroky; // Nejprve vynásobte, abyste se vyhnuli chybám zkrácení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0;

jápixely.setPixelColor (3, tmpR, tmpG+3, tmpB+5);pixely.setPixelColor (12, tmpR, tmpG+3, tmpB+5);

}

pixely.show ();

zpoždění (3);

}

pro (int i = 0;

jápixely.setPixelColor (0, 0, 0, 0);pixely.setPixelColor (15, 0, 0, 0);

}

// Fade up

pro (int s = 1; s <= kroky; s ++) {

tmpR = (R * s) /

kroky; // Nejprve vynásobte, abyste se vyhnuli chybám zkrácení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0;

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

}

pixely.show ();

zpoždění (3);

}

// Fade up

pro (int s = 1; s <= kroky; s ++) {

tmpR = (R * s) /

kroky; // Nejprve vynásobte, abyste se vyhnuli chybám zkrácení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0;

jápixely.setPixelColor (5, tmpR, tmpG+4, tmpB+20);pixely.setPixelColor (10, tmpR, tmpG+4, tmpB+20);

}

pixely.show ();

zpoždění (2);

}

pro (int i = 0;

jápixely.setPixelColor (1, 0, 0, 0);

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

}

// Fade up

pro (int s = 1; s <= kroky; s ++) {

tmpR = (R * s) /

kroky; // Nejprve vynásobte, abyste se vyhnuli chybám zkrácení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0;

jápixely.setPixelColor (6, tmpR, tmpG+2, tmpB+40);

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

}

pixely.show ();

delay (delayval);

}

pro (int i = 0;

jápixely.setPixelColor (2, 0, 0, 0);pixely.setPixelColor (13, 0, 0, 0);

}

// Fade up

pro (int s = 1; s <= kroky; s ++) {

tmpR = (R * s) /

kroky; // Nejprve vynásobte, abyste se vyhnuli chybám zkrácení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0;

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

}

pixely.show ();

delay (delayval);

}

// Zmizí

pro (int s = kroky; s> 0; s--) {

tmpR = (R * s) / kroky; // Nejprve vynásobte, abyste se vyhnuli zkrácení

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0; i

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

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

}

pixely.show ();

zpoždění (1);

}

// Zmizí

pro (int s = kroky; s> 0; s--) {

tmpR = (R * s) / kroky; // Nejprve vynásobte, abyste se vyhnuli zkrácení

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0; i

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

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

}

pixely.show ();

zpoždění (1);

}

// Zmizí

pro (int s = kroky; s> 0; s--) {

tmpR = (R * s) / kroky; // Nejprve vynásobte, abyste se vyhnuli zkrácení

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0; i

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

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

}

pixely.show ();

zpoždění (2);

}

// Zmizí

pro (int s = kroky; s> 0; s--) {

tmpR = (R * s) / kroky; // Nejprve vynásobte, abyste se vyhnuli zkrácení

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0; i

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

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

}

pixely.show ();

zpoždění (2);

}

// Zmizí

pro (int s = kroky; s> 0; s--) {

tmpR = (R * s) / kroky; // Nejprve vynásobte, abyste se vyhnuli zkrácení

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0; i

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

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

}

pixely.show ();

zpoždění (3);

}

// Zmizí

pro (int s = kroky; s> 0; s--) {

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

Nejprve vynásobte, abyste se vyhnuli chybám zkrácení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0; i

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

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

}

pixely.show ();

zpoždění (3);

}

// Zmizí

pro (int s = kroky; s> 0; s--) {

tmpR = (R * s) / kroky; // Nejprve vynásobte, abyste se vyhnuli zkrácení

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0; i

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

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

}

pixely.show ();

zpoždění (4);

}

// Zmizí

pro (int s = kroky; s> 0; s--) {

tmpR = (R * s) / kroky; // Nejprve vynásobte, abyste se vyhnuli zkrácení

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pro (int i = 0; i

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

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

}

pixely.show ();

zpoždění (4);

}

}

Krok 5: Dát vše dohromady:

Dát vše dohromady
Dát vše dohromady

Můžete nechat všechny své vodiče připojené k prkénku nebo PVC, to je na vás (rozhodl jsem se dát PVC na arduino, je to tak pěkné a čisté).

Dalším krokem je umístit teplem smršťovací bužírky kolem všech vodičů, aby nevznikl žádný nepořádek.

Pokud jste se rozhodli použít PVC, měli byste už nyní pájet vše dohromady.

Poté na vnější stranu brýlí nasadíte neopixelové kroužky (ujistěte se, že jsou diody zarovnané v dolní části) a zajistěte je na místě páskou nebo lepidlem (použil jsem pásku).

Můžete se rozhodnout přilepit snímač fsr k elastickému pásku páskou, nebo jej nechat samostatně.

Užijte si brýle:)

Doporučuje: