Obsah:

Projektor nálady (napadené světlo Philips Hue s GSR) TfCD: 7 kroků (s obrázky)
Projektor nálady (napadené světlo Philips Hue s GSR) TfCD: 7 kroků (s obrázky)

Video: Projektor nálady (napadené světlo Philips Hue s GSR) TfCD: 7 kroků (s obrázky)

Video: Projektor nálady (napadené světlo Philips Hue s GSR) TfCD: 7 kroků (s obrázky)
Video: Project Nursery Night Light and Sound Machine Soother | Quick Review and How-To 2024, Červenec
Anonim
Image
Image
Rozdělte Hue Light
Rozdělte Hue Light

Autor: Laura Ahsmann & Maaike Weber

Účel: Nízká nálada a stres jsou velkou součástí moderního rychlého života. Je to také něco, co je navenek neviditelné. Co kdybychom byli schopni vizuálně i akusticky promítnout naši úroveň stresu pomocí produktu, abychom dokázali ukázat, jak se cítíte. Usnadnilo by vám to komunikaci o těchto problémech. Vaše vlastní reakce by také mohla být adekvátnější okamžiku, kdy obdržíte zpětnou vazbu o vašich úrovních stresu.

Ukázalo se, že GSR neboli galvanický odpor kůže, měření prováděné na dosah ruky, je opravdu dobrým prediktorem stresu. Protože potní žlázy v ruce většinou reagují na stres (nejen fyzické cvičení), zvýšené úrovně stresu generují vyšší vodivost. Tato proměnná se používá v tomto projektu.

Idea: Co kdybychom dokázali rychle detekovat stres nebo náladu a reprezentovat je barevným světlem a hudbou? Systém GSR by toho mohl dosáhnout. V tomto Instructable vytvoříme systém založený na Arduinu! Provozuje software Arduino i Processing Software, bude převádět hodnoty vodivosti pokožky do určitého barevného světla a určitého druhu hudby.

Co potřebuješ?

  • Arduino Uno
  • Dráty
  • Světlo Philips Hue (Living Colors)
  • Tři odpory 100 ohmů (pro RGB LED)
  • Jeden odpor 100 KOhm (pro snímač GSR)
  • Něco, co funguje jako snímače vodivosti, jako hliníková fólie
  • Software Arduino
  • Software pro zpracování (použili jsme v2.2.1, novější obvykle havarují)
  • SolidWorks, pro návrh pouzdra (volitelně)
  • Přístup k CNC mlýnu (volitelně)
  • Zelená modelovací pěna (EPS)
  • Breadboard (volitelně, lze také pájet)

Krok 1: Rozložte světlo Hue

Tento krok je snadný, stačí použít určitou sílu (nebo šroubovák), abyste ztratili a rozbili světlo. Některá západková spojení drží produkt pohromadě, takže je lze snadno rozebrat.

Nyní lze světlo v horní části odšroubovat a odpojit od zbytku elektroniky. Budeme potřebovat pouze světlo a horní část pouzdra. Zbytek uložte nebo hoďte, je to na vás!

Krok 2: Příprava hardwaru

Příprava hardwaru
Příprava hardwaru
Příprava hardwaru
Příprava hardwaru
Příprava hardwaru
Příprava hardwaru
Příprava hardwaru
Příprava hardwaru

Pro tento projekt jsme použili světlo Philips Hue, aby bylo provedení hezčí a rychlejší. Můžete však také použít běžnou RGB LED, jak je znázorněno na obrázku s prkénkem.

Chcete -li ovládat RGB LED, připojte piny ke třem různým PWM portům Arduina (označené ba a ~). Pro toto připojení použijte odpory 100Ohm. Připojte nejdelší kolík k 5V výstupu Arduina. Chcete -li zjistit, který pin odpovídá které barvě, podívejte se na poslední obrázek tohoto kroku.

Pro Hue Light platí stejné kroky. LED se snadno připojí k Arduinu pájením vodičů do určených slotů, viz třetí obrázek v tomto kroku. Sloty mají R, G a B, což značí, kam by měl kam vést. Má také slot + a - pro připojení k 5V Arduina a uzemnění Arduina. Jakmile zapojíte LED, můžete ji zašroubovat zpět do pouzdra.

Chcete -li připojit senzory GSR vyrobené z hliníkové fólie (nebo použít hliníkové nádoby na čajové svíčky, které vypadají o něco hezčí), pájejte je nebo je spojte páskou a připojte k 5V. Druhý připojte k odporu 100 KOhm a kondenzátoru 0, 1 mF (paralelně), který by měl být poté připojen k zemi a slotu A1 na Arduinu. To poskytne výstup úrovně stresu, který bude poté použit jako vstup pro barvu světla a hudbu. Senzory jsme přilepili k lampě, takže se stane příjemným produktem, který můžete chytit při měření stresu. Dávejte však pozor, aby se senzory nedotýkaly!

Poslední obrázek ukazuje, jak se to dá zvládnout bez prkénka.

Krok 3: Měření úrovně stresu

Měření úrovně stresu
Měření úrovně stresu

Měření úrovně stresu právě pomocí těchto domácích senzorů rozhodně nepřinese přesné měření toho, jak přesně jste ve stresu. Při správné kalibraci však může poskytnout přibližnou hodnotu.

K měření úrovní GSR použijeme následující část kódu v prostředí Arduino. Aby bylo měření méně kolísavé, je průměr proveden každých 10 měření.

const int numReadings = 10; int čtení [numReadings]; // vstup z A1 int index = 0; // index aktuálního čtení int total = 0; // průběžný součet bez znaménka dlouhý průměr = 0; // průměr

int inputPin = A1;

neplatné nastaveníGSR ()

{// nastavit všechna měření na 0:

pro (int i = 0; i <numReadings; i ++) čtení = 0; }

unsigned long runGSR () {

celkem = celkem - naměřené hodnoty [index]; // čtení z naměřených hodnot snímače GSR [index] = analogRead (inputPin); // přidat nové čtení k celkovému součtu = celkem + čtení [index]; // další pozice pole index = index + 1;

// test konce pole

if (index> = numReadings) // a začít znovu index = 0;

// jaký je průměr

průměr = celkem / početČtení; // pošle to do počítače jako ASCII číslice vrátí průměr;

}

Na další kartě (abychom měli věci organizované) vytvoříme kód, který bude reagovat na měření, viz další krok!

Krok 4: Správa světel

Správa světel
Správa světel
Správa světel
Správa světel
Správa světel
Správa světel

Abychom mohli spravovat světla, musíme nejprve kalibrovat měření. Otevřením sériového monitoru zkontrolujte, jaký je horní limit vašich měření. Pro nás byla měření něco mezi 150 (když jsme se opravdu snažili relaxovat) a 300 (když jsme se opravdu snažili dostat do stresu).

Poté se rozhodněte, jaká barva by měla představovat úroveň stresu. Udělali jsme to tak, že:

1. Nízká úroveň stresu: bílé světlo, měnící se v zelené světlo se zvyšujícím se napětím

2. Střední úroveň stresu: zelené světlo, měnící se v modré světlo se zvyšujícím se napětím

3. Vysoká úroveň stresu: modré světlo, měnící se v červené se zvyšujícím se stresem

Následující kód byl použit ke zpracování měření a jejich přeměně na hodnoty odeslané do LED:

// MASTER #define DEBUG 0

// GSR = A1

int gsrVal = 0; // Proměnná pro uložení vstupu ze senzorů

// Jak již bylo zmíněno, použijte piny Pulse-width Modulation (PWM)

int redPin = 9; // Červená LED, připojená k digitálnímu pinu 9 int grnPin = 9; // Zelená LED, připojeno k digitálnímu pinu 10 int bluPin = 5; // Modrá LED, připojená k digitálnímu pinu 11

// Programové proměnné

int redVal = 0; // Proměnné pro uložení hodnot k odeslání na piny int grnVal = 0; int bluVal = 0;

nepodepsané dlouhé gsr = 0;

neplatné nastavení ()

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

Serial.begin (9600);

setupGSR (); }

prázdná smyčka ()

{gsrVal = gsr; if (gsrVal <150) // Nejnižší třetina rozsahu gsr (0-149) {gsr = (gsrVal /10) * 17; // Normalizace na 0-255 redVal = gsrVal; // vypnuto na plný grnVal = gsrVal; // Zelená od vypnuto do plného bluVal = gsrVal; // Modré do plnaZvuk řetězceA = "A"; Serial.println (SoundA); // pro pozdější použití při ovládání hudby} else if (gsrVal <250) // Střední třetina rozsahu gsr (150-249) {gsrVal = ((gsrVal-250) /10) * 17; // Normalizace na 0-255 redVal = 1; // Red off grnVal = gsrVal; // Zelená od plné do vypnuté bluVal = 256 - gsrVal; // Modrá od vypnuto do plného String SoundB = "B"; Serial.println (SoundB); } else // Horní třetina rozsahu gsr (250-300) {gsrVal = ((gsrVal-301) /10) * 17; // Normalizace na 0-255 redVal = gsrVal; // Červená od vypnuto do plné grnVal = 1; // Zelené vypnuto na plný bluVal = 256 - gsrVal; // Modrý od plného po vypnutý String SoundC = "C"; Serial.println (SoundC); }

analogWrite (redPin, redVal); // Zapisování hodnot na LED piny analogWrite (grnPin, grnVal); analogWrite (bluPin, bluVal); gsr = runGSR (); zpoždění (100); }

V dalším kroku tedy LED reaguje na vaši úroveň stresu, přidejme nějakou hudbu, která bude reprezentovat vaši náladu.

Krok 5: Správa hudby

Správa hudby
Správa hudby

Rozhodli jsme se reprezentovat 3 úrovně stresu následující hudbou:

1. Nízká úroveň (A): zpívající mísy a švitoření ptáků, velmi lehký zvuk

2. Střední úroveň (B): melancholický klavír, trochu těžší zvuk

3. Vysoká úroveň stresu (C): Bouřka, temný zvuk (i když docela relaxační)

Kód je napsán v softwaru Processing, který poskytuje část zpětné vazby k softwaru v Arduinu:

import zpracování.sériové.*; import ddf.minim.*;

Minimální minimum;

Přehrávače AudioPlayer ;

int lf = 10; // Linefeed v ASCII

Řetězec myString = null; Sériový myPort; // Sériový port int sensorValue = 0;

neplatné nastavení () {

// Seznam všech dostupných sériových portů printArray (Serial.list ()); // Otevřete používaný port stejnou rychlostí jako Arduino myPort = new Serial (this, Serial.list () [2], 9600); myPort.clear (); // vymazat měření myString = myPort.readStringUntil (lf); myString = null; // předáme to Minimovi, aby to mohlo načíst soubory minim = new Minim (this); hráči = nový AudioPlayer [3]; // Zde změňte název zvukového souboru a přidejte jej do přehrávačů knihoven [0] = minim.loadFile ("Singing-bowls-and-birds-chirping-sleep-music.mp3"); hráči [1] = minim.loadFile ("Melancholic-piano-music.mp3"); hráči [2] = minim.loadFile ("Storm-sound.mp3"); }

void draw () {

// zkontrolujte, zda existuje nová hodnota while (myPort.available ()> 0) {// uložte data do myString myString = myPort.readString (); // zkontrolujte, zda opravdu něco máme, pokud (myString! = null) {myString = myString.trim (); // zkontrolujte, zda je něco if (myString.length ()> 0) {println (myString); zkuste {sensorValue = Integer.parseInt (myString); } catch (Exception e) {} if (myString.equals ("A")) // see what stresslevel it measurement {players [0].play (); // hraj podle hudby} else {hráči [0].pause (); // pokud neměřuje nízkou úroveň stresu, nehrajte příslušnou skladbu} if (myString.equals ("B")) {players [1].play (); } else {hráči [1].pause (); } if (myString.equals ("C")) {players [2].play (); } else {hráči [2].pause (); }}}}}

Tento kód by měl přehrávat hudbu podle úrovně stresu na našich reproduktorech notebooku.

Krok 6: Navrhněte provedení

Image
Image
Navrhněte Provedení
Navrhněte Provedení

Použili jsme horní část světla Philips Hue Light, ale dno bylo ze zelené pěny. Soubor SolidWorks je tady, ale také by mohlo být zábavné měřit lampu sami a navrhnout něco podle svého vkusu!

Použili jsme fotografii horní části lampy jako podložky v SW, abychom se ujistili, že tvar dna sleduje křivku vrcholu (viz první fotografie).

Chcete -li mít model cnc'd, uložte jej jako soubor STL a najděte svého místního mlynáře (například na uni).

Krok 7: Zdroje

Chcete -li získat více informací o tomto tématu nebo zobrazit rozsáhlejší kódy pro měření stresu, navštivte následující weby a projekty:

  • Další vysvětlení ohledně spouštění zvukových souborů ve zpracování (které jsme použili)
  • Pěkná příručka o GSR
  • Skvělý jiný přístup k projektování nálady
  • Opravdu skvělý detektor stresu s více senzory (velká inspirace pro tento projekt)
  • Zvukový (namísto stresu) projektor s RGB LED
  • Dobrý článek o GSR

Doporučuje: