Satura rādītājs:

Garastāvokļa projektors (uzlauzta Philips nokrāsas gaisma ar GSR) TfCD: 7 soļi (ar attēliem)
Garastāvokļa projektors (uzlauzta Philips nokrāsas gaisma ar GSR) TfCD: 7 soļi (ar attēliem)

Video: Garastāvokļa projektors (uzlauzta Philips nokrāsas gaisma ar GSR) TfCD: 7 soļi (ar attēliem)

Video: Garastāvokļa projektors (uzlauzta Philips nokrāsas gaisma ar GSR) TfCD: 7 soļi (ar attēliem)
Video: Скрытая причина низкой концентрации 2024, Jūlijs
Anonim
Image
Image
Izņemiet Hue Light
Izņemiet Hue Light

Autori Laura Ahsmann & Maaike Weber

Mērķis: Zems garastāvoklis un stress ir liela mūsdienu ātrās dzīves sastāvdaļa. Tas ir arī kaut kas ārēji neredzams. Ko darīt, ja mēs spētu gan vizuāli, gan akustiski projicēt savu stresa līmeni ar produktu, lai varētu parādīt, kā jūtaties. Tas atvieglos saziņu par šīm problēmām. Arī jūsu reakcija varētu būt atbilstošāka brīdim, kad saņemat atgriezenisko saiti par saviem stresa līmeņiem.

Ir pierādīts, ka GSR jeb galvaniskā ādas pretestība, mērījums, kas tiek veikts lietotājam pa rokai, ir patiešām labs stresa prognozētājs. Tā kā sviedru dziedzeri rokā galvenokārt reaģē uz stresu (ne tikai fiziskiem vingrinājumiem), paaugstināts stresa līmenis rada lielāku vadītspēju. Šis mainīgais tiek izmantots šajā projektā.

Ideja: Ko darīt, ja mēs varētu ātri noteikt stresu vai garastāvokli un attēlot to ar krāsainu gaismu un mūziku? GSR sistēma to varētu panākt. Šajā pamācībā mēs izveidosim uz Arduino balstītu sistēmu, lai to izdarītu! To pārvalda gan Arduino programmatūra, gan apstrādes programmatūra, tā pārveidos ādas vadītspējas vērtības noteiktā krāsu gaismā un noteikta veida mūzikā.

Ko tev vajag?

  • Arduino Uno
  • Vadi
  • Philips Hue gaisma (dzīvās krāsas)
  • Trīs 100 omu rezistori (RGB LED)
  • Viens 100 KOhm rezistors (GSR sensoram)
  • Kaut kas darbojas kā vadītspējas sensori, piemēram, alumīnija folija
  • Arduino programmatūra
  • Apstrādes programmatūra (mēs izmantojām v2.2.1, jaunākās mēdz avarēt)
  • SolidWorks, lai izstrādātu korpusu (pēc izvēles)
  • Piekļuve CNC dzirnavām (pēc izvēles)
  • Zaļās modelēšanas putas (EPS)
  • Maizes dēlis (pēc izvēles, var arī lodēt)

1. darbība: noņemiet Hue Light

Šis solis ir vienkāršs, vienkārši izmantojiet kādu spēku (vai skrūvgriezi), lai tas pazustu un atraisītu gaismu. Daži pieslēguma savienojumi satur produktu kopā, tāpēc to ir viegli izjaukt.

Tagad gaismu augšpusē var atskrūvēt un atvienot no pārējās elektronikas. Mums būs nepieciešama tikai gaisma un korpusa augšdaļa. Saglabājiet vai iemetiet pārējo, tas ir jūsu ziņā!

2. darbība. Aparatūras sagatavošana

Aparatūras sagatavošana
Aparatūras sagatavošana
Aparatūras sagatavošana
Aparatūras sagatavošana
Aparatūras sagatavošana
Aparatūras sagatavošana
Aparatūras sagatavošana
Aparatūras sagatavošana

Šim projektam mēs izmantojām Philips Hue gaismu, lai padarītu iemiesojumu skaistāku un ātrāku. Tomēr jūs varat izmantot arī parastu RGB gaismas diode, kā parādīts attēlā ar maizes dēli.

Lai darbinātu RGB gaismas diodi, savienojiet tapas ar trim dažādiem Arduino PWM portiem (norādīts ba a ~). Šim savienojumam izmantojiet 100 omu rezistorus. Pievienojiet garāko tapu Arduino 5V izejai. Lai redzētu, kura tapa atbilst kādai krāsai, skatiet šīs darbības pēdējo attēlu.

Hue Light gadījumā veiciet tās pašas darbības. Gaismas diode ir viegli savienojama ar Arduino, pielodējot vadus norādītajās spraugās, skatiet trešo soli šajā solī. Slotiem ir R, G un B, kas norāda, kuram vadam kur jāiet. Tam ir arī + un a - slots, kas attiecīgi jāpievieno Arduino 5V un Arduino zemei. Kad esat pievienojis LED, varat to ieskrūvēt atpakaļ korpusā.

Lai savienotu GSR sensorus, kas izgatavoti no alumīnija folijas (vai izmantojiet tos alumīnija tējas sveču traukus, kas izskatās nedaudz jaukāk), pielodējiet vai pielīmējiet tos pie stieples un pievienojiet vienu pie 5V. Pievienojiet otru pret 100KOhm rezistoru un 0, 1mF (paralēli) kondensatoru, kas pēc tam jāpievieno zemei un Arduino A1 slotā. Tas dos stresa līmeņa izeju, kas pēc tam tiks izmantota kā gaismas krāsas un mūzikas ieeja. Mēs piestiprinājām sensorus pie luktura, tāpēc tas kļūst par jauku produktu, ko satvert, mērot stresu. Tomēr esiet piesardzīgs, lai sensori nepieskartos!

Pēdējā bilde parāda, kā to var izdarīt bez maizes dēļa.

3. darbība. Stresa līmeņa mērīšana

Stresa līmeņa mērīšana
Stresa līmeņa mērīšana

Stresa līmeņa mērīšana, izmantojot tikai šos pašdarinātos sensorus, noteikti nedos precīzus mērījumus par to, cik stresa jūs esat. Tomēr, pareizi kalibrējot, tas var dot aptuvenu vērtību.

Lai izmērītu GSR līmeņus, mēs izmantosim šādu koda daļu Arduino vidē. Lai mērījumi būtu mazāk svārstīgi, ik pēc 10 rādījumiem tiek ņemta vidējā vērtība.

const int numReadings = 10; int rādījumi [numReadings]; // ievade no A1 int indekss = 0; // pašreizējā rādījuma indekss int kopā = 0; // kopējais neparakstītais garais vidējais = 0; // vid

int inputPin = A1;

void setupGSR ()

{// iestatiet visus rādījumus uz 0:

(int i = 0; i <numReadings; i ++) rādījumiem = 0; }

unsigned long runGSR () {

kopā = kopā - rādījumi [indekss]; // nolasīt no GSR sensora rādījumiem [indekss] = analogRead (inputPin); // pievienot kopējo kopsummai jaunu rādījumu = kopējais + rādījumi [indekss]; // nākamā masīva indeksa pozīcija = indekss + 1;

// masīva testa beigas

ja (indekss> = numReadings) // un sākt no jauna indekss = 0;

// kāds ir vid

vidējais = kopā / numReadings; // nosūtīt to uz datoru kā ASCII cipari atgriež vidējo;

}

Citā cilnē (lai lietas būtu sakārtotas) mēs izveidosim kodu, lai reaģētu uz mērījumiem, skatiet nākamo soli!

4. solis: gaismas pārvaldība

Gaismu vadīšana
Gaismu vadīšana
Gaismu vadīšana
Gaismu vadīšana
Gaismu vadīšana
Gaismu vadīšana

Lai pārvaldītu gaismas, mums vispirms ir jākalibrē mērījumi. Pārbaudiet mērījumu augšējo robežu, atverot sērijas monitoru. Mums mērījumi bija kaut kas starp 150 (kad mēs patiešām centāmies atpūsties) un 300 (kad mēs ļoti centāmies kļūt stresā).

Pēc tam izlemiet, kādai krāsai jāatspoguļo kāds stresa līmenis. Mēs to izveidojām tā, lai:

1. Zems stresa līmenis: balta gaisma, mainoties zaļai gaismai, palielinoties stresam

2. Vidējs stresa līmenis: zaļa gaisma, kas mainās zilā gaismā, palielinoties stresam

3. Augsts stresa līmenis: zila gaisma, mainoties sarkanai, palielinoties stresam

Mērījumu apstrādei un to pārvēršanai vērtībās, kas jānosūta uz LED, tika izmantots šāds kods:

// MASTER #define DEBUG 0

// GSR = A1

int gsrVal = 0; // Mainīgais, lai saglabātu sensoru ievadīto informāciju

// Kā jau minēts, izmantojiet pulsa platuma modulācijas (PWM) tapas

int redPin = 9; // Sarkana gaismas diode, savienota ar ciparu tapu 9 int grnPin = 9; // Zaļā gaismas diode, savienota ar digitālo tapu 10 int bluPin = 5; // Zila gaismas diode, savienota ar ciparu tapu 11

// Programmas mainīgie

int redVal = 0; // Mainīgie lielumu saglabāšanai, lai tos nosūtītu uz tapām int grnVal = 0; int bluVal = 0;

neparakstīts garais gsr = 0;

anulēts iestatījums ()

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

Sērijas sākums (9600);

setupGSR (); }

tukša cilpa ()

{gsrVal = gsr; if (gsrVal <150) // Zemākā trešdaļa no gsr diapazona (0-149) {gsr = (gsrVal /10) * 17; // Normalizēt līdz 0-255 redVal = gsrVal; // izslēgts līdz pilnam grnVal = gsrVal; // Zaļš no izslēgta līdz pilnam bluVal = gsrVal; // Zils līdz pilnamStīgu skaņaA = "A"; Serial.println (SoundA); // vēlākai izmantošanai mūzikas atskaņošanā} else if (gsrVal <250) // gsr range (150-249) vidējā trešdaļa {gsrVal = ((gsrVal-250) /10) * 17; // Normalizēt līdz 0-255 redVal = 1; // Red off grnVal = gsrVal; // Zaļš no pilna uz izslēgtu bluVal = 256 - gsrVal; // Zils no izslēgta līdz pilnai virknei SkaņaB = "B"; Serial.println (SoundB); } cits // gsr diapazona augšējā trešdaļa (250–300) {gsrVal = ((gsrVal-301) /10) * 17; // Normalizēt līdz 0-255 redVal = gsrVal; // Sarkans no izslēgta līdz pilnam grnVal = 1; // Zaļš līdz pilnam bluVal = 256 - gsrVal; // Zils no pilna uz izslēgtu String SoundC = "C"; Serial.println (SoundC); }

analogWrite (redPin, redVal); // Ierakstiet vērtības LED tapās analogWrite (grnPin, grnVal); analogWrite (bluPin, bluVal); gsr = runGSR (); kavēšanās (100); }

Tāpēc tagad gaismas diode reaģē uz jūsu stresa līmeni, nākamajā solī pievienosim mūziku, kas atspoguļos jūsu garastāvokli.

5. darbība. Mūzikas pārvaldība

Mūzikas pārvaldīšana
Mūzikas pārvaldīšana

Mēs izvēlējāmies pārstāvēt 3 stresa līmeņus ar šādu mūziku:

1. Zems līmenis (A): dziedošās bļodas un putnu čivināšana, ļoti viegla skaņa

2. Vidējs līmenis (B): melanholiskas klavieres, nedaudz smagāka skaņa

3. Augsts stresa līmenis (C): pērkona negaiss, tumša skaņa (lai gan diezgan relaksējoša)

Kods ir rakstīts apstrādē, programmatūrā, kas nodrošina Arduino programmatūras atgriezeniskās saites daļu:

importēt apstrādi.sērija.*; importēt ddf.minim.*;

Minimālais minimums;

AudioPlayer atskaņotāji;

int lf = 10; // Linefeed ASCII

String myString = null; Sērijas myPort; // Sērijas ports int sensorValue = 0;

void setup () {

// Uzskaitiet visus pieejamos seriālos portus printArray (Serial.list ()); // Atveriet izmantoto portu ar tādu pašu ātrumu kā Arduino myPort = new Serial (this, Serial.list () [2], 9600); myPort.clear (); // notīrīt mērījumus myString = myPort.readStringUntil (lf); myString = null; // mēs to nododam Minim, lai tas varētu ielādēt failus minimum = new Minim (this); spēlētāji = jauns AudioPlayer [3]; // Šeit mainiet audio faila nosaukumu un pievienojiet to bibliotēkām atskaņotāji [0] = minim.loadFile ("Singing-bowls-and-birds-chirping-sleep-music.mp3"); spēlētāji [1] = minim.loadFile ("Melanholiskā-klaviermūzika.mp3"); spēlētāji [2] = minim.loadFile ("Storm-sound.mp3"); }

void draw () {

// pārbaudiet, vai ir jauna vērtība, kamēr (myPort.available ()> 0) {// uzglabā datus mapē myString myString = myPort.readString (); // pārbaudiet, vai mums tiešām kaut kas ir, ja (myString! = null) {myString = myString.trim (); // pārbaudiet, vai ir kaut kas, ja (myString.length ()> 0) {println (myString); mēģiniet {sensorValue = Integer.parseInt (myString); } catch (Izņēmums e) {} if (myString.equals ("A")) // // redzēt, kādu stresa līmeni tas mēra {spēlētāji [0].play (); // atskaņot pēc mūzikas} cits {atskaņotāji [0].pause (); // ja tas nemēra zemu stresa līmeni, nespēlē atbilstošo dziesmu} if (myString.equals ("B")) {players [1].play (); } cits {spēlētāji [1].pause (); } if (myString.equals ("C")) {players [2].play (); } cits {spēlētāji [2].pause (); }}}}}

Šim kodam vajadzētu atskaņot mūziku atbilstoši mūsu klēpjdatora skaļruņu stresa līmenim.

6. solis: noformējiet iemiesojumu

Image
Image
Izstrādājiet iemiesojumu
Izstrādājiet iemiesojumu

Mēs izmantojām Philips Hue Light augšējo daļu, bet cnc'd zaļo putu dibenu. SolidWorksfile ir klāt, taču varētu būt jautri arī pašam izmērīt lampu un noformēt kaut ko pēc jūsu gaumes!

Mēs izmantojām lampas augšdaļas fotoattēlu kā apakšējo slāni DR, lai pārliecinātos, ka dibena forma atbilst augšdaļas līknei (sk. Pirmo fotoattēlu).

Lai modelis tiktu cncdēts, saglabājiet to kā STL failu un atrodiet vietējo dzirnavnieku (piemēram, uni).

7. solis: Avoti

Ja vēlaties iegūt vairāk informācijas par šo tēmu vai redzēt plašākus stresa mērīšanas kodus, skatiet šīs vietnes un projektus:

  • Vairāk skaidrojumu par audiofilu aktivizēšanu apstrādē (ko mēs izmantojām)
  • Laba rokasgrāmata par GSR
  • Forša atšķirīga pieeja noskaņojuma projicēšanai
  • Patiešām foršs stresa detektors ar vairākiem sensoriem (liela iedvesma šim projektam)
  • Skaņas (stresa vietā) projektors ar RGB LED
  • Labs raksts par GSR

Ieteicams: