Sadržaj:

Naočare za opuštanje - ITTT: 5 koraka (sa slikama)
Naočare za opuštanje - ITTT: 5 koraka (sa slikama)

Video: Naočare za opuštanje - ITTT: 5 koraka (sa slikama)

Video: Naočare za opuštanje - ITTT: 5 koraka (sa slikama)
Video: САМЫЙ ВКУСНЫЙ СОУС С МЯСОМ/ РЕЦЕПТ ТАВАДУРИ 2024, Juli
Anonim
Naočare za opuštanje - ITTT
Naočare za opuštanje - ITTT
Naočare za opuštanje - ITTT
Naočare za opuštanje - ITTT
Naočare za opuštanje - ITTT
Naočare za opuštanje - ITTT

HKU projekt - ITTT (Ako ovo onda ono) - Julia Berkouwer, 1B

Jeste li se ikada osjećali pod stresom i jednostavno ne znate kako se smiriti, onda biste trebali isprobati ove naočale za opuštanje! Stavite ih i zatvorite oči, a zatim će se igrati obrazac disanja. Prateći ovaj obrazac disanja, vaš disanje će se svesti na udisanje i izdisaj 6 puta u minuti. Time se oslobađate svakodnevnog stresa.

Intenzitet disanja možete pratiti i pritiskom na prekidač pomoću fsr senzora.

Pomoću ovog toturiala vodit ću vas kroz izgradnju vlastitih naočala za opuštanje korak po korak.

Korak 1: Potrebni materijali i dijelovi:

Potrebni materijali i dijelovi
Potrebni materijali i dijelovi
Potrebni materijali i dijelovi
Potrebni materijali i dijelovi
Potrebni materijali i dijelovi
Potrebni materijali i dijelovi

Materijali:

1x arduino uno;

1xbreadboard ili PCV;

3x 10k otpornici

Žice (po mogućnosti različite boje, tako da je lakše reći koje stvari idu u zemlju, a koje na različite igle itd.);

Neke cijevi za skupljanje topline;

2x NeoPixel prsten - 16 x 5050 RGB LED sa integrisanim upravljačkim programima;

1x prekidač;

1x FSR senzor;

1x SteamPunk naočale (Ove možete kupiti u party shopu, jednostavne su za upotrebu jer se prsten od neopiksela savršeno uklapa na čaše. Uvijek pokušavate koristiti druge naočare ili stvoriti vlastite.);

1x neka vrsta (elastične) trake koju ćete staviti oko grudi.

Alati: -Laptop

-Lemilica

-Arduino IDE softver

Vidjet ćete dva gumba i prekidač na mom pvc -u, koristim samo lijevo dugme za spajanje na prekidač, ne koristim drugo dugme desno od slike. Stavio sam dugmad na pvc prije nego što sam shvatio da mi ne trebaju i da moram umjesto toga koristiti prekidač.

Ispod ćete vidjeti slike svega što sam koristio:

Korak 2: Neopixel prstenovi

Neopixel prstenovi
Neopixel prstenovi

Bijela žica je spojena na uzemljenje na stražnjoj strani neopikselnog prstena.

Narančasta žica spojena je na 5V.

Smeđa žica je spojena na ulaz podataka

Korak 3: Veze

Connections
Connections
Connections
Connections

Ovako je izgledala moja ploča tijekom izrade prototipa, možete je koristiti kao referencu.

Napravio sam i raspored ožičenja kako bi trebalo izgledati sa samo jednim gumbom.

Korak 4: Kôd:

To vjerojatno nije najefikasniji kod, ali radi za mene. Izazovite sebe i pokušajte je učiniti efikasnijom; P

#include

// Koji

pin na Arduinu je spojen na NeoPixels?

#define

PIN 6

// Koji

pin na Arduinu povezan je s gumbom

#define

BUTTON_PIN 9

// Kako

mnogi NeoPixeli su priključeni na Arduino?

#define

NUMPIXELS 16

// Kada

postavljamo NeoPixel biblioteku, govorimo joj koliko piksela i koji pin treba koristiti za slanje signala.

// Bilješka

da ćete za starije NeoPixel trake možda morati promijeniti treći parametar-pogledajte strandtest

//

primjer za više informacija o mogućim vrijednostima.

Adafruit_NeoPixel

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

int pause

= 1; // delay2

int

pauza2 = 80; // pada prema dolje kada se koristi fsr

int

pauza3 = 150; // raditi gore kada se koristi fsr

int

delayval = 4; // delay1

int

fsrPin = 0; // FSR i 10K padajući izbornik povezani su s a0

int

fsrReading;

void

postaviti() {

pinMode (BUTTON_PIN, INPUT);

Serial.begin (9600);

pixels.begin (); // Ovo inicijalizira

Biblioteka NeoPixel.

pixels.show ();

}

bool

pritisnuto dugme (int pin) {

return digitalRead (pin);

}

void

loop () {// čita da li je pin ulaz tačan ili netačan

fsrReading = analogRead (fsrPin);

Serial.print ("Analogno čitanje =");

Serial.print (fsrReading);

if (pritisnuto dugme (BUTTON_PIN) == tačno) {

// svjetlosni efekt pri upotrebi fsr senzora

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

kašnjenje (pauza3);

}

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

kašnjenje (pauza2);

}

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

kašnjenje (pauza3);

}

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

kašnjenje (pauza2);

}

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

kašnjenje (pauza3);

}

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

kašnjenje (40);

}

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

kašnjenje (pauza3);

}

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

kašnjenje (20);

}

}

else {

udahni_plavo (20, 100, 0, 1, 1); // normalno

efekat

}

}

// Pauza

= kašnjenje između prijelaza

// Koraci

= broj koraka

// R, G, B = Potpune RGB vrijednosti

// De void dishe is voor het licht effect als de

fsrsensor niet gebruikt wordt. Deze void wordt u de void loop () je bolje prilagođeno.

voidreathe_blue (int pauza, int koraci, bajt R, bajt G, bajt B) {

int

tmpR, tmpG, tmpB; // Temp vrijednosti

// Fade up

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

tmpR = (R * s) /

koraci; // Najprije se pomnožite kako biste izbjegli greške pri skraćivanju

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0;

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

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

}

pixels.show ();

kašnjenje (4);

}

// Fade up

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

tmpR = (R * s) /

koraci; // Najprije se pomnožite kako biste izbjegli greške pri skraćivanju

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0;

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

}

pixels.show ();

kašnjenje (4);

}

// Fade up

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

tmpR = (R * s) /

koraci; // Najprije se pomnožite kako biste izbjegli greške pri skraćivanju

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0;

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

}

pixels.show ();

kašnjenje (3,5);

}

// Fade up

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

tmpR = (R * s) /

koraci; // Najprije se pomnožite kako biste izbjegli greške pri skraćivanju

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0;

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

}

pixels.show ();

kašnjenje (3);

}

za (int i = 0;

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

}

// Fade up

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

tmpR = (R * s) /

koraci; // Najprije se pomnožite kako biste izbjegli greške pri skraćivanju

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0;

i

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

}

pixels.show ();

kašnjenje (3);

}

// Fade up

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

tmpR = (R * s) /

koraci; // Najprije se pomnožite kako biste izbjegli greške pri skraćivanju

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0;

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

}

pixels.show ();

kašnjenje (2);

}

za (int i = 0;

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

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

}

// Fade up

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

tmpR = (R * s) /

koraci; // Najprije se pomnožite kako biste izbjegli greške pri skraćivanju

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0;

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

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

}

pixels.show ();

kašnjenje (delayval);

}

za (int i = 0;

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

}

// Fade up

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

tmpR = (R * s) /

koraci; // Najprije se pomnožite kako biste izbjegli greške pri skraćivanju

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0;

i

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

}

pixels.show ();

kašnjenje (delayval);

}

// Smanjivanje

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

tmpR = (R * s) / koraci; // Najprije se pomnožite kako biste izbjegli skraćivanje

greške

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0; i

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

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

}

pixels.show ();

kašnjenje (1);

}

// Smanjivanje

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

tmpR = (R * s) / koraci; // Najprije se pomnožite kako biste izbjegli skraćivanje

greške

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0; i

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

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

}

pixels.show ();

kašnjenje (1);

}

// Smanjivanje

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

tmpR = (R * s) / koraci; // Najprije se pomnožite kako biste izbjegli skraćivanje

greške

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0; i

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

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

}

pixels.show ();

kašnjenje (2);

}

// Smanjivanje

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

tmpR = (R * s) / koraci; // Najprije se pomnožite kako biste izbjegli skraćivanje

greške

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0; i

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

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

}

pixels.show ();

kašnjenje (2);

}

// Smanjivanje

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

tmpR = (R * s) / koraci; // Najprije se pomnožite kako biste izbjegli skraćivanje

greške

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0; i

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

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

}

pixels.show ();

kašnjenje (3);

}

// Smanjivanje

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

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

Prvo pomnožite da biste izbjegli greške pri skraćivanju

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0; i

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

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

}

pixels.show ();

kašnjenje (3);

}

// Smanjivanje

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

tmpR = (R * s) / koraci; // Najprije se pomnožite kako biste izbjegli skraćivanje

greške

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0; i

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

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

}

pixels.show ();

kašnjenje (4);

}

// Smanjivanje

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

tmpR = (R * s) / koraci; // Najprije se pomnožite kako biste izbjegli skraćivanje

greške

tmpG = (G * s) / koraci;

tmpB = (B * s) / koraci;

za (int i = 0; i

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

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

}

pixels.show ();

kašnjenje (4);

}

}

Korak 5: Spajanje svega:

Spajanje svega
Spajanje svega

Mogli ste jednostavno ostaviti sve svoje žice spojene na vašu matičnu ploču ili PVC, to je na vama (ja sam odlučio staviti PVC na vrh arduina, tako je lijepo i uredno).

Sljedeći korak je staviti cijevi za skupljanje topline oko svih žica tako da bude manje nereda.

Ako ste odabrali korištenje PVC -a, tada ste već trebali sve zalemiti.

Nakon toga stavite neopikselne prstenove na vanjsku stranu naočala (provjerite jesu li LED diode poravnane na dnu) i pričvrstite ih na mjesto nekom trakom ili ljepilom (ja sam koristio traku).

Možete izabrati da zalijepite fsr-senzor na elastičnu traku nekom vrpcom ili ga samo izostavite.

Uživajte u naočarima:)

Preporučuje se: