Мазмұны:
- 1 -қадам: Қажетті материалдар мен бөлшектер:
- 2 -қадам: Неопиксельді сақиналар
- 3 -қадам: Қосылымдар
- 4 -қадам: Код:
- 5 -қадам: Барлығын біріктіру:
Бейне: Релаксациялық көзілдірік - ITTT: 5 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
HKU жобасы - ITTT (Егер бұл солай болса) - Джулия Беркувер, 1В
Сіз бір кездері күйзеліске ұшырадыңыз ба, әлде өзіңізді қалай тыныштандыруды білмейсіз бе, демалуға арналған көзілдірікті қолданыңыз! Сіз оларды киіп, көзіңізді жұмыңыз, содан кейін тыныс алу үлгісі ойнайды. Осы тыныс алу үлгісіне сүйене отырып, сіздің тыныс алу ритмі минутына 6 рет тыныс алуға және шығаруға түседі. Бұл күнделікті стресстен арылтады.
Сондай-ақ, тыныс алудың қарқындылығын fsr-сенсор көмегімен қосқышты басу арқылы бақылауға болады.
Бұл тотуриалмен мен сізге босаңсытатын көзілдірікті кезең -кезеңмен жасауға көмектесемін.
1 -қадам: Қажетті материалдар мен бөлшектер:
Материалдар:
1 x arduino uno;
1xbreadboard немесе PCV;
3x 10 к резисторлар
Сымдар (әр түрлі түстерді таңдаған жөн, сондықтан заттардың қайсысы жерге, қайсысы әр түрлі түйреуіштерге түсетінін анықтау оңайырақ болады);
Кейбір жылу қысқаратын түтіктер;
2x NeoPixel сақинасы - интеграцияланған драйверлері бар 16 x 5050 RGB жарық диоды;
1x қосқыш;
1x FSR сенсоры;
1x SteamPunk көзілдірігі (Оларды мерекелік дүкеннен сатып алуға болады, оларды пайдалану оңай, себебі неопиксель сақинасы көзілдірікке жақсы сәйкес келеді. Сіз әрқашан басқа көзілдірікті қолдануға тырысасыз немесе өз қолыңызбен жасай аласыз.);
1x кеудеге тағуға болатын (серпімді) жолақ.
Құралдар:-Ноутбук
-дәнекерлеу темірі
-Arduino IDE бағдарламалық жасақтамасы
Сіз менің ПВК -де екі түйме мен қосқышты көресіз, мен оны тек қосқышқа қосу үшін сол жақ батырманы қолданамын, мен суреттің оң жағындағы екінші түймені пайдаланбаймын. Мен түймені ПВХ -ға қойдым, олар маған қажет емес екенін түсінбестен бұрын орнына коммутаторды қолдану керек болды.
Төменде сіз мен қолданған барлық нәрселердің суреттерін көресіз:
2 -қадам: Неопиксельді сақиналар
Ақ сым неопиксель сақинасының артындағы жерге қосылған.
Қызғылт сары сым 5В -қа қосылған.
Ал қоңыр сым деректерді енгізуге қосылған
3 -қадам: Қосылымдар
Прототиптеу кезінде менің тақтайшам осылай көрінді, сіз оны сілтеме ретінде пайдалана аласыз.
Мен сондай -ақ бір түйменің көмегімен қандай болатынын сымдардың схемасын жасадым.
4 -қадам: Код:
Бұл, мүмкін, ең тиімді код емес, бірақ ол мен үшін жұмыс істейді. Өзіңізді сынап көріңіз және оны тиімдірек етуге тырысыңыз; P.
#қосу
// Қандай
Arduino түйрегіші NeoPixels -ке қосылған ба?
#анықтаңыз
PIN 6
// Қандай
түйінге Arduino түйрегіші қосылған
#анықтаңыз
BUTTON_PIN 9
// Қалай
көптеген NeoPixels Arduino -ға бекітілген бе?
#анықтаңыз
NUMPIXELS 16
// Қашан
Біз NeoPixel кітапханасын орнатамыз, оған қанша пиксель және сигнал жіберу үшін қандай түйреуішті қолдану керектігін айтамыз.
// Ескерту
ескі NeoPixel жолақтары үшін үшінші параметрді өзгерту қажет болуы мүмкін-strandtest қараңыз
//
мүмкін мәндер туралы қосымша ақпарат алу үшін мысал.
Adafruit_NeoPixel
пиксельдер = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
үзіліс кезінде
= 1; // кешіктіру2
int
кідіріс2 = 80; // fsr қолданылғанда төмендейді
int
үзіліс3 = 150; // fsr қолданылған кезде орындалады
int
delayval = 4; // кешіктіру1
int
fsrPin = 0; // FSR және 10K ашылуы a0 -ға қосылған
int
fsrReading;
жарамсыз
орнату() {
pinMode (BUTTON_PIN, INPUT);
Serial.begin (9600);
piksel.begin (); // Бұл инициализациялайды
NeoPixel кітапханасы.
пиксель.шоу ();
}
бол
түйме басылған (ішкі түйреуіш) {
digitalRead (түйреуіш) қайтару;
}
жарамсыз
loop () {// пин енгізу дұрыс немесе жалған екенін оқиды
fsrReading = analogRead (fsrPin);
Serial.print («Аналогты оқу =»);
Serial.print (fsrReading);
егер (түйме басылған (BUTTON_PIN) == шын) {
// fsr датчигін қолданғанда жарық әсері
егер (fsrReading> 50) {
piksel.setPixelColor (0, 1, 0, 1);
piksel.setPixelColor (15, 1, 0, 1);
piksel.setPixelColor (1, 1, 0, 1);
piksel.setPixelColor (14, 1, 0, 1);
пиксель.шоу ();
кідіріс (үзіліс 3);
}
if (fsrReading <52) {
piksel.setPixelColor (0, 0, 0, 0);
piksel.setPixelColor (15, 0, 0, 0);
piksel.setPixelColor (1, 0, 0, 0);
piksel.setPixelColor (14, 0, 0, 0);
пиксель.шоу ();
кідіріс (кідіріс2);
}
егер (fsrReading> 57) {
piksel.setPixelColor (2, 1, 0, 1);
piksel.setPixelColor (13, 1, 0, 1);
piksel.setPixelColor (3, 1, 0, 1);
piksel.setPixelColor (12, 1, 0, 1);
пиксель.шоу ();
кідіріс (үзіліс 3);
}
if (fsrReading <59) {
piksel.setPixelColor (2, 0, 0, 0);
piksel.setPixelColor (13, 0, 0, 0);
piksel.setPixelColor (3, 0, 0, 0);
piksel.setPixelColor (12, 0, 0, 0);
пиксель.шоу ();
кідіріс (кідіріс2);
}
егер (fsrReading> 65) {
piksel.setPixelColor (4, 1, 0, 1);
piksel.setPixelColor (11, 1, 0, 1);
piksel.setPixelColor (5, 1, 0, 1);
piksel.setPixelColor (10, 1, 0, 1);
пиксель.шоу ();
кідіріс (үзіліс 3);
}
if (fsrReading <67) {
piksel.setPixelColor (4, 0, 0, 0);
piksel.setPixelColor (11, 0, 0, 0);
piksel.setPixelColor (5, 0, 0, 0);
piksel.setPixelColor (10, 0, 0, 0);
пиксель.шоу ();
кешіктіру (40);
}
егер (fsrReading> 79) {
piksel.setPixelColor (6, 1, 0, 1);
piksel.setPixelColor (9, 1, 0, 1);
piksel.setPixelColor (7, 1, 0, 1);
piksel.setPixelColor (8, 1, 0, 1);
пиксель.шоу ();
кідіріс (үзіліс 3);
}
if (fsrReading <85) {
piksel.setPixelColor (6, 0, 0, 0);
piksel.setPixelColor (9, 0, 0, 0);
piksel.setPixelColor (7, 0, 0, 0);
piksel.setPixelColor (8, 0, 0, 0);
пиксель.шоу ();
кешіктіру (20);
}
}
басқа {
тыныс алу -көк (20, 100, 0, 1, 1); // қалыпты
әсері
}
}
// Үзіліс
= ауысулар арасындағы кідіріс
// Қадамдар
= қадамдар саны
// R, G, B = Толық қосылған RGB мәндері
// Жарамсыз дем алу - бұл да әсер етеді
fsrsensor niet gebruikt wordt. Deze void wordt in de void loop () weer aangeroepen.
жарамсыз тыныс алу көк (үзіліс, қадамдар, байт R, байт G, байт B) {
int
tmpR, tmpG, tmpB; // Температура мәндері
// Өшеді
үшін (int s = 1; s <= қадамдар; s ++) {
tmpR = (R * s) /
қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0;
менpiksel.setPixelColor (0, tmpR, tmpG+1, tmpB);
piksel.setPixelColor (15, tmpR, tmpG+1, tmpB);
}
пиксель.шоу ();
кешіктіру (4);
}
// Өшеді
үшін (int s = 1; s <= қадамдар; s ++) {
tmpR = (R * s) /
қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0;
менpiksel.setPixelColor (1, tmpR, tmpG+1, tmpB);pixel.setPixelColor (14, tmpR, tmpG+1, tmpB);
}
пиксель.шоу ();
кешіктіру (4);
}
// Өшеді
үшін (int s = 1; s <= қадамдар; s ++) {
tmpR = (R * s) /
қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0;
менpixel.setPixelColor (2, tmpR, tmpG+2, tmpB);piksel.setPixelColor (13, tmpR, tmpG+2, tmpB);
}
пиксель.шоу ();
кешіктіру (3.5);
}
// Өшеді
үшін (int s = 1; s <= қадамдар; s ++) {
tmpR = (R * s) /
қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0;
менpiksel.setPixelColor (3, tmpR, tmpG+3, tmpB+5);piksel.setPixelColor (12, tmpR, tmpG+3, tmpB+5);
}
пиксель.шоу ();
кешіктіру (3);
}
үшін (int i = 0;
менpiksel.setPixelColor (0, 0, 0, 0);piksel.setPixelColor (15, 0, 0, 0);
}
// Өшеді
үшін (int s = 1; s <= қадамдар; s ++) {
tmpR = (R * s) /
қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0;
мен
piksel.setPixelColor (4, tmpR, tmpG+3, tmpB+15);piksel.setPixelColor (11, tmpR, tmpG+3, tmpB+15);
}
пиксель.шоу ();
кешіктіру (3);
}
// Өшеді
үшін (int s = 1; s <= қадамдар; s ++) {
tmpR = (R * s) /
қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0;
менpiksel.setPixelColor (5, tmpR, tmpG+4, tmpB+20);pixel.setPixelColor (10, tmpR, tmpG+4, tmpB+20);
}
пиксель.шоу ();
кешіктіру (2);
}
үшін (int i = 0;
менpiksel.setPixelColor (1, 0, 0, 0);
piksel.setPixelColor (14, 0, 0, 0);
}
// Өшеді
үшін (int s = 1; s <= қадамдар; s ++) {
tmpR = (R * s) /
қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0;
менpiksel.setPixelColor (6, tmpR, tmpG+2, tmpB+40);
pixel.setPixelColor (9, tmpR, tmpG+2, tmpB+40);
}
пиксель.шоу ();
кідіріс (кідіріс);
}
үшін (int i = 0;
менpiksel.setPixelColor (2, 0, 0, 0);piksel.setPixelColor (13, 0, 0, 0);
}
// Өшеді
үшін (int s = 1; s <= қадамдар; s ++) {
tmpR = (R * s) /
қадамдар; // Қателіктерді болдырмау үшін алдымен көбейтіңіз
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0;
мен
piksel.setPixelColor (7, tmpR, tmpG, tmpB+44);piksel.setPixelColor (8, tmpR, tmpG, tmpB+44);
}
пиксель.шоу ();
кідіріс (кідіріс);
}
// төмендейді
үшін (int s = қадамдар; s> 0; s--) {
tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз
қателер
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0; i
piksel.setPixelColor (7, tmpR, tmpG, tmpB);
piksel.setPixelColor (8, tmpR, tmpG, tmpB);
}
пиксель.шоу ();
кешіктіру (1);
}
// төмендейді
үшін (int s = қадамдар; s> 0; s--) {
tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз
қателер
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0; i
piksel.setPixelColor (6, tmpR, tmpG, tmpB);
piksel.setPixelColor (9, tmpR, tmpG, tmpB);
}
пиксель.шоу ();
кешіктіру (1);
}
// төмендейді
үшін (int s = қадамдар; s> 0; s--) {
tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз
қателер
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0; i
piksel.setPixelColor (5, tmpR, tmpG, tmpB);
piksel.setPixelColor (10, tmpR, tmpG, tmpB);
}
пиксель.шоу ();
кешіктіру (2);
}
// төмендейді
үшін (int s = қадамдар; s> 0; s--) {
tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз
қателер
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0; i
piksel.setPixelColor (4, tmpR, tmpG, tmpB);
piksel.setPixelColor (11, tmpR, tmpG, tmpB);
}
пиксель.шоу ();
кешіктіру (2);
}
// төмендейді
үшін (int s = қадамдар; s> 0; s--) {
tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз
қателер
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0; i
piksel.setPixelColor (3, tmpR, tmpG, tmpB);
piksel.setPixelColor (12, tmpR, tmpG, tmpB);
}
пиксель.шоу ();
кешіктіру (3);
}
// төмендейді
үшін (int s = қадамдар; s> 0; s--) {
tmpR = (R * s) / қадамдар; //
Қателіктерді болдырмау үшін алдымен көбейтіңіз
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0; i
piksel.setPixelColor (2, tmpR, tmpG, tmpB);
piksel.setPixelColor (13, tmpR, tmpG, tmpB);
}
пиксель.шоу ();
кешіктіру (3);
}
// төмендейді
үшін (int s = қадамдар; s> 0; s--) {
tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз
қателер
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0; i
piksel.setPixelColor (1, tmpR, tmpG, tmpB);
piksel.setPixelColor (14, tmpR, tmpG, tmpB);
}
пиксель.шоу ();
кешіктіру (4);
}
// төмендейді
үшін (int s = қадамдар; s> 0; s--) {
tmpR = (R * s) / қадамдар; // Қысқартпау үшін алдымен көбейтіңіз
қателер
tmpG = (G * s) / қадамдар;
tmpB = (B * s) / қадамдар;
үшін (int i = 0; i
piksel.setPixelColor (0, tmpR, tmpG, tmpB);
piksel.setPixelColor (15, tmpR, tmpG, tmpB);
}
пиксель.шоу ();
кешіктіру (4);
}
}
5 -қадам: Барлығын біріктіру:
Сіз барлық сымдарды нан тақтасына немесе ПВХ -ға қосуға қалдыра аласыз, бұл сізге байланысты (мен ПВХ -ны ардуиноның үстіне қоюды таңдадым, бұл жақсы және ұқыпты).
Келесі қадам - барлық сымдардың айналасына жылуды қысқартатын түтіктерді қою, сондықтан олар аз болады.
Егер сіз ПВХ қолдануды таңдасаңыз, онда сіз қазірдің өзінде бәрін дәнекерлеуіңіз керек еді.
Осыдан кейін сіз көзілдіріктің сыртқы жағына неопиксель сақиналарын кигізіңіз (светодиодтардың төменгі жағында тураланғанына көз жеткізіңіз) және оларды таспамен немесе желіммен бекітіңіз (мен таспаны қолдандым).
Сіз fsr-сенсорды серпімді жолаққа таспамен жабыстыруды таңдай аласыз немесе оны өз бетіңізше қалдыра аласыз.
Көзілдіріктен ләззат алыңыз:)
Ұсынылған:
Ақылды көзілдірік (10 доллардан төмен !!!): 8 қадам (суреттермен)
Ақылды көзілдірік (10 доллардан төмен !!!): Сәлеметсіз бе! Біз бәріміз E.D.I.T.H сияқты ақылды көзілдірікті жақсы білеміз. біздің сүйікті кейіпкеріміз Тони Старк жасаған, ол кейіннен Питер Паркерге берілді. Бүгін мен осындай ақылды әйнектің бірін жасамақпын, бағасы 10 доллардан төмен! Олар мүлде емес
Google Cardboard үшін түнгі көзілдірік: 10 қадам (суреттермен)
Google Cardboard үшін түнгі көзілдірік: Жауапкершіліктен бас тарту: Бұл құрылғыны қолдану тек ойын -сауық, білім алу және ғылыми мақсатта пайдалануға арналған; тыңшылық және/немесе бақылау үшін емес. &Quot; шпиондық гаджет " мүмкіндіктер қосымшаға ойын -сауық үшін қосылды және ешқандай практикалық мақсатқа қызмет етпейді
Жарықдиодты көзілдірік пен костюм: 4 қадам (суреттермен)
Жарықдиодты көзілдірік пен костюм: Сізге қараңғыда алыстан көрінген ұнай ма? Сізге Элтон сияқты сәнді көзілдірік керек пе? Сонда бұл нұсқаулық сізге арналған !!! Сіз жарықдиодты костюм мен анимациялық жарық көзілдірікті жасауды үйренесіз
Амблиопияға арналған сұйық кристалды көзілдірік (ауыспалы окклюзия көзілдірігі) [ATtiny13]: 10 қадам (суреттермен)
Амблиопияға арналған сұйық кристалды көзілдірік (ауыспалы окклюзияға арналған көзілдірік) [ATtiny13]: Амблиопия (жалқау көз), халықтың шамамен 3% әсер ететін, әдетте қарапайым көз бояулары немесе атропин тамшыларымен емделетін көру бұзылысы. Өкінішке орай, бұл емдеу әдістері ұзақ уақыт бойы күшті көзді жабады, жоқ
Ультрадыбыстық көзілдірік: 14 қадам (суреттермен)
Ультрадыбыстық Batgoggles: Сіз жарғанат болғыңыз келеді ме? Эхолокацияны сезінгіңіз келе ме? &Quot; көруге " тырысқыңыз келеді. құлағыңызбен? Бірінші нұсқаулық үшін мен сізге Arduino микроконтроллер клоны Devantech ультрадыбыстық көмегімен ультрадыбыстық көзілдірікті қалай жасау керектігін көрсетемін