Indholdsfortegnelse:

Afslapningsbriller - ITTT: 5 trin (med billeder)
Afslapningsbriller - ITTT: 5 trin (med billeder)

Video: Afslapningsbriller - ITTT: 5 trin (med billeder)

Video: Afslapningsbriller - ITTT: 5 trin (med billeder)
Video: Squid game #shorts 2024, Juli
Anonim
Afslapningsbriller - ITTT
Afslapningsbriller - ITTT
Afslapningsbriller - ITTT
Afslapningsbriller - ITTT
Afslapningsbriller - ITTT
Afslapningsbriller - ITTT

HKU Project - ITTT (If This Then That) - Julia Berkouwer, 1B

Har du nogensinde følt dig stresset, og du ved bare ikke, hvordan du beroliger dig selv, så bør du prøve disse afslapningsbriller! Du tager dem på og lukker øjnene, så spiller et vejrtrækningsmønster. Ved at følge dette vejrtrækningsmønster vil din åndedrætsrytme gå ned til at trække vejret ind og ud 6 gange i minuttet. Hvis du gør dette, slipper du daglig stress.

Du kan også spore din vejrtrækningsintensitet ved at slå en switch til ved hjælp af en fsr-sensor.

Med denne toturial vil jeg guide dig gennem at bygge dine egne afslapningsbriller trin for trin.

Trin 1: Nødvendige materialer og dele:

Nødvendige materialer og dele
Nødvendige materialer og dele
Nødvendige materialer og dele
Nødvendige materialer og dele
Nødvendige materialer og dele
Nødvendige materialer og dele

Materialer:

1x arduino uno;

1xbrødbræt eller PCV;

3x 10k modstande

Ledninger (Gerne forskellige farver, så det er lettere at se, hvilke ting der går til jorden, og hvilke der skal til forskellige stifter osv.);

Nogle varmekrympende rør;

2x NeoPixel Ring - 16 x 5050 RGB LED med integrerede drivere;

1x switch;

1x FSR sensor;

1x SteamPunk -beskyttelsesbriller (Du kan købe disse i en festbutik, de er nemme at bruge, fordi neopixelringen passer perfekt til brillerne. Du prøver altid at bruge andre beskyttelsesbriller eller opret din egen.);

1x en slags elastikbånd til at lægge rundt om brystet.

Værktøjer: -Laptops

-Loddekolbe

-Arduino IDE software

Du vil se to knapper og en switch på min pvc, jeg bruger kun den venstre knap til at slutte den til kontakten, jeg bruger ikke den anden knap til højre på billedet. Jeg satte knapperne på pvc, før jeg indså, at jeg ikke har brug for dem, og jeg skulle bruge en switch i stedet.

Nedenfor kan du se billeder af alt, hvad jeg brugte:

Trin 2: Neopixel ringe

Neopixel ringe
Neopixel ringe

Den hvide ledning er forbundet til jorden på bagsiden af neopixelringen.

Den orange ledning er tilsluttet 5V.

Og den brune ledning er forbundet til dataindgangen

Trin 3: Forbindelser

Forbindelser
Forbindelser
Forbindelser
Forbindelser

Sådan så mit brødbræt ud under prototyping, du kan bruge dette som reference.

Jeg lavede også et layout af ledningerne til, hvordan det skal se ud med kun en knap.

Trin 4: Koden:

Det er nok ikke den mest effektive kode, men det virker for mig. Udfordre dig selv og prøv at gøre det mere effektivt; P

#omfatte

// Hvilken

pin på Arduino er forbundet til NeoPixels?

#Definere

PIN 6

// Hvilken

pin på Arduino er forbundet til knappen

#Definere

BUTTON_PIN 9

// Hvordan

mange NeoPixels er knyttet til Arduino?

#Definere

NUMPIXELS 16

// Hvornår

vi opsætter NeoPixel -biblioteket, vi fortæller det, hvor mange pixels og hvilken pin, der skal bruges til at sende signaler.

// Bemærk

at for ældre NeoPixel-strips skal du muligvis ændre den tredje parameter-se strandtesten

//

eksempel for mere information om mulige værdier.

Adafruit_NeoPixel

pixels = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int pause

= 1; // forsinkelse2

int

pause2 = 80; // går ned, når fsr bruges

int

pause3 = 150; // gør op, når fsr bruges

int

delayval = 4; // forsinkelse1

int

fsrPin = 0; // FSR og 10K pulldown er forbundet til a0

int

fsrReading;

ugyldig

Opsætning() {

pinMode (BUTTON_PIN, INPUT);

Serial.begin (9600);

pixels.begin (); // Dette initialiserer

NeoPixel bibliotek.

pixels.show ();

}

bool

tryk på knappen (int pin) {

return digitalRead (pin);

}

ugyldig

loop () {// læser, om pin -input er sandt eller falsk

fsrReading = analogRead (fsrPin);

Serial.print ("Analog læsning =");

Serial.print (fsrReading);

hvis (knappetrykket (BUTTON_PIN) == sand) {

// lyseffekt ved brug af FSR -sensor

hvis (fsrReading> 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);

pixels.show ();

forsinkelse (pause3);

}

hvis (fsrReading <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);

pixels.show ();

forsinkelse (pause2);

}

hvis (fsrReading> 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);

pixels.show ();

forsinkelse (pause3);

}

hvis (fsrReading <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);

pixels.show ();

forsinkelse (pause2);

}

hvis (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);

pixels.show ();

forsinkelse (pause3);

}

hvis (fsrReading <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);

pixels.show ();

forsinkelse (40);

}

hvis (fsrReading> 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);

pixels.show ();

forsinkelse (pause3);

}

hvis (fsrReading <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);

pixels.show ();

forsinkelse (20);

}

}

andet{

breathe_blue (20, 100, 0, 1, 1); // normal

effekt

}

}

// Pause

= forsinkelse mellem overgange

// trin

= antal trin

// R, G, B = Full-on RGB-værdier

// De void breathe er for het licht effect as de

fsrsensor bruges ikke. Denne void bliver i de void loop () igen aangeroepen.

void breathe_blue (int pause, int trin, byte R, byte G, byte B) {

int

tmpR, tmpG, tmpB; // Temp værdier

// Fade up

for (int s = 1; s <= trin; s ++) {

tmpR = (R * s) /

trin; // Multiplicér først for at undgå afkortningsfejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0;

jegpixels.setPixelColor (0, tmpR, tmpG+1, tmpB);

pixels.setPixelColor (15, tmpR, tmpG+1, tmpB);

}

pixels.show ();

forsinkelse (4);

}

// Fade up

for (int s = 1; s <= trin; s ++) {

tmpR = (R * s) /

trin; // Multiplicér først for at undgå afkortningsfejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0;

jegpixels.setPixelColor (1, tmpR, tmpG+1, tmpB);pixels.setPixelColor (14, tmpR, tmpG+1, tmpB);

}

pixels.show ();

forsinkelse (4);

}

// Fade up

for (int s = 1; s <= trin; s ++) {

tmpR = (R * s) /

trin; // Multiplicér først for at undgå afkortningsfejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0;

jegpixels.setPixelColor (2, tmpR, tmpG+2, tmpB);pixels.setPixelColor (13, tmpR, tmpG+2, tmpB);

}

pixels.show ();

forsinkelse (3.5);

}

// Fade up

for (int s = 1; s <= trin; s ++) {

tmpR = (R * s) /

trin; // Multiplicér først for at undgå afkortningsfejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0;

jegpixels.setPixelColor (3, tmpR, tmpG+3, tmpB+5);pixels.setPixelColor (12, tmpR, tmpG+3, tmpB+5);

}

pixels.show ();

forsinkelse (3);

}

for (int i = 0;

jegpixels.setPixelColor (0, 0, 0, 0);pixels.setPixelColor (15, 0, 0, 0);

}

// Fade up

for (int s = 1; s <= trin; s ++) {

tmpR = (R * s) /

trin; // Multiplicér først for at undgå afkortningsfejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0;

jeg

pixels.setPixelColor (4, tmpR, tmpG+3, tmpB+15);pixels.setPixelColor (11, tmpR, tmpG+3, tmpB+15);

}

pixels.show ();

forsinkelse (3);

}

// Fade up

for (int s = 1; s <= trin; s ++) {

tmpR = (R * s) /

trin; // Multiplicér først for at undgå afkortningsfejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0;

jegpixels.setPixelColor (5, tmpR, tmpG+4, tmpB+20);pixels.setPixelColor (10, tmpR, tmpG+4, tmpB+20);

}

pixels.show ();

forsinkelse (2);

}

for (int i = 0;

jegpixels.setPixelColor (1, 0, 0, 0);

pixels.setPixelColor (14, 0, 0, 0);

}

// Fade up

for (int s = 1; s <= trin; s ++) {

tmpR = (R * s) /

trin; // Multiplicér først for at undgå afkortningsfejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0;

jegpixels.setPixelColor (6, tmpR, tmpG+2, tmpB+40);

pixels.setPixelColor (9, tmpR, tmpG+2, tmpB+40);

}

pixels.show ();

forsinkelse (delayval);

}

for (int i = 0;

jegpixels.setPixelColor (2, 0, 0, 0);pixels.setPixelColor (13, 0, 0, 0);

}

// Fade up

for (int s = 1; s <= trin; s ++) {

tmpR = (R * s) /

trin; // Multiplicér først for at undgå afkortningsfejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0;

jeg

pixels.setPixelColor (7, tmpR, tmpG, tmpB+44);pixels.setPixelColor (8, tmpR, tmpG, tmpB+44);

}

pixels.show ();

forsinkelse (delayval);

}

// Fade ned

for (int s = trin; s> 0; s--) {

tmpR = (R * s) / trin; // Multiplicer først for at undgå afkortning

fejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0; i

pixels.setPixelColor (7, tmpR, tmpG, tmpB);

pixels.setPixelColor (8, tmpR, tmpG, tmpB);

}

pixels.show ();

forsinkelse (1);

}

// Fade ned

for (int s = trin; s> 0; s--) {

tmpR = (R * s) / trin; // Multiplicer først for at undgå afkortning

fejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0; i

pixels.setPixelColor (6, tmpR, tmpG, tmpB);

pixels.setPixelColor (9, tmpR, tmpG, tmpB);

}

pixels.show ();

forsinkelse (1);

}

// Fade ned

for (int s = trin; s> 0; s--) {

tmpR = (R * s) / trin; // Multiplicer først for at undgå afkortning

fejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0; i

pixels.setPixelColor (5, tmpR, tmpG, tmpB);

pixels.setPixelColor (10, tmpR, tmpG, tmpB);

}

pixels.show ();

forsinkelse (2);

}

// Fade ned

for (int s = trin; s> 0; s--) {

tmpR = (R * s) / trin; // Multiplicer først for at undgå afkortning

fejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0; i

pixels.setPixelColor (4, tmpR, tmpG, tmpB);

pixels.setPixelColor (11, tmpR, tmpG, tmpB);

}

pixels.show ();

forsinkelse (2);

}

// Fade ned

for (int s = trin; s> 0; s--) {

tmpR = (R * s) / trin; // Multiplicer først for at undgå afkortning

fejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0; i

pixels.setPixelColor (3, tmpR, tmpG, tmpB);

pixels.setPixelColor (12, tmpR, tmpG, tmpB);

}

pixels.show ();

forsinkelse (3);

}

// Fade ned

for (int s = trin; s> 0; s--) {

tmpR = (R * s) / trin; //

Multiplicer først for at undgå afkortningsfejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0; i

pixels.setPixelColor (2, tmpR, tmpG, tmpB);

pixels.setPixelColor (13, tmpR, tmpG, tmpB);

}

pixels.show ();

forsinkelse (3);

}

// Fade ned

for (int s = trin; s> 0; s--) {

tmpR = (R * s) / trin; // Multiplicer først for at undgå afkortning

fejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0; i

pixels.setPixelColor (1, tmpR, tmpG, tmpB);

pixels.setPixelColor (14, tmpR, tmpG, tmpB);

}

pixels.show ();

forsinkelse (4);

}

// Fade ned

for (int s = trin; s> 0; s--) {

tmpR = (R * s) / trin; // Multiplicer først for at undgå afkortning

fejl

tmpG = (G * s) / trin;

tmpB = (B * s) / trin;

for (int i = 0; i

pixels.setPixelColor (0, tmpR, tmpG, tmpB);

pixels.setPixelColor (15, tmpR, tmpG, tmpB);

}

pixels.show ();

forsinkelse (4);

}

}

Trin 5: Sæt alt sammen:

At sætte alt sammen
At sætte alt sammen

Du kan bare lade alle dine ledninger være forbundet til dit brødbræt eller en PVC, det er op til dig (jeg valgte at lægge en PVC oven på arduinoen, det er pænt og pænt på den måde).

Det næste trin er at lægge varmekrympende rør omkring alle ledningerne, så det er mindre rodet.

Hvis du valgte at bruge en PVC, så skulle du have loddet alt sammen nu.

Derefter sætter du neopixelringene på ydersiden af beskyttelsesbrillerne (sørg for at lysdioderne er justeret i bunden) og fastgør dem på plads med lidt tape eller lim (jeg brugte tape).

Du kan vælge at holde fsr-sensoren fast på elastikken med lidt tape eller bare lade den stå alene.

God fornøjelse med dine briller:)

Anbefalede: