Përmbajtje:
- Hapi 1: Materialet dhe pjesët e nevojshme:
- Hapi 2: Unazat neopixel
- Hapi 3: Lidhjet
- Hapi 4: Kodi:
- Hapi 5: Vendosja e gjithçkaje së bashku:
Video: Syze relaksimi - ITTT: 5 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Projekti HKU - ITTT (If This Then That) - Julia Berkouwer, 1B
A jeni ndier ndonjëherë i stresuar dhe thjesht nuk dini si të qetësoheni, atëherë duhet të provoni këto syze relaksimi! I vendosni dhe mbyllni sytë, atëherë do të luajë një model frymëmarrjeje. Duke ndjekur këtë model frymëmarrjeje, ritmi juaj i frymëmarrjes do të zbresë në frymëmarrje dhe dalje 6 herë në minutë. Duke e bërë këtë, largoni stresin e përditshëm.
Ju gjithashtu mund të gjurmoni intensitetin tuaj të frymëmarrjes duke rrokullisur një çelës, duke përdorur një sensor fsr.
Me këtë toturial unë do t'ju udhëheq përmes ndërtimit të syzeve tuaja relaksuese hap pas hapi.
Hapi 1: Materialet dhe pjesët e nevojshme:
Materiale:
1x arduino uno;
1xbreadboard ose PCV;
3x rezistente 10k
Tela (Mundësisht ngjyra të ndryshme kështu që është më e lehtë të thuash se cilat gjëra po shkojnë në tokë dhe cilat do të shkojnë në kunja të ndryshme, etj.);
Disa tuba për tkurrjen e nxehtësisë;
2x Unaza NeoPixel - 16 x 5050 RGB LED me Drejtues të Integruar;
Kaloni 1x;
1x sensor FSR;
1x syze SteamPunk (Ju mund t'i blini ato në një dyqan festash, ato janë të lehta për t'u përdorur sepse unaza neopixel i përshtatet në mënyrë të përkryer syzeve. Ju gjithmonë përpiqeni të përdorni syze të tjera ose krijoni tuajën.);
1x një lloj brezi (elastik) për ta vendosur rreth gjoksit tuaj.
Mjetet: -Laptop
-Makine per ngjitjen e metalit
-Arduino IDE software
Do të shihni dy butona dhe një ndërprerës në pvc tim, unë përdor vetëm butonin e majtë për ta lidhur me ndërprerësin, nuk përdor butonin e dytë në të djathtë të figurës. I vura butonat në PVC para se të kuptoja se nuk më duheshin dhe më duhej të përdorja një ndërprerës në vend.
Më poshtë këtu do të shihni fotografi të gjithçkaje që kam përdorur:
Hapi 2: Unazat neopixel
Teli i bardhë është i lidhur me tokën në anën e pasme të unazës neopixel.
Teli portokalli është i lidhur me 5V.
Dhe tela kafe është e lidhur me hyrjen e të dhënave
Hapi 3: Lidhjet
Kështu duket paneli im i bukës gjatë prototipimit, mund ta përdorni si referencë.
Unë gjithashtu bëra një paraqitje të instalimeve elektrike të asaj që supozohet të duket me vetëm një buton.
Hapi 4: Kodi:
Ndoshta nuk është kodi më efikas, por funksionon për mua. Sfidoni veten dhe përpiquni ta bëni atë më efikas; P
#përfshi
// Cila
pin në Arduino është i lidhur me NeoPixels?
#përcakto
PIN 6
// Cila
pin në Arduino është i lidhur me butonin
#përcakto
BUTTON_PIN 9
// Si
shumë NeoPixel janë bashkangjitur në Arduino?
#përcakto
NUMPIXELS 16
// Kur
ne konfigurojmë bibliotekën NeoPixel, i themi sa piksele dhe cilën pin të përdorim për të dërguar sinjale.
// Shënim
se për shiritat më të vjetër NeoPixel ju mund të keni nevojë të ndryshoni parametrin e tretë-shikoni testin më të fuqishëm
//
shembull për më shumë informacion mbi vlerat e mundshme.
Adafruit_NeoPixel
piksele = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int pauzë
= 1; // vonesa2
int
pauzë2 = 80; // zbret kur përdoret fsr
int
pauzë3 = 150; // duke bërë deri kur fsr është duke u përdorur
int
vonesë = 4; // vonesa1
int
fsrPin = 0; // FSR dhe 10K pulldown janë të lidhura me a0
int
fsrLeximi;
i pavlefshëm
setup () {
pinMode (BUTTON_PIN, INPUT);
Serial.filloj (9600);
piksele.filloj (); // Kjo inicializon
Biblioteka NeoPixel.
piksele.shfaq ();
}
bool
i shtypur me buton (int pin) {
kthehu digitalRead (pin);
}
i pavlefshëm
loop () {// lexon nëse hyrja e pin është e vërtetë apo e rreme
fsrReading = analogRead (fsrPin);
Serial.print ("Lexim analog =");
Serial.print (fsrReading);
nëse (shtypur me buton (BUTTON_PIN) == e vërtetë) {
// efekti i dritës kur përdorni sensorin fsr
nëse (fsrR leximi> 50) {
pixels.setPixelColor (0, 1, 0, 1);
pixels.setPixelColor (15, 1, 0, 1);
pixels.setPixelColor (1, 1, 0, 1);
pixels.setPixelColor (14, 1, 0, 1);
piksele.shfaq ();
vonesë (pauzë 3);
}
nëse (fsrR leximi <52) {
pixels.setPixelColor (0, 0, 0, 0);
pixels.setPixelColor (15, 0, 0, 0);
pixels.setPixelColor (1, 0, 0, 0);
pixels.setPixelColor (14, 0, 0, 0);
piksele.shfaq ();
vonesë (pauzë2);
}
nëse (fsrR leximi> 57) {
pixels.setPixelColor (2, 1, 0, 1);
pixels.setPixelColor (13, 1, 0, 1);
pixels.setPixelColor (3, 1, 0, 1);
pixels.setPixelColor (12, 1, 0, 1);
piksele.shfaq ();
vonesë (pauzë 3);
}
nëse (fsrR leximi <59) {
pixels.setPixelColor (2, 0, 0, 0);
pixels.setPixelColor (13, 0, 0, 0);
pixels.setPixelColor (3, 0, 0, 0);
pixels.setPixelColor (12, 0, 0, 0);
piksele.shfaq ();
vonesë (pauzë2);
}
nëse (fsrReading> 65) {
pixels.setPixelColor (4, 1, 0, 1);
pixels.setPixelColor (11, 1, 0, 1);
pixels.setPixelColor (5, 1, 0, 1);
pixels.setPixelColor (10, 1, 0, 1);
piksele.shfaq ();
vonesë (pauzë 3);
}
nëse (fsrLeximi <67) {
pixels.setPixelColor (4, 0, 0, 0);
pixels.setPixelColor (11, 0, 0, 0);
pixels.setPixelColor (5, 0, 0, 0);
pixels.setPixelColor (10, 0, 0, 0);
piksele.shfaq ();
vonesa (40);
}
nëse (fsrR leximi> 79) {
pixels.setPixelColor (6, 1, 0, 1);
pixels.setPixelColor (9, 1, 0, 1);
pixels.setPixelColor (7, 1, 0, 1);
pixels.setPixelColor (8, 1, 0, 1);
piksele.shfaq ();
vonesë (pauzë 3);
}
nëse (fsrR leximi <85) {
pixels.setPixelColor (6, 0, 0, 0);
pixels.setPixelColor (9, 0, 0, 0);
pixels.setPixelColor (7, 0, 0, 0);
pixels.setPixelColor (8, 0, 0, 0);
piksele.shfaq ();
vonesa (20);
}
}
tjeter {
bluja e frymëmarrjes (20, 100, 0, 1, 1); // normale
efektit
}
}
// Pusho
= vonesë midis kalimeve
// Hapat
= numri i hapave
// R, G, B = Vlerat e plota të RGB
// Frymëmarrja e pavlefshme është e efektshme ose e pavlefshme
fsrsensor niet gebruikt wordt. Deze void wordt në de void loop () weer aangeroepen.
zbrazëti frymëmarrje_blu (int pauzë, hapa int, bajt R, bajt G, byte B) {
int
tmpR, tmpG, tmpB; // Vlerat e temperaturës
// Zbehet
për (int s = 1; s <= hapa; s ++) {
tmpR = (R * s) /
hapa; // Shumëzoni së pari për të shmangur gabimet e shkurtimit
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0;
unepixels.setPixelColor (0, tmpR, tmpG+1, tmpB);
pixels.setPixelColor (15, tmpR, tmpG+1, tmpB);
}
piksele.shfaq ();
vonesa (4);
}
// Zbehet
për (int s = 1; s <= hapa; s ++) {
tmpR = (R * s) /
hapa; // Shumëzoni së pari për të shmangur gabimet e shkurtimit
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0;
unepixels.setPixelColor (1, tmpR, tmpG+1, tmpB);pixels.setPixelColor (14, tmpR, tmpG+1, tmpB);
}
piksele.shfaq ();
vonesa (4);
}
// Zbehet
për (int s = 1; s <= hapa; s ++) {
tmpR = (R * s) /
hapa; // Shumëzoni së pari për të shmangur gabimet e shkurtimit
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0;
unepixels.setPixelColor (2, tmpR, tmpG+2, tmpB);pixels.setPixelColor (13, tmpR, tmpG+2, tmpB);
}
piksele.shfaq ();
vonesa (3.5);
}
// Zbehet
për (int s = 1; s <= hapa; s ++) {
tmpR = (R * s) /
hapa; // Shumëzoni së pari për të shmangur gabimet e shkurtimit
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0;
unepixels.setPixelColor (3, tmpR, tmpG+3, tmpB+5);pixels.setPixelColor (12, tmpR, tmpG+3, tmpB+5);
}
piksele.shfaq ();
vonesa (3);
}
për (int i = 0;
unepixels.setPixelColor (0, 0, 0, 0);pixels.setPixelColor (15, 0, 0, 0);
}
// Zbehet
për (int s = 1; s <= hapa; s ++) {
tmpR = (R * s) /
hapa; // Shumëzoni së pari për të shmangur gabimet e shkurtimit
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0;
une
pixels.setPixelColor (4, tmpR, tmpG+3, tmpB+15);pixels.setPixelColor (11, tmpR, tmpG+3, tmpB+15);
}
piksele.shfaq ();
vonesa (3);
}
// Zbehet
për (int s = 1; s <= hapa; s ++) {
tmpR = (R * s) /
hapa; // Shumëzoni së pari për të shmangur gabimet e shkurtimit
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0;
unepixels.setPixelColor (5, tmpR, tmpG+4, tmpB+20);pixels.setPixelColor (10, tmpR, tmpG+4, tmpB+20);
}
piksele.shfaq ();
vonesa (2);
}
për (int i = 0;
unepixels.setPixelColor (1, 0, 0, 0);
pixels.setPixelColor (14, 0, 0, 0);
}
// Zbehet
për (int s = 1; s <= hapa; s ++) {
tmpR = (R * s) /
hapa; // Shumëzoni së pari për të shmangur gabimet e shkurtimit
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0;
unepixels.setPixelColor (6, tmpR, tmpG+2, tmpB+40);
pixels.setPixelColor (9, tmpR, tmpG+2, tmpB+40);
}
piksele.shfaq ();
vonesë (vonesë);
}
për (int i = 0;
unepixels.setPixelColor (2, 0, 0, 0);pixels.setPixelColor (13, 0, 0, 0);
}
// Zbehet
për (int s = 1; s <= hapa; s ++) {
tmpR = (R * s) /
hapa; // Shumëzoni së pari për të shmangur gabimet e shkurtimit
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0;
une
pixels.setPixelColor (7, tmpR, tmpG, tmpB+44);pixels.setPixelColor (8, tmpR, tmpG, tmpB+44);
}
piksele.shfaq ();
vonesë (vonesë);
}
// Zbehet
për (int s = hapa; s> 0; s--) {
tmpR = (R * s) / hapa; // Shumëzoni së pari për të shmangur shkurtimin
gabimet
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0; i
pixels.setPixelColor (7, tmpR, tmpG, tmpB);
pixels.setPixelColor (8, tmpR, tmpG, tmpB);
}
piksele.shfaq ();
vonesa (1);
}
// Zbehet
për (int s = hapa; s> 0; s--) {
tmpR = (R * s) / hapa; // Shumëzoni së pari për të shmangur shkurtimin
gabimet
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0; i
pixels.setPixelColor (6, tmpR, tmpG, tmpB);
pixels.setPixelColor (9, tmpR, tmpG, tmpB);
}
piksele.shfaq ();
vonesa (1);
}
// Zbehet
për (int s = hapa; s> 0; s--) {
tmpR = (R * s) / hapa; // Shumëzoni së pari për të shmangur shkurtimin
gabimet
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0; i
pixels.setPixelColor (5, tmpR, tmpG, tmpB);
pixels.setPixelColor (10, tmpR, tmpG, tmpB);
}
piksele.shfaq ();
vonesa (2);
}
// Zbehet
për (int s = hapa; s> 0; s--) {
tmpR = (R * s) / hapa; // Shumëzoni së pari për të shmangur shkurtimin
gabimet
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0; i
pixels.setPixelColor (4, tmpR, tmpG, tmpB);
pixels.setPixelColor (11, tmpR, tmpG, tmpB);
}
piksele.shfaq ();
vonesa (2);
}
// Zbehet
për (int s = hapa; s> 0; s--) {
tmpR = (R * s) / hapa; // Shumëzoni së pari për të shmangur shkurtimin
gabimet
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0; i
pixels.setPixelColor (3, tmpR, tmpG, tmpB);
pixels.setPixelColor (12, tmpR, tmpG, tmpB);
}
piksele.shfaq ();
vonesa (3);
}
// Zbehet
për (int s = hapa; s> 0; s--) {
tmpR = (R * s) / hapa; //
Shumëzoni së pari për të shmangur gabimet e shkurtimit
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0; i
pixels.setPixelColor (2, tmpR, tmpG, tmpB);
pixels.setPixelColor (13, tmpR, tmpG, tmpB);
}
piksele.shfaq ();
vonesa (3);
}
// Zbehet
për (int s = hapa; s> 0; s--) {
tmpR = (R * s) / hapa; // Shumëzoni së pari për të shmangur shkurtimin
gabimet
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0; i
pixels.setPixelColor (1, tmpR, tmpG, tmpB);
pixels.setPixelColor (14, tmpR, tmpG, tmpB);
}
piksele.shfaq ();
vonesa (4);
}
// Zbehet
për (int s = hapa; s> 0; s--) {
tmpR = (R * s) / hapa; // Shumëzoni së pari për të shmangur shkurtimin
gabimet
tmpG = (G * s) / hapa;
tmpB = (B * s) / hapa;
për (int i = 0; i
pixels.setPixelColor (0, tmpR, tmpG, tmpB);
pixels.setPixelColor (15, tmpR, tmpG, tmpB);
}
piksele.shfaq ();
vonesa (4);
}
}
Hapi 5: Vendosja e gjithçkaje së bashku:
Ju thjesht mund t'i lini të gjitha telat tuaja të lidhura me tabelën tuaj të bukës ose një PVC, kjo varet nga ju (unë zgjodha të vendos një PVC në krye të arduino -s është mirë dhe i zoti në atë mënyrë).
Hapi tjetër është vendosja e tubave të tkurrjes së nxehtësisë rreth të gjitha telave në mënyrë që të jetë më pak rrëmujë.
Nëse keni zgjedhur të përdorni një PVC atëherë duhet të keni bashkuar gjithçka së bashku deri tani.
Pas kësaj vendosni unazat neopixel në pjesën e jashtme të syzeve (sigurohuni që led -et të jenë të rreshtuar në pjesën e poshtme) dhe sigurojini ato në vend me ndonjë kasetë ose ngjitës (kam përdorur kasetë).
Ju mund të zgjidhni të ngjitni sensorin fsr në brezin elastik me ndonjë kasetë ose thjesht ta lini atë jashtë.
Shijoni syzet tuaja:)
Recommended:
Syze të zgjuara (nën 10 dollarë !!!): 8 hapa (me fotografi)
Syze të zgjuara (nën 10 dollarë !!!): Përshëndetje! Ne të gjithë jemi të njohur me Syzet Smart si ajo e quajtur E.D.I.T.H. bërë nga personazhi ynë i dashur Tony Stark i cili më vonë iu kalua Peter Parker. Sot do të ndërtoj një gotë të tillë të zgjuar, e cila kushton më pak se 10 dollarë! Ata nuk janë fare
Syze Vizioni i natës për kartonin Google: 10 hapa (me fotografi)
Syze Vizioni i natës për kartonin e Google: Përgjegjësia: Përdorimi i kësaj pajisje është menduar vetëm për argëtim, edukim dhe përdorim shkencor; jo për spiunim dhe/ose mbikëqyrje. &Quot; vegël spiune " veçoritë u shtuan në aplikacion vetëm për argëtim dhe nuk do të shërbenin për asnjë qëllim praktik për
DIY - Syze RGB: 3 hapa (me fotografi)
DIY | Syze RGB: Hej! Unë kam bërë një syze RGB duke përdorur LED WS2812B dhe Arduino Nano. Syzet kanë shumë animacione që mund të kontrollohen duke përdorur një aplikacion celular. Aplikacioni mund të komunikojë me arduino përmes Bluetooth Modulit
Syze kristali të lëngëta për ambliopi (syze stërvitore të mbylljes alternative) [ATtiny13]: 10 hapa (me fotografi)
Syze me Kristal të Lëngshëm për Amblyopia (Syzet e Trajnimit të Mbylljes Alternuese) [ATtiny13]: Amblyopia (syri dembel), një çrregullim i shikimit që prek afërsisht 3% të popullsisë, i trajtuar zakonisht me syze të thjeshtë ose pika atropine. Fatkeqësisht, ato metoda të trajtimit mbyllin syrin më të fortë për periudha të gjata, të pandërprera kohore, jo
Qëndrim për laptopë me 3 hapa dhe 3 hapa (me syze leximi dhe tabaka me stilolaps): 5 hapa
Qëndrim për laptopë me hapa 3 & 3 hapa (me syze leximi dhe tabaka për stilolapsa): Kjo $ 3 & Qëndrimi i laptopit me 3 hapa mund të bëhet brenda 5 minutave. It'sshtë shumë e fortë, me peshë të lehtë dhe mund të paloset për ta marrë kudo që të shkoni