Мазмұны:

Релаксациялық көзілдірік - ITTT: 5 қадам (суреттермен)
Релаксациялық көзілдірік - ITTT: 5 қадам (суреттермен)

Бейне: Релаксациялық көзілдірік - ITTT: 5 қадам (суреттермен)

Бейне: Релаксациялық көзілдірік - ITTT: 5 қадам (суреттермен)
Бейне: Сильвио Берлускони 2023 жылы 12 маусымда қайтыс болғанда жатқан жері жайлы болсын 2024, Шілде
Anonim
Релаксациялық көзілдірік - ITTT
Релаксациялық көзілдірік - ITTT
Релаксациялық көзілдірік - ITTT
Релаксациялық көзілдірік - ITTT
Релаксациялық көзілдірік - ITTT
Релаксациялық көзілдірік - ITTT

HKU жобасы - ITTT (Егер бұл солай болса) - Джулия Беркувер, 1В

Сіз бір кездері күйзеліске ұшырадыңыз ба, әлде өзіңізді қалай тыныштандыруды білмейсіз бе, демалуға арналған көзілдірікті қолданыңыз! Сіз оларды киіп, көзіңізді жұмыңыз, содан кейін тыныс алу үлгісі ойнайды. Осы тыныс алу үлгісіне сүйене отырып, сіздің тыныс алу ритмі минутына 6 рет тыныс алуға және шығаруға түседі. Бұл күнделікті стресстен арылтады.

Сондай-ақ, тыныс алудың қарқындылығын fsr-сенсор көмегімен қосқышты басу арқылы бақылауға болады.

Бұл тотуриалмен мен сізге босаңсытатын көзілдірікті кезең -кезеңмен жасауға көмектесемін.

1 -қадам: Қажетті материалдар мен бөлшектер:

Қажетті материалдар мен бөлшектер
Қажетті материалдар мен бөлшектер
Қажетті материалдар мен бөлшектер
Қажетті материалдар мен бөлшектер
Қажетті материалдар мен бөлшектер
Қажетті материалдар мен бөлшектер

Материалдар:

1 x arduino uno;

1xbreadboard немесе PCV;

3x 10 к резисторлар

Сымдар (әр түрлі түстерді таңдаған жөн, сондықтан заттардың қайсысы жерге, қайсысы әр түрлі түйреуіштерге түсетінін анықтау оңайырақ болады);

Кейбір жылу қысқаратын түтіктер;

2x NeoPixel сақинасы - интеграцияланған драйверлері бар 16 x 5050 RGB жарық диоды;

1x қосқыш;

1x FSR сенсоры;

1x SteamPunk көзілдірігі (Оларды мерекелік дүкеннен сатып алуға болады, оларды пайдалану оңай, себебі неопиксель сақинасы көзілдірікке жақсы сәйкес келеді. Сіз әрқашан басқа көзілдірікті қолдануға тырысасыз немесе өз қолыңызбен жасай аласыз.);

1x кеудеге тағуға болатын (серпімді) жолақ.

Құралдар:-Ноутбук

-дәнекерлеу темірі

-Arduino IDE бағдарламалық жасақтамасы

Сіз менің ПВК -де екі түйме мен қосқышты көресіз, мен оны тек қосқышқа қосу үшін сол жақ батырманы қолданамын, мен суреттің оң жағындағы екінші түймені пайдаланбаймын. Мен түймені ПВХ -ға қойдым, олар маған қажет емес екенін түсінбестен бұрын орнына коммутаторды қолдану керек болды.

Төменде сіз мен қолданған барлық нәрселердің суреттерін көресіз:

2 -қадам: Неопиксельді сақиналар

Неопиксельді сақиналар
Неопиксельді сақиналар

Ақ сым неопиксель сақинасының артындағы жерге қосылған.

Қызғылт сары сым 5В -қа қосылған.

Ал қоңыр сым деректерді енгізуге қосылған

3 -қадам: Қосылымдар

Қосылымдар
Қосылымдар
Қосылымдар
Қосылымдар

Прототиптеу кезінде менің тақтайшам осылай көрінді, сіз оны сілтеме ретінде пайдалана аласыз.

Мен сондай -ақ бір түйменің көмегімен қандай болатынын сымдардың схемасын жасадым.

4 -қадам: Код:

Бұл, мүмкін, ең тиімді код емес, бірақ ол мен үшін жұмыс істейді. Өзіңізді сынап көріңіз және оны тиімдірек етуге тырысыңыз; P.

#қосу

// Қандай

Arduino түйрегіші NeoPixels -ке қосылған ба?

#анықтаңыз

PIN 6

// Қандай

түйінге Arduino түйрегіші қосылған

#анықтаңыз

BUTTON_PIN 9

// Қалай

көптеген NeoPixels Arduino -ға бекітілген бе?

#анықтаңыз

NUMPIXELS 16

// Қашан

Біз NeoPixel кітапханасын орнатамыз, оған қанша пиксель және сигнал жіберу үшін қандай түйреуішті қолдану керектігін айтамыз.

// Ескерту

ескі NeoPixel жолақтары үшін үшінші параметрді өзгерту қажет болуы мүмкін-strandtest қараңыз

//

мүмкін мәндер туралы қосымша ақпарат алу үшін мысал.

Adafruit_NeoPixel

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

үзіліс кезінде

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

piksel.begin (); // Бұл инициализациялайды

NeoPixel кітапханасы.

пиксель.шоу ();

}

бол

түйме басылған (ішкі түйреуіш) {

digitalRead (түйреуіш) қайтару;

}

жарамсыз

loop () {// пин енгізу дұрыс немесе жалған екенін оқиды

fsrReading = analogRead (fsrPin);

Serial.print («Аналогты оқу =»);

Serial.print (fsrReading);

егер (түйме басылған (BUTTON_PIN) == шын) {

// fsr датчигін қолданғанда жарық әсері

егер (fsrReading> 50) {

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

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

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

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

пиксель.шоу ();

кідіріс (үзіліс 3);

}

if (fsrReading <52) {

piksel.setPixelColor (0, 0, 0, 0);

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

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

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

пиксель.шоу ();

кідіріс (кідіріс2);

}

егер (fsrReading> 57) {

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

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

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

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

пиксель.шоу ();

кідіріс (үзіліс 3);

}

if (fsrReading <59) {

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

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

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

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

пиксель.шоу ();

кідіріс (кідіріс2);

}

егер (fsrReading> 65) {

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

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

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

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

пиксель.шоу ();

кідіріс (үзіліс 3);

}

if (fsrReading <67) {

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

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

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

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

пиксель.шоу ();

кешіктіру (40);

}

егер (fsrReading> 79) {

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

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

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

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

пиксель.шоу ();

кідіріс (үзіліс 3);

}

if (fsrReading <85) {

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

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

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

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

пиксель.шоу ();

кешіктіру (20);

}

}

басқа {

тыныс алу -көк (20, 100, 0, 1, 1); // қалыпты

әсері

}

}

// Үзіліс

= ауысулар арасындағы кідіріс

// Қадамдар

= қадамдар саны

// R, G, B = Толық қосылған RGB мәндері

// Жарамсыз дем алу - бұл да әсер етеді

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

жарамсыз тыныс алу көк (үзіліс, қадамдар, байт R, байт G, байт B) {

int

tmpR, tmpG, tmpB; // Температура мәндері

// Өшеді

үшін (int s = 1; s <= қадамдар; s ++) {

tmpR = (R * s) /

қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0;

менpiksel.setPixelColor (0, tmpR, tmpG+1, tmpB);

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

}

пиксель.шоу ();

кешіктіру (4);

}

// Өшеді

үшін (int s = 1; s <= қадамдар; s ++) {

tmpR = (R * s) /

қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0;

менpiksel.setPixelColor (1, tmpR, tmpG+1, tmpB);pixel.setPixelColor (14, tmpR, tmpG+1, tmpB);

}

пиксель.шоу ();

кешіктіру (4);

}

// Өшеді

үшін (int s = 1; s <= қадамдар; s ++) {

tmpR = (R * s) /

қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0;

менpixel.setPixelColor (2, tmpR, tmpG+2, tmpB);piksel.setPixelColor (13, tmpR, tmpG+2, tmpB);

}

пиксель.шоу ();

кешіктіру (3.5);

}

// Өшеді

үшін (int s = 1; s <= қадамдар; s ++) {

tmpR = (R * s) /

қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0;

менpiksel.setPixelColor (3, tmpR, tmpG+3, tmpB+5);piksel.setPixelColor (12, tmpR, tmpG+3, tmpB+5);

}

пиксель.шоу ();

кешіктіру (3);

}

үшін (int i = 0;

менpiksel.setPixelColor (0, 0, 0, 0);piksel.setPixelColor (15, 0, 0, 0);

}

// Өшеді

үшін (int s = 1; s <= қадамдар; s ++) {

tmpR = (R * s) /

қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0;

мен

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

}

пиксель.шоу ();

кешіктіру (3);

}

// Өшеді

үшін (int s = 1; s <= қадамдар; s ++) {

tmpR = (R * s) /

қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0;

менpiksel.setPixelColor (5, tmpR, tmpG+4, tmpB+20);pixel.setPixelColor (10, tmpR, tmpG+4, tmpB+20);

}

пиксель.шоу ();

кешіктіру (2);

}

үшін (int i = 0;

менpiksel.setPixelColor (1, 0, 0, 0);

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

}

// Өшеді

үшін (int s = 1; s <= қадамдар; s ++) {

tmpR = (R * s) /

қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0;

менpiksel.setPixelColor (6, tmpR, tmpG+2, tmpB+40);

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

}

пиксель.шоу ();

кідіріс (кідіріс);

}

үшін (int i = 0;

менpiksel.setPixelColor (2, 0, 0, 0);piksel.setPixelColor (13, 0, 0, 0);

}

// Өшеді

үшін (int s = 1; s <= қадамдар; s ++) {

tmpR = (R * s) /

қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0;

мен

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

}

пиксель.шоу ();

кідіріс (кідіріс);

}

// төмендейді

үшін (int s = қадамдар; s> 0; s--) {

tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз

қателер

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0; i

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

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

}

пиксель.шоу ();

кешіктіру (1);

}

// төмендейді

үшін (int s = қадамдар; s> 0; s--) {

tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз

қателер

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0; i

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

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

}

пиксель.шоу ();

кешіктіру (1);

}

// төмендейді

үшін (int s = қадамдар; s> 0; s--) {

tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз

қателер

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0; i

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

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

}

пиксель.шоу ();

кешіктіру (2);

}

// төмендейді

үшін (int s = қадамдар; s> 0; s--) {

tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз

қателер

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0; i

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

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

}

пиксель.шоу ();

кешіктіру (2);

}

// төмендейді

үшін (int s = қадамдар; s> 0; s--) {

tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз

қателер

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0; i

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

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

}

пиксель.шоу ();

кешіктіру (3);

}

// төмендейді

үшін (int s = қадамдар; s> 0; s--) {

tmpR = (R * s) / қадамдар; //

Қателіктерді болдырмау үшін алдымен көбейтіңіз

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0; i

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

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

}

пиксель.шоу ();

кешіктіру (3);

}

// төмендейді

үшін (int s = қадамдар; s> 0; s--) {

tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз

қателер

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0; i

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

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

}

пиксель.шоу ();

кешіктіру (4);

}

// төмендейді

үшін (int s = қадамдар; s> 0; s--) {

tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз

қателер

tmpG = (G * s) / қадамдар;

tmpB = (B * s) / қадамдар;

үшін (int i = 0; i

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

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

}

пиксель.шоу ();

кешіктіру (4);

}

}

5 -қадам: Барлығын біріктіру:

Барлығын біріктіру
Барлығын біріктіру

Сіз барлық сымдарды нан тақтасына немесе ПВХ -ға қосуға қалдыра аласыз, бұл сізге байланысты (мен ПВХ -ны ардуиноның үстіне қоюды таңдадым, бұл жақсы және ұқыпты).

Келесі қадам - барлық сымдардың айналасына жылуды қысқартатын түтіктерді қою, сондықтан олар аз болады.

Егер сіз ПВХ қолдануды таңдасаңыз, онда сіз қазірдің өзінде бәрін дәнекерлеуіңіз керек еді.

Осыдан кейін сіз көзілдіріктің сыртқы жағына неопиксель сақиналарын кигізіңіз (светодиодтардың төменгі жағында тураланғанына көз жеткізіңіз) және оларды таспамен немесе желіммен бекітіңіз (мен таспаны қолдандым).

Сіз fsr-сенсорды серпімді жолаққа таспамен жабыстыруды таңдай аласыз немесе оны өз бетіңізше қалдыра аласыз.

Көзілдіріктен ләззат алыңыз:)

Ұсынылған: