Sisukord:
- Samm: vajalikud materjalid ja osad:
- Samm: Neopikseli sõrmused
- Samm: ühendused
- Samm: kood:
- Samm: kõik kokku panemine:
Video: Lõõgastusprillid - ITTT: 5 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
HKU projekt - ITTT (kui see siis see) - Julia Berkouwer, 1B
Kas olete kunagi tundnud stressi ja te lihtsalt ei tea, kuidas ennast rahustada, siis peaksite neid lõõgastusprille proovima! Paned need selga ja sulged silmad, siis mängib hingamismuster. Seda hingamisharjumust järgides läheb hingamisrütm 6 korda minutis sisse ja välja. Seda tehes vabaneb see igapäevasest stressist.
Hingamise intensiivsust saate jälgida ka lülitit kasutades, kasutades fsr-andurit.
Selle toturialiga juhendan teid samm -sammult oma lõõgastusprillide ehitamisel.
Samm: vajalikud materjalid ja osad:
Materjalid:
1x arduino uno;
1xbreadboard või PCV;
3x 10k takistid
Juhtmed (eelistatavalt erinevat värvi, et oleks lihtsam öelda, millised asjad lähevad maapinnale ja millised erinevatesse tihvtidesse jne);
Mõned termokahanevad torud;
2x NeoPixel Ring - 16 x 5050 RGB LED koos integreeritud draiveritega;
1x lüliti;
1x FSR andur;
1x SteamPunk prillid (neid saab osta peopoest, neid on lihtne kasutada, sest neopiksellrõngas sobib ideaalselt prillidele. Proovite alati kasutada teisi prille või luua oma.);
1x mingisugune (elastik) riba, mida rinnale panna.
Tööriistad: sülearvuti
-Jootekolb
-Arduino IDE tarkvara
Minu pvc -s näete kahte nuppu ja lülitit, lülitiga ühendamiseks kasutan ainult vasakpoolset nuppu, pildi paremal asuvat teist nuppu ei kasuta. Panin nupud pvc peale, enne kui sain aru, et mul pole neid vaja ja pidin kasutama lülitit.
Siin näete pilte kõigest, mida ma kasutasin:
Samm: Neopikseli sõrmused
Valge juhe on ühendatud neopikselrõnga tagaküljel oleva maaga.
Oranž juhe on ühendatud 5V -ga.
Ja pruun juhe on ühendatud sisendandmetega
Samm: ühendused
Selline nägi välja minu leivalaud prototüübi koostamise ajal, saate seda viitena kasutada.
Samuti tegin vaid ühe nupuga juhtmestiku paigutuse, milline see peaks välja nägema.
Samm: kood:
Tõenäoliselt pole see kõige tõhusam kood, kuid see töötab minu jaoks. Väljakutse ja proovige seda tõhusamaks muuta; P.
#kaasake
// Milline
Arduino tihvt on ühendatud NeoPixelitega?
#defineeri
PIN -kood 6
// Milline
Arduino tihvt on nupuga ühendatud
#defineeri
NUPP_PIN 9
// Kuidas
paljud NeoPikslid on Arduino külge kinnitatud?
#defineeri
NUMPIXELID 16
// Millal
seadistame NeoPixeli raamatukogu, ütleme sellele, mitu pikslit ja millist tihvti signaalide saatmiseks kasutada.
// Märge
et vanemate NeoPixeli ribade puhul peate võib-olla muutma kolmandat parameetrit-vaadake kiudtesti
//
näide võimalike väärtuste kohta lisateabe saamiseks.
Adafruit_NeoPixel
pikslit = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
vaheajal
= 1; // viivitus2
int
paus2 = 80; // läheb alla, kui fsr on kasutusel
int
paus3 = 150; // lõpetamine, kui fsr on kasutusel
int
delayval = 4; // viivitus1
int
fsrPin = 0; // FSR ja 10K rippmenüü on ühendatud a0 -ga
int
fsrReading;
tühine
setup () {
pinMode (BUTTON_PIN, INPUT);
Seriaalne algus (9600);
pixels.begin (); // See initsialiseerib
NeoPixeli raamatukogu.
pixels.show ();
}
bool
nupule vajutatud (int pin) {
return digitalRead (pin);
}
tühine
loop () {// loeb, kas tihvti sisend on tõene või vale
fsrReading = analogRead (fsrPin);
Serial.print ("Analooglugemine =");
Serial.print (fsrReading);
if (nupule vajutatud (BUTTON_PIN) == tõsi) {
// valgusefekt fsr -anduri kasutamisel
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 ();
viivitus (paus3);
}
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 ();
viivitus (paus2);
}
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 ();
viivitus (paus3);
}
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 ();
viivitus (paus2);
}
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 ();
viivitus (paus3);
}
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 ();
viivitus (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 ();
viivitus (paus3);
}
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 ();
viivitus (20);
}
}
muu {
hingata_sinine (20, 100, 0, 1, 1); // normaalne
mõju
}
}
// Paus
= viivitus üleminekute vahel
// Sammud
= sammude arv
R, G, B = täis-RGB väärtused
// De void hingata on voor het licht effect als de
fsrsensor niet gebruikt wordt. Deze void wordt in de void loop () weer aangeroepen.
tühi hingamine_sinine (int paus, int sammud, bait R, bait G, bait B) {
int
tmpR, tmpG, tmpB; // Temp väärtused
// Tuhmuma
jaoks (int s = 1; s <= sammud; s ++) {
tmpR = (R * s) /
sammud; // Esmalt korrutage, et vältida kärpimisvigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0;
ipixels.setPixelColor (0, tmpR, tmpG+1, tmpB);
pixels.setPixelColor (15, tmpR, tmpG+1, tmpB);
}
pixels.show ();
viivitus (4);
}
// Tuhmuma
jaoks (int s = 1; s <= sammud; s ++) {
tmpR = (R * s) /
sammud; // Esmalt korrutage, et vältida kärpimisvigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0;
ipixels.setPixelColor (1, tmpR, tmpG+1, tmpB);pixels.setPixelColor (14, tmpR, tmpG+1, tmpB);
}
pixels.show ();
viivitus (4);
}
// Tuhmuma
jaoks (int s = 1; s <= sammud; s ++) {
tmpR = (R * s) /
sammud; // Esmalt korrutage, et vältida kärpimisvigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0;
ipixels.setPixelColor (2, tmpR, tmpG+2, tmpB);pixels.setPixelColor (13, tmpR, tmpG+2, tmpB);
}
pixels.show ();
viivitus (3,5);
}
// Tuhmuma
jaoks (int s = 1; s <= sammud; s ++) {
tmpR = (R * s) /
sammud; // Esmalt korrutage, et vältida kärpimisvigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0;
ipixels.setPixelColor (3, tmpR, tmpG+3, tmpB+5);pixels.setPixelColor (12, tmpR, tmpG+3, tmpB+5);
}
pixels.show ();
viivitus (3);
}
jaoks (int i = 0;
ipixels.setPixelColor (0, 0, 0, 0);pixels.setPixelColor (15, 0, 0, 0);
}
// Tuhmuma
jaoks (int s = 1; s <= sammud; s ++) {
tmpR = (R * s) /
sammud; // Esmalt korrutage, et vältida kärpimisvigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0;
i
pixels.setPixelColor (4, tmpR, tmpG+3, tmpB+15);pixels.setPixelColor (11, tmpR, tmpG+3, tmpB+15);
}
pixels.show ();
viivitus (3);
}
// Tuhmuma
jaoks (int s = 1; s <= sammud; s ++) {
tmpR = (R * s) /
sammud; // Esmalt korrutage, et vältida kärpimisvigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0;
ipixels.setPixelColor (5, tmpR, tmpG+4, tmpB+20);pixels.setPixelColor (10, tmpR, tmpG+4, tmpB+20);
}
pixels.show ();
viivitus (2);
}
jaoks (int i = 0;
ipixels.setPixelColor (1, 0, 0, 0);
pixels.setPixelColor (14, 0, 0, 0);
}
// Tuhmuma
jaoks (int s = 1; s <= sammud; s ++) {
tmpR = (R * s) /
sammud; // Esmalt korrutage, et vältida kärpimisvigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0;
ipixels.setPixelColor (6, tmpR, tmpG+2, tmpB+40);
pixels.setPixelColor (9, tmpR, tmpG+2, tmpB+40);
}
pixels.show ();
viivitus (viivitus);
}
jaoks (int i = 0;
ipixels.setPixelColor (2, 0, 0, 0);pixels.setPixelColor (13, 0, 0, 0);
}
// Tuhmuma
jaoks (int s = 1; s <= sammud; s ++) {
tmpR = (R * s) /
sammud; // Esmalt korrutage, et vältida kärpimisvigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0;
i
pixels.setPixelColor (7, tmpR, tmpG, tmpB+44);pixels.setPixelColor (8, tmpR, tmpG, tmpB+44);
}
pixels.show ();
viivitus (viivitus);
}
// Tuhmuma
jaoks (int s = sammud; s> 0; s--) {
tmpR = (R * s) / sammu; // Kärpimise vältimiseks korrutage kõigepealt
vigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0; i
pixels.setPixelColor (7, tmpR, tmpG, tmpB);
pixels.setPixelColor (8, tmpR, tmpG, tmpB);
}
pixels.show ();
viivitus (1);
}
// Tuhmuma
jaoks (int s = sammud; s> 0; s--) {
tmpR = (R * s) / sammu; // Kärpimise vältimiseks korrutage kõigepealt
vigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0; i
pixels.setPixelColor (6, tmpR, tmpG, tmpB);
pixels.setPixelColor (9, tmpR, tmpG, tmpB);
}
pixels.show ();
viivitus (1);
}
// Tuhmuma
jaoks (int s = sammud; s> 0; s--) {
tmpR = (R * s) / sammu; // Kärpimise vältimiseks korrutage kõigepealt
vigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0; i
pixels.setPixelColor (5, tmpR, tmpG, tmpB);
pixels.setPixelColor (10, tmpR, tmpG, tmpB);
}
pixels.show ();
viivitus (2);
}
// Tuhmuma
jaoks (int s = sammud; s> 0; s--) {
tmpR = (R * s) / sammu; // Kärpimise vältimiseks korrutage kõigepealt
vigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0; i
pixels.setPixelColor (4, tmpR, tmpG, tmpB);
pixels.setPixelColor (11, tmpR, tmpG, tmpB);
}
pixels.show ();
viivitus (2);
}
// Tuhmuma
jaoks (int s = sammud; s> 0; s--) {
tmpR = (R * s) / sammu; // Kärpimise vältimiseks korrutage kõigepealt
vigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0; i
pixels.setPixelColor (3, tmpR, tmpG, tmpB);
pixels.setPixelColor (12, tmpR, tmpG, tmpB);
}
pixels.show ();
viivitus (3);
}
// Tuhmuma
jaoks (int s = sammud; s> 0; s--) {
tmpR = (R * s) / sammu; //
Kärpimisvigade vältimiseks korrutage kõigepealt
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0; i
pixels.setPixelColor (2, tmpR, tmpG, tmpB);
pixels.setPixelColor (13, tmpR, tmpG, tmpB);
}
pixels.show ();
viivitus (3);
}
// Tuhmuma
jaoks (int s = sammud; s> 0; s--) {
tmpR = (R * s) / sammu; // Kärpimise vältimiseks korrutage kõigepealt
vigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0; i
pixels.setPixelColor (1, tmpR, tmpG, tmpB);
pixels.setPixelColor (14, tmpR, tmpG, tmpB);
}
pixels.show ();
viivitus (4);
}
// Tuhmuma
jaoks (int s = sammud; s> 0; s--) {
tmpR = (R * s) / sammu; // Kärpimise vältimiseks korrutage kõigepealt
vigu
tmpG = (G * s) / sammu;
tmpB = (B * s) / sammu;
jaoks (int i = 0; i
pixels.setPixelColor (0, tmpR, tmpG, tmpB);
pixels.setPixelColor (15, tmpR, tmpG, tmpB);
}
pixels.show ();
viivitus (4);
}
}
Samm: kõik kokku panemine:
Võite jätta kõik oma juhtmed leivaplaadi või PVC -ga ühendatuks, see on teie otsustada (ma otsustasin panna arduino peale PVC, see on nii kena ja puhas).
Järgmine samm on panna termokahanevad torud ümber kõik juhtmed, nii et see oleks vähem jama.
Kui valisite PVC kasutamise, oleksite pidanud juba kõik jootma.
Pärast seda asetate prillide välisküljele neopikselrõngad (veenduge, et valgusdioodid on tagumikuga joondatud) ja kinnitage need mõne lindi või liimiga (mina kasutasin teipi).
Võite fsr-anduri kleepida kleeplindiga elastse riba külge või jätta see iseenesest välja.
Nautige prille:)
Soovitan:
DIY 37 LED Arduino ruleti mäng: 3 sammu (piltidega)
DIY 37 Leds Arduino rulett Mäng: Rulett on kasiinomäng, mis on nime saanud prantsuse sõna järgi, mis tähendab väikest ratast
Kuidas: Raspberry PI 4 peata (VNC) installimine RPI-pildistaja ja piltidega: 7 sammu (koos piltidega)
Kuidas: Raspberry PI 4 peata (VNC) installimine Rpi-pildistaja ja piltidega: kavatsen seda Rapsberry PI-d kasutada oma blogis hunniku lõbusate projektide jaoks. Vaadake seda julgelt. Tahtsin uuesti oma Raspberry PI kasutamist alustada, kuid mul polnud uues asukohas klaviatuuri ega hiirt. Vaarika seadistamisest oli tükk aega möödas
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Polt - DIY juhtmeta laadimise öökell (6 sammu): 6 sammu (piltidega)
Bolt - DIY juhtmeta laadimise öökell (6 sammu): Induktiivsed laadimised (tuntud ka kui juhtmeta laadimine või juhtmeta laadimine) on traadita jõuülekande tüüp. See kasutab kaasaskantavatele seadmetele elektrit pakkumiseks elektromagnetilist induktsiooni. Kõige tavalisem rakendus on Qi traadita laadimisst
Arvuti demonteerimine lihtsate sammude ja piltidega: 13 sammu (piltidega)
Arvuti demonteerimine lihtsate sammude ja piltidega: see on juhis arvuti demonteerimiseks. Enamik põhikomponente on modulaarsed ja kergesti eemaldatavad. Siiski on oluline, et oleksite selles osas organiseeritud. See aitab vältida osade kaotamist ja ka kokkupanekut