Tartalomjegyzék:

Relaxációs szemüveg - ITTT: 5 lépés (képekkel)
Relaxációs szemüveg - ITTT: 5 lépés (képekkel)

Videó: Relaxációs szemüveg - ITTT: 5 lépés (képekkel)

Videó: Relaxációs szemüveg - ITTT: 5 lépés (képekkel)
Videó: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Relaxációs szemüveg - ITTT
Relaxációs szemüveg - ITTT
Relaxációs szemüveg - ITTT
Relaxációs szemüveg - ITTT
Relaxációs szemüveg - ITTT
Relaxációs szemüveg - ITTT

HKU projekt - ITTT (ha ez akkor ez) - Julia Berkouwer, 1B

Érezte már magát stresszesnek, és egyszerűen nem tudja, hogyan nyugtassa meg magát, akkor próbálja ki ezeket a relaxációs szemüvegeket! Felteszed őket és lehunyod a szemed, ekkor egy légzési minta fog játszani. Ha ezt a légzési mintát követi, a légzési rítus percenként 6 -szor le- és kilélegzik. Ezzel megszabadul a napi stressztől.

A légzés intenzitását nyomon követheti egy kapcsoló segítségével, egy fsr-érzékelő segítségével.

Ezzel a túrával lépésről lépésre végigvezetem Önt saját relaxációs szemüvegének elkészítésén.

1. lépés: Szükséges anyagok és alkatrészek:

Szükséges anyagok és alkatrészek
Szükséges anyagok és alkatrészek
Szükséges anyagok és alkatrészek
Szükséges anyagok és alkatrészek
Szükséges anyagok és alkatrészek
Szükséges anyagok és alkatrészek

Anyagok:

1x arduino uno;

1xbreadboard vagy PCV;

3x 10k ellenállás

Vezetékek (lehetőleg különböző színűek, így könnyebb megmondani, hogy mi kerül a földre, és melyik különböző csapokhoz stb.);

Néhány hőre zsugorodó cső;

2x NeoPixel gyűrű - 16 x 5050 RGB LED beépített illesztőprogramokkal;

1x kapcsoló;

1x FSR érzékelő;

1x SteamPunk szemüveg (ezeket buliboltban vásárolhatja meg, könnyen használhatóak, mert a neopixel gyűrű tökéletesen illeszkedik a szemüvegre. Mindig próbáljon más szemüveget használni, vagy hozzon létre saját szemüveget.);

1x valamilyen (elasztikus) szalagot a mellkasod köré.

Eszközök: -Laptop

-Forrasztópáka

-Arduino IDE szoftver

Látni fog két gombot és egy kapcsolót a pvc -n, én csak a bal gombot használom a kapcsolóhoz való csatlakoztatáshoz, a kép jobb oldalán lévő második gombot nem használom. Feltettem a gombokat a pvc -re, mielőtt rájöttem, hogy nincs rájuk szükségem, és inkább kapcsolót kell használnom.

Az alábbiakban képeket láthatsz mindenről, amit használtam:

2. lépés: Neopixel gyűrűk

Neopixel gyűrűk
Neopixel gyűrűk

A fehér huzal a neopixelgyűrű hátoldalán lévő földhöz van csatlakoztatva.

A narancssárga vezeték az 5V -hoz van csatlakoztatva.

És a barna vezeték csatlakozik az adatbevitelhez

3. lépés: Kapcsolatok

Kapcsolatok
Kapcsolatok
Kapcsolatok
Kapcsolatok

Így nézett ki a kenyértáblám prototípus készítés közben, ezt referenciaként használhatja.

Egy gombnyomással elkészítettem a kábelezés elrendezését is.

4. lépés: A kód:

Valószínűleg nem a leghatékonyabb kód, de nekem működik. Kihívja magát, és próbálja hatékonyabbá tenni; P

#befoglalni

// Melyik

pin az Arduino -n csatlakozik a NeoPixels -hez?

#definálja

PIN -kód 6

// Melyik

pin az Arduino -n csatlakozik a gombhoz

#definálja

GOMB_PIN 9

// Hogyan

sok NeoPixel kapcsolódik az Arduino -hoz?

#definálja

SZÁMPIXELEK 16

// Amikor

beállítjuk a NeoPixel könyvtárat, megmondjuk, hogy hány képpont és melyik tűt használjuk jelek küldésére.

// Jegyzet

hogy a régebbi NeoPixel csíkok esetében szükség lehet a harmadik paraméter megváltoztatására-lásd a szálkísérletet

//

példa a lehetséges értékekről.

Adafruit_NeoPixel

képpont = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

szünetben

= 1; // késleltetés2

int

szünet2 = 80; // lemegy az fsr használatakor

int

szünet3 = 150; // befejezés az fsr használatakor

int

delayval = 4; // késés1

int

fsrPin = 0; // az FSR és a 10K legördülő menü a0 -hoz van csatlakoztatva

int

fsrReading;

üres

beállít() {

pinMode (BUTTON_PIN, INPUT);

Sorozat.kezdet (9600);

pixels.begin (); // Ezzel inicializálja a

NeoPixel könyvtár.

pixels.show ();

}

bool

gombnyomás (int pin) {

return digitalRead (pin);

}

üres

loop () {// beolvassa, hogy a PIN bemenet igaz vagy hamis

fsrReading = analógRead (fsrPin);

Serial.print ("Analóg olvasás =");

Serial.print (fsrReading);

if (gombnyomás (BUTTON_PIN) == igaz) {

// fényhatás fsr érzékelő használatakor

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

pixels.show ();

késleltetés (szünet3);

}

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

pixels.show ();

késleltetés (szünet2);

}

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

pixels.show ();

késleltetés (szünet3);

}

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

pixels.show ();

késleltetés (szünet2);

}

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

pixels.show ();

késleltetés (szünet3);

}

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

pixels.show ();

késleltetés (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);

pixels.show ();

késleltetés (szünet3);

}

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

pixels.show ();

késleltetés (20);

}

}

más{

légzés_kék (20, 100, 0, 1, 1); // Normál

hatás

}

}

// Szünet

= késés az átmenetek között

// Lépések

= lépések száma

R, G, B = Teljes RGB értékek

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

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

void breathe_blue (int szünet, int lépések, R bájt, G bájt, B bájt {)

int

tmpR, tmpG, tmpB; // Hőmérsékleti értékek

// Kivilágosítást

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

tmpR = (R * s) /

lépések; // Először szorozzon, hogy elkerülje a csonka hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

for (int i = 0;

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

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

}

pixels.show ();

késleltetés (4);

}

// Kivilágosítást

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

tmpR = (R * s) /

lépések; // Először szorozzon, hogy elkerülje a csonka hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

for (int i = 0;

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

}

pixels.show ();

késleltetés (4);

}

// Kivilágosítást

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

tmpR = (R * s) /

lépések; // Először szorozzon, hogy elkerülje a csonka hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

for (int i = 0;

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

}

pixels.show ();

késleltetés (3,5);

}

// Kivilágosítást

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

tmpR = (R * s) /

lépések; // Először szorozzon, hogy elkerülje a csonka hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

for (int i = 0;

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

}

pixels.show ();

késleltetés (3);

}

for (int i = 0;

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

}

// Kivilágosítást

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

tmpR = (R * s) /

lépések; // Először szorozzon, hogy elkerülje a csonka hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

for (int i = 0;

én

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

}

pixels.show ();

késleltetés (3);

}

// Kivilágosítást

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

tmpR = (R * s) /

lépések; // Először szorozzon, hogy elkerülje a csonka hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

for (int i = 0;

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

}

pixels.show ();

késleltetés (2);

}

for (int i = 0;

énpixels.setPixelColor (1, 0, 0, 0);

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

}

// Kivilágosítást

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

tmpR = (R * s) /

lépések; // Először szorozzon, hogy elkerülje a csonka hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

for (int i = 0;

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

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

}

pixels.show ();

késleltetés (késleltetés);

}

for (int i = 0;

énpixels.setPixelColor (2, 0, 0, 0);pixels.setPixelColor (13, 0, 0, 0);

}

// Kivilágosítást

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

tmpR = (R * s) /

lépések; // Először szorozzon, hogy elkerülje a csonka hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

for (int i = 0;

én

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

}

pixels.show ();

késleltetés (késleltetés);

}

// Elhalványul

for (int s = lépések; s> 0; s--) {

tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást

hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

mert (int i = 0; i

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

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

}

pixels.show ();

késleltetés (1);

}

// Elhalványul

for (int s = lépések; s> 0; s--) {

tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást

hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

mert (int i = 0; i

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

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

}

pixels.show ();

késleltetés (1);

}

// Elhalványul

for (int s = lépések; s> 0; s--) {

tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást

hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

mert (int i = 0; i

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

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

}

pixels.show ();

késleltetés (2);

}

// Elhalványul

for (int s = lépések; s> 0; s--) {

tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást

hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

mert (int i = 0; i

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

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

}

pixels.show ();

késleltetés (2);

}

// Elhalványul

for (int s = lépések; s> 0; s--) {

tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást

hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

mert (int i = 0; i

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

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

}

pixels.show ();

késleltetés (3);

}

// Elhalványul

for (int s = lépések; s> 0; s--) {

tmpR = (R * s) / lépés; //

Először szorozzon, hogy elkerülje a csonkítási hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

mert (int i = 0; i

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

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

}

pixels.show ();

késleltetés (3);

}

// Elhalványul

for (int s = lépések; s> 0; s--) {

tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást

hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

mert (int i = 0; i

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

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

}

pixels.show ();

késleltetés (4);

}

// Elhalványul

for (int s = lépések; s> 0; s--) {

tmpR = (R * s) / lépés; // Először szorozzon, hogy elkerülje a csonkítást

hibákat

tmpG = (G * s) / lépések;

tmpB = (B * s) / lépések;

mert (int i = 0; i

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

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

}

pixels.show ();

késleltetés (4);

}

}

5. lépés: Mindent össze kell rakni:

Mindent összerakni
Mindent összerakni

Hagyja az összes vezetéket a kenyérsütő táblához vagy egy PVC -hez csatlakoztatva, ez rajtad múlik (én úgy döntöttem, hogy PVC -t teszek az arduino tetejére, így szép és ügyes).

A következő lépés az, hogy hőzsugorító csöveket helyezünk az összes vezeték köré, így kevesebb lesz a rendetlenség.

Ha úgy döntött, hogy PVC -t használ, akkor már mindent össze kell forrasztania.

Ezt követően tegye a neopixelgyűrűket a szemüveg külső oldalára (győződjön meg arról, hogy a LED -ek egy vonalban vannak a fenékkel), és rögzítse őket a helyükön valamilyen szalaggal vagy ragasztóval (én ragasztószalagot használtam).

Dönthet úgy, hogy ragasztja az fsr-érzékelőt a rugalmas szalagra valamilyen szalaggal, vagy egyszerűen kihagyja.

Élvezze a szemüvegét:)

Ajánlott: