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

Հագանելի - Վերջնական նախագիծ ՝ 7 քայլ
Հագանելի - Վերջնական նախագիծ ՝ 7 քայլ

Video: Հագանելի - Վերջնական նախագիծ ՝ 7 քայլ

Video: Հագանելի - Վերջնական նախագիծ ՝ 7 քայլ
Video: 2019 թվականին պետբյուջեից Գյումրիին հատկացվել 319 մլն դրամ. որքա՞ն է տրամադրվելու 2020 թվականին 2024, Հունիսի
Anonim
Wearable - Վերջնական նախագիծ
Wearable - Վերջնական նախագիծ

ՆԵՐԱՈԹՅՈՆ

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

Նախագիծը ՝ Մարկ Վիլայի, Գիլյերմո Ստաֆաֆախերի և Պաու Կարսելեի կողմից

Քայլ 1: Նյութեր և բաղադրիչներ

Նյութեր և բաղադրիչներ
Նյութեր և բաղադրիչներ

Շինանյութեր.

- 3D տպագիր ձեռնաշղթա

- M3 պտուտակներ (x8)

- M3 ընկույզ (x12)

- Fanny փաթեթ

Էլեկտրոնային նյութեր.

-Seart Rate Sensor BPM

- կոճակներ (x2)

- պոտենցիոմետր

- LCD C 1602 ՄՈԴՈLEԼ

- MODULE DFPLAYER MINI MP3

- 3.5 մմ Jack Stereo TRRS Ականջակալ

- MicroSD քարտ

- Arduino Uno ափսե

- Եռակցող

- բակելիտե ափսե

Քայլ 2. Նախագծեք ձեռնաշղթա

Ձևավորեք թևնոց
Ձևավորեք թևնոց
Ձևավորեք թևնոց
Ձևավորեք թևնոց

Սկզբում մենք պատրաստում ենք մի քանի էսքիզ ՝ ձեռքի գոտու տարբեր բաղադրիչները կազմակերպելու համար:

Հստակ գաղափարով մենք չափումներ կատարեցինք խմբի անդամների երեք թևերի վրա, այնուհետև միջին հաշվարկեցինք դիզայնի օպտիմալ չափանիշը գտնելու համար: Վերջապես մենք նախագծում ենք արտադրանքը 3D ծրագրով և տպում այն 3D տպիչով:

Դուք կարող եք ներբեռնել. STL ֆայլերը այստեղ:

Քայլ 3: Էլեկտրոնային միացումներ

Էլեկտրոնային միացումներ
Էլեկտրոնային միացումներ

Մենք շարունակում ենք մեր 3d ձևավորման անհրաժեշտ ստուգումները, մենք նախատիպի բոլոր բաղադրիչների առաջին հավաքումն ենք կատարել `տեսնելու, որ չափումները ճիշտ են:

Բոլոր բաղադրիչները Arduino- ի տախտակին միացնելու համար մենք տարբեր միացումներ ենք կատարել բաղադրիչներից `օգտագործելով 0,5 մետր մալուխներ, այս կերպ մենք նվազեցնում ենք տախտակի տեսանելիությունը և ավելի լավ ենք կազմակերպում նախատիպը:

Քայլ 4: Կոդ

Օրենսգիրքը
Օրենսգիրքը
Օրենսգիրքը
Օրենսգիրքը
Օրենսգիրքը
Օրենսգիրքը

Այս նախագիծը կիբորգյան նախատիպ է: Ակնհայտ է, որ մենք չենք ներկայացրել մաշկի տակ գտնվող բաղադրիչները, ուստի այն նմանակել ենք ապարանջանի հետ որպես օրթեզ (արտաքին սարք, որը կիրառվում է մարմնի վրա ՝ ֆունկցիոնալ ասպեկտները փոփոխելու համար):

Մեր ծածկագիրը վերցնում է օգտվողի ստեղնաշարի հարվածները և ցուցադրում դրանք ՝ օգտագործելով LCD էկրանը: Բացի BPM- ից, էկրանը ցույց է տալիս ցանկալի ինտենսիվությունը, որպեսզի օգտագործողը կարողանա համեմատել այն իր սրտի բաբախյունի հետ: Կան բազմաթիվ իրավիճակներ, երբ հետաքրքիր է բարձրացնել կամ նվազեցնել ձեր սեփական BPM- ը: Օրինակ, տոկունության մարզիկները պետք է վերահսկեն իմպուլսները, որպեսզի չափից ավելի չձանձրանան: Ամենօրյա օրինակը կլինի քնել կամ հանգստանալ նյարդային իրավիճակում: Այն կարող է կիրառվել նաև որպես թերապևտիկ մեթոդ աուտիզմով տառապող մարդկանց համար `նվազեցնելու իրենց զգացած սթրեսը: Էկրանի կողքին կան երկու կոճակներ ՝ ցանկալի ինտենսիվությունը վերահսկելու և սրտի հաճախությունը բարձրացնելու կամ նվազեցնելու համար: Կախված ինտենսիվությունից, հնչում է նախկինում ուսումնասիրված երաժշտության տեսակ: Կան ուսումնասիրություններ, որոնք ցույց են տալիս, որ երաժշտությունը կարող է փոխել BPM- ը: Ըստ երգի Beats per Minute- ի, մարդու մարմինը նմանակում և համընկնում է այդ BPM- ի հետ:

int SetResUp = 11; // Arduino- ի 10 -րդ PIN ինտենսիվության բարձրացման կոճակով: int SetResDown = 12; // Arduino- ի 11 -րդ PIN ինտենսիվության նվազեցման կոճակով

int ResButtonCounter = 0; // անգամ հաշվիչ, որը մեծացնում կամ նվազեցնում է դիմադրության կարգավորումը, 0 int սկզբնական արժեքը ResButtonUpState = 0; // ինտենսիվության բարձրացման կոճակի ընթացիկ վիճակը int ResButtonDownState = 0; // ինտենսիվության նվազեցման կոճակի ընթացիկ վիճակը int lastResButtonUpState = 0; // ինտենսիվության բարձրացման կոճակի վերջին վիճակը int lastResButtonDownState = 0; // ինտենսիվության նվազման կոճակի վերջին վիճակը

int pulsePin = 0; // Իմպուլսային տվիչ ՝ միացված A0 պորտին // Այս փոփոխականներն անկայուն են, քանի որ դրանք օգտագործվում են երկրորդ ներդիրի ընդհատման ռեժիմի ժամանակ: անկայուն int BPM; // զարկ/ րոպե անկայուն int ազդանշան; // Pulse sensor տվյալների մուտքագրում անկայուն int IBI = 600; // Pulse time volatile boole Pulse = false; // Trueշմարիտ, երբ զարկերակային ալիքը բարձր է, կեղծ, երբ այն ցածր անկայուն բուլյան QS = կեղծ է;

# սահմանել Start_Byte 0x7E # define Version_Byte 0xFF # define Command_Length 0x06 # define End_Byte 0xEF # define Ընդունել 0x00 // Վերադարձնում է տեղեկատվությունը 0x41 հրամանով [0x01: տեղեկատվություն, 0x00: տեղեկատվություն չկա]

// PANTALLA #include // Վերբեռնեք գրադարանը LCD էկրանի գործառույթների համար #ներառել #ներառել

LiquidCrystal LCD (7, 6, 5, 4, 3, 2); // Հայտարարեք նավահանգիստները, որտեղ LCD- ն միացված է

// LECTOR #include #include // Վերբեռնեք գրադարանը dfplayer mini MP3 մոդուլի գործառույթների համար:

char serial Տվյալներ; int nsong; int v;

SoftwareSerial comm (9, 10); // Հայտարարեք նավահանգիստները, որտեղ DFPlayer- ը միացված է DFRobotDFPlayerMini mp3;

void setup () {Serial.begin (9600); pinMode (SetResUp, INPUT); pinMode (SetResDown, INPUT);

// Սահմանել LCD- ի (16x2) lcd.begin (16, 2) չափերը; // Մենք ընտրում ենք, թե որ սյունակում և որ տողում է տեքստը սկսում ցուցադրվել // LECTOR comm.begin (9600);

mp3. սկսել (կոմ); // Բաղադրիչը սկսում է serialData = (char) (('')); mp3.սկսել (); Serial.println («Խաղալ»); // Երգ նվագել mp3. ծավալ (25); // Սահմանել ծավալը}

void loop () {if (digitalRead (11) == LOW) {mp3. հաջորդ (); // Եթե կոճակը սեղմված է, երգը անցնում է} if (digitalRead (12) == LOW) {mp3.previous (); // Եթե կոճակը սեղմված է, նախորդ երգը} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // Կարդացեք անալոգային A0 պորտին միացված սրտի բաբախման մոնիտորի արժեքը

Serial.println (pulso/6); եթե (QS == true) {// Quantified Self- ի դրոշը ճշմարիտ է, ինչպես arduino որոնումը, BPM QS = false; // Վերականգնել քանակական ինքնության դրոշը}

lcd.setCursor (0, 0); // Showուցադրել ցանկալի տեքստը lcd.print ("BPM:"); lcd.setCursor (0, 1); // Showույց տալ ցանկալի տեքստը lcd.print ("INT:"); lcd.setCursor (5, 0); // Showուցադրել ցանկալի տեքստը lcd.print (pulso); lcd.setCursor (5, 1); // Showույց տալ ցանկալի տեքստը lcd.print (ResButtonCounter); ուշացում (50); lcd. հստակ (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// համեմատեք TempButtonState- ը իր նախկին վիճակի հետ

եթե (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// եթե վերջին վիճակը փոխվեց, ավելացրեք հաշվիչը

ResButtonCounter ++; }

// պահպանել ընթացիկ վիճակը որպես վերջին վիճակ, // հաջորդ անգամ օղակը կկատարվի lastResButtonUpState = ResButtonUpState;

// համեմատեք կոճակի վիճակը (ավելացում կամ նվազում) վերջին վիճակի հետ

եթե (ResButtonDownState! = lastResButtonDownState && ResButtonDownState == OWԱOWՐ) {

// եթե վերջին վիճակը փոխվել է, նվազեցրեք հաշվիչը

ResButtonCounter--; }

// պահպանել ընթացիկ վիճակը որպես վերջին վիճակ, // հաջորդ անգամ օղակը կկատարվի lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

եթե (ResButtonCounter> = 10) {ResButtonCounter = 10; }

եթե (ResButtonCounter <1) {ResButtonCounter = 1; }

}

}

Քայլ 5: Ընդհանուր հավաքում

Theիշտ ծրագրված ծածկագրով և մեր նախատիպի երկու մասերն արդեն հավաքված: Մենք բոլոր բաղադրիչները տեղադրում ենք տեղում և միացնում ժապավենով ՝ այն ամրացնելու համար թևնոցին: Ապարանջանի բաղադրիչներն են Heart Rate Sensor BPM- ը, երկու կոճակները, պոտենցիոմետրը և LCD էկրանը, որոնցից յուրաքանչյուրն իր համապատասխան փոսում, որը նախկինում նախագծված էր 3D ֆայլում: Առաջին մասի ավարտից հետո մենք կենտրոնանում ենք նախատախտակի վրա, յուրաքանչյուր միակցիչ Arduino տախտակի ճիշտ քորոցին: Ի վերջո, յուրաքանչյուր բաղադրիչի ստուգված գործողությամբ մենք այն դնում ենք ֆանի տուփի մեջ ՝ լարերը թաքցնելու համար:

Քայլ 6: Տեսանյութ

Քայլ 7: Եզրակացություն

Այս նախագծի ամենահետաքրքիրը մարդկային մարմնի անգիտակցական ընդօրինակման մասին սովորելն է երաժշտությամբ: Սա դուռ է բացում ապագա նախագծերի բազմաթիվ տարբերակների համար: Կարծում եմ, որ սա ամբողջական նախագիծ է, մենք ունենք բավականին բազմազան բաղադրիչներ `մշակված կոդով: Եթե նորից սկսենք, ապա կմտածեինք այլ բաղադրիչ այլընտրանքների մասին կամ ավելի լավ որակով կգնեին դրանք: Մենք բազմաթիվ խնդիրներ ենք ունեցել կոտրված մալուխների և եռակցման հետ, դրանք փոքր են և շատ նուրբ (հատկապես BPM): Մյուս կողմից, բաղադրիչները միացնելիս պետք է զգույշ լինել, դրանք ունեն բազմաթիվ ելքեր, և հեշտ է սխալվել:

Դա շատ հարստացնող նախագիծ է, որի ընթացքում մենք անդրադարձել ենք Arduino- ի ապարատային և ծրագրային ապահովման տարբեր տարբերակներին:

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