Innholdsfortegnelse:
- Trinn 1: Materialer og deler som trengs:
- Trinn 2: Neopixel ringer
- Trinn 3: Tilkoblinger
- Trinn 4: Koden:
- Trinn 5: Sett alt sammen:
Video: Avslapningsbriller - ITTT: 5 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
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:
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
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
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:
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:
Ta flotte bilder med en iPhone: 9 trinn (med bilder)
Ta flotte bilder med en iPhone: De fleste av oss har med oss en smarttelefon overalt i disse dager, så det er viktig å vite hvordan du bruker smarttelefonkameraet ditt til å ta flotte bilder! Jeg har bare hatt en smarttelefon i et par år, og jeg har elsket å ha et greit kamera for å dokumentere ting jeg
Slik gjør du det: Installere Raspberry PI 4 Headless (VNC) med Rpi-imager og bilder: 7 trinn (med bilder)
Howto: Installere Raspberry PI 4 Headless (VNC) Med Rpi-imager og bilder: Jeg planlegger å bruke denne Rapsberry PI i en haug med morsomme prosjekter tilbake i bloggen min. Sjekk det gjerne ut. Jeg ønsket å begynne å bruke Raspberry PI igjen, men jeg hadde ikke tastatur eller mus på min nye plassering. Det var en stund siden jeg konfigurerte en bringebær
Slik demonterer du en datamaskin med enkle trinn og bilder: 13 trinn (med bilder)
Slik demonterer du en datamaskin med enkle trinn og bilder: Dette er en instruksjon om hvordan du demonterer en PC. De fleste grunnkomponentene er modulære og fjernes lett. Det er imidlertid viktig at du er organisert om det. Dette vil bidra til å hindre deg i å miste deler, og også i å gjøre monteringen igjen
PCB -design med enkle og enkle trinn: 30 trinn (med bilder)
PCB -design med enkle og enkle trinn: HELLO VENNER Den veldig nyttige og enkle opplæringen for de som ønsker å lære PCB -design, kan komme i gang
Hvordan lage en delt skjermvideo med fire trinn: 4 trinn (med bilder)
Hvordan lage en delt skjermvideo med fire trinn: Vi ser ofte en samme person vise i en scene to ganger i et TV -spill. Og så vidt vi vet har ikke skuespilleren en tvillingbror. Vi har også sett at to sangvideoer blir satt på en skjerm for å sammenligne sangferdighetene sine. Dette er kraften til spl