Obsah:

Relaxačné okuliare - ITTT: 5 krokov (s obrázkami)
Relaxačné okuliare - ITTT: 5 krokov (s obrázkami)

Video: Relaxačné okuliare - ITTT: 5 krokov (s obrázkami)

Video: Relaxačné okuliare - ITTT: 5 krokov (s obrázkami)
Video: 🌺 Вяжем теплую женскую манишку на пуговицах на 2-х спицах. Часть 1. 2024, Júl
Anonim
Relaxačné okuliare - ITTT
Relaxačné okuliare - ITTT
Relaxačné okuliare - ITTT
Relaxačné okuliare - ITTT
Relaxačné okuliare - ITTT
Relaxačné okuliare - ITTT

Projekt HKU - ITTT (Ak to potom, potom) - Julia Berkouwer, 1B

Už ste sa niekedy cítili vystresovaní a jednoducho neviete, ako sa upokojiť, potom by ste mali vyskúšať tieto relaxačné okuliare! Nasaďte si ich a zatvorte oči, potom sa spustí dychový vzor. Pri nasledovaní tohto dychového rytmu dýcha váš rytmus 6 krát za minútu. Tým sa uvoľní každodenný stres.

Intenzitu dýchania môžete sledovať aj prepnutím vypínača pomocou senzora fsr.

V tomto príbehu vás krok za krokom prevediem budovaním vlastných relaxačných okuliarov.

Krok 1: Potrebné materiály a diely:

Potrebné materiály a diely
Potrebné materiály a diely
Potrebné materiály a diely
Potrebné materiály a diely
Potrebné materiály a súčiastky
Potrebné materiály a súčiastky

Materiály:

1x arduino uno;

1x chlebová doska alebo PCV;

3x 10k odpory

Drôty (Výhodne rôzne farby, aby bolo jednoduchšie určiť, ktoré veci idú na zem a ktoré na rôzne kolíky atď.);

Niektoré rúrky zmršťujúce teplo;

2x NeoPixel Ring - 16 x 5050 RGB LED s integrovanými ovládačmi;

1x prepínač;

1x snímač FSR;

1x okuliare SteamPunk (Môžete si ich kúpiť v obchode s párty vecami, ich použitie je veľmi jednoduché, pretože neopixel krúžok na okuliare perfektne sedí. Vždy sa snažte použiť iné okuliare alebo si vytvorte vlastné.);

1x nejaký druh (elastickej) pásky, ktorá sa dá okolo hrudníka.

Nástroje: -Laptop

-Spájkovačka

-Software Arduino IDE

Na mojom pvc uvidíte dve tlačidlá a vypínač, na pripojenie k prepínaču používam iba ľavé tlačidlo, druhé tlačidlo na pravej strane obrázku nepoužívam. Umiestnil som tlačidlá na PVC skôr, ako som si uvedomil, že ich nepotrebujem a namiesto toho som potreboval použiť prepínač.

Tu nižšie uvidíte obrázky všetkého, čo som použil:

Krok 2: Neopixelové prstene

Neopixelové prstene
Neopixelové prstene

Biely drôt je spojený so zemou na zadnej strane neopixelového prstenca.

Oranžový vodič je pripojený k 5V.

A hnedý drôt je pripojený k vstupu údajov

Krok 3: Pripojenia

Pripojenia
Pripojenia
Pripojenia
Pripojenia

Takto vyzeral môj breadboard pri prototypovaní, môžete to použiť ako referenciu.

Jedným tlačidlom som tiež urobil rozloženie zapojenia, ako to má vyzerať.

Krok 4: Kód:

Pravdepodobne to nie je najefektívnejší kód, ale funguje to pre mňa. Vyzvite sa a skúste to zefektívniť; P

#zahrnúť

// Ktorý

pin na Arduine je pripojený k NeoPixels?

#definuj

PIN 6

// Ktorý

pin na Arduino je pripojený k tlačidlu

#definuj

BUTTON_PIN 9

// Ako

je k Arduinu pripojených veľa NeoPixelov?

#definuj

NUMPIXELY 16

// Kedy

nastavíme knižnicu NeoPixel, povieme jej, koľko pixelov a ktorý pin použiť na odosielanie signálov.

// Poznámka

že pre staršie pásy NeoPixel budete možno musieť zmeniť tretí parameter-pozrite sa na strandtest

//

príklad pre ďalšie informácie o možných hodnotách.

Adafruit_NeoPixel

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

int pauza

= 1; // zdržanie2

int

pauza2 = 80; // klesá, keď sa používa fsr

int

pauza3 = 150; // robenie, keď sa používa fsr

int

delayval = 4; // zdržanie1

int

fsrPin = 0; // rozbaľovacia ponuka FSR a 10K sú spojené s a0

int

fsrReading;

prázdny

nastaviť() {

pinMode (BUTTON_PIN, INPUT);

Serial.begin (9600);

pixely.begin (); // Tým sa inicializuje súbor

Knižnica NeoPixel.

pixely.show ();

}

bool

stlačené tlačidlo (vnútorný pin) {

vrátiť digitalRead (pin);

}

prázdny

loop () {// číta, či je pinový vstup pravdivý alebo nepravdivý

fsrReading = analogRead (fsrPin);

Serial.print ("Analógové čítanie =");

Serial.print (fsrReading);

ak (stlačené tlačidlo (BUTTON_PIN) == true) {

// svetelný efekt pri použití snímača fsr

if (fsrReading> 50) {

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

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

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

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

pixely.show ();

oneskorenie (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 ();

oneskorenie (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 ();

oneskorenie (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 ();

oneskorenie (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 ();

oneskorenie (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 ();

oneskorenie (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 ();

oneskorenie (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 ();

oneskorenie (20);

}

}

inak {

dýchať_modré (20, 100, 0, 1, 1); // normalne

účinok

}

}

// Pauza

= oneskorenie medzi prechodmi

// Kroky

= počet krokov

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

// De void dýchanie je váš veľký het licht efekt tiež

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

neplatné dýchanie_modrej (int pauza, int kroky, bajt R, bajt G, bajt B) {

int

tmpR, tmpG, tmpB; // Teplotné hodnoty

// Fade up

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

tmpR = (R * s) /

kroky; // Najprv vynásobte, aby ste sa vyhli chybám pri skrátení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0;

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

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

}

pixely.show ();

oneskorenie (4);

}

// Fade up

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

tmpR = (R * s) /

kroky; // Najprv vynásobte, aby ste sa vyhli chybám skrátenia

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0;

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

}

pixely.show ();

oneskorenie (4);

}

// Fade up

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

tmpR = (R * s) /

kroky; // Najprv vynásobte, aby ste sa vyhli chybám pri skrátení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0;

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

}

pixely.show ();

oneskorenie (3,5);

}

// Fade up

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

tmpR = (R * s) /

kroky; // Najprv vynásobte, aby ste sa vyhli chybám pri skrátení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0;

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

}

pixely.show ();

oneskorenie (3);

}

pre (int i = 0;

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

}

// Fade up

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

tmpR = (R * s) /

kroky; // Najprv vynásobte, aby ste sa vyhli chybám skrátenia

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0;

i

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

}

pixely.show ();

oneskorenie (3);

}

// Fade up

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

tmpR = (R * s) /

kroky; // Najprv vynásobte, aby ste sa vyhli chybám pri skrátení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0;

ipixelov.setPixelColor (5, tmpR, tmpG+4, tmpB+20);pixelov.setPixelColor (10, tmpR, tmpG+4, tmpB+20);

}

pixely.show ();

oneskorenie (2);

}

pre (int i = 0;

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

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

}

// Fade up

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

tmpR = (R * s) /

kroky; // Najprv vynásobte, aby ste sa vyhli chybám skrátenia

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0;

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

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

}

pixely.show ();

delay (delayval);

}

pre (int i = 0;

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

}

// Fade up

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

tmpR = (R * s) /

kroky; // Najprv vynásobte, aby ste sa vyhli chybám pri skrátení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0;

i

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

}

pixely.show ();

delay (delayval);

}

// Zmizne

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

tmpR = (R * s) / kroky; // Najprv vynásobte, aby ste sa vyhli skráteniu

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0; i

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

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

}

pixely.show ();

oneskorenie (1);

}

// Zmizne

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

tmpR = (R * s) / kroky; // Najprv vynásobte, aby ste sa vyhli skráteniu

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0; i

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

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

}

pixely.show ();

oneskorenie (1);

}

// Zmizne

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

tmpR = (R * s) / kroky; // Najprv vynásobte, aby ste sa vyhli skráteniu

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0; i

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

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

}

pixely.show ();

oneskorenie (2);

}

// Zmizne

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

tmpR = (R * s) / kroky; // Najprv vynásobte, aby ste sa vyhli skráteniu

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0; i

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

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

}

pixely.show ();

oneskorenie (2);

}

// Zmizne

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

tmpR = (R * s) / kroky; // Najprv vynásobte, aby ste sa vyhli skráteniu

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0; i

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

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

}

pixely.show ();

oneskorenie (3);

}

// Zmizne

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

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

Najprv vynásobte, aby ste sa vyhli chybám pri skrátení

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0; i

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

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

}

pixely.show ();

oneskorenie (3);

}

// Zmizne

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

tmpR = (R * s) / kroky; // Najprv vynásobte, aby ste sa vyhli skráteniu

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0; i

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

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

}

pixely.show ();

oneskorenie (4);

}

// Zmizne

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

tmpR = (R * s) / kroky; // Najprv vynásobte, aby ste sa vyhli skráteniu

chyby

tmpG = (G * s) / kroky;

tmpB = (B * s) / kroky;

pre (int i = 0; i

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

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

}

pixely.show ();

oneskorenie (4);

}

}

Krok 5: Spojenie všetkého dohromady:

Všetko dohromady
Všetko dohromady

Môžete nechať všetky svoje káble pripojené k vášmu nepájivému stolu alebo k PVC, to je na vás (rozhodol som sa dať arduino na vrch PVC, je to tak pekné a upravené).

Ďalším krokom je položiť teplom zmrštiteľné trubice okolo všetkých drôtov, aby nevznikol žiadny neporiadok.

Ak ste sa rozhodli použiť PVC, potom by ste už mali všetko spájkovať.

Potom na vonkajšiu stranu okuliarov umiestnite neopixelové krúžky (uistite sa, že sú diódy zarovnané v spodnej časti) a zaistite ich na mieste páskou alebo lepidlom (použil som pásku).

Môžete sa rozhodnúť prilepiť snímač fsr k elastickému pásu pomocou pásky, alebo ho nechajte sami.

Užite si okuliare:)

Odporúča: