Агуулгын хүснэгт:

Сэтгэл санааны проектор (Philips Hue гэрлийг GSR ашиглан хакердсан) TfCD: 7 алхам (зурагтай)
Сэтгэл санааны проектор (Philips Hue гэрлийг GSR ашиглан хакердсан) TfCD: 7 алхам (зурагтай)

Видео: Сэтгэл санааны проектор (Philips Hue гэрлийг GSR ашиглан хакердсан) TfCD: 7 алхам (зурагтай)

Видео: Сэтгэл санааны проектор (Philips Hue гэрлийг GSR ашиглан хакердсан) TfCD: 7 алхам (зурагтай)
Видео: Becca - LEOMINI (Official Music Video) 2024, Арваннэгдүгээр
Anonim
Image
Image
Hue Light -ийг салга
Hue Light -ийг салга

Зохиогч: Лаура Ахсманн, Маайке Вебер

Зорилго: Сэтгэлийн хямрал, стресс нь орчин үеийн хурдацтай амьдралын нэг хэсэг юм. Энэ нь бас гаднаас харагдахгүй зүйл юм. Хэрэв бид сэтгэл хөдлөлөө харуулахын тулд стрессийн түвшингээ бүтээгдэхүүнээр визуаль болон акустик байдлаар төсөөлж чадсан бол яах вэ. Энэ нь эдгээр асуудлын талаар мэдээлэл өгөхөд хялбар болгоно. Стрессийн түвшний талаархи санал хүсэлтийг хүлээн авахад таны өөрийн хариу үйлдэл илүү тохиромжтой байж магадгүй юм.

GSR буюу гальваник арьсны эсэргүүцэл нь хэрэглэгчийн гарын өндрөөс хэмжигддэг бөгөөд энэ нь стрессийг үнэхээр сайн урьдчилан таамаглах чадвартай болох нь батлагдсан. Гарт байгаа хөлс булчирхай нь ихэвчлэн стресст (зөвхөн биеийн тамирын дасгал хийх) хариу үйлдэл үзүүлдэг тул стрессийн түвшинг нэмэгдүүлэх нь илүү өндөр дамжуулалтыг бий болгодог. Энэ хувьсагчийг энэ төсөлд ашиглаж байна.

Санаа: Хэрэв бид стресс, сэтгэл санааг хурдан илрүүлж, өнгөт гэрэл, хөгжимөөр дүрсэлж чадвал яах вэ? GSR систем нь үүнийг хийж чадна. Энэхүү зааварчилгааны хэсэгт бид үүнийг хийхийн тулд Arduino дээр суурилсан системийг бүтээх болно! Arduino Програм хангамж ба Боловсруулах Програм хангамжийн аль алинд нь ажилладаг бөгөөд энэ нь арьсны дамжуулах чанарыг тодорхой өнгөт гэрэл, тодорхой төрлийн хөгжим болгон хөрвүүлэх болно.

Чамд юу хэрэгтэй?

  • Ардуино Уно
  • Утас
  • Philips Hue гэрэл (Амьд өнгө)
  • Гурван 100 Ом эсэргүүцэл (RGB LED хувьд)
  • Нэг 100 KOhm эсэргүүцэл (GSR мэдрэгчийн хувьд)
  • Хөнгөн цагаан тугалган цаас шиг цахилгаан дамжуулах мэдрэгчийн үүрэг гүйцэтгэдэг зүйл
  • Arduino програм хангамж
  • Боловсруулах програм хангамж (бид v2.2.1 -ийг ашигласан, шинэ хувилбарууд нь эвдрэх хандлагатай байдаг)
  • SolidWorks, орон сууцны дизайн хийх (заавал биш)
  • CNC тээрэм рүү нэвтрэх (заавал биш)
  • Ногоон загвар хөөс (EPS)
  • Breadboard (заавал биш, бас гагнах боломжтой)

Алхам 1: Hue Light -ийг салга

Энэ алхам нь маш энгийн, жаахан хүч хэрэглэвэл (эсвэл халив) гэрлээ алдаж, хагарах болно. Зарим холболт нь бүтээгдэхүүнийг хооронд нь холбодог тул салгахад хялбар байдаг.

Одоо дээд талын гэрлийг боолгож, бусад электрон төхөөрөмжөөс салгаж болно. Бидэнд гэрэл, орон сууцны дээд хэсэг л хэрэгтэй болно. Үлдсэнийг нь хадгалах эсвэл хаях нь таны л хэрэг!

Алхам 2: Тоног төхөөрөмжийг бэлтгэх

Тоног төхөөрөмжийг бэлтгэх
Тоног төхөөрөмжийг бэлтгэх
Тоног төхөөрөмжийг бэлтгэх
Тоног төхөөрөмжийг бэлтгэх
Тоног төхөөрөмжийг бэлтгэх
Тоног төхөөрөмжийг бэлтгэх
Тоног төхөөрөмжийг бэлтгэх
Тоног төхөөрөмжийг бэлтгэх

Энэхүү төслийн хувьд бид дүрсийг илүү үзэсгэлэнтэй, хурдан болгохын тулд Philips Hue гэрлийг ашигласан. Та мөн самбар дээр зурган дээр үзүүлсэн шиг ердийн RGB LED ашиглаж болно.

RGB LED -ийг ажиллуулахын тулд тээглүүрийг Arduino -ийн гурван өөр PWM порт руу холбоно уу (ba a ~ гэж заасан). Үүнийг холбохын тулд 100 Ом эсэргүүцэл ашиглана уу. Хамгийн урт зүүг Arduino -ийн 5V гаралттай холбоно уу. Аль зүү нь ямар өнгөтэй тохирч байгааг харахын тулд энэ алхамын сүүлчийн зургийг үзнэ үү.

Hue Light -ийн хувьд ижил алхамууд хийгддэг. LED нь зориулагдсан үүрэнд утас гагнах замаар Arduino -той амархан холбогддог, энэ алхам дахь гурав дахь зургийг үзнэ үү. Слотууд нь R, G ба B гэсэн хэсгүүдтэй бөгөөд ямар утас хаашаа явах ёстойг зааж өгдөг. Энэ нь мөн Arduino -ийн 5V ба Arduino -ийн газардуулгатай холбогддог + ба a - үүртэй. LED -ийг залгасны дараа та орон сууцанд буцааж шургуулж болно.

Хөнгөн цагаан тугалган цаасаар хийсэн GSR мэдрэгчийг залгахын тулд (эсвэл арай хөнгөн харагддаг хөнгөн цагаан савтай хөнгөнцагаан савыг ашиглана уу), гагнуур эсвэл соронзон хальсаар холбож, нэгийг нь 5V -т холбоно уу. Нөгөөхийг нь 100KOhm эсэргүүцэл ба 0, 1mF (зэрэгцээ) конденсатор руу холбож, дараа нь Arduino дээрх газардуулга ба A1 үүрэнд холбох ёстой. Энэ нь стрессийн түвшний гаралтыг өгөх бөгөөд дараа нь гэрэл өнгө, хөгжимд оруулах болно. Мэдрэгчийг дэнлүүнд наасан тул таны стрессийг хэмжихдээ барьж авах сайхан бүтээгдэхүүн болно. Мэдрэгчид хүрч чадахгүй байгаа тул болгоомжтой байгаарай!

Сүүлчийн зураг нь үүнийг талхны хавтангүйгээр хэрхэн яаж хийхийг харуулж байна.

Алхам 3: Стрессийн түвшинг хэмжих

Стрессийн түвшинг хэмжих
Стрессийн түвшинг хэмжих

Зөвхөн гар хийцийн мэдрэгч ашиглан стрессийн түвшинг хэмжих нь таны стресст орсон байдлыг нарийн хэмжихгүй нь лавтай. Гэсэн хэдий ч зөв шалгалт тохируулга хийснээр ойролцоо утгыг өгч болно.

GSR түвшинг хэмжихийн тулд бид Arduino орчинд дараах кодыг ашиглана. Бага хэлбэлзэлтэй хэмжилт хийхийн тулд 10 уншилт тутамд дундаж үнэлгээ авдаг.

const int numReadings = 10; int уншилт [numReadings]; // A1 -ээс оруулсан оролт int index = 0; // одоогийн унших индекс int total = 0; // ажиллаж буй нийт гарын үсэг зураагүй урт дундаж = 0; // дундаж

int inputPin = A1;

хүчингүй тохиргооGSR ()

{// бүх уншилтыг 0 болгож тохируулна уу:

for (int i = 0; i <numReadings; i ++) уншилтууд = 0; }

урт хугацааны гарын үсэг зураагүйGSR () {

нийт = нийт - уншилт [индекс]; // GSR мэдрэгчийн уншилтаас унших [index] = analogRead (inputPin); // нийт уншихад нийт уншилт = нийт + уншилт [индекс]; // массивын индексийн дараагийн байрлал = индекс + 1;

// массивын төгсгөл

if (index> = numReadings) // ба индексийг дахин эхлүүлэх = 0;

// дундаж нь хэд вэ

дундаж = нийт / тоо Унших; // үүнийг ASCII цифрүүдийн дундаж өгөөж болгон компьютерт илгээх;

}

Өөр таб дээр (зүйлийг цэгцтэй байлгахын тулд) бид хэмжилтэд хариу өгөх кодыг хийх болно, дараагийн алхамыг үзнэ үү!

Алхам 4: Гэрлийг удирдах

Гэрлийг удирдах
Гэрлийг удирдах
Гэрлийг удирдах
Гэрлийг удирдах
Гэрлийг удирдах
Гэрлийг удирдах

Гэрлийг удирдахын тулд эхлээд хэмжилтийг тохируулах хэрэгтэй. Цуваа дэлгэцийг нээх замаар хэмжилтийн дээд хязгаар гэж юу болохыг шалгаарай. Бидний хувьд хэмжилт нь 150 (бид үнэхээр тайвшрах гэж оролдсон үед) ба 300 (бид стресст орох гэж үнэхээр их хичээсэн үед) хооронд байдаг.

Дараа нь ямар өнгө нь стрессийн түвшинг илэрхийлэх ёстойг шийдээрэй. Бид үүнийг ингэж хийсэн:

1. Стрессийн түвшин бага: цагаан гэрэл, стресс нэмэгдэх тусам ногоон гэрэл болон хувирдаг

2. Дунд зэргийн стрессийн түвшин: ногоон гэрэл, стресс нэмэгдэх тусам цэнхэр гэрэл болж өөрчлөгдөнө

3. Өндөр даралтын түвшин: цэнхэр гэрэл, стресс нэмэгдэх тусам улаан болж өөрчлөгдөнө

Дараах кодыг ашиглан хэмжилтийг боловсруулж, тэдгээрийг LED руу илгээх утга болгон хувиргасан болно.

// MASTER #DEBUG -ийг тодорхойлох 0

// GSR = A1

int gsrVal = 0; // Мэдрэгчийн оролтыг хадгалах хувьсагч

// Өмнө дурьдсанчлан Pulse-width Modulation (PWM) тээглүүрийг ашиглана уу

int redPin = 9; // Улаан LED, дижитал зүү 9 int grnPin = 9 -д холбогдсон; // Ногоон LED, дижитал зүүтэй холбогдсон 10 int bluPin = 5; // Цэнхэр LED, дижитал зүү 11 -т холбогдсон

// Програмын хувьсагчид

int redVal = 0; // Зүү рүү илгээх утгыг хадгалах хувьсагчид int grnVal = 0; int bluVal = 0;

гарын үсэг зураагүй урт gsr = 0;

хүчингүй тохиргоо ()

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

Цуваа эхлэх (9600);

setupGSR (); }

хоосон давталт ()

{gsrVal = gsr; if (gsrVal <150) // gsr мужийн хамгийн бага гуравны нэг (0-149) {gsr = (gsrVal /10) * 17; // 0-255 хүртэл хэвийн болгох redVal = gsrVal; // унтраах бүрэн grnVal = gsrVal; // Ногоон унтраалтаас бүрэн bluVal = gsrVal; // Цэнхэр өнгө бүрэн дүүрэнString SoundA = "A"; Serial.println (SoundA); // дараа нь үйл ажиллагааны хөгжимд ашиглах зорилгоор} else if if (gsrVal <250) // gsr хүрээний дунд гуравны нэг (150-249) {gsrVal = ((gsrVal-250) /10) * 17; // 0-255 хүртэл хэвийн болгох redVal = 1; // Улаан унтраах grnVal = gsrVal; // Ногооноос бүрэн хүртэл унтраах bluVal = 256 - gsrVal; // Цэнхэр унтраахаас бүрэн String SoundB = "B"; Serial.println (SoundB); } өөр // gsr мужийн дээд гуравны нэг (250-300) {gsrVal = ((gsrVal-301) /10) * 17; // 0-255 хүртэл хэвийн болгох redVal = gsrVal; // Улаан унтраалтаас бүрэн хүртэл grnVal = 1; // Ногоон өнгө нь бүрэн bluVal = 256 - gsrVal; // Цэнхэр бүрэн эхнээс унтраах String SoundC = "C"; Serial.println (SoundC); }

analogWrite (redPin, redVal); // LED pins analogWrite (grnPin, grnVal) дээр утгыг бичих; analogWrite (bluPin, bluVal); gsr = runGSR (); саатал (100); }

Тиймээс одоо LED нь таны стрессийн түвшинд хариу үйлдэл үзүүлж байна. Дараагийн алхамд таны сэтгэл санааг илэрхийлэх хөгжим нэмье.

Алхам 5: Хөгжим удирдах

Хөгжмийг удирдах
Хөгжмийг удирдах

Бид дараах 3 хөгжмийн стрессын түвшинг төлөөлөхийг сонгосон.

1. Доод түвшин (А): ая дуу, шувуудын жиргэх, маш хөнгөн дуу

2. Дунд зэрэг (B): меланхолик төгөлдөр хуур, арай илүү хүнд дуу

3. Стрессийн өндөр түвшин (C): Аянга цахилгаан бороо, харанхуй дуу (нэлээд тайвширсан ч гэсэн)

Кодыг Arduino -ийн програм хангамжийн санал хүсэлтийн хэсгийг хангах програм хангамж болох Processing -д бичсэн болно.

импорт боловсруулах.сериал.*; импорт ddf.minim.*;

Хамгийн бага минимум;

AudioPlayer тоглуулагч;

int lf = 10; // ASCII дахь Linefeed

String myString = null; Цуваа myPort; // цуваа порт int sensorValue = 0;

хүчингүй тохиргоо () {

// Боломжтой бүх цуваа портуудыг жагсаах printArray (Serial.list ()); // Ашиглаж буй портоо Arduino myPort = new Serial (энэ, Serial.list () [2], 9600) -тай ижил хурдаар нээнэ үү; myPort.clear (); // тодорхой хэмжилт хийх myString = myPort.readStringUntil (lf); myString = null; // бид үүнийг Minim руу дамжуулдаг бөгөөд ингэснээр файлуудыг minim = new Minim (энэ) ачаалах боломжтой болно; тоглогчид = шинэ AudioPlayer [3]; // Энд байгаа аудио файлын нэрийг өөрчилж, номын сангийн тоглогчид нэмээрэй [0] = minim.loadFile ("Singing-bowls-and-birds-chirping-sleep-music.mp3"); тоглогчид [1] = minim.loadFile ("Melancholic-piano-music.mp3"); тоглогчид [2] = minim.loadFile ("Storm-sound.mp3"); }

хүчингүй сугалаа () {

// шинэ утга байгаа эсэхийг шалгах (myPort.available ()> 0) {// өгөгдлийг myString -д хадгалах myString = myPort.readString (); // бидэнд үнэхээр ямар нэгэн зүйл байгаа эсэхийг шалгаарай if (myString! = null) {myString = myString.trim (); // ямар нэгэн зүйл байгаа эсэхийг шалгаарай if (myString.length ()> 0) {println (myString); {sensorValue = Integer.parseInt (myString) оролдоно уу; } catch (Exception e) {} if (myString.equals ("A")) // энэ нь ямар түвшний түвшинг хэмжиж байгааг харна уу {тоглогчид [0].play (); // хөгжмийн дагуу тоглох} өөр {тоглогчид [0].pause (); // хэрэв энэ нь бага стрессийн түвшинг хэмжихгүй бол тухайн дууг бүү тоглуул} if (myString.equals ("B")) {тоглогчид [1].play (); } өөр {тоглогчид [1].pause (); } if (myString.equals ("C")) {тоглогчид [2].play (); } өөр {тоглогчид [2].pause (); }}}}}

Энэ код нь зөөврийн компьютерын чанга яригчийн стрессийн түвшний дагуу хөгжим тоглуулах ёстой.

Алхам 6: Хувилбарыг зохион бүтээх

Image
Image
Хувилбарыг зохион бүтээх
Хувилбарыг зохион бүтээх

Бид Philips Hue Light -ийн дээд хэсгийг ашигласан боловч ногоон хөөстэй ёроолтой. SolidWorksfile энд байна, гэхдээ чийдэнгээ өөрөө хэмжиж, өөрийн хүссэнээр загвар зохион бүтээх нь хөгжилтэй байж магадгүй юм!

Бид дэнлүүний дээд талын зургийг SW -ийн доод давхарга болгон ашиглаж, ёроолын хэлбэр нь дээд талын муруйтай нийцэж байгаа эсэхийг шалгахын тулд (эхний зургийг үзнэ үү).

Cnc'd загвартай болохын тулд үүнийг STL файл хэлбэрээр хадгалаад өөрийн орон нутгийн тээрэмчнийг олоорой (жишээ нь uni).

Алхам 7: Эх сурвалж

Хэрэв та энэ сэдвээр илүү их мэдээлэл авахыг хүсч байвал, эсвэл стрессийг хэмжих илүү өргөн хүрээтэй кодыг үзэхийг хүсвэл дараах вэбсайт, төслүүдийг үзнэ үү.

  • Боловсруулах явцад аудио файлыг ажиллуулах талаар илүү дэлгэрэнгүй тайлбар (бидний ашиглаж байсан)
  • GSR -ийн талаархи сайхан гарын авлага
  • Сэтгэл санааг төлөвлөхөд өөр өөр хандлага
  • Олон мэдрэгч бүхий үнэхээр гайхалтай стресс илрүүлэгч (энэ төслийн том урам зориг)
  • RGB LED бүхий дууны (стрессийн оронд) проектор
  • GSR -ийн тухай сайн нийтлэл

Зөвлөмж болгож буй: