Mundarija:

Kiyinadigan - Yakuniy loyiha: 7 qadam
Kiyinadigan - Yakuniy loyiha: 7 qadam

Video: Kiyinadigan - Yakuniy loyiha: 7 qadam

Video: Kiyinadigan - Yakuniy loyiha: 7 qadam
Video: Номозни масхара килган шайтон жазосини олди 🙀 2024, Iyun
Anonim
Kiyinadigan - yakuniy loyiha
Kiyinadigan - yakuniy loyiha

KIRISH

Ushbu loyihada biz kiborg funktsiyalariga asoslangan funktsional taqiladigan prototip yaratish vazifasini oldik. Bilasizmi, yuragingiz BPM musiqasi bilan hamohang. Siz kayfiyatingizni musiqa orqali boshqarishga urinib ko'rishingiz mumkin, lekin agar texnologiya bizga tinchlanishga yordam bersa -chi? Bizga faqat ba'zi komponentlar, Arduino va minigarnituralar kerak. Keling, yangilik qilaylik!

Loyiha Mark Vila, Gilyermo Stauffaxer va Pau Karselse

1 -qadam: Materiallar va komponentlar

Materiallar va komponentlar
Materiallar va komponentlar

Qurilish materiallari:

- 3D bosma bilaguzuk

- M3 vintlardek (x8)

- M3 yong'oq (x12)

- Fanny to'plami

Elektron materiallar:

-Yurak urish tezligi sensori BPM

- tugmalar (x2)

- Potentsiometr

- LCD C 1602 MODULI

- MODUL DFPLAYER MINI MP3

- 3,5 mm Jek Stereo TRRS eshitish vositasi

- MicroSD karta

- Arduino Uno plitasi

- Payvandchi

- Bakelit plitasi

2 -qadam: bilaguzukni loyihalash

Bilaguzuk tasmasini loyihalash
Bilaguzuk tasmasini loyihalash
Bilaguzuk tasmasini loyihalash
Bilaguzuk tasmasini loyihalash

Avval bilaguzukning turli qismlarini tartibga solish uchun bir nechta eskizlar tayyorlaymiz.

Aniq fikr bilan biz guruh a'zolarining uchta qo'lini o'lchadik, so'ngra dizayn uchun eng maqbul o'lchovni topdik. Nihoyat, biz mahsulotni 3d dastur bilan loyihalashtiramiz va uni 3D printer bilan chop etamiz.

Bu erda. STL fayllarini yuklab olishingiz mumkin.

3 -qadam: Elektron ulanish

Elektron ulanishlar
Elektron ulanishlar

Biz 3d dizaynimizni kerakli tekshiruvlarini o'tkazishda davom etamiz, o'lchovlar to'g'rilanganligini ko'rish uchun prototipdagi barcha komponentlarning birinchi yig'ilishini qildik.

Barcha komponentlarni Arduino kartasiga ulash uchun biz 0, 5 metrli kabellar yordamida komponentlardan turli xil ulanishlarni o'rnatdik, shu orqali biz taxtaning ko'rinishini kamaytiramiz va prototipni yaxshiroq tashkil qilamiz.

4 -qadam: Kod

Kodeks
Kodeks
Kodeks
Kodeks
Kodeks
Kodeks

Bu loyiha kiborg prototipidir. Shubhasiz, biz terining ostiga tarkibiy qismlarni kiritmaganmiz, shuning uchun biz bilaguzukni ortez sifatida simulyatsiya qildik (funktsional tomonlarini o'zgartirish uchun tanaga qo'llaniladigan tashqi qurilma).

Bizning kodimiz foydalanuvchining tugmachalarini bosadi va ularni LCD displey yordamida ko'rsatadi. BPMga qo'shimcha ravishda, ekran kerakli tezlikni ko'rsatadi, shunda foydalanuvchi uni yurak urish tezligi bilan taqqoslay oladi. O'zingizning BPM -ni ko'paytirish yoki kamaytirish qiziq bo'lgan vaziyatlar ko'p. Masalan, chidamli sportchilar haddan tashqari charchamaslik uchun pulsatsiyani boshqarishi kerak. Kundalik misol, asabiy holatda uxlashni yoki tinchlanishni xohlashdir. Bundan tashqari, autizmli odamlar uchun stressni kamaytirish uchun terapevtik usul sifatida qo'llanilishi mumkin. Ekran yonida kerakli tezlikni boshqarish va yurak tezligini oshirish yoki kamaytirish uchun ikkita tugma mavjud. Zo'ravonlikka qarab, ilgari o'rganilgan musiqa turi ijro etiladi. Musiqa BPM -ni o'zgartirishi mumkinligini ko'rsatadigan tadqiqotlar mavjud. Beats per Minute qo'shig'iga ko'ra, inson tanasi o'sha BPMga taqlid qiladi va unga mos keladi.

int SetResUp = 11; // intensivlikni oshirish tugmasi bilan Arduino 10 -pinli pin.int SetResDown = 12; // intensivlikni pasaytirish tugmasi bilan Arduino 11 -pin

int ResButtonCounter = 0; // qarshilik sozlamalarini oshiruvchi yoki kamaytiruvchi taymer, boshlang'ich qiymati 0 int ResButtonUpState = 0; // intensivlikni oshirish tugmachasining hozirgi holati int ResButtonDownState = 0; // intensivlikni pasaytirish tugmachasining hozirgi holati int lastResButtonUpState = 0; // intensivlikni oshirish tugmachasining oxirgi holati int lastResButtonDownState = 0; // intensivlikni pasaytirish tugmasining oxirgi holati

int pulsePin = 0; // A0 portiga ulangan puls sensori // Bu o'zgaruvchilar o'zgaruvchan, chunki ular ikkinchi tabdagi uzilishlar paytida ishlatiladi. o'zgaruvchan int BPM; // Beats per minute uchuvchan int Signal; // Puls sensori ma'lumotlarini kiritish uchuvchi int IBI = 600; // Puls vaqti o'zgaruvchan boolean Pulse = false; // Puls to'lqini baland bo'lsa, to'g'ri, past volatli boolean QS = noto'g'ri;

# belgilash Start_Byte 0x7E # Version_Byte 0xFF ni belgilang # Command_Length 0x06 # End_Byte 0xEF ni aniqlang # Acknowledge 0x00 ni belgilang // 0x41 buyrug'i bilan ma'lumotlarni qaytaradi [0x01: info, 0x00: hech qanday ma'lumot]

// PANTALLA #include // LCD displey funktsiyalari uchun kutubxonani yuklang #include #include

LiquidCrystal lcd (7, 6, 5, 4, 3, 2); // LCD ulangan portlarni e'lon qiling

// LECTOR #include #include // dfplayer mini MP3 moduli funktsiyalari uchun kutubxonani yuklang.

char serialData; int nsong; int v;

SoftwareSerial comm (9, 10); // DFPlayer ulangan portlarni e'lon qiling DFRobotDFPlayerMini mp3;

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

// LCD (16x2) lcd.begin (16, 2) o'lchamlarini aniqlang; // Matn qaysi ustunda va qaysi qatorda ko'rsatila boshlanishini tanlaymiz // LECTOR comm.begin (9600);

mp3.begin (comm); // Komponent serialData = (char) (('')) boshlanadi; mp3.start (); Serial.println ("O'ynash"); // Qo'shiq kuylash mp3. tovush (25); // Ovoz balandligini aniqlash}

void loop () {if (digitalRead (11) == LOW) {mp3.next (); // Agar tugma bosilsa, qo'shiq o'tadi} if (digitalRead (12) == LOW) {mp3.previous (); // Agar tugma bosilsa, oldingi qo'shiq} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0); // A0 analog portiga ulangan yurak urish tezligi monitorining qiymatini o'qing

Serial.println (pulso/6); if (QS == true) {// Quantified Self bayrog'i arduino qidiruvi kabi to'g'ri bo'lsa, BPM QS = false; // Quantified Self bayrog'ini tiklash}

lcd.setCursor (0, 0); // Kerakli matnni ko'rsatish lcd.print ("BPM:"); lcd.setCursor (0, 1); // Kerakli matnni ko'rsatish lcd.print ("INT:"); lcd.setCursor (5, 0); // Kerakli matnni ko'rsatish lcd.print (pulso); lcd.setCursor (5, 1); // Kerakli matnni ko'rsatish lcd.print (ResButtonCounter); kechikish (50); lcd.clear (); ResButtonUpState = digitalRead (SetResUp); ResButtonDownState = digitalRead (SetResDown);

// TempButtonState -ni oldingi holati bilan solishtiring

if (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// agar oxirgi holat o'zgargan bo'lsa, hisoblagichni oshiring

ResButtonCounter ++; }

// joriy holatni oxirgi holat sifatida saqlang, // keyingi safar pastadir bajariladi lastResButtonUpState = ResButtonUpState;

// tugma holatini (oshirish yoki kamaytirish) oxirgi holat bilan solishtiring

agar (ResButtonDownState! = lastResButtonDownState && ResButtonDownState == LOW) {

// agar oxirgi holat o'zgargan bo'lsa, hisoblagichni kamaytiring

ResButtonCounter-; }

// joriy holatni oxirgi holat sifatida saqlang, // keyingi safar loop bajariladi lastResButtonDownState = ResButtonDownState; {Serial.println (ResButtonCounter);

if (ResButtonCounter> = 10) {ResButtonCounter = 10; }

if (ResButtonCounter <1) {ResButtonCounter = 1; }

}

}

5 -qadam: Umumiy yig'ilish

Kod to'g'ri dasturlashtirilgan va prototipimizning ikki qismi allaqachon yig'ilgan. Biz barcha komponentlarni joyiga qo'yamiz va bilaguzukga mahkamlash uchun lenta bilan biriktiramiz. Bilaguzukdagi komponentlar - bu yurak urish tezligi sensori BPM, ikkita tugma, potansiometr va LCD displey, ularning har biri ilgari 3D faylda yaratilgan. Birinchi qism tugagandan so'ng, biz protoboardga e'tibor qaratamiz, har bir ulagich Arduino kartasining to'g'ri pimida. Nihoyat, har bir komponentning tekshirilgan ishlashi bilan biz simlarni yashirish uchun uni fanny paketiga joylashtirdik.

6 -qadam: video

7 -qadam: Xulosa

Loyihaning eng qiziq tomoni - bu inson tanasini behush holda musiqaga taqlid qilishni o'rganish. Bu kelajakdagi loyihalar uchun ko'plab variantlarga yo'l ochadi. Menimcha, bu to'liq loyiha, bizda ishlangan kodli juda ko'p komponentlar mavjud. Agar biz yana boshlasak, biz boshqa komponentlar haqida o'ylar edik yoki ularni sifatli sotib olamiz. Biz singan kabellar va payvandlash bilan bog'liq juda ko'p muammolarga duch keldik, ular kichik va juda nozik (ayniqsa BPM). Boshqa tomondan, siz komponentlarni ulashda ehtiyot bo'lishingiz kerak, ularning chiqishlari ko'p va xato qilish oson.

Bu juda boyituvchi loyiha bo'lib, unda biz Arduino -ning apparat va dasturiy ta'minotining keng tanlovini ko'rib chiqdik.

Tavsiya: