Mundarija:
- 1 -qadam: Materiallar va komponentlar
- 2 -qadam: bilaguzukni loyihalash
- 3 -qadam: Elektron ulanish
- 4 -qadam: Kod
- 5 -qadam: Umumiy yig'ilish
- 6 -qadam: video
- 7 -qadam: Xulosa
Video: Kiyinadigan - Yakuniy loyiha: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
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
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
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
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
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:
Kiyinadigan yoritgichli Jek-chiroq: 5 qadam (rasmlar bilan)
Kiyinadigan Light Up Jack-O-Lantern: Mana, Xellouin bayrami arafasida olib boriladigan 3D bosilgan ajoyib loyiha. Quyidagi amallarni bajaring, siz o'zingizni kiyishingiz mumkin bo'lgan Light 3D o'lchamli bosib chiqaruvchi Jack-O-Lantern-ga aylantirasiz, uni bo'yiningizga taqishingiz yoki Xellouga tashrif buyurish uchun ish stolingizga qo'yishingiz mumkin
Kiyinadigan harakatni kuzatuvchini yarating (Arduino -dan Android Studio -ning maxsus ilovasiga BLE): 4 qadam
Kiyinadigan harakatni kuzatuvchini yarating (BLE dan Arduino -dan Android -ning maxsus Studio ilovasiga): Bluetooth -ning past energiyasi (BLE) - bu past quvvatli Bluetooth aloqasi. Kiyinadigan qurilmalar, xuddi aqlli kiyimlar kabi, men Predictive Wear dizaynida yordam beraman, batareyaning ishlash muddatini uzaytirish uchun iloji boricha quvvat sarfini cheklashi va BLEdan tez -tez foydalanishi kerak.
Kiyinadigan chiroq (CPX bilan): 8 qadam
Kiyinadigan chiroq (CPX bilan): Hammaga salom, men qo'llaringizga taqiladigan chiroqni yasadim. Men kod bloklarini birlashtiradigan kodlash veb -sayti Adafruit kodidan foydalandim. Ushbu qo'llanmada men sizga CPX (Circuit Playground Ex …) kodlash uchun nima qilganimni aytib beraman
Kiyinadigan Photon Beatbox: 7 qadam
Kiyinadigan Photon Beatbox: Bu loyiha Adafruit-da topilgan fotonni urish qutisining kodidan ilhomlangan: https://makecode.adafruit.com/examples/photon-beat .. Men kodni olib, bu kontseptsiya haqida batafsil ma'lumot berishga qaror qildim. uni o'zgarib turadigan elektron kiyiladigan yelekka aylantirish
USB bilan ishlaydigan burner! Ushbu loyiha plastmassa / yog'och / qog'oz orqali yonishi mumkin (qiziqarli loyiha ham yaxshi yog'och bo'lishi kerak): 3 qadam
USB bilan ishlaydigan burner! Ushbu loyiha plastmassa / yog'och / qog'oz orqali yonib ketishi mumkin (qiziqarli loyiha ham juda yaxshi yog'och bo'lishi kerak): BU USB -ni ishlatmang! Men barcha izohlardan kompyuteringizga zarar etkazishi mumkinligini bilib oldim. mening kompyuterim yaxshi. 600ma 5V zaryadlovchi qurilmasidan foydalaning. Men buni ishlatganman va u yaxshi ishlaydi va agar siz elektr tokini to'xtatish uchun elektr vilkasini ishlatsangiz, hech narsa buzilmaydi