Kazalo:

Očala za sprostitev - ITTT: 5 korakov (s slikami)
Očala za sprostitev - ITTT: 5 korakov (s slikami)

Video: Očala za sprostitev - ITTT: 5 korakov (s slikami)

Video: Očala za sprostitev - ITTT: 5 korakov (s slikami)
Video: НЕ ВЫБРОСИЛА СТАРЫЙ ТЮЛЬ И ХОРОШО СЭКОНОМИЛА СЕМЕЙНЫЙ БЮДЖЕТ! 4 КРУТЫЕ ИДЕИ ИЗ ТЮЛЯ! 2024, November
Anonim
Očala za sprostitev - ITTT
Očala za sprostitev - ITTT
Očala za sprostitev - ITTT
Očala za sprostitev - ITTT
Očala za sprostitev - ITTT
Očala za sprostitev - ITTT

Projekt HKU - ITTT (Če je to potem tisto) - Julia Berkouwer, 1B

Ste se kdaj počutili pod stresom in preprosto ne veste, kako se pomiriti, potem poskusite s temi očala za sprostitev! Oblečete jih in zaprete oči, nato pa se bo predvajal vzorec dihanja. Če sledite temu vzorcu dihanja, se bo vaš dihalni ritem zmanjšal na vdihavanje in izdihovanje 6 -krat na minuto. S tem se znebite vsakodnevnega stresa.

Intenzivnost dihanja lahko spremljate tudi s pritiskom na stikalo s senzorjem fsr.

S tem toturialom vas bom korak za korakom vodil skozi izdelavo lastnih očal za sprostitev.

Korak: Potrebni materiali in deli:

Potrebni materiali in deli
Potrebni materiali in deli
Potrebni materiali in deli
Potrebni materiali in deli
Potrebni materiali in deli
Potrebni materiali in deli

Materiali:

1x arduino uno;

1xbreadboard ali PCV;

3x 10k upori

Žice (po možnosti različnih barv, da je lažje ugotoviti, katere stvari gredo v tla in katere gredo v različne zatiče itd.);

Nekaj toplotno skrčljivih cevi;

2x NeoPixel prstan - 16 x 5050 RGB LED z vgrajenimi gonilniki;

1x stikalo;

1x senzor FSR;

1x SteamPunk očala (Lahko jih kupite v zabaviščni trgovini, enostavni so za uporabo, ker se neopixel prstan odlično prilega kozarcem. Vedno poskusite uporabiti druga očala ali pa si ustvarite sami.);

1x nekakšen (elastični) trak, ki ga postavite okoli prsi.

Orodja:-Prenosni računalnik

-spajkalnik

-Arduino IDE programska oprema

Na pvc -ju boste videli dva gumba in stikalo, le levi gumb povežem s stikalom, drugega gumba na desni strani slike ne uporabljam. Gumbe sem namestil na pvc, preden sem ugotovil, da jih ne potrebujem in sem namesto tega moral uporabiti stikalo.

Spodaj boste videli slike vsega, kar sem uporabil:

2. korak: prstani Neopixel

Prstani Neopixel
Prstani Neopixel

Bela žica je povezana z ozemljitvijo na zadnji strani neopikselnega obroča.

Oranžna žica je priključena na 5V.

Rjava žica je priključena na vnos podatkov

3. korak: Povezave

Povezave
Povezave
Povezave
Povezave

Tako je izgledala moja plošča med izdelavo prototipov, to lahko uporabite kot referenco.

Naredil sem tudi postavitev ožičenja, kako naj bi izgledal samo z enim gumbom.

4. korak: Koda:

Verjetno ni najbolj učinkovita koda, vendar mi deluje. Izzovite se in poskušajte biti učinkovitejši; P

#vključi

// Kateri

pin na Arduinu je povezan z NeoPixels?

#define

PIN 6

// Kateri

pin na Arduinu je povezan z gumbom

#define

BUTTON_PIN 9

// Kako

veliko NeoPixel je priključenih na Arduino?

#define

ŠTEVILKA 16

// Kdaj

nastavimo knjižnico NeoPixel, povemo ji, koliko slikovnih pik in kateri pin uporabite za pošiljanje signalov.

// Opomba

da boste za starejše trakove NeoPixel morda morali spremeniti tretji parameter-glejte strandtest

//

za več informacij o možnih vrednostih.

Adafruit_NeoPixel

slikovnih pik = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int pavza

= 1; // zakasnitev2

int

premor2 = 80; // gre navzdol, ko se uporablja fsr

int

premor3 = 150; // delam gor, ko se uporablja fsr

int

delayval = 4; // zakasnitev1

int

fsrPin = 0; // FSR in 10K spustni meni sta povezana z a0

int

fsrReading;

nično

nastaviti() {

pinMode (BUTTON_PIN, INPUT);

Serial.begin (9600);

pixels.begin (); // S tem se inicializira

Knjižnica NeoPixel.

piksli.show ();

}

bool

pritisnjen na gumb (int pin) {

return digitalRead (pin);

}

nično

loop () {// bere, ali je vnos pin pravilen ali napačen

fsrReading = analogRead (fsrPin);

Serial.print ("Analogno branje =");

Serial.print (fsrReading);

if (pritisnjen gumb (BUTTON_PIN) == true) {

// svetlobni učinek pri uporabi senzorja 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);

piksli.show ();

zamuda (premor3);

}

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

piksli.show ();

zamuda (premor 2);

}

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

piksli.show ();

zamuda (premor3);

}

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

piksli.show ();

zamuda (premor 2);

}

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

piksli.show ();

zamuda (premor3);

}

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

piksli.show ();

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

piksli.show ();

zamuda (premor3);

}

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

piksli.show ();

zamuda (20);

}

}

drugače {

vdihni_modra (20, 100, 0, 1, 1); // normalno

učinek

}

}

// Pavza

= zakasnitev med prehodi

// Koraki

= število korakov

// R, G, B = polne vrednosti RGB

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

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

voidreathe_blue (int premor, int koraki, bajt R, bajt G, bajt B) {

int

tmpR, tmpG, tmpB; // Temp vrednosti

// Zbledi

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

tmpR = (R * s) /

koraki; // Najprej pomnožite, da se izognete napakam pri obrezovanju

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0;

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

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

}

piksli.show ();

zamuda (4);

}

// Zbledi

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

tmpR = (R * s) /

koraki; // Najprej pomnožite, da se izognete napakam pri obrezovanju

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0;

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

}

piksli.show ();

zamuda (4);

}

// Zbledi

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

tmpR = (R * s) /

koraki; // Najprej pomnožite, da se izognete napakam pri obrezovanju

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0;

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

}

piksli.show ();

zamuda (3,5);

}

// Zbledi

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

tmpR = (R * s) /

koraki; // Najprej pomnožite, da se izognete napakam pri obrezovanju

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0;

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

}

piksli.show ();

zamuda (3);

}

za (int i = 0;

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

}

// Zbledi

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

tmpR = (R * s) /

koraki; // Najprej pomnožite, da se izognete napakam pri obrezovanju

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0;

jaz

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

}

piksli.show ();

zamuda (3);

}

// Zbledi

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

tmpR = (R * s) /

koraki; // Najprej pomnožite, da se izognete napakam pri obrezovanju

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0;

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

}

piksli.show ();

zamuda (2);

}

za (int i = 0;

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

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

}

// Zbledi

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

tmpR = (R * s) /

koraki; // Najprej pomnožite, da se izognete napakam pri obrezovanju

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0;

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

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

}

piksli.show ();

zamuda (delayval);

}

za (int i = 0;

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

}

// Zbledi

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

tmpR = (R * s) /

koraki; // Najprej pomnožite, da se izognete napakam pri obrezovanju

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0;

jaz

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

}

piksli.show ();

zamuda (delayval);

}

// Zmanjšaj

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

tmpR = (R * s) / koraki; // Najprej pomnožite, da se izognete skrajšanju

napake

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0; i

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

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

}

piksli.show ();

zamuda (1);

}

// Zmanjšaj

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

tmpR = (R * s) / koraki; // Najprej pomnožite, da se izognete skrajšanju

napake

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0; i

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

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

}

piksli.show ();

zamuda (1);

}

// Zmanjšaj

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

tmpR = (R * s) / koraki; // Najprej pomnožite, da se izognete skrajšanju

napake

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0; i

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

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

}

piksli.show ();

zamuda (2);

}

// Zmanjšaj

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

tmpR = (R * s) / koraki; // Najprej pomnožite, da se izognete skrajšanju

napake

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0; i

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

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

}

piksli.show ();

zamuda (2);

}

// Zmanjšaj

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

tmpR = (R * s) / koraki; // Najprej pomnožite, da se izognete skrajšanju

napake

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0; i

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

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

}

piksli.show ();

zamuda (3);

}

// Zmanjšaj

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

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

Najprej pomnožite, da se izognete napakam pri obrezovanju

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0; i

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

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

}

piksli.show ();

zamuda (3);

}

// Zmanjšaj

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

tmpR = (R * s) / koraki; // Najprej pomnožite, da se izognete skrajšanju

napake

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0; i

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

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

}

piksli.show ();

zamuda (4);

}

// Zmanjšaj

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

tmpR = (R * s) / koraki; // Najprej pomnožite, da se izognete skrajšanju

napake

tmpG = (G * s) / koraki;

tmpB = (B * s) / koraki;

za (int i = 0; i

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

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

}

piksli.show ();

zamuda (4);

}

}

5. korak: Vse sestavite skupaj:

Vse skupaj
Vse skupaj

Lahko pustite vse svoje žice povezane z vašo mizo ali PVC, to je odvisno od vas (jaz sem se odločil, da na arduino položim PVC, tako lepo in lepo).

Naslednji korak je, da okrog vseh žic položite toplotno skrčljive cevi, da bo manj nereda.

Če ste se odločili za uporabo PVC -ja, bi morali do zdaj že vse skupaj spajkati.

Nato obroče neopiksela položite na zunanjo stran očal (prepričajte se, da so svetleče diode poravnane na dnu) in jih pritrdite s trakom ali lepilom (jaz sem uporabil trak).

Lahko se odločite, da senzor fsr pritrdite na elastični trak z nekaj trakom ali pa ga pustite sami.

Uživajte v očalih:)

Priporočena: