Мазмуну:

Маанай проектору (HSRed Philips Hue Light GSR менен) TfCD: 7 кадам (сүрөттөр менен)
Маанай проектору (HSRed Philips Hue Light GSR менен) TfCD: 7 кадам (сүрөттөр менен)

Video: Маанай проектору (HSRed Philips Hue Light GSR менен) TfCD: 7 кадам (сүрөттөр менен)

Video: Маанай проектору (HSRed Philips Hue Light GSR менен) TfCD: 7 кадам (сүрөттөр менен)
Video: Верёвку, мыло и в горы ► 9 Прохождение The Legend of Zelda: Breath of the Wild (Wii U) 2024, Июль
Anonim
Image
Image
Hue Light бөлүп алыңыз
Hue Light бөлүп алыңыз

Автору: Лаура Ахсманн жана Маайке Вебер

Максаты: Төмөнкү маанай жана стресстин азыркы замандагы ылдам жашоонун чоң бөлүгү. Бул дагы сырттан көрүнбөгөн нерсе. Сезимиңизди көрсөтө алуу үчүн, биз продукт менен стресстик деңгээлибизди визуалдык жана акустикалык жактан проектирлей алсакчы? Бул көйгөйлөр тууралуу баарлашууну жеңилдетет. Сиздин жеке реакцияңыз стресстин деңгээли боюнча пикир алган учурга ылайыктуу болушу мүмкүн.

GSR же гальваникалык теринин каршылыгы, колдонуучунун колунун учунда алынган өлчөө, чындап эле стресстин жакшы божомолу экени далилденди. Колдогу тер бездери негизинен стресске (физикалык көнүгүүлөргө гана эмес) жооп бергендиктен, стресстин деңгээлинин жогорулашы жогорку өткөрүмдүүлүктү пайда кылат. Бул өзгөрмө бул долбоордо колдонулат.

Идея: Биз стрессти же маанайды тез эле аныктап, аны түстүү жарык жана музыка менен чагылдыра алсакчы? GSR системасы муну ишке ашырышы мүмкүн. Бул Нускамада биз муну үчүн Arduino негизделген системаны жасайбыз! Arduino программалык камсыздоосу жана иштетүү программасы тарабынан башкарылган, теринин өткөрүмдүүлүк баалуулуктарын белгилүү бир түстүү жарыкка жана музыканын белгилүү бир түрүнө которот.

Сага эмне керек?

  • Arduino Uno
  • Зымдар
  • Philips Hue жарыгы (Жандуу түстөр)
  • Үч 100 Ом каршылыгы (RGB LED үчүн)
  • Бир 100 KOhm каршылыгы (GSR сенсору үчүн)
  • Алюминий фольга сыяктуу өткөргүч сенсорлор катары иштей турган нерсе
  • Arduino программалык камсыздоо
  • Программаны иштетүү (биз v2.2.1 колдонгонбуз, жаңылары бузулат)
  • SolidWorks, корпусту долбоорлоо үчүн (милдеттүү эмес)
  • CNC тегирменине кирүү (милдеттүү эмес)
  • Жашыл моделдөө көбүгү (EPS)
  • Нан тактасы (милдеттүү эмес, ошондой эле ширетиши мүмкүн)

1 -кадам: Hue Light бөлүп алыңыз

Бул кадам оңой, жөн гана кандайдыр бир күчтү (же отвертканы) колдонуп, жарыкты жоготуп, ачыңыз. Кээ бир ыкчам туташуулар продуктту бириктирет, андыктан аны ажыратуу оңой.

Эми, үстүңкү жарыкты бурап, калган электроникадан ажыратууга болот. Бизге жарык жана корпустун үстү гана керек болот. Калганын сактаңыз же ыргытыңыз, бул сизден!

2 -кадам: Аппаратты даярдоо

Аппаратты даярдоо
Аппаратты даярдоо
Аппаратты даярдоо
Аппаратты даярдоо
Аппаратты даярдоо
Аппаратты даярдоо
Аппаратты даярдоо
Аппаратты даярдоо

Бул долбоор үчүн, биз Philips Hue жарыгын колдонгонбуз. Сиз ошондой эле кадимки RGB LEDди колдонсоңуз болот, сүрөттө нан менен.

RGB LEDди иштетүү үчүн, казыктарды Arduino'дун үч башка PWM портуна туташтырыңыз (ba a ~ менен көрсөтүлгөн). Бул байланыш үчүн 100Ohm резисторлорун колдонуңуз. Эң узун пинти Arduino 5V чыгаруусуна туташтырыңыз. Кайсы пин кайсы түскө дал келгенин билүү үчүн, бул кадамдын акыркы сүрөтүн караңыз.

Hue Light үчүн, ошол эле кадамдар жүрөт. Жарык диоддору Arduino менен жиптерди белгиленген уячаларга туташтыруу аркылуу туташат, бул кадамдын үчүнчү сүрөтүн караңыз. Уячаларда R, G жана B бар, бул кайсы зым кайда кетиши керек экенин көрсөтөт. Ошондой эле, Arduino 5V жана Arduino жерине туташуу үчүн + жана a - уячасы бар. Светодиодду туташтыргандан кийин, кайра корпуска сайсаңыз болот.

Алюминий фольгасынан жасалган GSR сенсорлорун туташтыруу үчүн (же бир аз жакшы көрүнгөн чайдын алюминий контейнерлерин колдонуңуз), аларды зымга байлап же скотч менен 5Вга туташтырыңыз. Экинчисин 100KOhm резисторуна жана 0, 1mF конденсаторуна туташтырыңыз (параллель), андан кийин Arduinoдогу жерге жана A1 уячасына туташтырылышы керек. Бул жарыктын түсү жана музыкасы үчүн киргизүү катары колдонула турган стресстин деңгээлин чыгарат. Биз сенсорлорду лампага жабыштырып койдук, андыктан стрессти өлчөөдө кармоо жакшы продукт болуп калат. Сенсорлор тийбеши үчүн этият болуңуз!

Акыркы сүрөт муну нансыз кантип жасаса болорун көрсөтөт.

3 -кадам: Стресс деңгээлин өлчөө

Стресс деңгээлин өлчөө
Стресс деңгээлин өлчөө

Дал ушул үй сенсорлору менен стресстин деңгээлин өлчөө, сиздин канчалык стресстүү экениңизге так өлчөө бербейт. Бирок, туура калибрленгенде, ал болжолдоону бере алат.

GSR деңгээлин өлчөө үчүн, биз Arduino чөйрөсүндө төмөнкү кодду колдонобуз. Өлчөмү азыраак болушу үчүн, ар бир 10 окууда орточо баа алынат.

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

int inputPin = A1;

жараксыз setupGSR ()

{// бардык окууларды 0 деп коюңуз:

үчүн (int i = 0; i <numReadings; i ++) окуу = 0; }

узакка созулбаганGSR () {

total = total - окуу [индекс]; // GSR сенсорунун окуусунан окуу [index] = analogRead (inputPin); // кошуу жаңы окуу жалпы суммасына = жалпы + окуу [индекс]; // массив индексинин кийинки позициясы = индекс + 1;

// массивдин акыры

if (index> = numReadings) // жана индекстен баштоо = 0;

// орточо кандай

орточо = жалпы / numReadings; // аны компьютерге 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);

Serial.begin (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; // Blue from off to full 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); // LED казыктарына баалуулуктарды жазуу analogWrite (grnPin, grnVal); analogWrite (bluPin, bluVal); gsr = runGSR (); кечиктирүү (100); }

Ошентип, азыр LED сиздин стресстин деңгээлине жооп берип жатат, кийинки кадамда сиздин маанайыңызды чагылдырган музыканы кошолу.

5 -кадам: Музыканы башкаруу

Музыканы башкаруу
Музыканы башкаруу

Биз 3 стресстин деңгээлин төмөнкү музыка менен көрсөтүүнү чечтик:

1. Төмөн деңгээл (А): ырдаган табактар жана чымчыктардын сайроосу, абдан жеңил үн

2. Орто деңгээл (B): меланхоликалык пианино, бир аз оор үн

3. Жогорку стресстин деңгээли (C): Күн күркүрөп, караңгы үн чыгат (абдан эс алдырса да)

Код Ардуинонун программалык камсыздоо менен байланышуу бөлүгүн камсыз кылуу үчүн иштелип чыккан Программада жазылган:

импорттоо иштетүү.сериал.*; импорт ddf.minim.*;

Минималдуу минимум;

AudioPlayer оюнчулар;

int lf = 10; // LineFed ASCIIде

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 ("Ырдоочу-табактар-жана-канаттуулар-чыркыраган-уйку-музыка.mp3"); оюнчулар [1] = minim.loadFile ("Melancholic-piano-music.mp3"); оюнчулар [2] = minim.loadFile ("Storm-sound.mp3"); }

жараксыз тартуу () {

// жаңы маани бар экенин текшериңиз (myPort.available ()> 0) {// маалыматтарды myString myString = myPort.readString () ичинде сактоо; // чын эле бизде бир нерсе бар же жок экенин текшериңиз (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 файлы катары сактап, жергиликтүү тегирмениңизди табыңыз (мисалы, университетте).

7 -кадам: Булактар

Эгерде сиз бул тема боюнча көбүрөөк маалымат алгыңыз келсе же стрессти өлчөө үчүн кененирээк коддорду көргүңүз келсе, төмөнкү вебсайттарды жана долбоорлорду караңыз:

  • Аудиофайлдарды иштетүүдө көбүрөөк түшүндүрмө (биз колдонгон)
  • GSR боюнча жакшы колдонмо
  • Маанайды проекттөө үчүн башкача мамиле
  • Чыныгы салкын стресс детектору бир нече сенсорлор менен (бул долбоорго чоң илхам)
  • Үн (стресстин ордуна) RGB LED менен проектор
  • GSR жөнүндө жакшы макала

Сунушталууда: