Sadržaj:

Projektor raspoloženja (sjeckani Philips Hue Light sa GSR) TfCD: 7 koraka (sa slikama)
Projektor raspoloženja (sjeckani Philips Hue Light sa GSR) TfCD: 7 koraka (sa slikama)

Video: Projektor raspoloženja (sjeckani Philips Hue Light sa GSR) TfCD: 7 koraka (sa slikama)

Video: Projektor raspoloženja (sjeckani Philips Hue Light sa GSR) TfCD: 7 koraka (sa slikama)
Video: Покинутый дом_Рассказ_Слушать 2024, Juli
Anonim
Image
Image
Odvojite Hue Light
Odvojite Hue Light

Napisale Laura Ahsmann & Maaike Weber

Svrha: Loše raspoloženje i stres veliki su dio modernog ubrzanog života. To je takođe nešto što je spolja nevidljivo. Što ako bismo mogli vizualno i akustički projicirati našu razinu stresa s proizvodom, kako bismo mogli pokazati kako se osjećate. To bi olakšalo komunikaciju o ovim problemima. Vaša reakcija bi takođe mogla biti adekvatnija onom trenutku kada dobijete povratnu informaciju o svojim nivoima stresa.

GSR, ili galvanski otpor kože, mjerenje koje se vrši na dohvat ruke korisnika, pokazalo se kao zaista dobar prediktor stresa. Budući da znojnice u ruci uglavnom reagiraju na stres (ne samo fizičke vježbe), povećane razine stresa stvaraju veću provodljivost. Ova varijabla se koristi u ovom projektu.

Ideja: Što ako bismo mogli brzo otkriti stres ili raspoloženje i predstaviti ga obojenim svjetlom i muzikom? GSR sistem bi to mogao učiniti. U ovom Instructableu napravit ćemo Arduino sistem zasnovan za to! Upravljan i Arduino softverom i softverom za obradu, on će prevesti vrijednosti provodljivosti kože u određenu svjetlost u boji i određenu vrstu muzike.

Šta ti treba?

  • Arduino Uno
  • Žice
  • Philips Hue light (žive boje)
  • Tri otpornika od 100 ohma (za RGB LED)
  • Jedan otpornik od 100 KOhm (za GSR senzor)
  • Nešto što djeluje kao senzor provodljivosti, poput aluminijske folije
  • Arduino softver
  • Softver za obradu (koristili smo v2.2.1, noviji se ruše)
  • SolidWorks, za dizajniranje kućišta (opcionalno)
  • Pristup CNC mlinu (opcionalno)
  • Zelena pjena za modeliranje (EPS)
  • Oglasna ploča (opcionalno, može se i lemiti)

Korak 1: Odvojite Hue Light

Ovaj korak je jednostavan, samo upotrijebite neku silu (ili odvijač) da biste izgubili svjetlo i otvorili ga. Neke pričvrsne veze drže proizvod zajedno pa se lako mogu rastaviti.

Sada se svjetlo na vrhu može isključiti i odvojiti od ostatka elektronike. Trebat će nam samo svjetlo i vrh kućišta. Spremite ili bacite ostalo, na vama je!

Korak 2: Priprema hardvera

Priprema hardvera
Priprema hardvera
Priprema hardvera
Priprema hardvera
Priprema hardvera
Priprema hardvera
Priprema hardvera
Priprema hardvera

Za ovaj projekt koristili smo svjetlo Philips Hue kako bismo utjelovljenje učinili ljepšim i bržim. Međutim, mogli biste koristiti i običnu RGB LED diodu, kao što je prikazano na slici s matičnom pločom.

Da biste upravljali RGB LED, spojite pinove na tri različita PWM porta Arduina (označeno ba a ~). Za ovu vezu upotrijebite otpornike od 100 ohma. Spojite najduži pin na 5V izlaz Arduina. Da vidite koji pin odgovara kojoj boji, pogledajte posljednju sliku ovog koraka.

Za Hue Light idu isti koraci. LED se lako povezuje s Arduinom lemljenjem žica na određene utora, pogledajte treću sliku u ovom koraku. Utori imaju R, A G i B, koji označavaju koja žica treba gdje ići. Također ima utor + i -, koji se može spojiti na 5V Arduina, odnosno na uzemljenje Arduina. Nakon što spojite LED diodu, možete je ponovno pričvrstiti u kućište.

Da biste spojili GSR senzore, izrađene od aluminijske folije (ili upotrijebite one aluminijske posude čajnih svjetiljki, koje izgledaju malo ljepše), lemite ih ili zalijepite žicom i spojite na 5V. Drugi spojite na otpornik od 100KOhm i kondenzator od 0,1 mF (paralelno), koji bi zatim trebao biti spojen na masu i utor A1 na Arduinu. To će dati izlaz nivoa naprezanja, koji će se zatim koristiti kao ulaz za svjetlosnu boju i muziku. Zalijepili smo senzore na lampu, tako da postaje lijep proizvod za hvatanje dok mjerite stres. Pazite ipak da se senzori ne dodiruju!

Zadnja slika prikazuje kako se to može učiniti bez oplate.

Korak 3: Mjerenje nivoa naprezanja

Mjerenje naprezanja
Mjerenje naprezanja

Mjerenje naprezanja pomoću ovih domaćih senzora definitivno neće dati točna mjerenja koliko ste pod stresom. Međutim, kad se kalibrira udesno, može dati aproksimaciju.

Za mjerenje nivoa GSR -a upotrijebit ćemo sljedeći dio koda u Arduino okruženju. Da biste imali manje fluktuirajuće mjerenje, prosjek se uzima svakih 10 očitanja.

const int numReadings = 10; int očitanja [numReadings]; // ulaz iz A1 int index = 0; // indeks trenutnog očitanja int total = 0; // tekući ukupni nepotpisani dugi prosjek = 0; // prosj

int inputPin = A1;

void setupGSR ()

{// postavite sva očitanja na 0:

za (int i = 0; i <numReadings; i ++) očitanja = 0; }

unsigned long runGSR () {

ukupno = ukupno - očitanja [indeks]; // očitavanje očitavanja senzora GSR [indeks] = analogRead (inputPin); // dodaj novo čitanje ukupnom zbroju = ukupno + očitavanja [indeks]; // sljedeća pozicija niza index = index + 1;

// test kraja niza

if (index> = numReadings) // i počni ispočetka index = 0;

// koji je prosjek

prosek = ukupno / brojČitanja; // šalje ga na računar kao ASCII cifre povratni prosjek;

}

Na drugoj kartici (da stvari budu organizirane) učinit ćemo da kôd reagira na mjerenja, pogledajte sljedeći korak!

Korak 4: Upravljanje svjetlima

Upravljanje svjetlima
Upravljanje svjetlima
Upravljanje svjetlima
Upravljanje svjetlima
Upravljanje svjetlima
Upravljanje svjetlima

Za upravljanje svjetlima prvo moramo kalibrirati mjerenja. Otvorite serijski monitor i provjerite koja je gornja granica vaših mjerenja. Za nas su mjerenja bila nešto između 150 (kada smo se zaista pokušali opustiti) i 300 (kada smo se jako trudili da postanemo pod stresom).

Zatim odlučite koja boja bi trebala predstavljati razinu stresa. Napravili smo ga tako da:

1. Nizak nivo stresa: bijelo svjetlo, koje se mijenja u zeleno sa povećanjem naprezanja

2. Srednji nivo stresa: zeleno svjetlo, koje se mijenja u plavo sa povećanjem naprezanja

3. Visoka razina stresa: plavo svjetlo, mijenja se u crveno sa povećanjem stresa

Sljedeći kôd je korišten za obradu mjerenja i pretvaranje u vrijednosti za slanje LED -u:

// MASTER #define DEBUG 0

// GSR = A1

int gsrVal = 0; // Varijabla za spremanje ulaza sa senzora

// Kao što je spomenuto, koristite pinove za modulaciju širine impulsa (PWM)

int redPin = 9; // Crvena LED, spojena na digitalni pin 9 int grnPin = 9; // Zelena LED, spojena na digitalni pin 10 int bluPin = 5; // Plava LED, spojena na digitalni pin 11

// Promenljive programa

int redVal = 0; // Varijable za spremanje vrijednosti za slanje na pinove int grnVal = 0; int bluVal = 0;

nepotpisano dugo gsr = 0;

void setup ()

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

Serial.begin (9600);

setupGSR (); }

void loop ()

{gsrVal = gsr; if (gsrVal <150) // Najniža trećina gsr raspona (0-149) {gsr = (gsrVal /10) * 17; // Normalizirajte na 0-255 redVal = gsrVal; // isključeno do punog grnVal = gsrVal; // Zeleno od isključenog do punog bluVal = gsrVal; // Plava do krajaString SoundA = "A"; Serial.println (SoundA); // za kasniju upotrebu u operativnoj muzici} else if (gsrVal <250) // Srednja trećina gsr raspona (150-249) {gsrVal = ((gsrVal-250) /10) * 17; // Normalizirajte na 0-255 redVal = 1; // crveno isključeno grnVal = gsrVal; // Zeleno od punog do isključenog bluVal = 256 - gsrVal; // Plavo od isključenog do punog String SoundB = "B"; Serial.println (SoundB); } else // Gornja trećina gsr raspona (250-300) {gsrVal = ((gsrVal-301) /10) * 17; // Normalizirajte na 0-255 redVal = gsrVal; // Crveno od isključenog do punog grnVal = 1; // Zeleno do potpunog bluVal = 256 - gsrVal; // Plavo od punog do isključenog String SoundC = "C"; Serial.println (SoundC); }

analogWrite (redPin, redVal); // Zapisivanje vrijednosti na LED pinove analogWrite (grnPin, grnVal); analogWrite (bluPin, bluVal); gsr = runGSR (); kašnjenje (100); }

Dakle, sada LED reagira na vašu razinu stresa, dodajmo u sljedeći korak malo muzike koja će prikazati vaše raspoloženje.

Korak 5: Upravljanje muzikom

Upravljanje muzikom
Upravljanje muzikom

Odlučili smo predstaviti tri nivoa stresa sa sljedećom muzikom:

1. Nizak nivo (A): pjevačke zdjele i cvrkut ptica, vrlo lagan zvuk

2. Srednji nivo (B): melanholični klavir, malo teži zvuk

3. Visok nivo stresa (C): Grmljavinska oluja, mračan zvuk (iako prilično opuštajući)

Kôd je napisan u Processing -u, softveru koji pruža dio povratnih informacija o softveru Arduina:

import processing.serial.*; uvoz ddf.minim.*;

Minim minim;

AudioPlayer playeri;

int lf = 10; // Linefeed u ASCII

String myString = null; Serijski myPort; // serijski port int sensorValue = 0;

void setup () {

// Popis svih dostupnih serijskih portova printArray (Serial.list ()); // Otvorite port koji koristite istom brzinom kao Arduino myPort = new Serial (this, Serial.list () [2], 9600); myPort.clear (); // brisanje mjerenja myString = myPort.readStringUntil (lf); myString = null; // prosljeđujemo ovo Minimu kako bi mogao učitati datoteke minim = new Minim (this); playeri = novi AudioPlayer [3]; // Ovdje promijenite naziv audio datoteke i dodajte je u bibliotečke playere [0] = minim.loadFile ("Singing-bowls-and-birds-chirping-sleep-music.mp3"); svirači [1] = minim.loadFile ("Melanholična-klavirska-muzika.mp3"); playeri [2] = minim.loadFile ("Oluja-zvuk.mp3"); }

void draw () {

// provjeravamo postoji li nova vrijednost while (myPort.available ()> 0) {// sprema podatke u myString myString = myPort.readString (); // provjeravamo imamo li zaista nešto if (myString! = null) {myString = myString.trim (); // provjeravamo postoji li nešto if (myString.length ()> 0) {println (myString); probajte {sensorValue = Integer.parseInt (myString); } catch (Izuzetak e) {} if (myString.equals ("A")) // pogledajte koji nivo naprezanja mjeri {igrači [0].play (); // svira prema muzici} else {igrači [0].pause (); // ako ne mjeri nizak nivo stresa, nemojte svirati odgovarajuću pjesmu} if (myString.equals ("B")) {playeri [1].play (); } else {igrači [1].pause (); } if (myString.equals ("C")) {igrači [2].play (); } else {igrači [2].pause (); }}}}}

Ovaj kôd bi trebao reproducirati muziku prema nivou naprezanja na zvučnicima naših prijenosnih računara.

Korak 6: Dizajnirajte utjelovljenje

Image
Image
Dizajnirajte utjelovljenje
Dizajnirajte utjelovljenje

Koristili smo gornji dio Philips Hue Light, ali cnc'd dno od zelene pjene. SolidWorks datoteka je tu, ali bi moglo biti i zabavno sami izmjeriti lampu i dizajnirati nešto po vašem ukusu!

Koristili smo fotografiju gornjeg dijela svjetiljke kao podloge u SW -u, kako bismo bili sigurni da oblik dna prati krivulju vrha (vidi prvu fotografiju).

Da biste imali model cnc'd, spremite ga kao STL datoteku i pronađite lokalnog mlinara (na primjer u uni).

Korak 7: Izvori

Ako želite više informacija o ovoj temi ili vidite opsežnije kodove za mjerenje stresa, pogledajte sljedeće web stranice i projekte:

  • Više objašnjenja o pokretanju audio datoteka u obradi (koje smo koristili)
  • Lijep priručnik o GSR -u
  • Cool različit pristup projektovanju raspoloženja
  • Zaista cool detektor stresa s više senzora (velika inspiracija za ovaj projekt)
  • Zvučni (umjesto stresnog) projektora sa RGB LED
  • Dobar članak o GSR -u

Preporučuje se: