Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
„Pulseme“yra nešiojamas prietaisas, padedantis žmonėms žinoti, kada jų širdies plakimas viršija nustatytą tašką, suteikiant jiems fizinį grįžtamąjį ryšį mažėjančio ir nesitraukiančio nešiojamojo kompiuterio pavidalu.
1 žingsnis: aprašymas
Pagrindinė šio nešiojamojo audinio dalis yra vilnonis audinys, kuris nuolat liečiasi su vartotojo ranka, o susitraukęs sukuria minkštą jausmą. Be to, yra „Arduino“valdomas mechanizmas, atsakingas už audinio judėjimą, taip pat pulso jutiklis.
2 žingsnis: medžiagos
Tiksliau, šios fizinio pranešimo impulso jutiklio sukūrimui reikalingos šios dalys:
- Arduino Uno
- Pulso jutiklis
- 2 x nuolatinio sukimosi servos (DS04-NFC)
- 2 x spyruoklės
- Apyrankė
- Medžiaga
- Siūlai
- Baterija
3 žingsnis: schema
Yra dvi paprastos grandinės, skirtos šio nešiojamojo kompiuterio elektroninei daliai sukurti.
Jutiklio grandinė:
- Jutiklio kaištis 1 prie „Arduino A0“
- Jutiklio kaištis 2 prie +5V
- Jutiklio kaištis 3 prie GND
Servo grandinė:
- Servo1 kaištis į „Arduino“kaištį 8
- Servo2 kaištis į „Arduino“kaištį 9
Galiausiai prijunkite +5V ir GND prie atitinkamų „Arduino“plokštės gnybtų.
4 žingsnis: susitvarkykite dalykus
Norint surinkti šį nešiojamąjį kompiuterį, reikia atlikti šiuos veiksmus:
- Išmatuokite vidutinio žmogaus rankos skersmenį, kad susiūtumėte audinį, priklausomai nuo tos formos/dydžio.
- Pirkite arba 3D spausdinkite tinkamą apyrankę, kuri būtų visos elektronikos/variklių pagrindas.
- Sujunkite spyruokles ant audinio, priešingose pusėse.
- Klijuokite du servo ant apyrankės.
- Prijunkite spyruokles ir servo, naudodami sriegį.
- Koreguokite kodą, kad jis atitiktų jūsų pageidavimus ir (arba) audinio dydį.
- Mėgautis!
5 veiksmas: nustatykite „Arduino & Code“
„Arduino“prijungimas prie kompiuterio ir jo veikimas. Tai padaryti paprasta. Tada programuokite „arduino“skaityti impulsą ir vairuoti servo, kai pulso dažnis viršija įprastą diapazoną. Iš esmės taip pat turime pakeisti dažnį, kuriuo jis nuskaito įvesties vertę, kad gautume tokį kodą: delsa (9000) laikoma geriausia paprasto eskizo praktika. Kodas yra toks:
Servo myservo1; Servo myservo2; int pos; // Kintamieji const int PulseWire = 0; // PulseSensor PURPLE WIRE prijungtas prie ANALOG PIN 0 const int LED13 = 13; // Borto „Arduino“šviesos diodas, artimas PIN kodui 13. // int Threshold = 550; // Nustatykite, kurį signalą „laikyti ritmu“, o kurį ignoruoti. // Norėdami patikslinti slenkstinę vertę, viršijančią numatytąjį nustatymą, naudokite „Pradedant projektą“. // Priešingu atveju palikite numatytąją „550“vertę. „PulseSensor“Žaidimų pulso jutiklis; // Sukuria „PulseSensorPlayground“objekto egzempliorių, vadinamą „pulseSensor“void setup () {Serial.begin (9600); // Serijiniam monitoriui
// Konfigūruokite „PulseSensor“objektą, priskirdami jam mūsų kintamuosius. pulseSensor.analogInput (PulseWire); pulseSensor.blinkOnPulse (LED13); // automatiškai stebuklingai mirksi „Arduino“šviesos diodas su širdies plakimu. // pulseSensor.setThreshold (slenkstis); // Dar kartą patikrinkite, ar objektas „pulseSensor“buvo sukurtas ir „pradėjo“matyti signalą. if (pulseSensor.begin ()) {Serial.println ("Mes sukūrėme pulseSensor objektą!"); // Tai spausdinama vieną kartą įjungus „Arduino“arba iš naujo nustatant „Arduino“. }} void loop () {int myBPM = pulseSensor.getBeatsPerMinute (); // Skambučių funkcija mūsų pulseSensor objekte, kuris grąžina BPM kaip „int“. // „myBPM“dabar turi šią BPM vertę. //myservo1.attach(9); // if (pulseSensor.sawStartOfBeat ()) {// Nuolat tikrinkite, ar įvyko „mušimas“. Serial.println ("♥ įvyko širdies plakimas!"); // Jei testas „teisingas“, atspausdinkite pranešimą „įvyko širdies plakimas“. Serial.print („BPM:“); // Spausdinti frazę "BPM:" Serial.println (myBPM); // Spausdinkite vertę myBPM viduje. if (myBPM> = 65) {// Nuolat tikrinkite, ar „įvyko smūgis“.
myservo1.attach (9); myservo2.attach (8); myservo1.writeMicroseconds (2000); // CW myservo2.writeMicroseconds (2000); vėlavimas (4000); myservo1.writeMicroseconds (1000); // CCW myservo2.writeMicroseconds (1000); vėlavimas (4000); myservo1.writeMicroseconds (1500); // sustabdyti myservo2.writeMicroseconds (1500); vėlavimas (500); } //} uždelsimas (9000); // laikoma geriausia praktika paprastame eskize. } Vykdykite kodą dabar, tiesiog patvirtinkite eskizą, prijunkite USB ir įkelkite. Pamatysi.