فهرست مطالب:

پروژکتور خلق (هک شده Philips Hue Light With GSR) TfCD: 7 مرحله (همراه با تصاویر)
پروژکتور خلق (هک شده Philips Hue Light With GSR) TfCD: 7 مرحله (همراه با تصاویر)

تصویری: پروژکتور خلق (هک شده Philips Hue Light With GSR) TfCD: 7 مرحله (همراه با تصاویر)

تصویری: پروژکتور خلق (هک شده Philips Hue Light With GSR) TfCD: 7 مرحله (همراه با تصاویر)
تصویری: نه کاری که نمیدونستی گوشیت انجام میده | 9 کاربرد مخفی گوشی 2024, جولای
Anonim
Image
Image
Take Hue Light را جدا کنید
Take Hue Light را جدا کنید

نویسنده: لورا احسمن و مایک وبر

هدف: خلق و خوی پایین و استرس بخش بزرگی از زندگی سریع مدرن است. همچنین چیزی است که از بیرون نامرئی است. اگر بتوانیم سطح استرس خود را از نظر بصری و صوتی با یک محصول نشان دهیم ، قادر خواهیم بود احساس شما را نشان دهیم. این امر باعث می شود ارتباط شما در مورد این مشکلات آسان تر شود. واکنش شما همچنین می تواند برای لحظه ای که بازخوردی را در مورد سطح استرس خود دریافت می کنید ، مناسب تر باشد.

GSR یا مقاومت در برابر پوست گالوانیکی ، اندازه گیری که در نوک انگشتان کاربر انجام می شود ، ثابت شده است که پیش بینی کننده خوبی برای استرس است. از آنجایی که غدد عرق در دست بیشتر به استرس (نه تنها ورزش بدنی) واکنش نشان می دهند ، افزایش سطح استرس باعث هدایت بالاتر می شود. این متغیر در این پروژه استفاده می شود.

ایده: اگر بتوانیم به سرعت استرس یا خلق و خو را تشخیص دهیم و آن را با نور رنگی و موسیقی نشان دهیم ، چطور؟ یک سیستم GSR می تواند این امر را محقق کند. در این دستورالعمل ، ما یک سیستم مبتنی بر آردوینو ایجاد می کنیم تا این کار را انجام دهد! با نرم افزار Arduino و نرم افزار پردازش ، ارزش رسانایی پوست را به نور رنگی خاص و نوع خاصی از موسیقی تبدیل می کند.

چه چیزی نیاز دارید؟

  • آردوینو اونو
  • سیم ها
  • نور Philips Hue (رنگهای زنده)
  • سه مقاومت 100 اهم (برای LED RGB)
  • یک مقاومت 100 کیلو اهم (برای سنسور GSR)
  • چیزی مانند سنسورهای رسانایی مانند فویل آلومینیومی
  • نرم افزار آردوینو
  • نرم افزار پردازش (ما از v2.2.1 استفاده کردیم ، نرم افزارهای جدید تمایل به خرابی دارند)
  • SolidWorks ، برای طراحی محفظه (اختیاری)
  • دسترسی به آسیاب CNC (اختیاری)
  • فوم مدلینگ سبز (EPS)
  • تخته نان (اختیاری ، همچنین می تواند لحیم شود)

مرحله 1: نور رنگ را جدا کنید

این مرحله آسان است ، فقط از نیرویی (یا پیچ گوشتی) استفاده کنید تا نور را از دست داده و شکسته شود. برخی از اتصالات فشرده محصول را در کنار هم نگه می دارند ، بنابراین جدا کردن آن آسان است.

در حال حاضر ، چراغ در قسمت بالا می تواند پیچ خورده و از بقیه قطعات الکترونیکی جدا شود. ما فقط به نور و قسمت بالای محفظه احتیاج داریم. بقیه را ذخیره یا پرتاب کنید ، این به شما بستگی دارد!

مرحله 2: آماده سازی سخت افزار

آماده سازی سخت افزار
آماده سازی سخت افزار
آماده سازی سخت افزار
آماده سازی سخت افزار
آماده سازی سخت افزار
آماده سازی سخت افزار
آماده سازی سخت افزار
آماده سازی سخت افزار

برای این پروژه ، از یک چراغ Philips Hue استفاده کردیم تا جلوه ای زیبا و سریعتر داشته باشیم. با این حال ، می توانید از LED RGB معمولی استفاده کنید ، همانطور که در تصویر با تخته نان نشان داده شده است.

برای کار با LED RGB ، پین ها را به سه پورت PWM مختلف آردوینو وصل کنید (ba a indicated مشخص شده است). برای این اتصال از مقاومتهای 100 اهم استفاده کنید. طولانی ترین پین را به خروجی 5 ولت آردوینو وصل کنید. برای مشاهده اینکه کدام پین با کدام رنگ مطابقت دارد ، آخرین تصویر این مرحله را ببینید.

برای Hue Light ، مراحل مشابهی پیش می رود. LED با اتصال سیم به شکاف های تعیین شده به راحتی به آردوینو متصل می شود ، تصویر سوم را در این مرحله ببینید. شکاف ها دارای R ، G و B هستند که نشان می دهد کدام سیم باید کجا برود. همچنین دارای شکاف + و a - است که به ترتیب به 5 ولت آردوینو و زمین آردوینو متصل می شوند. هنگامی که LED را وصل کردید ، می توانید پشت آن را به محفظه متصل کنید.

برای اتصال سنسورهای GSR که از فویل آلومینیومی ساخته شده اند (یا از ظروف آلومینیومی با چراغ قهوه ای استفاده می کنید ، که کمی زیبا تر به نظر می رسند) ، آنها را به سیم لحیم کرده یا به سیم بچسبانید و سنسور را به 5 ولت وصل کنید. دیگری را به مقاومت 100 کیلو اهم و خازن 0 ، 1mF (موازی) وصل کنید ، سپس باید به زمین و شکاف A1 در آردوینو متصل شود. این خروجی سطح تنش را می دهد ، که بعداً به عنوان ورودی برای رنگ روشن و موسیقی مورد استفاده قرار می گیرد. ما سنسورها را به لامپ چسباندیم ، بنابراین هنگام اندازه گیری استرس شما می توانید به یک محصول خوب دست پیدا کنید. اما مراقب باشید که سنسورها به هم دست نزنند!

تصویر آخر نشان می دهد که چگونه می توان بدون تخته نان انجام داد.

مرحله 3: اندازه گیری سطح استرس

اندازه گیری سطح استرس
اندازه گیری سطح استرس

اندازه گیری میزان تنش تنها با استفاده از این سنسورهای خانگی قطعاً اندازه گیری دقیقی از میزان استرس شما نخواهد داشت. با این حال ، هنگامی که درست کالیبره شود ، می تواند تقریبی را ارائه دهد.

برای اندازه گیری سطوح GSR ، از کد زیر در محیط آردوینو استفاده می کنیم. برای اندازه گیری کمتر نوسان ، هر 10 بار یک اندازه گیری اندازه گیری می شود.

const int numReadings = 10؛ int خواندن [numReadings] ؛ // ورودی از A1 int index = 0؛ // شاخص خواندن فعلی int total = 0؛ // کل در حال اجرا میانگین بلند بدون علامت = 0؛ // میانگین

int inputPin = A1؛

void setupGSR ()

{// همه خواندن ها را روی 0 تنظیم کنید:

برای (int i = 0 ؛ i <numReadings ؛ i ++) خواندن = 0 ؛ }

بلند مدت بدون امضا GSR () {

مجموع = مجموع - خواندن [فهرست] ؛ // خواندن از خواندن سنسور GSR [index] = analogRead (inputPin) ؛ // افزودن خواندن جدید به کل مجموع = مجموع + خوانش [index] ؛ // موقعیت بعدی فهرست آرایه = index + 1؛

// تست پایان آرایه

if (index> = numReadings) // و شروع از index = 0 ؛

// میانگین چیست؟

متوسط = مجموع / numReadings؛ // آن را به عنوان میانگین بازگشت ارقام ASCII به رایانه ارسال کنید.

}

در برگه دیگری (برای نظم بخشیدن به امور) ، ما کد را برای واکنش به اندازه گیری ها ایجاد می کنیم ، مرحله بعدی را ببینید!

مرحله 4: مدیریت چراغ ها

مدیریت چراغها
مدیریت چراغها
مدیریت چراغها
مدیریت چراغها
مدیریت چراغها
مدیریت چراغها

برای مدیریت چراغ ها ، ابتدا باید اندازه گیری ها را کالیبره کنیم. با باز کردن مانیتور سریال ، حد بالایی را برای اندازه گیری های خود بررسی کنید. برای ما اندازه گیری چیزی بین 150 (زمانی که ما واقعاً سعی کردیم استراحت کنیم) و 300 (زمانی که ما واقعاً تلاش کردیم استرس داشته باشیم) بود.

سپس ، تصمیم بگیرید که چه رنگی باید نشان دهنده چه سطح تنش باشد. ما آن را طوری ساخته ایم که:

1. سطح تنش پایین: نور سفید ، با افزایش استرس به نور سبز تبدیل می شود

2. سطح تنش متوسط: نور سبز ، با افزایش تنش به نور آبی تبدیل می شود

3. سطح تنش بالا: نور آبی ، با افزایش تنش به قرمز تغییر می کند

کد زیر برای پردازش اندازه گیری ها و تبدیل آنها به مقادیری برای ارسال به LED استفاده شد:

// MASTER #DEBUG 0 را تعریف کنید

// GSR = A1

int gsrVal = 0 ؛ // متغیر برای ذخیره ورودی از حسگرها

// همانطور که گفته شد ، از پین های مدولاسیون عرض پالس (PWM) استفاده کنید

int redPin = 9؛ // LED قرمز ، متصل به پین دیجیتال 9 int grnPin = 9؛ // LED سبز ، متصل به پین دیجیتال 10 int bluPin = 5؛ // LED آبی ، متصل به پین دیجیتال 11

// متغیرهای برنامه

int redVal = 0؛ // متغیرها برای ذخیره مقادیر برای ارسال به پین ها int grnVal = 0؛ int bluVal = 0؛

طولانی بدون علامت gsr = 0؛

void setup ()

{pinMode (bluPin ، OUTPUT) ؛ pinMode (grnPin ، OUTPUT) ؛ pinMode (redPin ، OUTPUT) ؛ pinMode (A1 ، INPUT) ؛

Serial.begin (9600)؛

setupGSR ()؛ }

حلقه خالی ()

{gsrVal = gsr؛ if (gsrVal <150) // کمترین یک سوم محدوده gsr (0-149) {gsr = (gsrVal /10) * 17 ؛ // عادی سازی تا 0-255 redVal = gsrVal؛ // خاموش به grnVal کامل = gsrVal؛ // سبز از خاموش تا کامل bluVal = gsrVal؛ // آبی به طور کامل خاموش می شودString SoundA = "A"؛ Serial.println (SoundA) ؛ // برای استفاده های بعدی در موسیقی عامل} در غیر این صورت (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؛ // قرمز از خاموش تا کامل grnVal = 1؛ // سبز به bluVal کامل = 256 - gsrVal ؛ // آبی از کامل تا خاموش String SoundC = "C"؛ Serial.println (SoundC) ؛ }

analogWrite (redPin ، redVal) ؛ // مقادیر را برای پایه های LED analogWrite (grnPin ، grnVal) بنویسید ؛ analogWrite (bluPin ، bluVal) ؛ gsr = runGSR ()؛ تأخیر (100) ؛ }

بنابراین در حال حاضر LED به سطح استرس شما واکنش نشان می دهد ، بگذارید در مرحله بعد کمی موسیقی برای نشان دادن خلق و خوی خود اضافه کنیم.

مرحله 5: مدیریت موسیقی

مدیریت موسیقی
مدیریت موسیقی

ما انتخاب کردیم که 3 سطح استرس را با موسیقی زیر نشان دهیم:

1. سطح پایین (A): کاسه خوانی و جیغ زدن پرندگان ، صدایی بسیار سبک

2. سطح متوسط (B): یک پیانو مالیخولیک ، صدای کمی سنگین تر

3. سطح استرس بالا (C): طوفان رعد و برق ، صدای تاریک (هرچند کاملاً آرامش بخش)

کد در پردازش ، نرم افزاری برای ارائه بخش بازخورد نرم افزاری Arduino نوشته شده است:

import processing.serial.*؛ import ddf.minim.*؛

حداقل حداقل ؛

پخش کننده های AudioPlayer ؛

int lf = 10 ؛ // Linefeed در ASCII

رشته myString = null؛ سریال myPort ؛ // پورت سریال int sensorValue = 0؛

void setup () {

// لیست تمام پورت های سریال موجود printArray (Serial.list ()) ؛ // پورت مورد استفاده خود را با نرخ مشابه Arduino myPort = new Serial باز کنید (این ، Serial.list () [2] ، 9600) ؛ myPort.clear ()؛ // اندازه گیری های روشن myString = myPort.readStringUntil (lf)؛ myString = null؛ // ما این را به Minim منتقل می کنیم تا بتواند فایل ها را بارگذاری کند حداقل = جدید Minim (این) ؛ بازیکنان = AudioPlayer جدید [3]؛ // نام فایل صوتی را در اینجا تغییر دهید و آن را به پخش کننده کتابخانه ها اضافه کنید [0] = minim.loadFile ("Singing-bowls-and-birds-chirping-sleep-music.mp3") ؛ بازیکنان [1] = minim.loadFile ("Melancholic-piano-music.mp3")؛ بازیکنان [2] = minim.loadFile ("Storm-sound.mp3")؛ }

void draw () {

// بررسی کنید که آیا مقدار جدیدی در حالی وجود دارد که (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")) // ببینید میزان استرس آن در چه اندازه ای است {player [0].play ()؛ // پخش بر اساس موسیقی} else {players [0].pause ()؛ // اگر سطح استرس کم را اندازه گیری نمی کند ، آهنگ مطابق} if (myString.equals ("B")) {players [1].play () را پخش نکنید. } else {players [1].pause ()؛ } if (myString.equals ("C")) {players [2].play ()؛ } else {players [2].pause ()؛ }}}}}

این کد باید موسیقی را با توجه به میزان تنش روی بلندگوهای لپ تاپ ما پخش کند.

مرحله 6: تجسم را طراحی کنید

Image
Image
تجسم را طراحی کنید
تجسم را طراحی کنید

ما از قسمت فوقانی Philips Hue Light استفاده کردیم ، اما کف سبز سبز را cnc کردیم. SolidWorksfile اینجاست ، اما اندازه گیری لامپ توسط خودتان و طراحی مطابق سلیقه شما نیز می تواند سرگرم کننده باشد!

ما از عکس بالای لامپ به عنوان لایه زیرین در SW استفاده کردیم تا مطمئن شویم که شکل پایین از منحنی بالا پیروی می کند (به اولین عکس مراجعه کنید).

برای داشتن مدل cnc'd ، آن را به عنوان یک فایل STL ذخیره کنید و آسیاب محلی خود را پیدا کنید (برای مثال در uni).

مرحله 7: منابع

اگر می خواهید اطلاعات بیشتری در مورد این موضوع داشته باشید یا کدهای گسترده تری برای اندازه گیری استرس ببینید ، به وب سایت ها و پروژه های زیر مراجعه کنید:

  • توضیحات بیشتر در مورد راه اندازی فایل های صوتی در پردازش (که ما استفاده کردیم)
  • راهنمای خوب در مورد GSR
  • رویکرد متفاوت جالب برای پیش بینی خلق و خو
  • آشکارساز استرس واقعا جالب با سنسورهای متعدد (الهام بخش بزرگ این پروژه)
  • پروژکتور صدا (به جای استرس) با LED RGB
  • مقاله خوبی در مورد GSR

توصیه شده: