Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Pulseme - bu taqiladigan qurilma bo'lib, odamlarga yurak urishi belgilangan nuqtadan yuqori ekanligini bilib olishga yordam beradi, bu esa ularga jismoniy geribildirimning qisqarishi va qisilmasligi ko'rinishida beriladi.
1 -qadam: tavsif
Bu taqiladigan kiyimning asosiy qismi - junli mato, u foydalanuvchining qo'li bilan doimiy aloqada bo'lib, qisilganda yumshoq tuyg'u hosil qiladi. Bundan tashqari, Arduino tomonidan boshqariladigan, matoning harakatini boshqaruvchi mexanizm, shuningdek, puls sensori mavjud.
2 -qadam: materiallar
Aniqroq aytganda, ushbu impuls sensorini yaratish uchun zarur bo'lgan qismlar:
- Arduino Uno
- Puls sensori
- 2 x uzluksiz aylanish servolari (DS04-NFC)
- 2 x buloq
- Bilaguzuk
- Mato
- Mavzular
- Batareya
3 -qadam: sxematik
Ushbu taqiladigan qurilmaning elektron qismini yaratish uchun ikkita oddiy sxemalar jalb qilingan.
Sensor davri:
- Sensor pin 1 Arduino A0 ga
- Sensor pimi 2 +5V ga
- Sensor pin 3 GND ga
Servo davri:
- Arduino pin 8 -ga Servo1 -pin
- Servo2 pinini Arduino pin 9 ga ulang
Nihoyat, +5V va GND ni Arduino platasidagi tegishli terminallariga ulang.
4 -qadam: narsalarni birlashtirish
Ushbu kiyimni yig'ish uchun quyidagi choralarni ko'rish kerak:
- Matoning shakli/o'lchamiga qarab tikish uchun oddiy odamning qo'l diametrini o'lchang.
- Barcha elektronika/dvigatellar uchun asos bo'lib xizmat qilish uchun mos bilaguzukni sotib oling yoki 3D chop eting.
- Buloqlarni matoga qarama -qarshi tomondan tikib qo'ying.
- Bilakchaga ikkita servo yopishtiring.
- Ip yordamida buloqlar va servolarni ulang.
- O'zingizning xohishingiz va/yoki matoning o'lchamiga mos keladigan kodni sozlang.
- Xursand bo'ling!
5 -qadam: Arduino va kodni o'rnating
Arduino -ni kompyuterga ulang va avval uni ishga tushiring. Buni qilish oddiy. Keyin, arduino -ni pulsni o'qish va puls tezligi normal diapazondan oshib ketganda servolarni boshqarishi uchun dasturlash. Asosan, biz quyidagi kodni olish uchun kirish qiymatini o'qish chastotasini o'zgartirishimiz kerak: kechiktirish (9000) oddiy eskizda eng yaxshi amaliyot hisoblanadi. Kod quyidagicha:
Servo myservo1; Servo myservo2; int pos; // o'zgaruvchilar const int PulseWire = 0; // PulseSensor PURPLE WIRE ANALOG PIN kodiga ulangan 0 const int LED13 = 13; // Arduino bortidagi LED, PIN 13 ga yaqin. // int Threshold = 550; // Qaysi signalni "zarba deb hisoblash" kerakligini va qaysi birini e'tiborsiz qoldirishni aniqlang. // "Ishga kirishish loyihasi" dan foydalanib, pol qiymatini standart sozlamadan tashqariga sozlang. // Aks holda standart "550" qiymatini qoldiring. PulseSensorPlayground pulsSensor; // PulseSensorPlayground ob'ektining "pulseSensor" void setup () nomli namunasini yaratadi () {Serial.begin (9600); // Seriyali monitor uchun
// PulseSensor ob'ektini sozlash, unga o'z o'zgaruvchilarimizni tayinlash. pulseSensor.analogInput (PulseWire); pulseSensor.blinkOnPulse (LED13); // yurak urishi bilan Arduino svetodiodini avtomatik sehrlab o'chiring. // pulseSensor.setThreshold (Threshold); // "pulseSensor" ob'ekti yaratilganligini va signalni ko'rishni "boshlaganini" ikki marta tekshiring. if (pulseSensor.begin ()) {Serial.println ("Biz pulseSensor ob'ektini yaratdik!"); // Bu bir marta Arduino yoqilganda yoki Arduino-ni qayta tiklashda chop etiladi. }} void loop () {int myBPM = pulseSensor.getBeatsPerMinute (); // BPM -ni "int" sifatida qaytaradigan pulseSensor ob'ektimizdagi qo'ng'iroqlar funktsiyasi. // "myBPM" bu BPM qiymatini hozir ushlab turadi. //myservo1.attach(9); // if (pulseSensor.sawStartOfBeat ()) {// Doim "urish sodir bo'lgan" yoki yo'qligini tekshirib turing. Serial.println ("♥ Yurak urishi sodir bo'ldi!"); // Agar test "rost" bo'lsa, "yurak urishi sodir bo'ldi" xabarini chop eting. Serial.print ("BPM:"); // "BPM:" Serial.println (myBPM) iborasini chop eting; // myBPM ichidagi qiymatni chop eting. if (myBPM> = 65) {// Doim "urish sodir bo'lgan" yoki yo'qligini tekshirish.
myservo1.attach (9); myservo2.attach (8); myservo1.writeMicroseconds (2000); // CW myservo2.writeMicroseconds (2000); kechikish (4000); myservo1.writeMicroseconds (1000); // CCW myservo2.writeMicroseconds (1000); kechikish (4000); myservo1.writeMicroseconds (1500); // stop myservo2.writeMicroseconds (1500); kechikish (500); } //} kechikish (9000); // oddiy eskizda eng yaxshi amaliyot deb hisoblanadi. } Kodni hozir ishga tushiring, siz eskizni tasdiqlaysiz, USB -ni ulang va yuklang. Siz ko'rasiz.