جدول المحتويات:

يمكن ارتداؤها - المشروع النهائي: 7 خطوات
يمكن ارتداؤها - المشروع النهائي: 7 خطوات

فيديو: يمكن ارتداؤها - المشروع النهائي: 7 خطوات

فيديو: يمكن ارتداؤها - المشروع النهائي: 7 خطوات
فيديو: التجهيز الأمثل لمتجر اتسي - 7 خطوات لا غنى عنها قبل البدء! -Etsy Shop Steps 2024, يونيو
Anonim
يمكن ارتداؤها - المشروع النهائي
يمكن ارتداؤها - المشروع النهائي

المقدمة

في هذا المشروع ، كان لدينا مهمة صنع نموذج أولي عملي يمكن ارتداؤه استنادًا إلى وظائف سايبورغ. هل تعلم أن قلبك يتزامن مع BPM للموسيقى؟ يمكنك محاولة التحكم في حالتك المزاجية من خلال الموسيقى ، ولكن ماذا لو تركنا التكنولوجيا تساعدنا على الهدوء؟ نحتاج فقط إلى بعض المكونات ، Arduino وسماعات الرأس الخاصة بك. دعونا نبتكر!

مشروع من إعداد مارك فيلا وغيليرمو ستوفاخر وباو كارسيلي

الخطوة 1: المواد والمكونات

المواد والمكونات
المواد والمكونات

مواد بناء:

- معصم مطبوع ثلاثي الأبعاد

- مسامير M3 (x8)

- صواميل M3 (x12)

- فاني باك

المواد الإلكترونية:

-مستشعر معدل ضربات القلب BPM

- أزرار (x2)

- مقياس فرق الجهد

- وحدة LCD C 1602

- MODULE DFPLAYER MINI MP3

- سماعة جاك ستيريو TRRS مقاس 3.5 ملم

- بطاقة مايكرو التنمية المستدامة

- لوحة اردوينو أونو

- لحام

- صفيحة الباكليت

الخطوة الثانية: تصميم سوار معصم

صمم سوار معصم
صمم سوار معصم
صمم سوار معصم
صمم سوار معصم

نقوم أولاً بعمل عدة رسومات لتنظيم المكونات المختلفة في سوار المعصم.

مع الفكرة الواضحة ، أخذنا قياسات الأذرع الثلاثة لأعضاء المجموعة ، ثم قمنا بعمل المتوسط لإيجاد المقياس الأمثل للتصميم. أخيرًا نصمم المنتج ببرنامج ثلاثي الأبعاد ونطبعه باستخدام طابعة ثلاثية الأبعاد.

يمكنك تنزيل ملفات. STL هنا.

الخطوة الثالثة: التوصيلات الإلكترونية

التوصيلات الإلكترونية
التوصيلات الإلكترونية

نواصل إجراء الفحوصات اللازمة لتصميمنا ثلاثي الأبعاد ، وقمنا بالتجميع الأول لجميع المكونات في النموذج الأولي لنرى أن القياسات كانت صحيحة.

لتوصيل جميع المكونات بلوحة Arduino ، قمنا بإجراء اتصالات مختلفة من المكونات باستخدام كبلات 0 و 5 أمتار ، وبهذه الطريقة نحد من رؤية اللوحة وننظم النموذج الأولي بشكل أفضل.

الخطوة 4: الكود

الرمز
الرمز
الرمز
الرمز
الرمز
الرمز

هذا المشروع هو نموذج سايبورغ. من الواضح أننا لم نقدم المكونات الموجودة تحت الجلد ، لذلك قمنا بمحاكاة ذلك باستخدام سوار كجهاز تقويم (جهاز خارجي يتم وضعه على الجسم لتعديل الجوانب الوظيفية).

يأخذ الكود الخاص بنا ضغطات المستخدم ويظهرها باستخدام شاشة LCD. بالإضافة إلى BPM ، تُظهر الشاشة الكثافة المطلوبة بحيث يمكن للمستخدم مقارنتها بمعدل ضربات قلبه. هناك العديد من المواقف التي يكون فيها من المثير للاهتمام زيادة أو تقليل BPM الخاصة بك. على سبيل المثال ، يجب على رياضيي التحمل التحكم في النبضات حتى لا يتعبوا بشكل مفرط. من الأمثلة اليومية على ذلك الرغبة في النوم أو الهدوء في موقف عصبي. يمكن أيضًا تطبيقه كطريقة علاجية للأشخاص المصابين بالتوحد لتقليل التوتر الذي يشعرون به. يوجد بجانب الشاشة زرين للتحكم في الشدة المطلوبة وزيادة معدل ضربات القلب أو خفضه. اعتمادًا على شدة الموسيقى ، يتم تشغيل نوع موسيقي تمت دراسته مسبقًا. هناك دراسات تظهر أن الموسيقى يمكن أن تغير BPM. وفقًا لـ Beats per Minute of the Song ، فإن جسم الإنسان يقلد ويطابق تلك BPM.

عدد صحيح SetResUp = 11 ؛ // pin 10 من Arduino مع زر زيادة الكثافة.int SetResDown = 12 ؛ // pin 11 من Arduino مع زر تقليل الكثافة

int ResButtonCounter = 0 ؛ // مرات العداد الذي يزيد أو ينقص إعداد المقاومة ، القيمة الأولية 0 int ResButtonUpState = 0 ؛ // الحالة الحالية لزر زيادة الشدة int ResButtonDownState = 0 ؛ // الحالة الحالية لزر تقليل الشدة int lastResButtonUpState = 0 ؛ // آخر حالة لزر زيادة الكثافة int lastResButtonDownState = 0 ؛ // آخر حالة لزر تقليل الشدة

int pulsePin = 0 ؛ // Pulse Sensor متصل بالمنفذ A0 // هذه المتغيرات متقلبة لأنها تستخدم أثناء روتين المقاطعة في علامة التبويب الثانية. متقلبة int BPM ؛ // يدق في الدقيقة إشارة int متقلبة ؛ // إدخال بيانات مستشعر النبض متقلب int IBI = 600 ؛ // وقت النبض نبض منطقي متقلب = خطأ ؛ // صحيح عندما تكون موجة النبض عالية ، وكاذبة عندما تكون منخفضة التقلب المنطقي QS = خطأ ؛

# عرّف Start_Byte 0x7E # عرّف Version_Byte 0xFF # عرّف Command_Length 0x06 # عرّف End_Byte 0xEF # عرّف إقرار 0x00 // إرجاع المعلومات بالأمر 0x41 [0x01: info ، 0x00: no info]

// PANTALLA #include // قم بتحميل المكتبة لوظائف شاشة LCD # تضمين # تضمين

LiquidCrystal LCD (7 ، 6 ، 5 ، 4 ، 3 ، 2) ؛ // قم بتعريف المنافذ حيث تم توصيل شاشة LCD

// LECTOR #include #include // قم بتحميل المكتبة لوظائف الوحدة dfplayer mini MP3.

سلسلة شار البيانات ؛ نسونغ إنت في التلفاز؛

SoftwareSerial بالاتصالات (9 ، 10) ؛ // قم بتعريف المنافذ حيث يتم توصيل DFPlayer DFRobotDFPlayerMini mp3 ؛

إعداد باطل () {Serial.begin (9600) ؛ pinMode (SetResUp ، INPUT) ؛ pinMode (SetResDown ، INPUT) ؛

// تحديد أبعاد شاشة LCD (16 × 2) lcd.begin (16 ، 2) ؛ // نختار في أي عمود وفي أي سطر يبدأ النص في إظهار // LECTOR comm.begin (9600) ؛

mp3.begin (بالاتصالات) ؛ // يبدأ المكون serialData = (char) (('')) ؛ mp3.start () ، Serial.println ("تشغيل") ؛ // تشغيل أغنية mp3.volume (25) ؛ // تحديد الحجم}

حلقة باطلة () {if (digitalRead (11) == LOW) {mp3.next () ؛ // إذا تم الضغط على الزر ، تمر الأغنية} إذا (digitalRead (12) == LOW) {mp3.previous ()؛ // إذا تم الضغط على الزر ، فإن الأغنية السابقة} // if (SetResUp && SetResDown == LOW) {

int pulso = analogRead (A0) ؛ // اقرأ قيمة جهاز مراقبة معدل ضربات القلب المتصل بالمنفذ التناظري A0

Serial.println (pulso / 6) ؛ إذا كان (QS == true) {// Flag of Quantified Self صحيح مثل بحث اردوينو في BPM QS = false ؛ // إعادة تعيين علم النفس الكمي}

lcd.setCursor (0 ، 0) ؛ // إظهار lcd.print النص المطلوب ("BPM:") ؛ lcd.setCursor (0 ، 1) ؛ // إظهار lcd.print النص المطلوب ("INT:") ؛ lcd.setCursor (5 ، 0) ؛ // إظهار lcd.print النص المطلوب (نبض) ؛ lcd.setCursor (5 ، 1) ؛ // إظهار lcd.print النص المطلوب (ResButtonCounter) ؛ تأخير (50) ؛ lcd.clear () ؛ ResButtonUpState = digitalRead (SetResUp) ، ResButtonDownState = digitalRead (SetResDown) ،

// قارن TempButtonState مع حالتها السابقة

إذا (ResButtonUpState! = lastResButtonUpState && ResButtonUpState == LOW) {// إذا تغيرت الحالة الأخيرة ، فقم بزيادة العداد

ResButtonCounter ++ ؛ }

// حفظ الحالة الحالية كالحالة الأخيرة ، // في المرة التالية التي يتم فيها تنفيذ الحلقة lastResButtonUpState = ResButtonUpState؛

// قارن حالة الزر (زيادة أو نقصان) بالحالة الأخيرة

إذا (ResButtonDownState! = lastResButtonDownState && ResButtonDownState == LOW) {

// إذا تغيرت الحالة الأخيرة ، قم بإنقاص العداد

ResButtonCounter-- ؛ }

// حفظ الحالة الحالية كالحالة الأخيرة ، // في المرة التالية التي يتم فيها تنفيذ الحلقة lastResButtonDownState = ResButtonDownState؛ {Serial.println (ResButtonCounter) ،

إذا (ResButtonCounter> = 10) {ResButtonCounter = 10 ؛ }

إذا (ResButtonCounter <1) {ResButtonCounter = 1 ؛ }

}

}

الخطوة 5: التجميع الكلي

مع الكود المبرمج بشكل صحيح وتم تجميع جزأين من نموذجنا الأولي بالفعل. نضع جميع المكونات في مكانها ونجمعها بشريط لتثبيتها في السوار. المكونات الموجودة في السوار هي مستشعر معدل ضربات القلب BPM ، والزرين ، ومقياس الجهد وشاشة LCD ، كل واحد في الفتحة الخاصة به المصمم مسبقًا في ملف ثلاثي الأبعاد. بعد الانتهاء من الجزء الأول ، نركز على اللوحة الأولية ، كل موصل على الدبوس الصحيح للوحة Arduino. أخيرًا ، مع عملية التحقق من كل مكون ، نضعه في حزمة فاني لإخفاء الأسلاك.

الخطوة 6: الفيديو

الخطوة 7: الخاتمة

الشيء الأكثر إثارة للاهتمام في هذا المشروع هو التعرف على تقليد جسم الإنسان دون وعي بالموسيقى. هذا يفتح الباب أمام العديد من الخيارات للمشاريع المستقبلية. أعتقد أن هذا مشروع كامل ، فلدينا مجموعة متنوعة من المكونات مع كود عمل. إذا بدأنا مرة أخرى ، فسوف نفكر في بدائل أخرى للمكونات أو نشتريها بجودة أفضل. لقد واجهنا الكثير من المشاكل مع الكابلات المكسورة واللحام ، فهي صغيرة وحساسة للغاية (خاصة BPM). من ناحية أخرى ، يجب توخي الحذر عند توصيل المكونات ، فهي تحتوي على العديد من المخرجات ومن السهل ارتكاب الأخطاء.

إنه مشروع ثري للغاية تطرقنا فيه إلى مجموعة واسعة من خيارات أجهزة وبرامج Arduino.

موصى به: