Tartalomjegyzék:
- Lépés: Szedd szét a Hue Light -ot
- 2. lépés: A hardver előkészítése
- 3. lépés: A stresszszint mérése
- 4. lépés: A fények kezelése
- 5. lépés: A zene kezelése
- 6. lépés: Tervezze meg a megvalósítást
- 7. lépés: Források
Videó: Hangulatprojektor (feltört Philips Hue Light GSR -rel) TfCD: 7 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Írta: Laura Ahsmann & Maaike Weber
Cél: Az alacsony hangulat és a stressz a modern felgyorsult élet nagy részét képezik. Ez is valami, ami kívülről láthatatlan. Mi lenne, ha képesek lennénk vizuálisan és akusztikailag is kivetíteni a stresszszintünket egy termékkel, hogy meg tudjuk mutatni, mit érzel. Könnyebb lenne ezekről a problémákról kommunikálni. Saját reakciója is alkalmasabb lehet arra a pillanatra, amikor visszajelzést kap a stressz szintjéről.
A GSR, vagyis a galvanikus bőrellenállás, a felhasználó kéznél lévő mérése, bizonyítottan jó előrejelzője a stressznek. Mivel a kézben lévő verejtékmirigyek többnyire a stresszre reagálnak (nem csak a fizikai terhelésre), a megnövekedett stresszszint magasabb vezetőképességet eredményez. Ezt a változót használják ebben a projektben.
Ötlet: Mi lenne, ha gyorsan észlelnénk a stresszt vagy a hangulatot, és színes fénnyel és zenével ábrázolnánk? Egy GSR rendszer ezt megvalósíthatja. Ebben az utasításban egy Arduino -alapú rendszert készítünk ehhez! Mind az Arduino Software, mind a Processing Software működteti, és a bőr vezetőképességét egy bizonyos színű fényké és egy bizonyos típusú zenévé alakítja át.
Mire van szükséged?
- Arduino Uno
- Vezetékek
- Philips Hue fény (élő színek)
- Három 100 ohmos ellenállás (az RGB LED -hez)
- Egy 100 KOhm ellenállás (a GSR érzékelőhöz)
- Valami vezetőképesség -érzékelő, például alumíniumfólia
- Arduino szoftver
- Feldolgozó szoftver (a v2.2.1 verziót használtuk, az újabbak általában összeomlanak)
- SolidWorks, a ház kialakításához (opcionális)
- Hozzáférés a CNC malomhoz (opcionális)
- Zöld modellező hab (EPS)
- Kenyeretábla (opcionális, forrasztható is)
Lépés: Szedd szét a Hue Light -ot
Ez a lépés egyszerű, csak erővel (vagy csavarhúzóval) hagyja elveszni és feltörni a fényt. Néhány pattintható csatlakozás összetartja a terméket, így könnyen szétszedhető.
Most a tetején lévő lámpa lecsavarható és leválasztható a többi elektronikáról. Csak a fényre és a ház tetejére lesz szükségünk. Mentse el vagy dobja el a többit, ez rajtad múlik!
2. lépés: A hardver előkészítése
Ehhez a projekthez Philips Hue lámpát használtunk, hogy szebbé és gyorsabbá tegyük a megtestesülést. Használhat azonban normál RGB LED -et is, amint az a kenyérsütő táblán látható képen látható.
Az RGB LED működtetéséhez csatlakoztassa a csapokat az Arduino három különböző PWM portjához (jelzett ba a ~). Ehhez a csatlakoztatáshoz használja a 100 ohmos ellenállásokat. Csatlakoztassa a leghosszabb tűt az Arduino 5V -os kimenetéhez. Ha látni szeretné, hogy melyik csap melyik színnek felel meg, tekintse meg ennek a lépésnek az utolsó képét.
A Hue Light esetében ugyanez a lépés. A LED könnyen csatlakoztatható az Arduino -hoz, forrasztva a vezetékeket a kijelölt résekhez, lásd a harmadik képet ebben a lépésben. A nyílásokban van egy R, egy G és egy B jel, amelyek azt jelzik, hogy melyik vezetéknek hova kell mennie. A + és a - nyílással is rendelkezik, amelyeket az Arduino 5 V -os és az Arduino földhöz kell csatlakoztatni. Miután csatlakoztatta a LED -et, visszacsavarhatja a házba.
Az alumínium fóliából készült GSR -érzékelők csatlakoztatásához (vagy használja a mécses aluminium edényeket, amelyek egy kicsit szebbnek tűnnek), forrasztja vagy ragasztja őket egy vezetékhez, és csatlakoztassa az 5V -hoz. Csatlakoztassa a másikat a 100KOhm ellenálláshoz és a 0, 1mF (párhuzamos) kondenzátorhoz, amelyet ezután a földhöz és az Arduino A1 nyílásához kell csatlakoztatni. Ez adja a stresszszint kimenetét, amelyet a fény színének és zenéjének bemeneteként használnak. Az érzékelőket a lámpához ragasztottuk, így szép termék lesz, amelyet megragadhatunk a stressz mérése közben. Vigyázzon azonban, hogy az érzékelők ne érjenek egymáshoz!
Az utolsó kép azt mutatja be, hogyan lehet kenyérsütőlap nélkül csinálni.
3. lépés: A stresszszint mérése
A stressz szintjének mérése csak ezekkel a házi készítésű érzékelőkkel biztosan nem ad pontos méréseket arra vonatkozóan, hogy mennyire vagy stresszes. Ha azonban helyesen kalibrálja, akkor hozzávetőleges értéket adhat.
A GSR szintek méréséhez a következő kódrészletet fogjuk használni, Arduino környezetben. A kevésbé ingadozó mérés érdekében 10 leolvasáson átlagot kell mérni.
const int numReadings = 10; int olvasmányok [numReadings]; // bemenet az A1 int index = 0; // az aktuális leolvasás indexe int total = 0; // a futó összes előjel nélküli hosszú átlag = 0; // az átlag
int inputPin = A1;
void setupGSR ()
{// állítsa az összes értéket 0 -ra:
(int i = 0; i <numReadings; i ++) olvasásra = 0; }
unsigned long runGSR () {
összesen = összesen - leolvasások [index]; // olvasás a GSR szenzor leolvasásából [index] = analogRead (inputPin); // új leolvasás hozzáadása az összesített összeshez = összes + leolvasás [index]; // tömb következő pozíciója index = index + 1;
// teszt tömb vége
if (index> = számReadings) // és újraindítás index = 0;
// mi az átlag
átlag = összes / számReadings; // elküldi a számítógépre, mivel az ASCII számjegy átlagot ad vissza;
}
Egy másik lapon (a dolgok rendszerezése érdekében) elkészítjük a kódot, amely reagál a mérésekre, lásd a következő lépést!
4. lépés: A fények kezelése
A fények kezeléséhez először kalibrálnunk kell a méréseket. A soros monitor megnyitásával ellenőrizze, hogy mi a felső határérték a mérésekhez. Számunkra a mérések valahol a 150 (amikor tényleg megpróbáltunk ellazulni) és a 300 (amikor nagyon igyekeztünk stresszelni) között voltak.
Ezután döntse el, hogy melyik színnek milyen stresszszintet kell képviselnie. Ezt úgy csináltuk, hogy:
1. Alacsony stresszszint: fehér fény, növekvő stressz mellett zöld fényre vált
2. Közepes stresszszint: zöld fény, növekvő feszültség mellett kék fényre vált
3. Magas stresszszint: kék fény, növekvő stressz mellett vörösre változik
A következő kódot használtuk a mérések feldolgozásához és értékekké alakításához, amelyeket a LED -nek küldtek:
// MESTER #define DEBUG 0
// GSR = A1
int gsrVal = 0; // Változó az érzékelők bemenetének tárolására
// Mint említettük, használja a Pulse-width Modulation (PWM) csapokat
int redPin = 9; // Piros LED, 9 -es digitális tűhöz csatlakoztatva int grnPin = 9; // Zöld LED, 10 -es digitális tűhöz csatlakoztatva int bluPin = 5; // Kék LED, a 11 -es digitális tűhöz csatlakoztatva
// Programváltozók
int redVal = 0; // Változók a tűkre küldendő értékek tárolására int grnVal = 0; int bluVal = 0;
előjel nélküli hosszú gsr = 0;
üres beállítás ()
{pinMode (bluPin, OUTPUT); pinMode (grnPin, OUTPUT); pinMode (redPin, OUTPUT); pinMode (A1, BEMENET);
Sorozat.kezdet (9600);
setupGSR (); }
üres hurok ()
{gsrVal = gsr; if (gsrVal <150) // A gsr tartomány legalacsonyabb harmada (0-149) {gsr = (gsrVal /10) * 17; // Normalizálás 0-255-re redVal = gsrVal; // ki a teljes grnVal = gsrVal; // Zöld a ki teljes bluVal = gsrVal; // Teljesen kékString SoundA = "A"; Serial.println (SoundA); // későbbi felhasználáshoz a működő zenében} else if (gsrVal <250) // gsr tartomány középső harmada (150-249) {gsrVal = ((gsrVal-250) /10) * 17; // Normalizálás 0-255-re redVal = 1; // Piros ki grnVal = gsrVal; // Zöld a teljesről a kikapcsolásra bluVal = 256 - gsrVal; // Kék az off -tól a teljes String SoundB = "B"; Serial.println (SoundB); } else // A gsr tartomány felső harmada (250-300) {gsrVal = ((gsrVal-301) /10) * 17; // Normalizálás 0-255-re redVal = gsrVal; // Piros az off -tól a teljesig grnVal = 1; // Zöld a teljes bluVal = 256 - gsrVal; // Kék teljesről kikapcsoltra String SoundC = "C"; Serial.println (SoundC); }
analogWrite (redPin, redVal); // Értékek írása a LED tüskékbe analogWrite (grnPin, grnVal); analogWrite (bluPin, bluVal); gsr = runGSR (); késleltetés (100); }
Tehát most a LED reagál a stressz szintjére, a következő lépésben adjunk hozzá egy kis zenét, amely jelzi a hangulatát.
5. lépés: A zene kezelése
Úgy döntöttünk, hogy a 3 stresszszintet a következő zenével képviseljük:
1. Alacsony szint (A): éneklő tálak és madarak csicsergése, nagyon könnyű hang
2. Közepes szint (B): melankolikus zongora, kicsit nehezebb hangzás
3. Magas stresszszint (C): Mennydörgő vihar, sötét hang (bár elég pihentető)
A kód a Processing programba van írva, amely az Arduino szoftver visszajelzési részét biztosítja:
import feldolgozás.sorozat.*; import ddf.minim.*;
Minimális minimum;
AudioPlayer lejátszók;
int lf = 10; // Linefeed az ASCII -ben
Karakterlánc myString = null; Soros myPort; // A soros port int sensorValue = 0;
void setup () {
// Az összes rendelkezésre álló soros port felsorolása printArray (Serial.list ()); // Nyissa meg a használt portot ugyanolyan sebességgel, mint az Arduino myPort = new Serial (this, Serial.list () [2], 9600); myPort.clear (); // a mérések törlése myString = myPort.readStringUntil (lf); myString = null; // ezt átadjuk a Minimnek, hogy betöltse a fájlokat minimum = new Minim (this); lejátszók = új AudioPlayer [3]; // Itt módosítsa az audio fájl nevét, és adja hozzá a könyvtárakhoz lejátszók [0] = minim.loadFile ("Singing-bowls-and-birds-chirping-sleep-music.mp3"); játékosok [1] = minim.loadFile ("Melancholic-piano-music.mp3"); játékosok [2] = minim.loadFile ("Storm-sound.mp3"); }
void draw () {
// ellenőrizze, hogy van -e új érték, miközben (myPort.available ()> 0) {// tárolja az adatokat a myString fájlban myString = myPort.readString (); // ellenőrizze, hogy valóban van -e valami, ha (myString! = null) {myString = myString.trim (); // ellenőrizze, hogy van -e valami, ha (myString.length ()> 0) {println (myString); try {sensorValue = Integer.parseInt (myString); } catch (kivétel e) {} if (myString.equals ("A")) // nézd meg, hogy milyen stresszszintet mér {player [0].play (); // zene szerint játszani} else {lejátszók [0].pause (); // ha nem az alacsony stresszszintet méri, ne játssza le a megfelelő dalt} if (myString.equals ("B")) {players [1].play (); } else {játékosok [1].pause (); } if (myString.equals ("C")) {player [2].play (); } else {játékosok [2].pause (); }}}}}
Ennek a kódnak kell lejátszania a zenét a laptop hangszóróinak stresszszintje szerint.
6. lépés: Tervezze meg a megvalósítást
A Philips Hue Light felső részét használtuk, de zöld hab alját. A SolidWorksfile itt van, de az is szórakoztató lehet, hogy saját maga mérje meg a lámpát, és tervezzen valamit az ízlése szerint!
A lámpa tetejéről készült fényképet alátétként használtunk DNy -ban, hogy megbizonyosodjunk arról, hogy az aljzat alakja követi a felső görbét (lásd az első fotót).
Ahhoz, hogy a modell cnc'd legyen, mentse el STL fájlként, és keresse meg a helyi molnárt (például az uni -ban).
7. lépés: Források
Ha további információra van szüksége erről a témáról, vagy átfogóbb kódokat szeretne látni a stressz mérésére, tekintse meg az alábbi webhelyeket és projekteket:
- További magyarázat az audiofájlok kiváltására a feldolgozás során (amit mi használtunk)
- Szép kézikönyv a GSR -ről
- Hűvös, más megközelítés a hangulatvetítéshez
- Nagyon jó stresszérzékelő több érzékelővel (nagy inspiráció ehhez a projekthez)
- Hangos (stressz helyett) projektor RGB LED -del
- Jó cikk a GSR -ről
Ajánlott:
A Philips Hue Lightstrip felosztása és meghosszabbítása: 8 lépés (képekkel)
A Philips Hue Lightstrip felosztása és meghosszabbítása: Több " intelligens otthon " típusú kütyüket a házamba, és az egyik dolog, amivel játszottam, a Philips Hue Lightstrip. Ez egy LED -fénycsík, amelyet egy alkalmazásból vagy egy intelligens asszisztensből, például Alexából vagy
BlackJack (feltört IRig): 4 lépés
BlackJack (feltört IRig): Gyűlöltem az iRig használatát az elektromos gitárral és az okostelefonommal, mert túl sok kábel volt !!!!!!! Alapvetően két fő problémát találtam az eredeti kialakítással: 1. - Nem akarok gitárkábelt használni, mert az más dolog
Feltört digitális Vernier féknyereg az Arduino használatával: 7 lépés
Feltört digitális Vernier féknyereg az Arduino használatával: Tehát mi a helyzet, ha néhány mérést elvégez a Digital Vernier Caliper segítségével, és az Arduino -t elvégezi a munkát ezekkel a mérésekkel? Lehet, hogy elmenti őket, néhány számításon alapul, vagy hozzáadja ezeket a méréseket a visszacsatolási hurokhoz
Régi LCD monitorból feltört adatvédelmi monitor: 7 lépés (képekkel)
Régi LCD monitorból feltört adatvédelmi monitor: Végül tehet valamit azzal a régi LCD monitorral, amely a garázsban van. Adatvédelmi monitorrá alakíthatja! Rajtad kívül mindenkinek teljesen fehérnek tűnik, mert " varázslatot " szemüveg! Valójában csak egy papa kell
DIY Philips Hue panel fény: 4 lépés (képekkel)
DIY Philips Hue Panel Light: Nemrég vettem néhány Philips Hue lámpát a hálószobámhoz. Nagyszerűek! Hangommal irányíthatom őket az Alexa segítségével, és a telefonomon keresztül is. Próbáltam színváltó panellámpát találni, de amint azt Ön is tudja, a Philips Hue nem látja