Mundarija:

Dam olish uchun ko'zoynak - ITTT: 5 qadam (rasmlar bilan)
Dam olish uchun ko'zoynak - ITTT: 5 qadam (rasmlar bilan)

Video: Dam olish uchun ko'zoynak - ITTT: 5 qadam (rasmlar bilan)

Video: Dam olish uchun ko'zoynak - ITTT: 5 qadam (rasmlar bilan)
Video: Самаркандлик ам товба 2024, Iyul
Anonim
Yengillik ko'zoynaklari - ITTT
Yengillik ko'zoynaklari - ITTT
Yengillik ko'zoynaklari - ITTT
Yengillik ko'zoynaklari - ITTT
Yengillik ko'zoynaklari - ITTT
Yengillik ko'zoynaklari - ITTT

HKU loyihasi - ITTT (agar shunday bo'lsa) - Yuliya Berkuver, 1B

Hech qachon stressni boshdan kechirganmisiz va o'zingizni qanday tinchlantirishni bilmayapsizmi, demak, siz ko'zoynakni ishlatib ko'ring! Siz ularni kiyib, ko'zingizni yumasiz, keyin nafas olish sxemasi o'ynaydi. Ushbu nafas olish tartibiga rioya qilgan holda, sizning nafas ritmingiz daqiqada 6 marta nafas olish va nafas olish darajasiga tushadi. Shunday qilib, u kunlik stressdan xalos bo'ladi.

Siz fsr-sensor yordamida kalitni bosib, nafas olish intensivligini kuzatishingiz mumkin.

Ushbu toturial yordamida men sizga o'zingizni dam olish ko'zoynaklaringizni bosqichma -bosqich qurishingizni ko'rsataman.

1 -qadam: Kerakli materiallar va ehtiyot qismlar:

Kerakli materiallar va ehtiyot qismlar
Kerakli materiallar va ehtiyot qismlar
Kerakli materiallar va ehtiyot qismlar
Kerakli materiallar va ehtiyot qismlar
Kerakli materiallar va ehtiyot qismlar
Kerakli materiallar va ehtiyot qismlar

Materiallar:

1 marta arduino bilan;

1 ta elektron jadval yoki PCV;

3x 10k rezistorlar

Simlar (Tercihen turli xil ranglar, shuning uchun qaysi narsalar erga ketayotganini, qaysi biri esa har xil pimlarga ketayotganini aniqlash osonroq bo'ladi);

Ba'zi issiqlik qisqaradigan quvurlar;

2x NeoPixel uzuk - o'rnatilgan haydovchilar bilan 16 x 5050 RGB LED;

1x kalit;

1 x FSR sensori;

1x SteamPunk ko'zoynaklari (Siz ularni ziyofat do'konida sotib olishingiz mumkin, ulardan foydalanish oson, chunki neopikselli halqa ko'zoynakka juda mos keladi. Siz har doim boshqa ko'zoynakni ishlatishga harakat qilasiz yoki o'zingiznikini yaratasiz.);

1x ko'kragingizga o'rash uchun (elastik) tasma.

Asboblar:-Laptop

-payvandlash temir

-Arduino IDE dasturi

Siz pvc -da ikkita tugmachani va kalitni ko'rasiz, men uni tugmachaga ulash uchun faqat chap tugmani ishlataman, men rasmning o'ng tomonidagi ikkinchi tugmani ishlatmayman. Men tugmachalarni pvc -ga qo'ydim, ular menga kerak emasligini va buning o'rniga kalitni ishlatishim kerakligini angladim.

Quyida men ishlatgan hamma narsaning rasmlarini ko'rasiz:

2 -qadam: Neopixel uzuklar

Neopixel uzuklar
Neopixel uzuklar

Oq sim neopixel halqasining orqa tarafidagi erga ulangan.

To'q sariq sim 5V ga ulangan.

Va jigarrang sim ma'lumotlar kirishiga ulangan

3 -qadam: ulanishlar

Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar

Mening non taxtam prototiplashda shunday ko'rinardi, siz buni mos yozuvlar sifatida ishlatishingiz mumkin.

Men, shuningdek, bitta tugma bilan qanday bo'lishi kerak bo'lgan simlarning sxemasini tuzdim.

4 -qadam: Kod:

Bu, ehtimol, eng samarali kod emas, lekin u men uchun ishlaydi. O'zingizni sinab ko'ring va uni yanada samaraliroq qilishga harakat qiling; P.

#qo'shing

// Qaysi

Arduino -dagi pin NeoPixels -ga ulanganmi?

#aniqlang

PIN 6

// Qaysi

tugmachaga Arduino -dagi pin ulangan

#aniqlang

BUTTON_PIN 9

// Qanaqasiga

ko'p NeoPixel Arduino -ga biriktirilganmi?

#aniqlang

NUMPIXELS 16

// Qachon

Biz NeoPixel kutubxonasini o'rnatamiz, unga qancha piksel va qaysi pinni signal yuborish kerakligini aytamiz.

// Eslatma

eski NeoPixel chiziqlar uchun uchinchi parametrni o'zgartirish kerak bo'lishi mumkin-strandtestga qarang

//

mumkin bo'lgan qiymatlar haqida qo'shimcha ma'lumot olish uchun misol.

Adafruit_NeoPixel

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

pauza

= 1; // kechikish2

int

pauza2 = 80; // fsr ishlatilganda pastga tushadi

int

pauza3 = 150; // fsr ishlatilganda bajariladi

int

kechikish = 4; // kechikish1

int

fsrPin = 0; // FSR va 10K ochilish a0 ga ulangan

int

fsrReading;

bo'sh

sozlash() {

pinMod (BUTTON_PIN, INPUT);

Serial.begin (9600);

piksel.begin (); // Bu ishga tushiradi

NeoPixel kutubxonasi.

piksel.show ();

}

bool

tugma bosilgan (ichki pin) {

digitalRead (pin) ni qaytarish;

}

bo'sh

loop () {// pin kiritish to'g'ri yoki noto'g'ri ekanligini o'qiydi

fsrReading = analogRead (fsrPin);

Serial.print ("Analog o'qish =");

Serial.print (fsrReading);

agar (tugma bosilsa (BUTTON_PIN) == rost) {

// fsr sensori ishlatilganda yorug'lik effekti

agar (fsrReading> 50) {

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

piksel.setPixelColor (15, 1, 0, 1);

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

piksel.setPixelColor (14, 1, 0, 1);

piksel.show ();

kechikish (pauza 3);

}

if (fsrReading <52) {

piksel.setPixelColor (0, 0, 0, 0);

piksel.setPixelColor (15, 0, 0, 0);

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

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

piksel.show ();

kechikish (pauza 2);

}

agar (fsrReading> 57) {

piksel.setPixelColor (2, 1, 0, 1);

piksel.setPixelColor (13, 1, 0, 1);

piksel.setPixelColor (3, 1, 0, 1);

piksel.setPixelColor (12, 1, 0, 1);

piksel.show ();

kechikish (pauza 3);

}

if (fsrReading <59) {

piksel.setPixelColor (2, 0, 0, 0);

piksel.setPixelColor (13, 0, 0, 0);

piksel.setPixelColor (3, 0, 0, 0);

piksel.setPixelColor (12, 0, 0, 0);

piksel.show ();

kechikish (pauza 2);

}

agar (fsrReading> 65) {

piksel.setPixelColor (4, 1, 0, 1);

piksel.setPixelColor (11, 1, 0, 1);

piksel.setPixelColor (5, 1, 0, 1);

piksel.setPixelColor (10, 1, 0, 1);

piksel.show ();

kechikish (pauza 3);

}

if (fsrReading <67) {

piksel.setPixelColor (4, 0, 0, 0);

piksel.setPixelColor (11, 0, 0, 0);

piksel.setPixelColor (5, 0, 0, 0);

piksel.setPixelColor (10, 0, 0, 0);

piksel.show ();

kechikish (40);

}

agar (fsrReading> 79) {

piksel.setPixelColor (6, 1, 0, 1);

piksel.setPixelColor (9, 1, 0, 1);

piksel.setPixelColor (7, 1, 0, 1);

piksel.setPixelColor (8, 1, 0, 1);

piksel.show ();

kechikish (pauza 3);

}

agar (fsrReading <85) {

piksel.setPixelColor (6, 0, 0, 0);

piksel.setPixelColor (9, 0, 0, 0);

piksel.setPixelColor (7, 0, 0, 0);

piksel.setPixelColor (8, 0, 0, 0);

piksel.show ();

kechikish (20);

}

}

boshqa {

nafas olish -ko'k (20, 100, 0, 1, 1); // oddiy

ta'siri

}

}

// To'xtatish

= o'tish o'rtasidagi kechikish

// Qadamlar

= qadamlar soni

// R, G, B = To'liq RGB qiymatlari

// Bo'sh nafas - bu ham ta'sir qiladi

fsrsensor niet gebruikt wordt. Deze void wordt in de void loop () weer aangeroepen.

bo'sh nafas olish ko'k (pauza, int qadam, bayt R, bayt G, bayt B) {

int

tmpR, tmpG, tmpB; // Harorat qiymatlari

// Tushing

uchun (int s = 1; s <= qadamlar; s ++) {

tmpR = (R * s) /

qadamlar; // Kesish xatolarining oldini olish uchun avval ko'paytirish

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0;

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

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

}

piksel.show ();

kechikish (4);

}

// Tushing

uchun (int s = 1; s <= qadamlar; s ++) {

tmpR = (R * s) /

qadamlar; // Kesish xatolarining oldini olish uchun avval ko'paytirish

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0;

ipiksel.setPixelColor (1, tmpR, tmpG+1, tmpB);piksel.setPixelColor (14, tmpR, tmpG+1, tmpB);

}

piksel.show ();

kechikish (4);

}

// Tushing

uchun (int s = 1; s <= qadamlar; s ++) {

tmpR = (R * s) /

qadamlar; // Kesish xatolarining oldini olish uchun avval ko'paytirish

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0;

ipiksel.setPixelColor (2, tmpR, tmpG+2, tmpB);piksel.setPixelColor (13, tmpR, tmpG+2, tmpB);

}

piksel.show ();

kechikish (3.5);

}

// Tushing

uchun (int s = 1; s <= qadamlar; s ++) {

tmpR = (R * s) /

qadamlar; // Kesish xatolarining oldini olish uchun avval ko'paytirish

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0;

ipiksel.setPixelColor (3, tmpR, tmpG+3, tmpB+5);piksel.setPixelColor (12, tmpR, tmpG+3, tmpB+5);

}

piksel.show ();

kechikish (3);

}

uchun (int i = 0;

ipiksel.setPixelColor (0, 0, 0, 0);piksel.setPixelColor (15, 0, 0, 0);

}

// Tushing

uchun (int s = 1; s <= qadamlar; s ++) {

tmpR = (R * s) /

qadamlar; // Kesish xatolarining oldini olish uchun avval ko'paytirish

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0;

i

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

}

piksel.show ();

kechikish (3);

}

// Tushing

uchun (int s = 1; s <= qadamlar; s ++) {

tmpR = (R * s) /

qadamlar; // Kesish xatolarining oldini olish uchun avval ko'paytirish

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0;

ipiksel.setPixelColor (5, tmpR, tmpG+4, tmpB+20);piksel.setPixelColor (10, tmpR, tmpG+4, tmpB+20);

}

piksel.show ();

kechikish (2);

}

uchun (int i = 0;

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

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

}

// Tushing

uchun (int s = 1; s <= qadamlar; s ++) {

tmpR = (R * s) /

qadamlar; // Kesish xatolarining oldini olish uchun avval ko'paytirish

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0;

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

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

}

piksel.show ();

kechikish (kechikish);

}

uchun (int i = 0;

ipiksel.setPixelColor (2, 0, 0, 0);piksel.setPixelColor (13, 0, 0, 0);

}

// Tushing

uchun (int s = 1; s <= qadamlar; s ++) {

tmpR = (R * s) /

qadamlar; // Kesish xatolarining oldini olish uchun avval ko'paytirish

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0;

i

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

}

piksel.show ();

kechikish (kechikish);

}

// Pastga tushing

uchun (int s = qadamlar; s> 0; s--) {

tmpR = (R * s) / qadamlar; // Qisqartirmaslik uchun birinchi navbatda ko'paytiring

xatolar

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0; i

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

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

}

piksel.show ();

kechikish (1);

}

// Pastga tushing

uchun (int s = qadamlar; s> 0; s--) {

tmpR = (R * s) / qadamlar; // Qisqartirmaslik uchun birinchi navbatda ko'paytiring

xatolar

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0; i

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

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

}

piksel.show ();

kechikish (1);

}

// Pastga tushing

uchun (int s = qadamlar; s> 0; s--) {

tmpR = (R * s) / qadamlar; // Qisqartirmaslik uchun birinchi navbatda ko'paytiring

xatolar

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0; i

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

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

}

piksel.show ();

kechikish (2);

}

// Pastga tushing

uchun (int s = qadamlar; s> 0; s--) {

tmpR = (R * s) / qadamlar; // Qisqartirmaslik uchun birinchi navbatda ko'paytiring

xatolar

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0; i

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

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

}

piksel.show ();

kechikish (2);

}

// Pastga tushing

uchun (int s = qadamlar; s> 0; s--) {

tmpR = (R * s) / qadamlar; // Qisqartirmaslik uchun birinchi navbatda ko'paytiring

xatolar

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0; i

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

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

}

piksel.show ();

kechikish (3);

}

// Pastga tushing

uchun (int s = qadamlar; s> 0; s--) {

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

Kesish xatolarini oldini olish uchun birinchi navbatda ko'paytiring

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0; i

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

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

}

piksel.show ();

kechikish (3);

}

// Pastga tushing

uchun (int s = qadamlar; s> 0; s--) {

tmpR = (R * s) / qadamlar; // Qisqartirmaslik uchun birinchi navbatda ko'paytiring

xatolar

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0; i

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

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

}

piksel.show ();

kechikish (4);

}

// Pastga tushing

uchun (int s = qadamlar; s> 0; s--) {

tmpR = (R * s) / qadamlar; // Qisqartirmaslik uchun birinchi navbatda ko'paytiring

xatolar

tmpG = (G * s) / qadamlar;

tmpB = (B * s) / qadamlar;

uchun (int i = 0; i

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

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

}

piksel.show ();

kechikish (4);

}

}

5 -qadam: Hammasini bir joyga to'plang:

Hamma narsani birlashtirish
Hamma narsani birlashtirish

Siz barcha simlaringizni non paneli yoki PVX ga ulab qo'yishingiz mumkin, bu sizga bog'liq (men arduino ustiga PVX qo'yishni tanladim, bu juda chiroyli va chiroyli).

Keyingi qadam, barcha simlarning atrofiga issiqlik qisqaruvchi naychalarni qo'yishdir, shunda ular chalkashliklarga olib kelmaydi.

Agar siz PVXdan foydalanishni tanlagan bo'lsangiz, hozirgacha hamma narsani lehimlashingiz kerak edi.

Shundan so'ng, siz ko'zoynakning tashqi qismiga neopikselli halqalarni qo'yasiz (LEDlarning pastki qismida joylashganligiga ishonch hosil qiling) va ularni lenta yoki elim bilan mahkamlang (men tasma ishlatardim).

Siz fsr-sensorni elastik tasmaga yopishqoq lenta bilan yopishtirishni tanlashingiz mumkin.

Ko'zoynakdan rohatlaning:)

Tavsiya: