Innholdsfortegnelse:

Avslapningsbriller - ITTT: 5 trinn (med bilder)
Avslapningsbriller - ITTT: 5 trinn (med bilder)

Video: Avslapningsbriller - ITTT: 5 trinn (med bilder)

Video: Avslapningsbriller - ITTT: 5 trinn (med bilder)
Video: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, November
Anonim
Avslapningsbriller - ITTT
Avslapningsbriller - ITTT
Avslapningsbriller - ITTT
Avslapningsbriller - ITTT
Avslapningsbriller - ITTT
Avslapningsbriller - ITTT

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

Har du noen gang følt deg stresset og du bare ikke vet hvordan du skal roe deg selv, så bør du prøve disse avslapningsbrillene! Du tar på deg dem og lukker øynene, så spiller et pustemønster. Ved å følge dette pustemønsteret vil pusteytmen gå ned til å puste inn og ut 6 ganger i minuttet. Hvis du gjør dette, slipper du daglig stress.

Du kan også spore pusteintensiteten din ved å slå på en bryter ved hjelp av en FSR-sensor.

Med denne toturialen vil jeg guide deg gjennom å bygge dine egne avslapningsbriller trinn for trinn.

Trinn 1: Materialer og deler som trengs:

Nødvendige materialer og deler
Nødvendige materialer og deler
Nødvendige materialer og deler
Nødvendige materialer og deler
Nødvendige materialer og deler
Nødvendige materialer og deler

Materialer:

1x arduino uno;

1xbreadboard eller PCV;

3x 10k motstander

Ledninger (Fortrinnsvis forskjellige farger, så det er lettere å fortelle hvilke ting som går til bakken og hvilke som skal til forskjellige pinner, etc.);

Noen varmekrympende rør;

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

1x bryter;

1x FSR -sensor;

1x SteamPunk -briller (Du kan kjøpe disse på en festbutikk, de er enkle å bruke fordi neopixelringen passer perfekt på brillene. Du prøver alltid å bruke andre briller eller lag din egen.);

1x en slags (elastikk) bånd å sette rundt brystet.

Verktøy: -Bærbar datamaskin

-Loddejern

-Arduino IDE programvare

Du vil se to knapper og en bryter på min pvc. Jeg bruker bare venstre knapp for å koble den til bryteren, jeg bruker ikke den andre knappen til høyre på bildet. Jeg satte knappene på pvc før jeg innså at jeg ikke trenger dem, og jeg trengte å bruke en bryter i stedet.

Nedenfor ser du bilder av alt jeg brukte:

Trinn 2: Neopixel ringer

Neopixel ringer
Neopixel ringer

Den hvite ledningen er koblet til bakken på baksiden av neopikselringen.

Den oransje ledningen er koblet til 5V.

Og den brune ledningen er koblet til datainngangen

Trinn 3: Tilkoblinger

Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger

Slik så brødbrettet mitt ut under prototyping, du kan bruke dette som referanse.

Jeg har også laget et oppsett av ledningene til hvordan det skal se ut med bare en knapp.

Trinn 4: Koden:

Det er sannsynligvis ikke den mest effektive koden, men det fungerer for meg. Utfordre deg selv og prøv å gjøre det mer effektivt; P

#inkludere

// Hvilken

pin på Arduino er koblet til NeoPixels?

#definere

PIN 6

// Hvilken

pin på Arduino er koblet til knappen

#definere

BUTTON_PIN 9

// Hvordan

mange NeoPixels er festet til Arduino?

#definere

NUMPIXELS 16

// Når

vi konfigurerer NeoPixel -biblioteket, vi forteller det hvor mange piksler og hvilken pin som skal brukes for å sende signaler.

// Merk

at for eldre NeoPixel-strips må du kanskje endre den tredje parameteren-se strandtesten

//

eksempel for mer informasjon om mulige verdier.

Adafruit_NeoPixel

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

int pause

= 1; // forsinkelse2

int

pause2 = 80; // går ned når fsr brukes

int

pause3 = 150; // gjør opp når fsr brukes

int

delayval = 4; // forsinkelse1

int

fsrPin = 0; // FSR og 10K rullegardinmenyen er koblet til a0

int

fsrReading;

tomrom

setup () {

pinMode (BUTTON_PIN, INPUT);

Serial.begin (9600);

pixels.begin (); // Dette initialiserer

NeoPixel bibliotek.

piksler. vis ();

}

bool

knappetrykket (int pin) {

returner digitalRead (pin);

}

tomrom

loop () {// leser om pin -input er sann eller usann

fsrReading = analogRead (fsrPin);

Serial.print ("Analog lesing =");

Serial.print (fsrReading);

hvis (knappetrykket (BUTTON_PIN) == true) {

// lyseffekt ved bruk av 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);

piksler. vis ();

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

piksler. vis ();

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

piksler. vis ();

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

piksler. vis ();

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

piksler. vis ();

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

piksler. vis ();

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

piksler. vis ();

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

piksler. vis ();

forsinkelse (20);

}

}

ellers{

puste_blå (20, 100, 0, 1, 1); // vanlig

effekt

}

}

// Pause

= forsinkelse mellom overganger

// trinn

= antall trinn

// R, G, B = Full-on RGB-verdier

// De void breathe is for the licht effect als de

fsrsensor ikke brukes. Denne void blir in the void loop () weer aangeroepen.

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

int

tmpR, tmpG, tmpB; // Temp -verdier

// Fade opp

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

tmpR = (R * s) /

trinn; // Multipliser først for å unngå avkortingsfeil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0;

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

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

}

piksler. vis ();

forsinkelse (4);

}

// Fade up

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

tmpR = (R * s) /

trinn; // Multipliser først for å unngå avkortingsfeil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0;

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

}

piksler. vis ();

forsinkelse (4);

}

// Fade opp

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

tmpR = (R * s) /

trinn; // Multipliser først for å unngå avkortingsfeil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0;

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

}

piksler. vis ();

forsinkelse (3.5);

}

// Fade up

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

tmpR = (R * s) /

trinn; // Multipliser først for å unngå avkortingsfeil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0;

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

}

piksler. vis ();

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 <= trinn; s ++) {

tmpR = (R * s) /

trinn; // Multipliser først for å unngå avkortingsfeil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0;

Jeg

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

}

piksler. vis ();

forsinkelse (3);

}

// Fade up

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

tmpR = (R * s) /

trinn; // Multipliser først for å unngå avkortingsfeil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0;

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

}

piksler. vis ();

forsinkelse (2);

}

for (int i = 0;

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

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

}

// Fade opp

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

tmpR = (R * s) /

trinn; // Multipliser først for å unngå avkortingsfeil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0;

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

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

}

piksler. vis ();

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 <= trinn; s ++) {

tmpR = (R * s) /

trinn; // Multipliser først for å unngå avkortingsfeil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0;

Jeg

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

}

piksler. vis ();

forsinkelse (delayval);

}

// Fade ned

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

tmpR = (R * s) / trinn; // Multipliser først for å unngå avkortning

feil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0; i

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

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

}

piksler. vis ();

forsinkelse (1);

}

// Fade ned

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

tmpR = (R * s) / trinn; // Multipliser først for å unngå avkortning

feil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0; i

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

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

}

piksler. vis ();

forsinkelse (1);

}

// Fade ned

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

tmpR = (R * s) / trinn; // Multipliser først for å unngå avkortning

feil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0; i

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

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

}

piksler. vis ();

forsinkelse (2);

}

// Fade ned

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

tmpR = (R * s) / trinn; // Multipliser først for å unngå avkortning

feil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0; i

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

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

}

piksler. vis ();

forsinkelse (2);

}

// Fade ned

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

tmpR = (R * s) / trinn; // Multipliser først for å unngå avkortning

feil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0; i

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

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

}

piksler. vis ();

forsinkelse (3);

}

// Fade ned

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

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

Multipliser først for å unngå avkortingsfeil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0; i

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

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

}

piksler. vis ();

forsinkelse (3);

}

// Fade ned

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

tmpR = (R * s) / trinn; // Multipliser først for å unngå avkortning

feil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0; i

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

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

}

piksler. vis ();

forsinkelse (4);

}

// Fade ned

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

tmpR = (R * s) / trinn; // Multipliser først for å unngå avkortning

feil

tmpG = (G * s) / trinn;

tmpB = (B * s) / trinn;

for (int i = 0; i

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

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

}

piksler. vis ();

forsinkelse (4);

}

}

Trinn 5: Sett alt sammen:

Å sette alt sammen
Å sette alt sammen

Du kan bare la alle ledningene være koblet til brødbrettet eller en PVC, det er opp til deg (jeg valgte å legge en PVC på arduinoen, det er fint og pent på den måten).

Det neste trinnet er å sette varmekrympende rør rundt alle ledningene, så det blir mindre rot.

Hvis du valgte å bruke en PVC, burde du ha loddet alt sammen nå.

Etter det legger du neopikselringene på utsiden av beskyttelsesbrillene (sørg for at lysdiodene er justert på baksiden) og fest dem på plass med litt tape eller lim (jeg brukte tape).

Du kan velge å feste fsr-sensoren til elastikken med litt tape eller bare la den stå alene.

Kos deg med brillene dine:)

Anbefalt: