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

جهاز عرض الحالة المزاجية (تم اختراق Philips Hue Light مع GSR) TfCD: 7 خطوات (بالصور)
جهاز عرض الحالة المزاجية (تم اختراق Philips Hue Light مع GSR) TfCD: 7 خطوات (بالصور)

فيديو: جهاز عرض الحالة المزاجية (تم اختراق Philips Hue Light مع GSR) TfCD: 7 خطوات (بالصور)

فيديو: جهاز عرض الحالة المزاجية (تم اختراق Philips Hue Light مع GSR) TfCD: 7 خطوات (بالصور)
فيديو: مقطع مرعب الديب ويب 😮😲🤯#shorts 2024, يوليو
Anonim
Image
Image
تفكيك Hue Light
تفكيك Hue Light

بقلم لورا أهسمان ومايك ويبر

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

ثبت أن GSR ، أو مقاومة الجلد الجلفانية ، وهو قياس يتم إجراؤه عند أطراف أصابع المستخدم ، مؤشر جيد حقًا للتوتر. نظرًا لأن الغدد العرقية في اليد تتفاعل في الغالب مع الإجهاد (ليس فقط التمرين البدني) ، فإن مستويات الإجهاد المتزايدة تولد موصلية أعلى. يستخدم هذا المتغير في هذا المشروع.

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

ماذا تحتاج؟

  • اردوينو اونو
  • الأسلاك
  • مصباح Philips Hue (ألوان حية)
  • ثلاثة مقاومات 100 أوم (لمصابيح RGB LED)
  • مقاوم واحد 100 KOhm (لمستشعر GSR)
  • شيء ما ليكون بمثابة مستشعرات التوصيل ، مثل رقائق الألومنيوم
  • برنامج اردوينو
  • برامج المعالجة (استخدمنا الإصدار 2.2.1 ، والأحدث تميل إلى الانهيار)
  • SolidWorks ، لتصميم السكن (اختياري)
  • الوصول إلى مطحنة CNC (اختياري)
  • رغوة النمذجة الخضراء (EPS)
  • اللوح (اختياري ، يمكن أيضًا لحام)

الخطوة 1: تفكيك Hue Light

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

الآن ، يمكن إطفاء الضوء الموجود في الجزء العلوي وفصله عن بقية الأجهزة الإلكترونية. سنحتاج فقط إلى الضوء والجزء العلوي من السكن. احفظ أو ارم الباقي ، الأمر متروك لك!

الخطوة 2: تجهيز الجهاز

تحضير الجهاز
تحضير الجهاز
تحضير الجهاز
تحضير الجهاز
تحضير الجهاز
تحضير الجهاز
تحضير الجهاز
تحضير الجهاز

بالنسبة لهذا المشروع ، استخدمنا مصباح Philips Hue ، لجعل التجسيد أكثر جمالًا وأسرع. ومع ذلك ، يمكنك أيضًا استخدام RGB LED العادي ، كما هو موضح في الصورة مع لوحة التجارب.

لتشغيل RGB LED ، قم بتوصيل المسامير بثلاثة منافذ PWM مختلفة في Arduino (المشار إليها ba a ~). استخدم مقاومات 100 أوم لهذا الاتصال. قم بتوصيل أطول دبوس بإخراج 5 فولت من Arduino. لمعرفة الدبوس الذي يتوافق مع اللون ، انظر الصورة الأخيرة من هذه الخطوة.

بالنسبة إلى Hue Light ، تذهب نفس الخطوات. يتم توصيل LED بسهولة بـ Arduino عن طريق أسلاك اللحام بالفتحات المخصصة ، انظر الصورة الثالثة في هذه الخطوة. تحتوي الفتحات على R و a G و a B ، مما يشير إلى السلك الذي يجب أن يتجه إلى أين. كما أن لديها فتحة + و a - ، ليتم توصيلها بجهد 5 فولت من Arduino وأرض Arduino ، على التوالي. بمجرد توصيل مؤشر LED ، يمكنك تثبيته مرة أخرى في السكن.

لتوصيل مستشعرات GSR ، المصنوعة من رقائق الألومنيوم (أو استخدام حاويات الألومنيوم المصنوعة من الشموع الصغيرة ، والتي تبدو أجمل قليلاً) ، قم بلصقها أو لصقها بسلك وتوصيل أحدها بـ 5 فولت. قم بتوصيل الآخر بالمقاوم 100KOhm ومكثف من 0 ، 1mF (متوازي) ، والذي يجب بعد ذلك توصيله بالأرض وفتحة A1 على Arduino. سيعطي هذا ناتج مستوى الإجهاد ، والذي سيتم استخدامه بعد ذلك كمدخل للون الضوء والموسيقى. لقد قمنا بتثبيت المستشعرات في المصباح ، لذلك يصبح منتجًا جيدًا للاستيلاء عليه أثناء قياس الإجهاد. كن حذرًا ولكن المستشعرات لا تلمس!

تُظهر الصورة الأخيرة كيف يمكن القيام بذلك بدون لوح التجارب.

الخطوة 3: قياس مستوى الإجهاد

قياس مستوى الإجهاد
قياس مستوى الإجهاد

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

لقياس مستويات GSR ، سوف نستخدم الجزء التالي من الكود ، في بيئة Arduino. للحصول على قياس أقل تقلبًا ، يتم أخذ متوسط كل 10 قراءات.

const int numReadings = 10 ؛ قراءات int [numReadings] ؛ // الإدخال من الفهرس A1 int = 0 ؛ // فهرس القراءة الحالية إجمالي int = 0 ؛ // إجمالي المتوسط الطويل غير الموقعة = 0 ؛ // متوسط

int inputPin = A1 ؛

إعداد باطل GSR ()

{// ضبط كل القراءات على 0:

من أجل (int i = 0 ؛ i <numReadings ؛ i ++) قراءات = 0 ؛ }

المدى الطويل بدون توقيع GSR () {

المجموع = مجموع - القراءات [الفهرس] ؛ // قراءة من قراءات مستشعر GSR [الفهرس] = analogRead (inputPin) ؛ // إضافة قراءة جديدة إلى المجموع الكلي = المجموع + القراءات [الفهرس] ؛ // الموضع التالي لمؤشر المصفوفة = الفهرس + 1 ؛

// اختبار نهاية المصفوفة

if (index> = numReadings) // وابدأ من جديد الفهرس = 0 ؛

// ما هو متوسط

المتوسط = المجموع / numReadings ؛ // أرسلها إلى الكمبيوتر حيث أن أرقام ASCII ترجع المتوسط ؛

}

في علامة تبويب أخرى (للحفاظ على الأشياء منظمة) ، سنقوم بعمل الكود للتفاعل مع القياسات ، انظر الخطوة التالية!

الخطوة 4: إدارة الأضواء

إدارة الأضواء
إدارة الأضواء
إدارة الأضواء
إدارة الأضواء
إدارة الأضواء
إدارة الأضواء

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

ثم حدد اللون الذي يجب أن يمثل مستوى الضغط. لقد صنعناها بحيث:

1. مستوى إجهاد منخفض: ضوء أبيض ، يتحول إلى ضوء أخضر مع زيادة الضغط

2. مستوى إجهاد متوسط: ضوء أخضر ، يتحول إلى ضوء أزرق مع زيادة الضغط

3. ارتفاع مستوى الضغط: ضوء أزرق يتحول إلى أحمر مع زيادة الضغط

تم استخدام الكود التالي لمعالجة القياسات وتحويلها إلى قيم لإرسالها إلى LED:

// MASTER #define DEBUG 0

// GSR = A1

int gsrVal = 0 ؛ // متغير لتخزين المدخلات من المستشعرات

// كما ذكرنا ، استخدم دبابيس تعديل عرض النبض (PWM)

int redPin = 9 ؛ // Red LED ، متصل بالدبوس الرقمي 9 int grnPin = 9 ؛ // Green LED ، متصل بالدبوس الرقمي 10 int bluPin = 5 ؛ // LED أزرق ، متصل بالدبوس الرقمي 11

// متغيرات البرنامج

int redVal = 0 ؛ // المتغيرات لتخزين القيم لإرسالها إلى المسامير int grnVal = 0 ؛ int bluVal = 0 ؛

gsr طويلة بدون توقيع = 0 ؛

الإعداد باطل()

{pinMode (bluPin ، الإخراج) ؛ pinMode (grnPin ، الإخراج) ؛ pinMode (redPin ، الإخراج) ؛ pinMode (A1 ، INPUT) ؛

Serial.begin (9600) ؛

setupGSR () ، }

حلقة فارغة()

{gsrVal = gsr ؛ إذا (gsrVal <150) // أقل ثلث نطاق gsr (0-149) {gsr = (gsrVal / 10) * 17 ؛ // تطبيع إلى 0-255 redVal = gsrVal ؛ // إيقاف إلى كامل grnVal = gsrVal ؛ // أخضر من off إلى full bluVal = gsrVal ؛ // أزرق إلى كاملString SoundA = "A" ؛ Serial.println (SoundA) ؛ // للاستخدام لاحقًا في تشغيل الموسيقى} else if (gsrVal <250) // الثلث الأوسط من نطاق gsr (150-249) {gsrVal = ((gsrVal-250) / 10) * 17 ؛ // التطبيع إلى 0-255 redVal = 1 ؛ // أحمر قبالة grnVal = gsrVal ؛ // أخضر من كامل إلى خارج bluVal = 256 - gsrVal ؛ // أزرق من إيقاف إلى كامل String SoundB = "B" ؛ Serial.println (SoundB) ؛ } else // الثلث العلوي من نطاق gsr (250-300) {gsrVal = ((gsrVal-301) / 10) * 17 ؛ // تطبيع إلى 0-255 redVal = gsrVal ؛ // الأحمر من off to full grnVal = 1 ؛ // Green off to full bluVal = 256 - gsrVal ؛ // أزرق من كامل إلى خارج String SoundC = "C" ؛ Serial.println (SoundC) ؛ }

analogWrite (redPin ، redVal) ؛ // اكتب القيم إلى دبابيس LED analogWrite (grnPin ، grnVal) ؛ analogWrite (bluPin ، bluVal) ؛ gsr = runGSR () ، تأخير (100) ؛ }

الآن يتفاعل مؤشر LED مع مستوى التوتر لديك ، دعنا نضيف بعض الموسيقى لتمثيل حالتك المزاجية ، في الخطوة التالية.

الخطوة 5: إدارة الموسيقى

إدارة الموسيقى
إدارة الموسيقى

اخترنا تمثيل مستويات التوتر الثلاثة بالموسيقى التالية:

1. المستوى المنخفض (أ): أوعية الغناء ونقيق الطيور ، صوت خفيف جدًا

2. المستوى المتوسط (ب): بيانو حزين ، صوت أقوى قليلاً

3. ارتفاع مستوى الضغط (C): عاصفة رعدية ، صوت مظلم (على الرغم من الاسترخاء التام)

تمت كتابة الكود في المعالجة ، وهو برنامج لتوفير جزء ملاحظات البرنامج من Arduino:

استيراد تجهيز.serial. * ؛ استيراد ddf.minim. * ؛

مينيم مينيم

مشغلات AudioPlayer ؛

كثافة lf = 10 ؛ // Linefeed في ASCII

سلسلة myString = خالية ؛ المسلسل myPort ؛ // المنفذ التسلسلي int sensorValue = 0 ؛

الإعداد باطل() {

// قائمة بجميع المنافذ التسلسلية المتاحة printArray (Serial.list ()) ؛ // افتح المنفذ الذي تستخدمه بنفس معدل Arduino myPort = new Serial (this، Serial.list () [2]، 9600)؛ myPort.clear () ، // مسح القياسات myString = myPort.readStringUntil (lf) ؛ myString = خالية ؛ // نقوم بتمرير هذا إلى Minim بحيث يمكنه تحميل الملفات minim = new Minim (this) ؛ لاعبون = مشغل صوتي جديد [3] ؛ // قم بتغيير اسم ملف الصوت هنا وأضفه إلى مشغلات المكتبات [0] = minim.loadFile ("Singing-Bowls-and-Bird-chirping-sleep-music.mp3") ؛ اللاعبون [1] = minim.loadFile ("حزن-بيانو-موسيقى. mp3") ؛ اللاعبون [2] = minim.loadFile ("Storm-sound.mp3") ؛ }

رسم باطل () {

// تحقق مما إذا كانت هناك قيمة جديدة أثناء (myPort.available ()> 0) {// تخزين البيانات في myString myString = myPort.readString () ؛ // تحقق مما إذا كان لدينا بالفعل شيء إذا (myString! = null) {myString = myString.trim ()؛ // تحقق مما إذا كان هناك شيء إذا (myString.length ()> 0) {println (myString)؛ جرب {sensorValue = Integer.parseInt (myString) ، } catch (استثناء هـ) {} if (myString.equals ("A")) // انظر إلى مستوى الضغط الذي يقيسه {players [0].play ()؛ // تشغيل حسب الموسيقى} else {players [0].pause ()؛ // إذا لم تكن تقيس مستوى الضغط المنخفض ، فلا تقم بتشغيل الأغنية وفقًا للأغنية} إذا (myString.equals ("B")) {players [1].play ()؛ } else {players [1].pause ()؛ } if (myString.equals ("C")) {players [2].play ()؛ } else {players [2].pause ()؛ }}}}}

يجب أن يقوم هذا الرمز بتشغيل الموسيقى وفقًا لمستوى الضغط على مكبرات الصوت للكمبيوتر المحمول لدينا.

الخطوة السادسة: تصميم النموذج

Image
Image
صمم التجسيد
صمم التجسيد

استخدمنا الجزء العلوي من Philips Hue Light ، لكن باستخدام الحاسب الآلي كان قاعًا من الرغوة الخضراء. ملف SolidWorks موجود هنا ، ولكن قد يكون من الممتع أيضًا قياس المصباح بنفسك وتصميمه حسب ذوقك!

استخدمنا صورة لأعلى المصباح كطبقة سفلية في SW ، للتأكد من أن شكل الجزء السفلي يتبع منحنى القمة (انظر الصورة الأولى).

للحصول على نموذج cnc'd ، احفظه كملف STL وابحث عن طاحونك المحلي (في uni على سبيل المثال).

الخطوة 7: المصادر

إذا كنت ترغب في مزيد من المعلومات حول هذا الموضوع ، أو ترى المزيد من الرموز الشاملة لقياس الإجهاد ، فراجع مواقع الويب والمشاريع التالية:

  • مزيد من الشرح حول تشغيل ملفات الصوت في المعالجة (التي استخدمناها)
  • كتيب جميل على GSR
  • طريقة مختلفة رائعة لإسقاط الحالة المزاجية
  • كاشف ضغط رائع حقًا مزود بأجهزة استشعار متعددة (مصدر إلهام كبير لهذا المشروع)
  • جهاز عرض صوتي (بدلاً من الضغط) مزود بإضاءة RGB LED
  • مقالة جيدة حول GSR

موصى به: