Мазмұны:
- 1 -қадам: Реңк жарығын алыңыз
- 2 -қадам: жабдықты дайындау
- 3 -қадам: Стресс деңгейін өлшеу
- 4 -қадам: Шамдарды басқару
- 5 -қадам: Музыканы басқару
- 6 -қадам: Шығарманы жасаңыз
- 7 -қадам: Дереккөздер
Бейне: Көңіл -күй проекторы (GSR бар Philips Hue Light Hacked) TfCD: 7 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Авторы: Лаура Ахсманн мен Маайке Вебер
Мақсаты: Көңіл-күйдің төмендігі мен күйзеліс-бұл қазіргі өмірдің үлкен бөлігі. Бұл да сырт көзге көрінбейтін нәрсе. Егер біз өзіміздің сезім деңгейімізді өніммен визуалды түрде де, акустикалық түрде де көрсете алсақ ше? Бұл проблемалар туралы сөйлесуді жеңілдетеді. Сіздің жеке реакцияңыз сіздің стресстік деңгейлеріңіз туралы кері байланыс алған сәтте сәйкес болуы мүмкін.
GSR немесе гальваникалық теріге төзімділік - бұл қолданушының саусақ ұшымен өлшенетін стресстің жақсы болжаушысы. Қолдағы тер бездері стресске (тек физикалық жаттығуларға ғана емес) жауап беретіндіктен, кернеу деңгейінің жоғарылауы жоғары өткізгіштікке әкеледі. Бұл айнымалы осы жобада қолданылады.
Идея: Егер біз күйзелісті немесе көңіл -күйді тез анықтап, оны түрлі -түсті жарық пен музыкамен көрсете алсақ ше? GSR жүйесі мұны жүзеге асыра алады. Бұл нұсқаулықта біз Arduino негізіндегі жүйені жасаймыз! Arduino Software және Processing Software екеуі де басқарады, ол терінің өткізгіштік мәндерін белгілі бір түсті жарыққа және музыканың белгілі бір түріне аударады.
Саған не қажет?
- Ардуино Уно
- Сымдар
- Philips Hue жарығы (тірі түстер)
- 100 Омдық үш резистор (RGB жарық диоды үшін)
- Бір 100 КОм резистор (GSR сенсоры үшін)
- Алюминий фольга сияқты өткізгіш сенсор ретінде әрекет ететін нәрсе
- Arduino бағдарламалық қамтамасыз ету
- Өңдеу бағдарламалық жасақтамасы (біз v2.2.1 қолдандық, жаңалары апатқа ұшырайды)
- SolidWorks, корпусты жобалау үшін (міндетті емес)
- CNC диірменіне қол жеткізу (міндетті емес)
- Жасыл модельдеу көбігі (EPS)
- Нан тақтасы (міндетті емес, сонымен қатар дәнекерлеуге болады)
1 -қадам: Реңк жарығын алыңыз
Бұл қадам оңай, шамалы жоғалуға және жарылуға мүмкіндік беретін күш (немесе бұрағыш) қолданыңыз. Кейбір қосылымдар өнімді біріктіреді, сондықтан оларды ажырату оңай.
Енді үстіңгі жағындағы жарықты бұрап, электрониканың қалған бөлігінен ажыратуға болады. Бізге тек жарық пен корпустың жоғарғы жағы қажет болады. Қалғанын сақтаңыз немесе лақтырыңыз, бұл сізге байланысты!
2 -қадам: жабдықты дайындау
Бұл жобаны іске асыру үшін біз Philips Hue жарығын қолдандық. Сонымен қатар, суретте тақтада көрсетілгендей, әдеттегі RGB жарық диодты қолдануға болады.
RGB жарықдиодты басқару үшін түйреуіштерді Arduino үш түрлі PWM портына қосыңыз (ba a ~ көрсетілген). Бұл байланыс үшін 100 Ом резисторларын қолданыңыз. Ең ұзын істікті Arduino 5В шығысына қосыңыз. Қандай түйреуіш қай түске сәйкес келетінін көру үшін осы қадамның соңғы суретін қараңыз.
Реңк жарығы үшін дәл сол қадамдар жүреді. Жарық диодты Arduino -ға сымдарды арнайы ұяларға дәнекерлеу арқылы оңай қосылады, осы қадамдағы үшінші суретті қараңыз. Ұяшықтарда R, G және B бар, ол қай сым қайда кетуі керектігін көрсетеді. Ол сондай -ақ Arduino 5V -ге және Arduino -ның жеріне қосылатын + және a -ұяшығына ие. Жарық диодты қосқаннан кейін оны корпусқа қайта бұруға болады.
Алюминий фольгадан жасалған GSR датчиктерін қосу үшін (немесе сәл жақсы көрінетін алюминий контейнерлерін қолданыңыз), оларды сымға дәнекерлеңіз немесе таспамен бекітіңіз және біреуін 5В -ке қосыңыз. Екіншісін 100KOm резисторға және 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 етіп орнатыңыз:
(int i = 0; i <numReadings; i ++) оқулары үшін = 0; }
қол қойылмаған ұзақ мерзімдіGSR () {
total = total - көрсеткіштер [индекс]; // GSR сенсорының көрсеткіштерінен оқу [индекс] = analogRead (inputPin); // total total = new + readings [index] жаңа оқуды қосу; // массив индексінің келесі позициясы = индекс + 1;
// массивтің соңы
if (index> = numReadings) // және index = 0 -ден бастаңыз;
// орташа көрсеткіш
орташа = жиынтық / санОқулар; // оны компьютерге ASCII цифрларының орташа қайтару мәні ретінде жіберу;
}
Басқа қойындыда (тәртіпті сақтау үшін) біз кодты өлшеулерге жауап ретінде жасаймыз, келесі қадамды қараңыз!
4 -қадам: Шамдарды басқару
Жарықтарды басқару үшін алдымен өлшемдерді калибрлеу керек. Сериялық мониторды ашу арқылы өлшеудің жоғарғы шегі қандай екенін тексеріңіз. Біз үшін өлшемдер 150 (біз шынымен демалуға тырысқан кезде) мен 300 (біз күйзеліске түсу үшін қатты тырысқанда) арасында болды.
Содан кейін, қандай түс стресс деңгейін көрсететінін шешіңіз. Біз осылай жасадық:
1. Төмен кернеу деңгейі: ақ жарық, кернеудің жоғарылауымен жасыл шамға ауысады
2. Орташа кернеу деңгейі: жасыл жарық, кернеудің жоғарылауымен көк шамға ауысады
3. Жоғары кернеу деңгейі: көк жарық, кернеудің жоғарылауымен қызыл түске ауысады
Өлшеуді өңдеу және оларды жарық диодты сигналға жіберу үшін мәнге айналдыру үшін келесі код қолданылды:
// MASTER #DEBUG анықтау 0
// GSR = A1
int gsrVal = 0; // Сенсорлардан кірісті сақтау үшін айнымалы
// Жоғарыда айтылғандай, импульстік енді модуляция (PWM) түйреуіштерін қолданыңыз
int redPin = 9; // Қызыл жарықдиодты, 9 int grnPin = 9 цифрлық түйреуішіне қосылған; // Жасыл жарық диодты, цифрлық түйреуішке қосылған 10 int bluPin = 5; // Сандық түйреуішке қосылған көк жарықдиодты 11
// Бағдарламаның айнымалылары
int redVal = 0; // түйреуіштерге жіберілетін мәндерді сақтау үшін айнымалылар int grnVal = 0; int bluVal = 0;
белгісіз ұзын gsr = 0;
жарамсыз орнату ()
{pinMode (bluPin, OUTPUT); pinMode (grnPin, OUTPUT); pinMode (redPin, OUTPUT); pinMode (A1, INPUT);
Serial.begin (9600);
setupGSR (); }
бос цикл ()
{gsrVal = gsr; if (gsrVal <150) // gsr диапазонының ең төменгі үштен бірі (0-149) {gsr = (gsrVal /10) * 17; // 0-255 дейін қалыпқа келтіру redVal = gsRVal; // толық өшіру grnVal = gsrVal; // Жасыл сөндіруден толық bluVal = gsRVal; // Толық көк түсЖолдық дыбысA = «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); } else // 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); // мәндерді жарықдиодты түйреуіштерге analogWrite жазыңыз (grnPin, grnVal); analogWrite (bluPin, bluVal); gsr = runGSR (); кешіктіру (100); }
Енді жарық диоды сіздің стресс деңгейіңізге жауап береді, келесі қадамда сіздің көңіл -күйіңізді білдіретін музыканы қосайық.
5 -қадам: Музыканы басқару
Біз 3 музыкалық деңгеймен келесі музыкамен таныстыруды шештік:
1. Төмен деңгей (А): ән салатын табақтар мен құстардың сайрауы, өте жеңіл дыбыс
2. Орташа деңгей (В): меланхоликалық фортепиано, сәл ауыр дыбыс
3. Стресстің жоғары деңгейі (C): найзағай, қараңғы дыбыс (бірақ босаңсытады)
Код Arduino бағдарламалық қамтамасыз ету бойынша кері байланыс бөлігін қамтамасыз етуге арналған Processing бағдарламасында жазылған:
импорт өңдеу.сериал.*; импорт ddf.minim.*;
Минимум минимум;
AudioPlayer ойнатқыштары;
int lf = 10; // ASCII -де Linefeed
MyString жолы = бос; Сериялық myPort; // сериялық порт int sensorValue = 0;
жарамсыз орнату () {
// printArray (Serial.list ()) барлық қол жетімді сериялық порттардың тізімі; // Қолданылатын портты Arduino myPort = new Serial сияқты жылдамдықпен ашыңыз (бұл, Serial.list () [2], 9600); myPort.clear (); // анық өлшемдер myString = myPort.readStringUntil (lf); myString = бос; // біз мұны Minim -ге жібереміз, ол minim = new Minim файлдарын жүктей алады (бұл); ойыншылар = жаңа AudioPlayer [3]; // Аудио файлдың атауын осында өзгертіңіз және оны кітапханаларға қосыңыз ойыншылар [0] = minim.loadFile («Singing-bowls-and-birds-chirping-sleep-music.mp3»); ойыншылар [1] = minim.loadFile («Меланхолик-фортепиано-музыка.mp3»); ойыншылар [2] = minim.loadFile («Storm-sound.mp3»); }
жарамсыз ұтыс () {
// (myPort.available ()> 0) {// деректерді myString ішінде сақтау myString = myPort.readString () кезінде жаңа мән бар -жоғын тексеріңіз; // бізде шынымен бірдеңе бар -жоғын тексеріңіз, егер (myString! = null) {myString = myString.trim (); // егер (myString.length ()> 0) {println (myString); {sensorValue = Integer.parseInt (myString) көріңіз; } catch (Ерекше д) {} if (myString.equals («A»)) // оның қандай стресс деңгейін өлшейтінін қараңыз {player [0].play (); // музыкаға сәйкес ойнау} else {player [0].pause (); // егер ол стресстің төмен деңгейін өлшемесе, сәйкес әнді ойнатпаңыз} if (myString.equals («B»)) {player [1].play (); } басқа {ойыншылар [1].pause (); } if (myString.equals («C»)) {ойыншылар [2].play (); } басқа {ойыншылар [2].pause (); }}}}}
Бұл код музыканы біздің ноутбук динамиктеріндегі стресс деңгейіне сәйкес ойнатуы керек.
6 -қадам: Шығарманы жасаңыз
Біз Philips Hue Light жоғарғы бөлігін қолдандық, бірақ түбін жасыл көбікпен бекітеміз. SolidWorksfile осында, бірақ шамды өзіңіз өлшеп, талғамыңызға сай дизайн жасау да қызықты болар еді!
Біз шамның үстіңгі бөлігінің суретін БҚ -да астыңғы қабат ретінде пайдаландық, оның түбінің формасы жоғарғы қисыққа сәйкес келетініне көз жеткізу үшін (бірінші суретті қараңыз).
Cnc'd үлгісін алу үшін оны STL файлы ретінде сақтаңыз және жергілікті диірменді табыңыз (мысалы, университетте).
7 -қадам: Дереккөздер
Егер сіз осы тақырып бойынша көбірек ақпарат алғыңыз келсе немесе кернеуді өлшеудің кеңейтілген кодтарын көргіңіз келсе, келесі веб -сайттар мен жобаларды қараңыз:
- Өңдеудегі аудиофайлдарды қосу туралы қосымша түсініктеме (біз қолдандық)
- GSR туралы жақсы нұсқаулық
- Көңіл -күйді жобалаудың керемет әдісі
- Бірнеше сенсорлары бар шынымен керемет кернеу детекторы (бұл жобаға үлкен шабыт)
- RGB светодиоды бар дыбыстық (кернеудің орнына) проектор
- GSR туралы жақсы мақала
Ұсынылған:
Бірлікке арналған мультиплеерлік 3D голограммалық ойын және компьютерге арналған голограмма проекторы: 16 қадам (суреттермен)
Бірлікке арналған мультиплеерлік 3D голограммалық ойын және компьютерге арналған голограмма проекторы: Holus -тың әсерінен мен голографиялық дисплейді өте арзан етіп жасауды ұнатамын. Бірақ ойындарды табуға тырысқанда, мен интернеттен ештеңе таппадым. Сондықтан мен Unity -де өз ойын дамытуды жоспарлап отырмын. Бұл менің бірлікте бірінші ойыным. Бұған дейін мен Flash -те бірнеше ойындар әзірлеймін, бірақ
Pi бар голограмма проекторы: 5 қадам (суреттермен)
Pi бар голограммалық проектор: Бұл робототехника сыныбына арналған жоба. Бұл https://www.hackster.io/hackerhouse/holographic-au басқа нұсқаулық бетінен кейін жасалды … Ол 3D-голограмманы құру үшін Raspberry Pi мен компьютер мен мониторды қолданады
Laser Dia проекторы: 5 қадам (суреттермен)
Laser Dia Projector: Laser Dia Projector - бұл қалтаңызға сыйатын шағын қуатты кескін проекторы, ол лазерлік микроскоптың туындылары және микроскопты жасау үшін сол принципті қолдана алады, лазерлі диодоректорды микроскоп ретінде қолдануға болады
Бейне проекторы бар жарықдиодты шырша (Rasp Pi): 7 қадам (суреттермен)
Бейне проекторы бар жарықдиодты шырша (Rasp Pi): Кейбір адамдар «жоғарғы жағында» не біріктіргенін қарастырамыз. Рождестволық жарық диодты шоулар, мен үйдің шыршасы үшін осындай деңгейдегі жүйені біріктіруге болатынын көргім келді. Алдыңғы нұсқаулықтарда мен &
Лазерлік кескін проекторы: 7 қадам (суреттермен)
Лазерлік кескін проекторы: Бұл қалыпты жарықтың орнына жасыл лазерді қолданатын портативті кескін проекторын құру бойынша негізгі нұсқаулар. Лазер кескіндерді үлкен қашықтыққа жіберуге мүмкіндік береді және фокустауды қажет етпейді - ол әрқашан назарда болады