Mundarija:

Kayfiyat proektori (GSR bilan Philips Hue Light Hacked) TfCD: 7 qadam (rasmlar bilan)
Kayfiyat proektori (GSR bilan Philips Hue Light Hacked) TfCD: 7 qadam (rasmlar bilan)

Video: Kayfiyat proektori (GSR bilan Philips Hue Light Hacked) TfCD: 7 qadam (rasmlar bilan)

Video: Kayfiyat proektori (GSR bilan Philips Hue Light Hacked) TfCD: 7 qadam (rasmlar bilan)
Video: ✅ Проект Двухэтажного, Компактного и Экономичного дома | 203-Вариант 2024, Iyul
Anonim
Image
Image
Rang nurini ajratib oling
Rang nurini ajratib oling

Muallif: Laura Ahsmann va Maayke Viber

Maqsad: past kayfiyat va stress zamonaviy hayotning katta qismidir. Bu ham tashqi ko'rinmaydigan narsadir. Agar biz o'z his -tuyg'ularimizni namoyish qilish uchun stress darajasini mahsulot bilan vizual va akustik tarzda loyihalashtira olsak nima bo'ladi? Bu muammolar haqida gapirishni osonlashtiradi. Stress darajalari haqida fikr -mulohazalarni qabul qilishda sizning shaxsiy reaktsiyangiz ham etarli bo'lishi mumkin.

GSR yoki galvanik teri qarshiligi, foydalanuvchining barmoq uchida o'lchanishi, chindan ham stressni yaxshi bashorat qilishi isbotlangan. Qo'l ter bezlari asosan stressga (faqat jismoniy mashqlar emas) javob berganligi sababli, stress darajasining oshishi yuqori o'tkazuvchanlikni keltirib chiqaradi. Ushbu o'zgaruvchi ushbu loyihada ishlatiladi.

Fikr: Agar biz stressni yoki kayfiyatni tezda aniqlab, uni rangli yorug'lik va musiqa bilan ifodalay olsak nima bo'ladi? GSR tizimi buni amalga oshirishi mumkin. Bu yo'riqnomada biz buning uchun Arduino -ga asoslangan tizim yaratamiz! Ham Arduino dasturiy ta'minoti, ham ishlov berish dasturi tomonidan boshqariladi, u terining o'tkazuvchanlik qiymatlarini ma'lum bir rangdagi yorug'lik va ma'lum bir musiqaga aylantiradi.

Sizga nima kerak?

  • Arduino Uno
  • Simlar
  • Philips Hue nuri (tirik ranglar)
  • 100 ohmlik uchta rezistor (RGB LED uchun)
  • 100 KOhm qarshilik (GSR sensori uchun)
  • Alyuminiy folga kabi o'tkazgich sensori vazifasini bajaradigan narsa
  • Arduino uchun dasturiy ta'minot
  • Qayta ishlash dasturlari (biz v2.2.1 dan foydalanganmiz, yangilarining ishdan chiqishi ehtimoli bor)
  • SolidWorks, uyni loyihalash uchun (ixtiyoriy)
  • CNC tegirmoniga kirish (ixtiyoriy)
  • Yashil modellashtirish uchun ko'pik (EPS)
  • Non paneli (ixtiyoriy, shuningdek lehimlanishi mumkin)

1 -qadam: Rangni ajratib oling

Bu qadam oson, faqat kuchni (yoki tornavida) ishlating, shunda yorug'lik yo'qoladi va yorilib ketadi. Ba'zi bir ulanishlar mahsulotni bir -biriga bog'lab turadi, shuning uchun ajratish oson.

Endi tepadagi yorug'lik vintlardek o'chishi va qolgan elektronikadan uzilishi mumkin. Bizga faqat yorug'lik va korpusning yuqori qismi kerak bo'ladi. Qolganini saqlang yoki tashlang - bu sizga bog'liq!

2 -qadam: uskunani tayyorlash

Uskunani tayyorlash
Uskunani tayyorlash
Uskunani tayyorlash
Uskunani tayyorlash
Uskunani tayyorlash
Uskunani tayyorlash
Uskunani tayyorlash
Uskunani tayyorlash

Ushbu loyihani amalga oshirish uchun biz Philips Hue yoritgichidan foydalanganmiz. Rasmda ko'rsatilganidek, siz oddiy RGB LED -dan foydalanishingiz mumkin.

RGB LEDni ishlatish uchun pinlarni Arduino -ning uch xil PWM portiga ulang (ba a ~ ko'rsatilgan). Ulanish uchun 100 Ohm rezistorlardan foydalaning. Eng uzun pinni Arduino 5V kuchlanishiga ulang. Qaysi pin qaysi rangga mos kelishini bilish uchun ushbu qadamning oxirgi rasmini ko'ring.

Hue Light uchun xuddi shu qadamlar ketadi. LED Arduino -ga simlarni belgilangan uyalarga lehimlash orqali osongina ulanadi, bu bosqichdagi uchinchi rasmga qarang. Yuvalarda R, G va B bor, qaysi sim qayerga ketishi kerakligini ko'rsatadi. Bundan tashqari, Arduino 5V ga va Arduino eriga mos ravishda ulanadigan + va a - uyasi bor. LEDni ulaganingizdan so'ng, siz uni korpusga qaytarishingiz mumkin.

Alyuminiy folga qilingan GSR datchiklarini ulash uchun (yoki bir oz chiroyliroq bo'lgan alumli idishlardan foydalaning), ularni lehimlang yoki lentaga ulang va 5V ga ulang. Ikkinchisini 100KOhm rezistorga va 0, 1mF (parallel) kondansatkichga ulang, u Arduino -dagi erga va A1 uyasiga ulanishi kerak. Bu yorug'lik darajasini va musiqani kiritish uchun ishlatiladigan stress darajasini beradi, biz sensorlarni chiroqqa yopishtirdik, shuning uchun stressni o'lchash paytida uni tortib olish yaxshi mahsulotga aylanadi. Ehtiyot bo'ling, sensorlar tegmasin!

Oxirgi rasmda non paneli bo'lmasa qanday qilish mumkinligi ko'rsatilgan.

3 -qadam: Stress darajasini o'lchash

Stress darajasini o'lchash
Stress darajasini o'lchash

Aynan mana shu uy qurilishi sensorlar yordamida stress darajasini o'lchash, siz qanchalik stressda ekanligingizni aniq o'lchab bermaydi. Biroq, to'g'ri sozlanganda, u taxminiy ma'lumot berishi mumkin.

GSR darajasini o'lchash uchun biz Arduino muhitida quyidagi kod qismidan foydalanamiz. Kamroq o'zgaruvchan o'lchovga ega bo'lish uchun har 10 o'qishda o'rtacha ko'rsatkich olinadi.

const int numReadings = 10; int o'qishlari [numReadings]; // A1 dan kirish int indeks = 0; // joriy o'qish indeksi int total = 0; // ishlaydigan umumiy imzosiz uzoq o'rtacha = 0; // o'rtacha

int inputPin = A1;

void setupGSR ()

{// barcha o'qishni 0 ga o'rnating:

uchun (int i = 0; i <numReadings; i ++) o'qishlar = 0; }

imzosiz uzoq muddatGSR () {

jami = jami - o'qishlar [indeks]; // GSR sensori ko'rsatkichlaridan o'qish [indeks] = analogRead (inputPin); // umumiy o'qishga yangi o'qishni qo'shing = jami + o'qishlar [indeks]; // qator indeksining keyingi o'rni = indeks + 1;

// qatorning oxiri

if (index> = numReadings) // va index = 0 dan boshlang;

// o'rtacha nima

o'rtacha = jami / sonO'qishlar; // uni kompyuterga ASCII raqamlari o'rtacha qaytish sifatida yuboring;

}

Boshqa varaqda (tartibni saqlash uchun), biz o'lchovlarga javob beradigan kodni tayyorlaymiz, keyingi bosqichga qarang!

4 -qadam: Chiroqlarni boshqarish

Chiroqlarni boshqarish
Chiroqlarni boshqarish
Chiroqlarni boshqarish
Chiroqlarni boshqarish
Chiroqlarni boshqarish
Chiroqlarni boshqarish

Chiroqlarni boshqarish uchun biz avval o'lchovlarni sozlashimiz kerak. Seriyali monitorni ochib, o'lchovlaringizning yuqori chegarasi nima ekanligini tekshiring. Biz uchun o'lchovlar 150 (biz chindan ham dam olishga harakat qilganimizda) va 300 (biz stressga tushish uchun juda qattiq harakat qilganimizda) o'rtasida edi.

Keyin qaysi rang stress darajasini ko'rsatishi kerakligini hal qiling. Biz shunday qildik:

1. Stress darajasi past: oq yorug'lik, stress kuchayishi bilan yashil chiroqqa aylanadi

2. O'rta kuchlanish darajasi: yashil chiroq, kuchayib borayotgan stress bilan ko'k chiroqqa aylanadi

3. Yuqori kuchlanish darajasi: ko'k chiroq, stress kuchayishi bilan qizil rangga o'zgaradi

O'lchovlarni qayta ishlash va ularni LEDga yuborish uchun qiymatlarga aylantirish uchun quyidagi kod ishlatilgan:

// MASTER #DEBUGni aniqlang 0

// GSR = A1

int gsrVal = 0; // Sensorlardan kirishni saqlash uchun o'zgaruvchi

// Yuqorida aytib o'tilganidek, Pulse-width Modulation (PWM) pinlaridan foydalaning

int redPin = 9; // Qizil LED, raqamli pin ulangan 9 int grnPin = 9; // Yashil LED, raqamli pin 10 int bluPin = 5 ga ulangan; // Moviy LED, raqamli pin 11 ga ulangan

// Dastur o'zgaruvchilari

int redVal = 0; // pinlarga yuboriladigan qiymatlarni saqlash uchun o'zgaruvchilar int grnVal = 0; int bluVal = 0;

belgisiz uzun gsr = 0;

bo'sh o'rnatish ()

{pinMode (bluPin, OUTPUT); pinMode (grnPin, OUTPUT); pinMode (redPin, OUTPUT); pinMode (A1, Kirish);

Serial.begin (9600);

setupGSR (); }

bo'sh halqa ()

{gsrVal = gsr; if (gsrVal <150) // gsr diapazonining eng past uchdan bir qismi (0-149) {gsr = (gsrVal /10) * 17; // 0-255 gacha normalizatsiya qilish redVal = gsrVal; // to'liq o'chirildi grnVal = gsrVal; // Yashil - to'liq bluVal = gsrVal; // To'liq ko'k rangString tovushi A = "A"; Serial.println (SoundA); // operatsion musiqada keyinchalik foydalanish uchun} else if (gsrVal <250) // gsr diapazonining o'rta uchdan bir qismi (150-249) {gsrVal = ((gsrVal-250) /10) * 17; // Normalizatsiya qilish 0-255 redVal = 1; // Qizil o'chirilgan grnVal = gsrVal; // Yashil to'liqdan yopiqgacha bluVal = 256 - gsrVal; // Moviy o'chirilgandan to to'liq String SoundB = "B"; Serial.println (SoundB); } else // gsr diapazonining yuqori uchdan bir qismi (250-300) {gsrVal = ((gsrVal-301) /10) * 17; // 0-255 gacha normalizatsiya qilish redVal = gsrVal; // Qizil o'chirilgandan to to'la grnVal = 1; // Yashil rang to'liq bluVal = 256 - gsrVal; // Moviydan to to'liqgacha String SoundC = "C"; Serial.println (SoundC); }

analogWrite (redPin, redVal); // qiymatlarni LED pinlariga analogWrite (grnPin, grnVal) ga yozish; analogWrite (bluPin, bluVal); gsr = runGSR (); kechikish (100); }

Endi LED sizning stress darajangizga javob beradi, keyingi bosqichda sizning kayfiyatingizni aks ettiradigan musiqa qo'shamiz.

5 -qadam: Musiqani boshqarish

Musiqani boshqarish
Musiqani boshqarish

Biz 3 ta stress darajasini quyidagi musiqa bilan ifodalashni tanladik:

1. Past darajali (A): qo'shiqchi piyola va qushlarning sayrashi, juda engil ovoz

2. O'rta darajali (B): melankolik pianino, biroz og'irroq ovoz

3. Stressning yuqori darajasi (C): momaqaldiroq, qorong'i ovoz (juda tasalli bo'lsa ham)

Kod Arduino -ning dasturiy ta'minot bilan aloqa qismini ta'minlash uchun mo'ljallangan Processing dasturida yozilgan:

import ishlov berish.serial.*; import ddf.minim.*;

Minimal minim;

AudioPlayer pleerlari;

int lf = 10; // ASCII -da Linefeed

String myString = null; Seriyali myPort; // ketma -ket port int sensorValue = 0;

bo'sh o'rnatish () {

// printArray (Serial.list ()) mavjud barcha ketma -ket portlarning ro'yxati; // Siz foydalanayotgan portni Arduino myPort = new Serial bilan bir xil tezlikda oching (bu, Serial.list () [2], 9600); myPort.clear (); // aniq o'lchovlar myString = myPort.readStringUntil (lf); myString = null; // biz buni Minim -ga o'tkazamiz, shunda u minim = new Minim fayllarini yuklay oladi (bu); pleyerlar = yangi AudioPlayer [3]; // Bu erda audio fayl nomini o'zgartiring va uni kutubxonalarga qo'shing pleyerlar [0] = minim.loadFile ("Singing-bowls-and-birds-chirping-sleep-music.mp3"); pleyerlar [1] = minim.loadFile ("Melanxolik-pianino-musiqa.mp3"); futbolchilar [2] = minim.loadFile ("Bo'ron-ovoz.mp3"); }

bekor chizish () {

// yangi qiymat mavjudligini tekshiring (myPort.available ()> 0) {// ma'lumotlarni myString -da saqlash myString = myPort.readString (); // bizda haqiqatan ham biror narsa borligini tekshiring, agar (myString! = null) {myString = myString.trim (); // biror narsa borligini tekshiring, agar (myString.length ()> 0) {println (myString); harakat qilib ko'ring {sensorValue = Integer.parseInt (myString); } catch (Istisno e) {} if (myString.equals ("A")) // u qanday stress darajasini o'lchaganini ko'ring {futbolchilar [0].play (); // musiqaga muvofiq ijro etish} boshqa {pleer [0].pause (); // agar u past stress darajasini o'lchamasa, mos keladigan qo'shiqni ijro qilmang} if (myString.equals ("B")) {player [1].play (); } boshqa {futbolchilar [1].pause (); } if (myString.equals ("C")) {player [2].play (); } boshqa {futbolchilar [2].pause (); }}}}}

Bu kod musiqani noutbuk dinamiklarining stress darajasiga muvofiq ijro etishi kerak.

6 -qadam: Ambodimentni loyihalash

Image
Image
Ambodimentni loyihalash
Ambodimentni loyihalash

Biz Philips Hue Lightning yuqori qismini ishlatardik, lekin uning tagida yashil ko'pik bor edi. SolidWorksfile bu erda, lekin chiroqni o'zingiz o'lchash va didingizga qarab dizayn yaratish ham qiziqarli bo'lishi mumkin!

Biz chiroqning yuqori qismidagi fotosuratni pastki qavatning pastki qatlami sifatida ishlatdik, uning pastki qismi tepaning egri chizig'iga to'g'ri keladi (birinchi rasmga qarang).

Cnc'd modelini olish uchun uni STL fayli sifatida saqlang va mahalliy tegirmonni toping (masalan, uni).

7 -qadam: manbalar

Agar siz ushbu mavzu bo'yicha ko'proq ma'lumot olishni xohlasangiz yoki stressni o'lchash uchun kengroq kodlarni ko'rishni istasangiz, quyidagi veb -saytlar va loyihalarga qarang:

  • Audiofayllarni qayta ishlashda tafsilotlar (biz ishlatgan)
  • GSR bo'yicha yaxshi qo'llanma
  • Kayfiyatni loyihalashtirishga ajoyib yondashuv
  • Bir nechta sensorlar bilan chindan ham ajoyib stress detektori (bu loyihaga katta ilhom)
  • RGB LEDli tovushli (stress o'rniga) projektor
  • GSR haqida yaxshi maqola

Tavsiya: