Sadržaj:

Projektor raspoloženja (Hakirano Philips Hue svjetlo s GSR -om) TfCD: 7 koraka (sa slikama)
Projektor raspoloženja (Hakirano Philips Hue svjetlo s GSR -om) TfCD: 7 koraka (sa slikama)

Video: Projektor raspoloženja (Hakirano Philips Hue svjetlo s GSR -om) TfCD: 7 koraka (sa slikama)

Video: Projektor raspoloženja (Hakirano Philips Hue svjetlo s GSR -om) TfCD: 7 koraka (sa slikama)
Video: Покинутый дом_Рассказ_Слушать 2024, Srpanj
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 brzog života. To je također nešto što je izvana 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 tim problemima. Vaša vlastita reakcija također bi mogla biti primjerenija 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 jako dobar prediktor stresa. Budući da znojnice u ruci uglavnom reagiraju na stres (ne samo fizičke vježbe), povećane razine naprezanja stvaraju veću vodljivost. Ova varijabla se koristi u ovom projektu.

Ideja: Što ako bismo mogli brzo otkriti stres ili raspoloženje i predstaviti ga obojenim svjetlom i glazbom? GSR sustav mogao bi to omogućiti. U ovom Instructableu napravit ćemo Arduino sustav 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 glazbe.

Što trebaš?

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

Korak 1: Rastavite Hue svjetlo

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 ih je lako 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 ostatak, 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, možete koristiti i običnu RGB LED diodu, kao što je prikazano na slici s pločicom.

Za rad s RGB LED, spojite pinove na tri različita PWM porta Arduina (označeno ba a ~). Za ovu vezu upotrijebite 100Ohm otpornike. Spojite najduži pin na 5V izlaz Arduina. Da biste vidjeli 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 pokazuju koja žica treba kamo 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 razine naprezanja, koja će se zatim koristiti kao ulaz za svjetlosnu boju i glazbu. Zalijepili smo senzore na svjetiljku, tako da postaje lijep proizvod za uhvatiti tijekom mjerenja stresa. Pazite ipak da se senzori ne dodiruju!

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

Korak 3: Mjerenje razine naprezanja

Mjerenje naprezanja
Mjerenje naprezanja

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

Za mjerenje razine GSR -a upotrijebit ćemo sljedeći dio koda u okruženju Arduino. Da bi mjerenje imalo manje fluktuacije, svakih 10 očitanja uzima se prosjek.

const int numReadings = 10; int očitanja [numReadings]; // ulaz iz A1 int index = 0; // indeks trenutnog očitanja int total = 0; // tekući ukupni bezznačni 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čitanja [indeks]; // sljedeća pozicija polja index = index + 1;

// testni kraj niza

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

// koji je prosjek

prosjek = ukupno / brojReadings; // šalje ga na računalo kao ASCII znamenke vraćaju 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 (kad smo se zaista pokušali opustiti) i 300 (kad smo se jako trudili postati stresni).

Zatim odlučite koja boja treba predstavljati razinu stresa. Napravili smo tako da:

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

2. Srednja razina stresa: zeleno svjetlo, koje se s povećanjem naprezanja mijenja u plavo svjetlo

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

Sljedeći je kôd korišten za obradu mjerenja i njihovo 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

// Programske varijable

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

nepotpisani dugi 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 operacijskoj glazbi} 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čeno 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čeno 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); // Zapis vrijednosti na LED pinove analogWrite (grnPin, grnVal); analogWrite (bluPin, bluVal); gsr = runGSR (); kašnjenje (100); }

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

Korak 5: Upravljanje glazbom

Upravljanje glazbom
Upravljanje glazbom

Odlučili smo predstaviti tri razine stresa sa sljedećom glazbom:

1. Niska razina (A): pjevajući zdjelice i cvrkut ptica, vrlo lagan zvuk

2. Srednja razina (B): melankolični glasovir, malo teži zvuk

3. Visoka razina stresa (C): grmljavina, mračan zvuk (iako prilično opuštajući)

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

uvoz obrada.serial.*; uvoz ddf.minim.*;

Minim minim;

AudioPlayer playeri;

int lf = 10; // Linefeed u ASCII

Niz 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 ("Melankolična-klavirska glazba.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); pokušajte {sensorValue = Integer.parseInt (myString); } catch (Izuzetak e) {} if (myString.equals ("A")) // pogledajte koju razinu stresa mjeri {igrači [0].play (); // sviraj prema glazbi} else {playeri [0].pause (); // ako ne mjeri nisku razinu 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 trebao bi reproducirati glazbu prema razini naprezanja na zvučnicima naših prijenosnih računala.

Korak 6: Dizajnirajte utjelovljenje

Image
Image
Dizajnirajte utjelovljenje
Dizajnirajte utjelovljenje

Koristili smo gornji dio Philips Hue Light, ali cnc'd dno zelene pjene. SolidWorksfile je tu, ali također bi moglo biti zabavno sami izmjeriti svjetiljku 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 audiodatoteka u obradi (koje smo koristili)
  • Lijep priručnik o GSR -u
  • Cool drugačiji pristup projektiranju raspoloženja
  • Zaista cool detektor stresa s više senzora (velika inspiracija za ovaj projekt)
  • Zvučni (umjesto stresnog) projektor s RGB LED
  • Dobar članak o GSR -u

Preporučeni: