Talaan ng mga Nilalaman:
- Hakbang 1: Kailangan ng Mga Materyales at Bahagi:
- Hakbang 2: Mga Neopixel Rings
- Hakbang 3: Mga Koneksyon
- Hakbang 4: Ang Code:
- Hakbang 5: Pinagsasama ang Lahat:
Video: Relaxation Goggles - ITTT: 5 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
HKU Project - ITTT (Kung Pagkatapos Ito) - Julia Berkouwer, 1B
Naranasan mo na bang ma-stress at hindi mo lang alam kung paano pakalmahin ang iyong sarili, dapat mong subukan ang mga salaming ito sa pagpapahinga! Inilagay mo ang mga ito at nakapikit, pagkatapos ay maglalaro ang isang pattern sa paghinga. Sa pamamagitan ng pagsunod sa pattern ng paghinga na ito ang iyong paghinga rythem ay bababa sa paghinga sa loob at labas ng 6 beses sa isang minuto. Ang paggawa nito ay nakakagaan ang pang-araw-araw na stress.
Maaari mo ring subaybayan ang iyong intensity ng paghinga sa pamamagitan ng pag-flip sa isang switch, gamit ang isang fsr-sensor.
Gamit ang toturial na ito ay gagabay ako sa iyo sa pamamagitan ng pagbuo ng iyong sariling mga salaming pang-relax na hakbang-hakbang.
Hakbang 1: Kailangan ng Mga Materyales at Bahagi:
Mga Materyales:
1x arduino uno;
1xbreadboard o PCV;
3x 10k resistors
Mga Wires (Mas mabuti ang magkakaibang mga kulay kaya mas madaling sabihin kung aling mga bagay ang pupunta sa lupa at kung alin ang pupunta sa iba't ibang mga pin, atbp.);
Ilang mga init na lumiliit na tubo;
2x NeoPixel Ring - 16 x 5050 RGB LED na may Integrated Drivers;
1x switch;
1x FSR sensor;
1x SteamPunk goggles (Maaari mong bilhin ang mga ito sa isang party shop, madali silang magamit dahil ang neopixel ring ay ganap na umaangkop sa mga baso. Palagi mong sinubukan ang paggamit ng iba pang mga salaming de kolor o lumikha ng iyong sarili.);
1x ilang uri ng isang (elastick) band upang ilagay sa paligid ng iyong dibdib.
Mga tool: -L laptop
-Panghinang
-Arduino IDE software
Makakakita ka ng dalawang mga pindutan at isang switch sa aking pvc, ang kaliwang pindutan lamang ang ginagamit ko upang ikonekta ito sa switch, hindi ko ginagamit ang pangalawang pindutan sa kanan ng larawan. Inilagay ko ang mga pindutan sa pvc bago napagtanto na hindi ko kailangan ang mga ito at kailangan kong gumamit ng isang switch sa halip.
Sa ibaba dito makikita mo ang mga larawan ng lahat ng ginamit ko:
Hakbang 2: Mga Neopixel Rings
Ang puting kawad ay konektado sa lupa sa likuran ng singsing na neopixel.
Ang orange wire ay konektado sa 5V.
At ang brown wire ay konektado sa input ng data
Hakbang 3: Mga Koneksyon
Ito ang hitsura ng aking breadboard habang nagprotipo, maaari mo itong magamit bilang isang sanggunian.
Gumawa rin ako ng isang layout ng mga kable ng kung ano ito ay dapat magmukhang sa isang pindutan lamang.
Hakbang 4: Ang Code:
Marahil ay hindi ito ang pinaka mahusay na code, ngunit gumagana ito para sa akin. Challange ang iyong sarili at subukang gawin itong mas mahusay; P
# isama
// Alin
ang pin sa Arduino ay konektado sa NeoPixels?
# tukuyin
PIN 6
// Alin
ang pin sa Arduino ay konektado sa pindutan
# tukuyin
BUTTON_PIN 9
// Paano
maraming mga NeoPixel ang nakakabit sa Arduino?
# tukuyin
NUMPIXELS 16
// Kailan
inaayos namin ang NeoPixel library, sasabihin namin sa ito kung gaano karaming mga pixel, at aling pin ang gagamitin upang magpadala ng mga signal.
// Tandaan
na para sa mas matandang NeoPixel strips maaaring kailanganin mong baguhin ang pangatlong parameter - tingnan ang strandtest
//
halimbawa para sa karagdagang impormasyon tungkol sa mga posibleng halaga.
Adafruit_NeoPixel
mga pixel = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int pause
= 1; // pagkaantala2
int
pause2 = 80; // pagbaba kapag fsr ang ginagamit
int
pause3 = 150; // paggawa ng up kapag fsr ay ginagamit
int
pagkaantala = 4; // pagkaantala1
int
fsrPin = 0; // ang FSR at 10K pulldown ay konektado sa a0
int
fsrReading;
walang bisa
setup () {
pinMode (BUTTON_PIN, INPUT);
Serial.begin (9600);
pix.begin (); // Pinasimulan nito ang
Aklatan ng NeoPixel.
pix.show ();
}
bool
naka-button (int pin) {
ibalik ang digitalRead (pin);
}
walang bisa
loop () {// binabasa kung ang pin input ay totoo o hindi
fsrReading = analogRead (fsrPin);
Serial.print ("Analog reading =");
Serial.print (fsrReading);
kung (buttonpressed (BUTTON_PIN) == totoo) {
// light effect kapag gumagamit ng fsr sensor
kung (fsrReading> 50) {
pix.setPixelColor (0, 1, 0, 1);
pixel.setPixelColor (15, 1, 0, 1);
pix.setPixelColor (1, 1, 0, 1);
pixel.setPixelColor (14, 1, 0, 1);
pix.show ();
antala (i-pause3);
}
kung (fsrReading <52) {
pix.setPixelColor (0, 0, 0, 0);
pix.setPixelColor (15, 0, 0, 0);
pix.setPixelColor (1, 0, 0, 0);
pix.setPixelColor (14, 0, 0, 0);
pix.show ();
antala (pause2);
}
kung (fsrReading> 57) {
pixel.setPixelColor (2, 1, 0, 1);
pix.setPixelColor (13, 1, 0, 1);
pix.setPixelColor (3, 1, 0, 1);
pixel.setPixelColor (12, 1, 0, 1);
pix.show ();
antala (i-pause3);
}
kung (fsrReading <59) {
pix.setPixelColor (2, 0, 0, 0);
pix.setPixelColor (13, 0, 0, 0);
pix.setPixelColor (3, 0, 0, 0);
pix.setPixelColor (12, 0, 0, 0);
pix.show ();
antala (pause2);
}
kung (fsrReading> 65) {
pixel.setPixelColor (4, 1, 0, 1);
pixel.setPixelColor (11, 1, 0, 1);
pixel.setPixelColor (5, 1, 0, 1);
pix.setPixelColor (10, 1, 0, 1);
pix.show ();
antala (i-pause3);
}
kung (fsrReading <67) {
pix.setPixelColor (4, 0, 0, 0);
pix.setPixelColor (11, 0, 0, 0);
pix.setPixelColor (5, 0, 0, 0);
pix.setPixelColor (10, 0, 0, 0);
pix.show ();
pagkaantala (40);
}
kung (fsrReading> 79) {
pixel.setPixelColor (6, 1, 0, 1);
pixel.setPixelColor (9, 1, 0, 1);
pixel.setPixelColor (7, 1, 0, 1);
pixel.setPixelColor (8, 1, 0, 1);
pix.show ();
antala (i-pause3);
}
kung (fsrReading <85) {
pix.setPixelColor (6, 0, 0, 0);
pix.setPixelColor (9, 0, 0, 0);
pix.setPixelColor (7, 0, 0, 0);
pix.setPixelColor (8, 0, 0, 0);
pix.show ();
pagkaantala (20);
}
}
iba pa {
huminga_blue (20, 100, 0, 1, 1); // normal
epekto
}
}
// I-pause
= pagkaantala sa pagitan ng mga paglilipat
// Mga Hakbang
= bilang ng mga hakbang
// R, G, B = Mga buong halaga ng RGB
// De void respiratory is voor het licht effect als de
fsrsensor niet gebruikt wordt. Deze void wordt in de void loop () weer aangeroepen.
void respiratory_blue (int pause, int steps, byte R, byte G, byte B) {
int
tmpR, tmpG, tmpB; // Mga halagang temp
// Fade up
para sa (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
mga hakbang; // Multiply muna upang maiwasan ang mga error sa pagputol
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0;
akopix.setPixelColor (0, tmpR, tmpG + 1, tmpB);
pixel.setPixelColor (15, tmpR, tmpG + 1, tmpB);
}
pix.show ();
antala (4);
}
// Fade up
para sa (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
mga hakbang; // Multiply muna upang maiwasan ang mga error sa pagputol
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0;
akopix.setPixelColor (1, tmpR, tmpG + 1, tmpB);pixel.setPixelColor (14, tmpR, tmpG + 1, tmpB);
}
pix.show ();
antala (4);
}
// Fade up
para sa (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
mga hakbang; // Multiply muna upang maiwasan ang mga error sa pagputol
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0;
akopixel.setPixelColor (2, tmpR, tmpG + 2, tmpB);pixel.setPixelColor (13, tmpR, tmpG + 2, tmpB);
}
pix.show ();
pagkaantala (3.5);
}
// Fade up
para sa (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
mga hakbang; // Multiply muna upang maiwasan ang mga error sa pagputol
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0;
akopixel.setPixelColor (3, tmpR, tmpG + 3, tmpB + 5);pixel.setPixelColor (12, tmpR, tmpG + 3, tmpB + 5);
}
pix.show ();
antala (3);
}
para sa (int i = 0;
akopix.setPixelColor (0, 0, 0, 0);pix.setPixelColor (15, 0, 0, 0);
}
// Fade up
para sa (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
mga hakbang; // Multiply muna upang maiwasan ang mga error sa pagputol
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0;
ako
pixel.setPixelColor (4, tmpR, tmpG + 3, tmpB + 15);pixel.setPixelColor (11, tmpR, tmpG + 3, tmpB + 15);
}
pix.show ();
antala (3);
}
// Fade up
para sa (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
mga hakbang; // Multiply muna upang maiwasan ang mga error sa pagputol
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0;
akopixel.setPixelColor (5, tmpR, tmpG + 4, tmpB + 20);pixel.setPixelColor (10, tmpR, tmpG + 4, tmpB + 20);
}
pix.show ();
antala (2);
}
para sa (int i = 0;
akopix.setPixelColor (1, 0, 0, 0);
pix.setPixelColor (14, 0, 0, 0);
}
// Fade up
para sa (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
mga hakbang; // Multiply muna upang maiwasan ang mga error sa pagputol
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0;
akopixel.setPixelColor (6, tmpR, tmpG + 2, tmpB + 40);
pixel.setPixelColor (9, tmpR, tmpG + 2, tmpB + 40);
}
pix.show ();
pagkaantala (pagkaantala);
}
para sa (int i = 0;
akopix.setPixelColor (2, 0, 0, 0);pix.setPixelColor (13, 0, 0, 0);
}
// Fade up
para sa (int s = 1; s <= steps; s ++) {
tmpR = (R * s) /
mga hakbang; // Multiply muna upang maiwasan ang mga error sa pagputol
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0;
ako
pixel.setPixelColor (7, tmpR, tmpG, tmpB + 44);pixel.setPixelColor (8, tmpR, tmpG, tmpB + 44);
}
pix.show ();
pagkaantala (pagkaantala);
}
// Fade down
para sa (int s = steps; s> 0; s--) {
tmpR = (R * s) / mga hakbang; // Multiply muna upang maiwasan ang truncation
mga pagkakamali
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0; i
pix.setPixelColor (7, tmpR, tmpG, tmpB);
pix.setPixelColor (8, tmpR, tmpG, tmpB);
}
pix.show ();
antala (1);
}
// Fade down
para sa (int s = steps; s> 0; s--) {
tmpR = (R * s) / mga hakbang; // Multiply muna upang maiwasan ang truncation
mga pagkakamali
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0; i
pix.setPixelColor (6, tmpR, tmpG, tmpB);
pix.setPixelColor (9, tmpR, tmpG, tmpB);
}
pix.show ();
antala (1);
}
// Fade down
para sa (int s = steps; s> 0; s--) {
tmpR = (R * s) / mga hakbang; // Multiply muna upang maiwasan ang truncation
mga pagkakamali
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0; i
pix.setPixelColor (5, tmpR, tmpG, tmpB);
pix.setPixelColor (10, tmpR, tmpG, tmpB);
}
pix.show ();
antala (2);
}
// Fade down
para sa (int s = steps; s> 0; s--) {
tmpR = (R * s) / mga hakbang; // Multiply muna upang maiwasan ang truncation
mga pagkakamali
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0; i
pix.setPixelColor (4, tmpR, tmpG, tmpB);
pix.setPixelColor (11, tmpR, tmpG, tmpB);
}
pix.show ();
antala (2);
}
// Fade down
para sa (int s = steps; s> 0; s--) {
tmpR = (R * s) / mga hakbang; // Multiply muna upang maiwasan ang truncation
mga pagkakamali
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0; i
pix.setPixelColor (3, tmpR, tmpG, tmpB);
pix.setPixelColor (12, tmpR, tmpG, tmpB);
}
pix.show ();
antala (3);
}
// Fade down
para sa (int s = steps; s> 0; s--) {
tmpR = (R * s) / mga hakbang; //
I-multiply muna upang maiwasan ang mga error sa pagputol
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0; i
pix.setPixelColor (2, tmpR, tmpG, tmpB);
pix.setPixelColor (13, tmpR, tmpG, tmpB);
}
pix.show ();
antala (3);
}
// Fade down
para sa (int s = steps; s> 0; s--) {
tmpR = (R * s) / mga hakbang; // Multiply muna upang maiwasan ang truncation
mga pagkakamali
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0; i
pix.setPixelColor (1, tmpR, tmpG, tmpB);
pix.setPixelColor (14, tmpR, tmpG, tmpB);
}
pix.show ();
antala (4);
}
// Fade down
para sa (int s = steps; s> 0; s--) {
tmpR = (R * s) / mga hakbang; // Multiply muna upang maiwasan ang truncation
mga pagkakamali
tmpG = (G * s) / mga hakbang;
tmpB = (B * s) / mga hakbang;
para sa (int i = 0; i
pix.setPixelColor (0, tmpR, tmpG, tmpB);
pix.setPixelColor (15, tmpR, tmpG, tmpB);
}
pix.show ();
antala (4);
}
}
Hakbang 5: Pinagsasama ang Lahat:
Iiwan mo lang ang lahat ng iyong mga wire na konektado sa iyong breadboard o isang PVC, nasa iyo (pinili kong maglagay ng isang PVC sa tuktok ng arduino na maganda at maayos sa ganoong paraan).
Ang susunod na hakbang ay maglagay ng mga tubong nagpapaliit ng init sa paligid ng lahat ng mga wire upang ito ay mas mababa sa gulo.
Kung pinili mo na gumamit ng isang PVC kung gayon dapat mong nahinang ang lahat nang magkasama sa ngayon.
Pagkatapos nito ay inilalagay mo ang mga singsing na neopixel sa labas ng mga salaming de kolor (tiyakin na ang mga leds ay nakahanay sa butil) at i-secure ang mga ito sa lugar na may ilang mga tape o pandikit (Gumamit ako ng tape).
Maaari mong piliing idikit ang fsr-sensor sa nababanat na banda na may ilang tape o iwanan lamang ito sa sarili.
Masiyahan sa iyong mga salaming de kolor:)
Inirerekumendang:
Mga Night Vision Goggles para sa Google Cardboard: 10 Hakbang (na may Mga Larawan)
Night Vision Goggles para sa Google Cardboard: Disclaimer: Ang paggamit ng aparatong ito ay inilaan para sa aliwan, edukasyon, at pang-agham lamang; hindi para sa tiktik at / o pagsubaybay. Ang " spy gadget " ang mga tampok ay naidagdag sa app para lamang sa kasiyahan at hindi maghatid ng praktikal na layunin para sa
DIY - RGB Goggles: 3 Hakbang (na may Mga Larawan)
DIY | RGB Goggles: Hoy! Gumawa ako ng isang RGB Goggles gamit ang WS2812B LEDs at Arduino Nano. Ang mga Goggles ay may maraming mga animasyon maaari silang makontrol gamit ang isang mobile app. Ang app ay maaaring makipag-usap sa arduino sa pamamagitan ng Bluetooth Module
Kinokontrol na Light Switch ng Eye-Blink Gamit ang Shota Aizawa's Eraser Head Goggles (My Hero Academia): 8 Hakbang (na may Mga Larawan)
Kinokontrol na Light Switch ng Eye-Blink Gamit ang Shota Aizawa's Eraser Head Goggles (My Hero Academia): Kung babasahin mo ang aking hero academia manga o manuod ng anime ng aking hero hero, dapat mong malaman ang isang charracter na nagngangalang shota aizawa. Si Shota Aizawa na kilala rin bilang Eraser Head, ay isang Pro Hero at guro sa homeroom ng Class 1-A ng U.A. Binigyan siya ng Quota ng Shota
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: 7 Mga Hakbang (na may Mga Larawan)
Pag-hack sa TV Tuner upang Basahin ang Mga Larawan sa Daigdig Mula sa Mga Satellite: Mayroong maraming mga satellite sa itaas ng aming mga ulo. Alam mo ba, na ang paggamit lamang ng Iyong computer, TV Tuner at simpleng DIY antena Maaari mong matanggap ang mga pagpapadala mula sa kanila? Halimbawa ng mga real time na larawan ng mundo. Ipapakita ko sa iyo kung paano. Kakailanganin mo ang: - 2 w
DIY Raspberry Pi VR Goggles: 9 Hakbang (na may Mga Larawan)
DIY Raspberry Pi VR Goggles: DISCLAIMER! Dahil sa ang katunayan na ang Raspberry Pi Zero ay hindi isang napakalakas na computer, ang frame-rate sa napakababang (Sa ilalim ng 10 fps) na maaaring makasasama sa iyong mga mata. Ang mga VR salaming ito ay binuo gamit ang Raspberry Pi Zero na ginagawang isang