Բովանդակություն:

Հանգստացնող ակնոցներ - ITTT. 5 քայլ (նկարներով)
Հանգստացնող ակնոցներ - ITTT. 5 քայլ (նկարներով)

Video: Հանգստացնող ակնոցներ - ITTT. 5 քայլ (նկարներով)

Video: Հանգստացնող ակնոցներ - ITTT. 5 քայլ (նկարներով)
Video: Qigong սկսնակների համար. Հոդերի, ողնաշարի և էներգիայի վերականգնման համար։ 2024, Հուլիսի
Anonim
Հանգստացնող ակնոցներ - ITTT
Հանգստացնող ակնոցներ - ITTT
Հանգստացնող ակնոցներ - ITTT
Հանգստացնող ակնոցներ - ITTT
Հանգստացնող ակնոցներ - ITTT
Հանգստացնող ակնոցներ - ITTT

HKU Project - ITTT (If This Then That) - Julուլիա Բերկուվեր, 1 Բ

Երբևէ զգացե՞լ եք, որ սթրեսի մեջ եք, և պարզապես չգիտեք ինչպես հանգստացնել ինքներդ ձեզ, ապա պետք է փորձեք հանգստանալու այս ակնոցները: Դուք դրանք հագնում և փակում եք ձեր աչքերը, ապա շնչառական կաղապարը կխաղա: Այս շնչառական օրինակին հետևելով ՝ ձեր շնչառական ռիթմը կիջնի շնչառության և ելքի րոպեում 6 անգամ: Դա անելով դա ազատում է ամենօրյա սթրեսը:

Կարող եք նաև հետևել ձեր շնչառության ինտենսիվությանը ՝ անջատիչը շրջելով ՝ օգտագործելով fsr սենսոր:

Այս տոտուրիալով ես ձեզ կառաջնորդեմ քայլ առ քայլ կառուցել ձեր սեփական հանգստացնող ակնոցները:

Քայլ 1: Անհրաժեշտ նյութեր և մասեր

Անհրաժեշտ նյութեր և մասեր
Անհրաժեշտ նյութեր և մասեր
Անհրաժեշտ նյութեր և մասեր
Անհրաժեշտ նյութեր և մասեր
Անհրաժեշտ նյութեր և մասեր
Անհրաժեշտ նյութեր և մասեր

Նյութեր:

1x arduino uno;

1xbreadboard կամ PCV;

3x 10k դիմադրիչներ

Լարեր (feանկալի է տարբեր գույներ, այնպես որ ավելի հեշտ է ասել, թե որ իրերն են գետնին գնում, և որոնք են տարբեր կապում և այլն);

Ջերմության նվազեցման որոշ խողովակներ;

2x NeoPixel Ring - 16 x 5050 RGB LED ինտեգրված վարորդներով;

1x անջատիչ;

1x FSR սենսոր;

1x SteamPunk ակնոց (դրանք կարող եք գնել երեկույթների խանութում, դրանք հեշտ է օգտագործել, քանի որ նեոպիքսելային մատանին հիանալի տեղավորվում է ակնոցների վրա: Դուք միշտ փորձում եք օգտագործել այլ ակնոցներ կամ ստեղծել ձեր սեփականը);

1 անգամ մի տեսակ (առաձգական) ժապավեն, որը պետք է դրվի կրծքին:

Գործիքներ.-Նոթբուք

-oldոդման երկաթ

-Arduino IDE ծրագրակազմ

Իմ pvc- ի վրա կտեսնեք երկու կոճակ և անջատիչ, ես միայն ձախ կոճակն եմ օգտագործում այն անջատիչին միացնելու համար, ես չեմ օգտագործում նկարի աջ կողմում գտնվող երկրորդ կոճակը: Ես կոճակները դրեցի pvc- ի վրա, նախքան հասկանալը, որ դրանք ինձ պետք չեն, և դրա փոխարեն պետք էր անջատիչ օգտագործել:

Ստորև այստեղ կտեսնեք այն ամենի նկարները, ինչ ես օգտագործել եմ.

Քայլ 2: Neopixel մատանիներ

Նեոպիքսել օղակներ
Նեոպիքսել օղակներ

Սպիտակ մետաղալարը միացված է գետնին ՝ նեոպիքսելային օղակի հետևի մասում:

Նարնջագույն մետաղալարը միացված է 5V- ին:

Իսկ շագանակագույն մետաղալարը միացված է տվյալների մուտքագրմանը

Քայլ 3: Կապեր

Միացումներ
Միացումներ
Միացումներ
Միացումներ

Ահա, թե ինչ տեսք ուներ իմ տախտակը նախատիպ պատրաստելիս, կարող եք սա օգտագործել որպես հղում:

Ես նաև կազմեցի էլեկտրագծերի դասավորությունը, թե ինչ տեսք ունի այն ընդամենը մեկ կոճակով:

Քայլ 4: Կոդ

Հավանաբար, դա ամենաարդյունավետ ծածկագիրը չէ, բայց այն աշխատում է ինձ համար: Մարտահրավեր նետեք ինքներդ ձեզ և փորձեք այն ավելի արդյունավետ դարձնել; Պ

#ներառում

// Որը

Arduino- ի կապը միացված է NeoPixels- ին?

#սահմանել

PIN 6

// Որը

Arduino- ի քորոցը միացված է կոճակին

#սահմանել

BUTTON_PIN 9

// Ինչպես

շատ NeoPixels կցված են Arduino- ին?

#սահմանել

ԹՈ NUMՄԱՆԱԿՆԵՐ 16

// Երբ

մենք կարգավորում ենք NeoPixel գրադարանը, մենք ասում ենք նրան, թե քանի պիքսել և որ քորոցն օգտագործել ազդանշաններ ուղարկելու համար:

// Նշում

որ ավելի հին NeoPixel շերտերի համար կարող է անհրաժեշտ լինել փոխել երրորդ պարամետրը

//

օրինակ `հնարավոր արժեքների մասին լրացուցիչ տեղեկությունների համար:

Adafruit_NeoPixel

պիքսել = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int դադար

= 1; // հետաձգում 2

ներ

դադար 2 = 80; // իջնում է, երբ fsr- ն օգտագործվում է

ներ

դադար 3 = 150; // կատարելը, երբ fsr- ն օգտագործվում է

ներ

ուշացում = 4; // հետաձգում 1

ներ

fsrPin = 0; // FSR և 10K քաշքշուկները միացված են a0- ին

ներ

fsr Կարդում;

դատարկ

կարգավորում () {

pinMode (BUTTON_PIN, INPUT);

Serial.begin (9600);

pixels.begin (); // Սա նախաստորագրում է

NeoPixel գրադարան:

pixels.show ();

}

բուլ

սեղմված (int pin) {

վերադարձնել digitalRead (քորոց);

}

դատարկ

loop () {// կարդում է, թե արդյոք pin- ի մուտքագրումը ճիշտ է կամ սխալ

fsrReading = analogRead (fsrPin);

Serial.print ("Անալոգային ընթերցում =");

Serial.print (fsrReading);

եթե (սեղմված (BUTTON_PIN) == ճշմարիտ) {

// լույսի էֆեկտ fsr տվիչ օգտագործելիս

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

}

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

}

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

}

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

}

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

}

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

}

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

}

եթե (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 void breathe is voor het licht effect als de

fsrsensor niet gebruikt wordt. Deze void wordt de de void loop () weer aangeroepen- ում:

void breathe_blue (int դադար, int քայլեր, բայթ R, բայտ G, բայթ Բ) {

ներ

tmpR, tmpG, tmpB; // Temp արժեքներ

// մարել

համար (int s = 1; s <= քայլեր; s ++) {

tmpR = (R * վ) /

քայլեր; // Նախ բազմապատկեք ՝ կրճատման սխալներից խուսափելու համար

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0;

եսpixels.setPixelColor (0, tmpR, tmpG+1, tmpB);

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

}

pixels.show ();

ուշացում (4);

}

// մարել

համար (int s = 1; s <= քայլեր; s ++) {

tmpR = (R * վ) /

քայլեր; // Նախ բազմապատկեք ՝ կրճատման սխալներից խուսափելու համար

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0;

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

}

pixels.show ();

ուշացում (4);

}

// մարել

համար (int s = 1; s <= քայլեր; s ++) {

tmpR = (R * վ) /

քայլեր; // Նախ բազմապատկեք ՝ կրճատման սխալներից խուսափելու համար

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0;

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

}

pixels.show ();

ուշացում (3.5);

}

// մարել

համար (int s = 1; s <= քայլեր; s ++) {

tmpR = (R * վ) /

քայլեր; // Նախ բազմապատկեք ՝ կրճատման սխալներից խուսափելու համար

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0;

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

}

pixels.show ();

ուշացում (3);

}

համար (int i = 0;

եսpixels.setPixelColor (0, 0, 0, 0);pixels.setPixelColor (15, 0, 0, 0);

}

// մարել

համար (int s = 1; s <= քայլեր; s ++) {

tmpR = (R * վ) /

քայլեր; // Նախ բազմապատկեք ՝ կրճատման սխալներից խուսափելու համար

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0;

ես

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

}

pixels.show ();

ուշացում (3);

}

// մարել

համար (int s = 1; s <= քայլեր; s ++) {

tmpR = (R * վ) /

քայլեր; // Նախ բազմապատկեք ՝ կրճատման սխալներից խուսափելու համար

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0;

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

}

pixels.show ();

ուշացում (2);

}

համար (int i = 0;

եսpixels.setPixelColor (1, 0, 0, 0);

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

}

// մարել

համար (int s = 1; s <= քայլեր; s ++) {

tmpR = (R * վ) /

քայլեր; // Նախ բազմապատկեք ՝ կրճատման սխալներից խուսափելու համար

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0;

եսpixels.setPixelColor (6, tmpR, tmpG+2, tmpB+40);

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

}

pixels.show ();

ուշացում (ուշացում);

}

համար (int i = 0;

եսpixels.setPixelColor (2, 0, 0, 0);pixels.setPixelColor (13, 0, 0, 0);

}

// մարել

համար (int s = 1; s <= քայլեր; s ++) {

tmpR = (R * վ) /

քայլեր; // Նախ բազմապատկեք ՝ կրճատման սխալներից խուսափելու համար

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0;

ես

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

}

pixels.show ();

ուշացում (ուշացում);

}

// Մարել

համար (int s = քայլեր; s> 0; s--) {

tmpR = (R * s) / քայլեր; // Նախ բազմապատկել ՝ կրճատումից խուսափելու համար

սխալներ

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0; i

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

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

}

pixels.show ();

ուշացում (1);

}

// Մարել

համար (int s = քայլեր; s> 0; s--) {

tmpR = (R * s) / քայլեր; // Նախ բազմապատկել ՝ կրճատումից խուսափելու համար

սխալներ

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0; i

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

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

}

pixels.show ();

ուշացում (1);

}

// Մարել

համար (int s = քայլեր; s> 0; s--) {

tmpR = (R * s) / քայլեր; // Նախ բազմապատկել ՝ կրճատումից խուսափելու համար

սխալներ

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0; i

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

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

}

pixels.show ();

ուշացում (2);

}

// Մարել

համար (int s = քայլեր; s> 0; s--) {

tmpR = (R * s) / քայլեր; // Նախ բազմապատկել ՝ կրճատումից խուսափելու համար

սխալներ

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0; i

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

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

}

pixels.show ();

ուշացում (2);

}

// Մարել

համար (int s = քայլեր; s> 0; s--) {

tmpR = (R * s) / քայլեր; // Նախ բազմապատկել ՝ կրճատումից խուսափելու համար

սխալներ

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0; i

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

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

}

pixels.show ();

ուշացում (3);

}

// Մարել

համար (int s = քայլեր; s> 0; s--) {

tmpR = (R * s) / քայլեր; //

Սկզբում բազմապատկեք ՝ կրճատման սխալներից խուսափելու համար

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0; i

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

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

}

pixels.show ();

ուշացում (3);

}

// Մարել

համար (int s = քայլեր; s> 0; s--) {

tmpR = (R * s) / քայլեր; // Նախ բազմապատկել ՝ կրճատումից խուսափելու համար

սխալներ

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (int i = 0; i

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

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

}

pixels.show ();

ուշացում (4);

}

// Մարել

համար (int s = քայլեր; s> 0; s--) {

tmpR = (R * s) / քայլեր; // Նախ բազմապատկել ՝ կրճատումից խուսափելու համար

սխալներ

tmpG = (G * ներ) / քայլեր;

tmpB = (B * ներ) / քայլեր;

համար (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- սենսորը կպչել առաձգական ժապավենով ինչ-որ ժապավենով կամ պարզապես այն ինքնուրույն թողնել:

Վայելեք ձեր ակնոցները:)

Խորհուրդ ենք տալիս: