Բովանդակություն:
- Քայլ 1: Նյութեր և բաղադրիչներ
- Քայլ 2. Նախագծեք ձեռնաշղթա
- Քայլ 3: Էլեկտրոնային միացումներ
- Քայլ 4: Կոդ
- Քայլ 5: Ընդհանուր հավաքում
- Քայլ 6: Տեսանյութ
- Քայլ 7: Եզրակացություն
Video: Հագանելի - Վերջնական նախագիծ ՝ 7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
ՆԵՐԱՈԹՅՈՆ
Այս նախագծում մենք խնդիր ունեինք կատարել ֆունկցիոնալ կրելի նախատիպ ՝ հիմնված կիբերգ գործառույթների վրա: Գիտե՞ք, որ ձեր սիրտը համաժամացվում է երաժշտության 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- ի ապարատային և ծրագրային ապահովման տարբեր տարբերակներին:
Խորհուրդ ենք տալիս:
Հագանելի լապտեր (CPX- ով) ՝ 8 քայլ
Հագանելի լապտեր (CPX- ով). Բարև բոլորին, ես պատրաստել եմ կրելի լապտեր, որը կարելի է կրել ձեր ձեռքին: Ես օգտագործել եմ Adafruit- ի կոդը ՝ ծածկագրող կայք, որտեղ դուք տեղադրում եք կոդերի բլոկներ: Այս ուսանելիում ես ձեզ կասեմ, թե ինչ եմ արել CPX- ը (Circuit Playground Ex
Հագանելի Photon Beatbox: 7 քայլ
Wearable Photon Beatbox: Այս նախագիծը ոգեշնչված էր Adafruit- ում գտած ֆոտոնային տուփի ծածկագրով. դարձնելով այն կրելի էլեկտրոնային ժիլետ, որը կփոխվի
Հագանելի էլեկտրոնային նշան ՝ 6 քայլ (նկարներով)
Հագանելի էլեկտրոնային կրծքանշան. Ահա մի հիանալի ծրագիր, որը պետք է ձեռնարկել, եթե մտադիր եք գնալ Hardware/Python հանդիպմանը կամ մտադիր եք գնալ ձեր տեղական Makerfaire: Պատրաստեք կրելի էլեկտրոնային կրծքանշան, որը հիմնված է Raspberry Pi Zero և PaPiRus pHAT eInk էկրանների վրա: Կարող եք հետևել
Հագանելի առողջապահական համակարգ ՝ օգտագործելով IOT ՝ 8 քայլ
Հագանելի առողջապահական համակարգ ՝ օգտագործելով IOT. Այս աշխատանքում սենսորները փաթաթված են կրելի վերարկուի մեջ և այն չափում է օգտագործողի ջերմաստիճանը, ԷՍԳ -ն, դիրքը, արյան ճնշումը և BPM- ը և այն ուղարկում ThingSpeak սերվերի միջոցով: Այն ցուցադրում է չափված տվյալների գրաֆիկական ներկայացում:
10 հիմնական Arduino նախագիծ սկսնակների համար: Կատարեք առնվազն 15 նախագիծ մեկ տախտակով: 6 քայլ
10 հիմնական Arduino նախագիծ սկսնակների համար: Կատարեք առնվազն 15 նախագիծ մեկ տախտակով: Arduino Project & Ուսուցողական խորհուրդ; Ներառում է 10 հիմնական Arduino նախագիծ: Բոլոր կոդերը, Gerber ֆայլը և այլն: Ոչ SMD! Հեշտ զոդում բոլորի համար: Հեշտ շարժական և փոխարինելի բաղադրիչներ: Դուք կարող եք կատարել առնվազն 15 նախագիծ մեկ բո