Orodha ya maudhui:

Mradi wa Mood (Taa ya Philips Hue iliyoangaziwa na GSR) TfCD: Hatua 7 (na Picha)
Mradi wa Mood (Taa ya Philips Hue iliyoangaziwa na GSR) TfCD: Hatua 7 (na Picha)

Video: Mradi wa Mood (Taa ya Philips Hue iliyoangaziwa na GSR) TfCD: Hatua 7 (na Picha)

Video: Mradi wa Mood (Taa ya Philips Hue iliyoangaziwa na GSR) TfCD: Hatua 7 (na Picha)
Video: Электрика в квартире своими руками. Вторая серия. Переделка хрущевки от А до Я .#10 2024, Novemba
Anonim
Image
Image
Chukua Nuru ya Hue
Chukua Nuru ya Hue

Na Laura Ahsmann & Maaike Weber

Kusudi: Hofu za chini na mafadhaiko ni sehemu kubwa ya maisha ya kisasa ya haraka. Pia ni kitu kisichoonekana kwa nje. Je! Ikiwa tungeweza kuibua mkazo wetu na bidhaa, kuweza kuonyesha jinsi unahisi. Ingefanya iwe rahisi kuwasiliana juu ya shida hizi. Majibu yako mwenyewe yanaweza pia kuwa ya kutosha kwa wakati unapokea maoni juu ya viwango vyako vya mkazo.

GSR, au upinzani wa ngozi ya galvanic, kipimo kilichochukuliwa kwenye vidole vya mtumiaji, inathibitishwa kuwa mtabiri mzuri wa mafadhaiko. Kwa kuwa tezi za jasho mkononi hushughulika sana na mafadhaiko (sio tu mazoezi ya mwili), kuongezeka kwa mafadhaiko hutengeneza mwenendo wa hali ya juu. Tofauti hii hutumiwa katika mradi huu.

Wazo: Je! Ikiwa tungeweza kugundua haraka mafadhaiko au mhemko na kuiwakilisha na nuru ya rangi na muziki? Mfumo wa GSR unaweza kufanya hivyo kutokea. Katika Agizo hili, tutafanya mfumo wa Arduino kufanya hivyo! Inayoendeshwa na Programu zote mbili za Arduino na Programu ya Kusindika, itatafsiri maadili ya mwenendo wa ngozi kuwa nuru fulani ya rangi na aina fulani ya muziki.

Unahitaji nini?

  • Arduino Uno
  • Waya
  • Nuru ya Philips Hue (Rangi Hai)
  • Vipimo vitatu vya 100 Ohm (kwa RGB LED)
  • Kinga moja ya 100 KOhm (kwa sensorer ya GSR)
  • Kitu cha kufanya kama sensorer conductance, kama karatasi ya aluminium
  • Programu ya Arduino
  • Programu ya Kusindika (tulitumia v2.2.1, mpya zaidi zinaanguka)
  • SolidWorks, kubuni nyumba (hiari)
  • Ufikiaji wa kinu cha CNC (hiari)
  • Povu ya mfano wa kijani (EPS)
  • Bodi ya mkate (hiari, inaweza pia kuuza)

Hatua ya 1: Tenga Nuru ya Hue

Hatua hii ni rahisi, tumia tu nguvu (au bisibisi) acha kupoteza na kufungua taa. Viunganisho vingine vinashikilia bidhaa pamoja, kwa hivyo ni rahisi kutengana.

Sasa, taa iliyo juu inaweza kuzimwa na kukatwa kutoka kwa vifaa vyote vya elektroniki. Tutahitaji tu taa na juu ya nyumba. Okoa au toa iliyobaki, ni juu yako!

Hatua ya 2: Kuandaa vifaa

Kuandaa vifaa
Kuandaa vifaa
Kuandaa vifaa
Kuandaa vifaa
Kuandaa vifaa
Kuandaa vifaa
Kuandaa vifaa
Kuandaa vifaa

Kwa mradi huu, tulitumia taa ya Philips Hue, kutengeneza muundo mzuri na wa haraka. Unaweza kutumia RGB ya kawaida ya RGB, kama inavyoonekana kwenye picha na ubao wa mkate.

Ili kuendesha RGB LED, unganisha pini kwenye bandari tatu tofauti za PWM za Arduino (iliyoonyeshwa ba a ~). Tumia vipingamizi vya 100Ohm kwa unganisho hili. Unganisha pini ndefu zaidi kwa pato la 5V la Arduino. Kuona ni pini ipi inayofanana na rangi gani, angalia picha ya mwisho ya hatua hii.

Kwa Nuru ya Hue, hatua sawa huenda. LED imeunganishwa kwa urahisi na Arduino kwa waya za kulehemu kwenye nafasi zilizotengwa, angalia picha ya tatu katika hatua hii. Nafasi zina R, G na B, zinaonyesha ni waya gani unapaswa kwenda wapi. Pia ina + na - yanayopangwa, kushikamana na 5V ya Arduino na ardhi ya Arduino, mtawaliwa. Mara tu unapounganisha LED, unaweza kurudi ndani ya nyumba.

Ili kushikamana na sensorer za GSR, zilizotengenezwa kwa karatasi ya aluminium (au tumia vyombo hivyo vya alumium vya taa za macho, ambazo zinaonekana kuwa nzuri zaidi), kuziba au kuziunganisha kwenye waya na unganisha moja kwa 5V. Unganisha nyingine kwa kontena la 100KOhm na capacitor ya 0, 1mF (sambamba), ambayo inapaswa kushikamana na ardhi na nafasi ya A1 kwenye Arduino. Hii itatoa pato la mkazo, ambao utatumiwa kama pembejeo kwa rangi nyepesi na muziki. Tuliweka sensorer kwenye taa, kwa hivyo inakuwa bidhaa nzuri ya kunyakua wakati wa kupima mafadhaiko yako. Kuwa mwangalifu hata hivyo kwamba sensorer hazigusi!

Picha ya mwisho inaonyesha jinsi inaweza kufanywa bila ubao wa mkate.

Hatua ya 3: Kupima Stresslevel

Kupima Stresslevel
Kupima Stresslevel

Kupima stresslevel na sensorer hizi tu za nyumbani hakutatoa vipimo sahihi juu ya jinsi ulivyo mkazo haswa. Walakini, ikilinganishwa sawa, inaweza kutoa ukadiriaji.

Ili kupima viwango vya GSR, tutatumia kipande kifuatacho cha nambari, katika mazingira ya Arduino. Ili kuwa na kipimo kidogo cha kubadilika, avarage inachukuliwa kila usomaji 10.

usomaji wa hesabu = 10; usomaji wa ndani [kusoma kwa hesabu]; // pembejeo kutoka kwa A1 int index = 0; // faharisi ya jumla ya usomaji wa sasa wa jumla = 0; // wastani wa wastani usiotiwa saini = 0; // wastani

pembejeo la int = A1;

kuanzisha batiliGSR ()

{// weka masomo yote kwa 0:

kwa (int i = 0; i <numReadings; i ++) masomo = 0; }

muda mrefu ambao haujasainiwaGSR () {

jumla = jumla - usomaji [index]; // kusoma kutoka kwa usomaji wa sensorer ya GSR [index] = analogRead (inputPin); // ongeza usomaji mpya kwa jumla = jumla + usomaji [index]; // nafasi inayofuata ya index index = index + 1;

// mwisho wa safu ya safu

ikiwa (index> = numReadings) // na kuanza juu ya index = 0;

// ni nini wastani

wastani = jumla / hesabu za kusoma; // tuma kwa kompyuta kama wastani wa nambari za kurudi ASCII;

}

Katika tabo lingine (kuweka vitu vikiwa vimepangwa), tutafanya nambari ya kuitikia vipimo, angalia hatua inayofuata!

Hatua ya 4: Kusimamia Taa

Kusimamia Taa
Kusimamia Taa
Kusimamia Taa
Kusimamia Taa
Kusimamia Taa
Kusimamia Taa

Ili kudhibiti taa, lazima kwanza tuweke vipimo. Angalia hali ya juu kwa vipimo vyako kwa kufungua mfuatiliaji wa serial. Kwa sisi vipimo vilikuwa kitu kati ya 150 (wakati tulijaribu kupumzika) na 300 (wakati tulijaribu sana kuwa na mkazo).

Kisha, amua ni rangi gani inapaswa kuwakilisha mkazo gani. Tulifanya hivyo ili:

1. Stresslevel ya chini: taa nyeupe, ikibadilika kuwa nuru ya kijani na kuongezeka kwa mafadhaiko

2. Mkazo wa wastani: taa ya kijani kibichi, inayobadilika kuwa nuru ya samawati na kuongezeka kwa mafadhaiko

3. Stresslevel ya juu: taa ya samawati, ikibadilika kuwa nyekundu na kuongezeka kwa mafadhaiko

Nambari ifuatayo ilitumika kusindika vipimo na kuzigeuza kuwa maadili ya kupeleka kwa LED:

// MASTER #fafanua DEBUG 0

// GSR = A1

int gsrVal = 0; // Kubadilika kuhifadhi pembejeo kutoka kwa sensorer

// Kama ilivyoelezwa, tumia pini za Pulse-wide Modulation (PWM)

nyekundu nyekundu = 9; // LED Nyekundu, iliyounganishwa na pini ya dijiti 9 int grnPin = 9; // LED ya Kijani, iliyounganishwa na pini ya dijiti 10 int bluPin = 5; // LED ya Bluu, iliyounganishwa na pini ya dijiti 11

// Vigezo vya Programu

int redVal = 0; // Vigezo vya kuhifadhi maadili ya kupeleka kwenye pini int grnVal = 0; int bluVal = 0;

unsigned long gsr = 0;

kuanzisha batili ()

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

Serial. Kuanza (9600);

kuanzishaGSR (); }

kitanzi batili ()

{gsrVal = gsr; ikiwa (gsrVal <150) // Chini ya tatu ya safu ya gsr (0-149) {gsr = (gsrVal / 10) * 17; // Kawaida kwa 0-255 redVal = gsrVal; // off kwa grnVal kamili = gsrVal; // Kijani kutoka mbali hadi bluVal kamili = gsrVal; // Bluu imejaa kabisaKamba SautiA = "A"; Serial.println (SoundA); // kwa matumizi ya baadaye katika muziki unaotumika} mwingine ikiwa (gsrVal <250) // Katikati ya tatu ya gsr (150-249) {gsrVal = ((gsrVal-250) / 10) * 17; // Kawaida kwa 0-255 nyekunduVal = 1; // Punguza grnVal = gsrVal; // Kijani kutoka kamili hadi mbali ya BluVal = 256 - gsrVal; // Bluu kutoka mbali hadi Sauti kamili ya KambaB = "B"; Serial.println (SoundB); } mwingine // Upeo wa tatu wa masafa ya gsr (250-300) {gsrVal = ((gsrVal-301) / 10) * 17; // Kawaida kwa 0-255 redVal = gsrVal; // Nyekundu kutoka mbali hadi grnVal kamili = 1; // Kijani kamili kwa bluVal kamili = 256 - gsrVal; // Bluu kutoka kamili hadi kuzima String SoundC = "C"; Serial.println (SoundC); }

AnalogWrite (nyekunduPin, nyekunduVal); // Andika maadili kwa pini za LED analogWrite (grnPin, grnVal); AnalogWrite (BluPin, bluVal); gsr = kukimbiaGSR (); kuchelewesha (100); }

Kwa hivyo sasa LED inaitikia mkazo wako, wacha tuongeze muziki kuwakilisha hisia zako, katika hatua inayofuata.

Hatua ya 5: Kusimamia Muziki

Kusimamia Muziki
Kusimamia Muziki

Tulichagua kuwakilisha mikazo mitatu na muziki ufuatao:

1. Kiwango cha chini (A): bakuli za kuimba na ndege wakilia, sauti nyepesi sana

2. Kiwango cha kati (B): kinanda cha kuyeyuka, sauti nzito kidogo

3. Kiwango kikubwa cha mafadhaiko (C): Dhoruba ya radi, sauti nyeusi (ingawa inafurahi kabisa)

Nambari imeandikwa katika Usindikaji, programu ya kutoa sehemu ya maoni ya programu ya Arduino:

kuagiza usindikaji.serial. *; kuagiza ddf.minim. *;

Minim minim;

Wachezaji wa AudioPlayer ;

int lf = 10; // Kusambazwa kwenye ASCII

Kamba myString = batili; Serial myPort; // Siri ya bandari ya ndani ya bandariValue = 0;

usanidi batili () {

// Orodhesha bandari zote za serial zilizopatikana za printArray (Serial.list ()); // Fungua bandari unayotumia kwa kiwango sawa na Arduino myPort = new Serial (this, Serial.list () [2], 9600); safiPort.clear (); // vipimo wazi myString = myPort.readStringUntil (lf); myString = batili; // tunapitisha hii kwa Minim ili iweze kupakia faili minim = new Minim (hii); wachezaji = AudioPlayer mpya [3]; // Badilisha jina la faili ya sauti hapa na uongeze kwa wachezaji wa maktaba [0] = minim.loadFile ("Kuimba-bakuli-na-ndege-kuteleza-kulala-muziki.mp3"); wachezaji [1] = minim.loadFile ("Melancholic-piano-music.mp3"); wachezaji [2] = minim.loadFile ("Storm-sound.mp3"); }

chora batili () {

// angalia ikiwa kuna thamani mpya wakati (myPort. inapatikana ()> 0) {// kuhifadhi data katika myString myString = myPort.readString (); // angalia ikiwa kweli tuna kitu ikiwa (myString! = null) {myString = myString.trim (); // angalia ikiwa kuna kitu ikiwa (myString.length ()> 0) {println (myString); jaribu {sensorValue = Integer.parseInt (myString); } kukamata (Isipokuwa e) {} ikiwa (myString.equals ("A")) // angalia ni nini stresslevel inapima {players [0]. play (); // kucheza kulingana na muziki} mwingine {players [0].pause (); // ikiwa sio kupima kiwango cha chini cha mafadhaiko, usicheze wimbo kulingana} ikiwa (myString.equals ("B")) {players [1].play (); } mwingine {wachezaji [1].pumzika (); } ikiwa (myString.equals ("C")) {players [2].cheza (); } mwingine {wachezaji [2].pumzika (); }}}}}

Nambari hii inapaswa kucheza muziki kulingana na mkazo kwenye spika zetu za kompyuta ndogo.

Hatua ya 6: Tengeneza mfano

Image
Image
Tengeneza mfano
Tengeneza mfano

Tulitumia sehemu ya juu ya Nuru ya Philips Hue, lakini tukakata chini ya greenfoam. SolidWorksfile iko hapa, lakini pia inaweza kuwa ya kufurahisha kupima taa mwenyewe na kubuni muundo wa ladha yako!

Tulitumia picha ya juu ya taa kama mchezaji wa chini katika SW, kuhakikisha sura ya chini inafuata mviringo wa juu (angalia picha ya kwanza).

Ili kuwa na mfano uliorekebishwa, ihifadhi kama faili ya STL na upate mtengenezaji wa eneo lako (kwa mfano kwa uni).

Hatua ya 7: Vyanzo

Ikiwa ungependa habari zaidi juu ya mada hii, au tazama nambari nyingi zaidi za kupima mafadhaiko, angalia tovuti na miradi ifuatayo:

  • Maelezo zaidi juu ya kuchochea sauti kwenye Usindikaji (ambayo tulitumia)
  • Kitabu kizuri kwenye GSR
  • Njia safi ya utaftaji wa mhemko
  • Kitafutaji cha dhiki baridi kweli na sensorer nyingi (msukumo mkubwa kwa mradi huu)
  • Sauti (badala ya mafadhaiko) na RGB LED
  • Nakala nzuri kuhusu GSR

Ilipendekeza: