Съдържание:

Очила за релаксация - ITTT: 5 стъпки (със снимки)
Очила за релаксация - ITTT: 5 стъпки (със снимки)

Видео: Очила за релаксация - ITTT: 5 стъпки (със снимки)

Видео: Очила за релаксация - ITTT: 5 стъпки (със снимки)
Видео: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Ноември
Anonim
Очила за релаксация - ITTT
Очила за релаксация - ITTT
Очила за релаксация - ITTT
Очила за релаксация - ITTT
Очила за релаксация - ITTT
Очила за релаксация - ITTT

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

Чувствали ли сте се стресирани и просто не знаете как да се успокоите, тогава трябва да опитате тези очила за релаксация! Слагате ги и затваряте очи, след това ще играе модел на дишане. Като следвате този модел на дишане, вашият дихателен ритъм ще се сведе до вдишване и издишване 6 пъти в минута. Правейки това, това освобождава ежедневния стрес.

Можете също да проследите интензивността на дишането си, като натиснете превключвател, като използвате fsr-сензор.

С този toturial ще ви насоча стъпка по стъпка към изграждането на ваши собствени очила за релаксация.

Стъпка 1: Необходими материали и части:

Необходими материали и части
Необходими материали и части
Необходими материали и части
Необходими материали и части
Необходими материали и части
Необходими материали и части

Материали:

1x arduino uno;

1x платка или PCV;

3x 10k резистори

Проводи (за предпочитане различни цветове, така че е по -лесно да се каже кои неща вървят към земята и кои към различни щифтове и т.н.);

Някои термосвиващи се тръби;

2x NeoPixel пръстен - 16 x 5050 RGB LED с вградени драйвери;

1x превключвател;

1x FSR сензор;

1x очила SteamPunk (Можете да ги купите в парти магазин, те са лесни за използване, тъй като неопикселовият пръстен пасва идеално на очилата. Винаги се опитвате да използвате други очила или да създадете свои собствени.);

1x един вид (еластична) лента, която да поставите около гърдите си.

Инструменти: -Лаптоп

-поялник

-Arduino IDE софтуер

Ще видите два бутона и превключвател на моя pvc, използвам само левия бутон, за да го свържа с превключвателя, не използвам втория бутон отдясно на снимката. Сложих бутоните на pvc, преди да осъзная, че нямам нужда от тях и вместо това трябваше да използвам превключвател.

По -долу тук ще видите снимки на всичко, което използвах:

Стъпка 2: Неопикселови пръстени

Неопикселови пръстени
Неопикселови пръстени

Белият проводник е свързан към земята на гърба на неопикселовия пръстен.

Оранжевият проводник е свързан към 5V.

Кафявият проводник е свързан към входа за данни

Стъпка 3: Връзки

Връзки
Връзки
Връзки
Връзки

Ето как изглеждаше моята дъска по време на прототипирането, можете да използвате това като справка.

Направих и оформление на окабеляването на това, което трябва да изглежда само с един бутон.

Стъпка 4: Кодът:

Вероятно не е най -ефективният код, но при мен работи. Предизвикайте себе си и се опитайте да го направите по -ефективен; P

#включва

// Който

щифт на Arduino е свързан с NeoPixels?

#дефинирайте

ПИН 6

// Който

щифт на Arduino е свързан с бутона

#дефинирайте

BUTTON_PIN 9

// Как

много NeoPixels са свързани към Arduino?

#дефинирайте

НУМПИКСЕЛИ 16

// Кога

ние настройваме библиотеката NeoPixel, казваме й колко пиксела и кой щифт да използваме за изпращане на сигнали.

// Забележка

че за по-старите ленти NeoPixel може да се наложи да промените третия параметър-вижте strandtest

//

пример за повече информация относно възможните стойности.

Adafruit_NeoPixel

пиксели = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int пауза

= 1; // забавяне2

int

пауза2 = 80; // слизане, когато се използва fsr

int

пауза3 = 150; // свършвам, когато се използва fsr

int

delayval = 4; // забавяне1

int

fsrPin = 0; // падащото меню FSR и 10K са свързани към a0

int

fsrReading;

невалиден

настройвам() {

pinMode (BUTTON_PIN, INPUT);

Serial.begin (9600);

pixels.begin (); // Това инициализира

Библиотека на NeoPixel.

pixels.show ();

}

bool

натиснат бутон (int pin) {

връщане digitalRead (пин);

}

невалиден

loop () {// чете дали въвеждането на пин е вярно или невярно

fsrReading = analogRead (fsrPin);

Serial.print ("Аналогово четене =");

Serial.print (fsrReading);

if (бутон натиснат (BUTTON_PIN) == вярно) {

// светлинен ефект при използване на 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);

pixels.show ();

забавяне (пауза3);

}

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

забавяне (пауза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);

pixels.show ();

забавяне (пауза3);

}

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

забавяне (пауза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);

pixels.show ();

забавяне (пауза3);

}

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

забавяне (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 ();

забавяне (пауза3);

}

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

забавяне (20);

}

}

иначе {

дишане_синьо (20, 100, 0, 1, 1); // нормално

ефект

}

}

// Пауза

= забавяне между преходите

// Стъпки

= брой стъпки

// R, G, B = Пълни RGB стойности

// De voidreathe е voor het licht ефект als de

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

voidreathe_blue (int пауза, int стъпки, байт R, байт G, байт В) {

int

tmpR, tmpG, tmpB; // Темп стойности

// Избледняване

for (int s = 1; s <= стъпки; s ++) {

tmpR = (R * s) /

стъпки; // Умножете първо, за да избегнете отрязване на грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0;

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

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

}

pixels.show ();

забавяне (4);

}

// Избледняване

for (int s = 1; s <= стъпки; s ++) {

tmpR = (R * s) /

стъпки; // Умножете първо, за да избегнете отрязване на грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0;

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

}

pixels.show ();

забавяне (4);

}

// Избледняване

for (int s = 1; s <= стъпки; s ++) {

tmpR = (R * s) /

стъпки; // Умножете първо, за да избегнете отрязване на грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0;

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

}

pixels.show ();

забавяне (3.5);

}

// Избледняване

for (int s = 1; s <= стъпки; s ++) {

tmpR = (R * s) /

стъпки; // Умножете първо, за да избегнете отрязване на грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0;

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

}

pixels.show ();

забавяне (3);

}

за (int i = 0;

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

}

// Избледняване

for (int s = 1; s <= стъпки; s ++) {

tmpR = (R * s) /

стъпки; // Умножете първо, за да избегнете отрязване на грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0;

i

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

}

pixels.show ();

забавяне (3);

}

// Избледняване

for (int s = 1; s <= стъпки; s ++) {

tmpR = (R * s) /

стъпки; // Умножете първо, за да избегнете отрязване на грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0;

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

}

pixels.show ();

забавяне (2);

}

за (int i = 0;

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

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

}

// Избледняване

for (int s = 1; s <= стъпки; s ++) {

tmpR = (R * s) /

стъпки; // Умножете първо, за да избегнете отрязване на грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0;

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

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

}

pixels.show ();

забавяне (delayval);

}

за (int i = 0;

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

}

// Избледняване

for (int s = 1; s <= стъпки; s ++) {

tmpR = (R * s) /

стъпки; // Умножете първо, за да избегнете отрязване на грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0;

i

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

}

pixels.show ();

забавяне (delayval);

}

// Изчезване

for (int s = стъпки; s> 0; s--) {

tmpR = (R * s) / стъпки; // Умножете първо, за да избегнете отрязването

грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0; i

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

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

}

pixels.show ();

забавяне (1);

}

// Изчезване

for (int s = стъпки; s> 0; s--) {

tmpR = (R * s) / стъпки; // Умножете първо, за да избегнете отрязването

грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0; i

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

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

}

pixels.show ();

забавяне (1);

}

// Изчезване

for (int s = стъпки; s> 0; s--) {

tmpR = (R * s) / стъпки; // Умножете първо, за да избегнете отрязването

грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0; i

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

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

}

pixels.show ();

забавяне (2);

}

// Изчезване

for (int s = стъпки; s> 0; s--) {

tmpR = (R * s) / стъпки; // Умножете първо, за да избегнете отрязването

грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0; i

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

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

}

pixels.show ();

забавяне (2);

}

// Изчезване

for (int s = стъпки; s> 0; s--) {

tmpR = (R * s) / стъпки; // Умножете първо, за да избегнете отрязването

грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0; i

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

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

}

pixels.show ();

забавяне (3);

}

// Изчезване

for (int s = стъпки; s> 0; s--) {

tmpR = (R * s) / стъпки; //

Умножете първо, за да избегнете отрязване на грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0; i

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

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

}

pixels.show ();

забавяне (3);

}

// Изчезване

for (int s = стъпки; s> 0; s--) {

tmpR = (R * s) / стъпки; // Умножете първо, за да избегнете отрязването

грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0; i

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

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

}

pixels.show ();

забавяне (4);

}

// Изчезване

for (int s = стъпки; s> 0; s--) {

tmpR = (R * s) / стъпки; // Умножете първо, за да избегнете отрязването

грешки

tmpG = (G * s) / стъпки;

tmpB = (B * s) / стъпки;

за (int i = 0; i

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

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

}

pixels.show ();

забавяне (4);

}

}

Стъпка 5: Съберете всичко заедно:

Сглобявайки всичко заедно
Сглобявайки всичко заедно

Можете просто да оставите всичките си проводници свързани към вашата дъска или PVC, това зависи от вас (избрах да поставя PVC върху arduino, така е хубаво и спретнато).

Следващата стъпка е да поставите термосвиваеми тръби около всички проводници, така че да е по -малко бъркотия.

Ако сте избрали да използвате PVC, тогава вече трябваше да сте запоели всичко заедно.

След това поставете неопикселовите пръстени от външната страна на очилата (уверете се, че светодиодите са подравнени в долната част) и ги закрепете на място с някаква лента или лепило (използвах лента).

Можете да изберете да залепите fsr-сензора към еластичната лента с някаква лента или просто да го оставите сами.

Насладете се на очилата си:)

Препоръчано: