INHOUDSOPGAWE:

Ontspanningsbril - ITTT: 5 stappe (met foto's)
Ontspanningsbril - ITTT: 5 stappe (met foto's)

Video: Ontspanningsbril - ITTT: 5 stappe (met foto's)

Video: Ontspanningsbril - ITTT: 5 stappe (met foto's)
Video: Backstreet Boys - I Want It That Way (Official HD Video) 2024, Julie
Anonim
Ontspanningsbril - ITTT
Ontspanningsbril - ITTT
Ontspanningsbril - ITTT
Ontspanningsbril - ITTT
Ontspanningsbril - ITTT
Ontspanningsbril - ITTT

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

Het u al ooit gespanne gevoel en weet u nie hoe u uself kan kalmeer nie, probeer dan hierdie ontspanningsbril! Jy trek dit aan en maak jou oë toe, dan speel 'n asemhalingspatroon. Deur hierdie asemhalingspatroon te volg, sal u asemhalingsritme 6 keer per minuut in- en uitasem. Deur dit te doen, word die daaglikse spanning verlig.

U kan ook u asemhalingsintensiteit volg deur 'n fsr-sensor aan te skakel.

Met hierdie toturial lei ek u stap vir stap deur u eie ontspanningsbril te bou.

Stap 1: Materiaal en onderdele benodig:

Materiaal en onderdele benodig
Materiaal en onderdele benodig
Materiaal en onderdele benodig
Materiaal en onderdele benodig
Materiaal en onderdele benodig
Materiaal en onderdele benodig

Materiaal:

1x arduino uno;

1x broodbord of PCV;

3x 10k weerstande

Drade (verkieslik verskillende kleure, sodat dit makliker is om te sien watter dinge op die grond gaan en watter na verskillende penne gaan, ens.);

Sommige krimpende buise;

2x NeoPixel -ring - 16 x 5050 RGB LED met geïntegreerde bestuurders;

1x skakelaar;

1x FSR -sensor;

1x SteamPunk -bril (u kan dit by 'n partytjiewinkel koop, dit is maklik om te gebruik, want die neopixelring pas perfek op die bril. U probeer altyd 'n ander bril gebruik of u eie bril skep.);

1x 'n (elastiese) band om jou bors.

Gereedskap: -Laptops

-Soldeerbout

-Arduino IDE sagteware

U sal twee knoppies en 'n skakelaar op my pvc sien; ek gebruik slegs die linkerknoppie om dit aan die skakelaar te koppel; ek gebruik nie die tweede knoppie aan die regterkant van die prentjie nie. Ek het die knoppies op die pvc gesit voordat ek besef dat ek dit nie nodig het nie, en ek moes eerder 'n skakelaar gebruik.

Hieronder sien u foto's van alles wat ek gebruik het:

Stap 2: Neopixel -ringe

Neopixel ringe
Neopixel ringe

Die wit draad is aan die agterkant van die neopixelring met die grond verbind.

Die oranje draad is gekoppel aan die 5V.

En die bruin draad is gekoppel aan die data -invoer

Stap 3: Verbindings

Verbindings
Verbindings
Verbindings
Verbindings

Dit is hoe my broodbord gelyk het tydens prototipering; u kan dit as verwysing gebruik.

Ek het ook 'n uiteensetting gemaak van die bedrading van hoe dit moet lyk met net een knoppie.

Stap 4: Die kode:

Dit is waarskynlik nie die doeltreffendste kode nie, maar dit werk vir my. Daag jouself uit en probeer dit doeltreffender maak; P

#insluit

// Watter

pin op die Arduino gekoppel is aan die NeoPixels?

#definieer

PIN 6

// Watter

pen op die Arduino is aan die knoppie gekoppel

#definieer

BUTTON_PIN 9

// Hoe

is daar baie NeoPixels aan die Arduino gekoppel?

#definieer

NUMPIXELS 16

// Wanneer

ons stel die NeoPixel -biblioteek op, ons vertel hoeveel pixels dit is, en watter pen om te gebruik om seine te stuur.

// Let wel

dat u moontlik die derde parameter vir ouer NeoPixel-stroke moet verander-sien die strengtoets

//

voorbeeld vir meer inligting oor moontlike waardes.

Adafruit_NeoPixel

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

int pouse

= 1; // vertraging2

int

pouse2 = 80; // gaan af wanneer fsr gebruik word

int

pouse3 = 150; // doen op wanneer fsr gebruik word

int

vertragingsval = 4; // vertraging1

int

fsrPin = 0; // die FSR- en 10K -aftreklys is aan a0 gekoppel

int

fsrReading;

nietig

stel op() {

pinMode (BUTTON_PIN, INPUT);

Serial.begin (9600);

pixels.begin (); // Dit initialiseer die

NeoPixel -biblioteek.

pixels.show ();

}

bool

knoppie gedruk (int pin) {

stuur digitalRead (pin) terug;

}

nietig

loop () {// lees of peninvoer waar of onwaar is

fsrReading = analogRead (fsrPin);

Serial.print ("Analoog lees =");

Serial.print (fsrReading);

as (knoppie gedruk (BUTTON_PIN) == waar) {

// lig effek by die gebruik van fsr sensor

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

vertraging (pouse3);

}

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

vertraging (pouse2);

}

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

vertraging (pouse3);

}

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

vertraging (pouse2);

}

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

vertraging (pouse3);

}

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

vertraging (40);

}

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

vertraging (pouse3);

}

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

vertraging (20);

}

}

anders {

asemblou (20, 100, 0, 1, 1); // normaal

effek

}

}

// Pouse

= vertraging tussen oorgange

// Stappe

= aantal stappe

// R, G, B = Volledige RGB-waardes

// Die leegte asemhaal is vir die ligte effek as die

fsrsensor word nie gebruik nie. Hierdie leemte word in die leegte -lus () weer aangeroepen.

leegte asemblou (int pouse, int stappe, byte R, byte G, greep B) {

int

tmpR, tmpG, tmpB; // Temp waardes

// Vervaag

vir (int s = 1; s <= steps; s ++) {

tmpR = (R * s) /

stappe; // Vermenigvuldig eers om afkappingsfoute te voorkom

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0;

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

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

}

pixels.show ();

vertraging (4);

}

// Vervaag

vir (int s = 1; s <= steps; s ++) {

tmpR = (R * s) /

stappe; // Vermenigvuldig eers om afkappingsfoute te voorkom

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0;

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

}

pixels.show ();

vertraging (4);

}

// Vervaag

vir (int s = 1; s <= steps; s ++) {

tmpR = (R * s) /

stappe; // Vermenigvuldig eers om afkappingsfoute te voorkom

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0;

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

}

pixels.show ();

vertraging (3.5);

}

// Vervaag

vir (int s = 1; s <= steps; s ++) {

tmpR = (R * s) /

stappe; // Vermenigvuldig eers om afkappingsfoute te voorkom

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0;

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

}

pixels.show ();

vertraging (3);

}

vir (int i = 0;

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

}

// Vervaag

vir (int s = 1; s <= steps; s ++) {

tmpR = (R * s) /

stappe; // Vermenigvuldig eers om afkappingsfoute te voorkom

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0;

ek

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

}

pixels.show ();

vertraging (3);

}

// Vervaag

vir (int s = 1; s <= steps; s ++) {

tmpR = (R * s) /

stappe; // Vermenigvuldig eers om afkappingsfoute te voorkom

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0;

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

}

pixels.show ();

vertraging (2);

}

vir (int i = 0;

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

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

}

// Vervaag

vir (int s = 1; s <= steps; s ++) {

tmpR = (R * s) /

stappe; // Vermenigvuldig eers om afkappingsfoute te voorkom

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0;

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

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

}

pixels.show ();

vertraging (delayval);

}

vir (int i = 0;

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

}

// Vervaag

vir (int s = 1; s <= steps; s ++) {

tmpR = (R * s) /

stappe; // Vermenigvuldig eers om afkappingsfoute te voorkom

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0;

ek

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

}

pixels.show ();

vertraging (delayval);

}

// Verdof

vir (int s = stappe; s> 0; s--) {

tmpR = (R * s) / stappe; // Vermenigvuldig eers om afkapping te voorkom

foute

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0; i

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

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

}

pixels.show ();

vertraging (1);

}

// Verdof

vir (int s = stappe; s> 0; s--) {

tmpR = (R * s) / stappe; // Vermenigvuldig eers om afkapping te voorkom

foute

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0; i

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

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

}

pixels.show ();

vertraging (1);

}

// Verdof

vir (int s = stappe; s> 0; s--) {

tmpR = (R * s) / stappe; // Vermenigvuldig eers om afkapping te voorkom

foute

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0; i

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

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

}

pixels.show ();

vertraging (2);

}

// Verdof

vir (int s = stappe; s> 0; s--) {

tmpR = (R * s) / stappe; // Vermenigvuldig eers om afkapping te voorkom

foute

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0; i

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

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

}

pixels.show ();

vertraging (2);

}

// Verdof

vir (int s = stappe; s> 0; s--) {

tmpR = (R * s) / stappe; // Vermenigvuldig eers om afkapping te voorkom

foute

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0; i

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

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

}

pixels.show ();

vertraging (3);

}

// Verdof

vir (int s = stappe; s> 0; s--) {

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

Vermenigvuldig eers om afkappingsfoute te voorkom

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0; i

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

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

}

pixels.show ();

vertraging (3);

}

// Verdof

vir (int s = stappe; s> 0; s--) {

tmpR = (R * s) / stappe; // Vermenigvuldig eers om afkapping te voorkom

foute

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0; i

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

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

}

pixels.show ();

vertraging (4);

}

// Verdof

vir (int s = stappe; s> 0; s--) {

tmpR = (R * s) / stappe; // Vermenigvuldig eers om afkapping te voorkom

foute

tmpG = (G * s) / stappe;

tmpB = (B * s) / stappe;

vir (int i = 0; i

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

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

}

pixels.show ();

vertraging (4);

}

}

Stap 5: Alles saamvoeg:

Alles saamvoeg
Alles saamvoeg

U kan net al u drade aan u broodbord of 'n PVC koppel, dit is u besluit (ek het gekies om 'n PVC bo -op die arduino te plaas, dit is netjies).

Die volgende stap is om krimpende buise om al die drade te plaas, sodat dit minder gemors is.

As u verkies om 'n PVC te gebruik, moes u nou al alles saamgesoldeer het.

Daarna sit u die neopixelringe aan die buitekant van die bril (maak seker dat die LED's in lyn is met die onderkant) en maak dit vas met 'n bietjie band of gom (ek het band gebruik).

U kan kies om die fsr-sensor met 'n band aan die rek vas te plak, of dit net op u eie laat.

Geniet jou bril:)

Aanbeveel: