Indholdsfortegnelse:
- Trin 1: Nødvendige materialer og dele:
- Trin 2: Neopixel ringe
- Trin 3: Forbindelser
- Trin 4: Koden:
- Trin 5: Sæt alt sammen:
Video: Afslapningsbriller - ITTT: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
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:
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
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
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:
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:
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: 7 trin (med billeder)
Sådan gør du: Installation af Raspberry PI 4 Headless (VNC) med Rpi-imager og billeder: Jeg planlægger at bruge denne Rapsberry PI i en masse sjove projekter tilbage i min blog. Tjek det gerne ud. Jeg ville tilbage til at bruge min Raspberry PI, men jeg havde ikke et tastatur eller en mus på min nye placering. Det var et stykke tid siden jeg konfigurerede en hindbær
Arduino Halloween Edition - Pop -out -skærm med zombier (trin med billeder): 6 trin
Arduino Halloween Edition - Zombies Pop -out -skærm (trin med billeder): Vil du skræmme dine venner og lave skrigende støj i Halloween? Eller vil du bare lave en god sjov? Denne pop-out-skærm fra Zombies kan gøre det! I denne Instructable vil jeg lære dig, hvordan du nemt laver jump-out zombier ved hjælp af Arduino. HC-SR0
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
Ciclop 3d Scanner My Way Trin for trin: 16 trin (med billeder)
Ciclop 3d Scanner My Way Step by Step: Hej alle sammen, jeg kommer til at indse den berømte Ciclop 3D -scanner.Alle trin, der er godt forklaret på det originale projekt, er ikke til stede.Jeg lavede nogle rettelser for at forenkle processen, først Jeg udskriver basen, og end jeg genstarter printkortet, men fortsæt
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: 7 trin (med billeder)
Sådan styrer du husholdningsapparater med fjernsyn med fjernbetjening med timerfunktion: Selv efter 25 års introduktion til forbrugermarkedet er infrarød kommunikation stadig meget relevant i de seneste dage. Uanset om det er dit 55 tommer 4K -fjernsyn eller dit billydsystem, har alt brug for en IR -fjernbetjening for at reagere på vores