İçindekiler:

Gevşeme Gözlüğü - ITTT: 5 Adım (Resimli)
Gevşeme Gözlüğü - ITTT: 5 Adım (Resimli)

Video: Gevşeme Gözlüğü - ITTT: 5 Adım (Resimli)

Video: Gevşeme Gözlüğü - ITTT: 5 Adım (Resimli)
Video: 👁️ Objeleri Büyüten Optik İllüzyon #shorts #illüzyon 2024, Temmuz
Anonim
Gevşeme Gözlüğü - ITTT
Gevşeme Gözlüğü - ITTT
Gevşeme Gözlüğü - ITTT
Gevşeme Gözlüğü - ITTT
Gevşeme Gözlüğü - ITTT
Gevşeme Gözlüğü - ITTT

HKU Projesi - ITTT (Bu Oysa O Zaman) - Julia Berkouwer, 1B

Hiç stresli hissettiniz mi ve kendinizi nasıl sakinleştireceğinizi bilmiyorsanız, bu gevşeme gözlüklerini denemelisiniz! Onları giyip gözlerini kapatıyorsun, sonra bir nefes kalıbı çalacak. Bu nefes alma düzenini takip ederek nefes ritminiz dakikada 6 kez nefes alıp vermeye kadar inecektir. Bunu yapmak günlük stresi azaltır.

Ayrıca bir fsr sensörü kullanarak bir anahtarı çevirerek nefes alma yoğunluğunuzu takip edebilirsiniz.

Bu toturial ile adım adım kendi rahatlatıcı gözlüklerinizi oluşturmanız için size rehberlik edeceğim.

Adım 1: Gerekli Malzemeler ve Parçalar:

Gerekli Malzemeler ve Parçalar
Gerekli Malzemeler ve Parçalar
Gerekli Malzemeler ve Parçalar
Gerekli Malzemeler ve Parçalar
Gerekli Malzemeler ve Parçalar
Gerekli Malzemeler ve Parçalar

Malzemeler:

1x arduino uno;

1xbreadboard veya PCV;

3x 10k dirençler

Teller(Tercihen farklı renkler, böylece hangi şeylerin yere, hangilerinin farklı pinlere gideceğini söylemek daha kolay olur, vb.);

Bazı ısıyla daralan tüpler;

2x NeoPixel Ring - Entegre Sürücülü 16 x 5050 RGB LED;

1x anahtarı;

1x FSR sensörü;

1x SteamPunk gözlükleri (Bunları bir parti mağazasından satın alabilirsiniz, neopiksel halka gözlüklere mükemmel şekilde oturduğundan kullanımı kolaydır. Her zaman başka gözlükleri kullanmayı deneyin veya kendinizinkini yaratın.);

1x göğsünüzün etrafına sarabileceğiniz bir çeşit (elastik) bant.

Araçlar:-Dizüstü bilgisayar

-Havya

-Arduino IDE yazılımı

Pvc'imde iki buton ve bir anahtar göreceksiniz, ben sadece soldaki butonu switch'e bağlamak için kullanıyorum, resmin sağındaki ikinci butonu kullanmıyorum. Düğmelere ihtiyacım olmadığını ve bunun yerine bir anahtar kullanmam gerektiğini fark etmeden önce pvc'nin üzerine düğmeler koydum.

Aşağıda kullandığım her şeyin resimlerini göreceksiniz:

2. Adım: Neopiksel Halkaları

Neopiksel Yüzükler
Neopiksel Yüzükler

Beyaz tel, neopiksel halkasının arkasındaki toprağa bağlanır.

Turuncu tel 5V'a bağlanır.

Ve kahverengi kablo veri girişine bağlanır

3. Adım: Bağlantılar

Bağlantılar
Bağlantılar
Bağlantılar
Bağlantılar

Prototipleme sırasında breadboard'um böyle görünüyordu, bunu referans olarak kullanabilirsiniz.

Ayrıca tek bir düğmeyle nasıl görünmesi gerektiğinin kablo düzenini de yaptım.

Adım 4: Kod:

Muhtemelen en verimli kod değil, ama benim için çalışıyor. Kendinize meydan okuyun ve daha verimli hale getirmeye çalışın;P

#Dahil etmek

// Hangi

Arduino'daki pin NeoPixels'e bağlı mı?

#tanımlamak

PIN 6

// Hangi

Arduino üzerindeki pin butona bağlanır

#tanımlamak

BUTTON_PIN 9

// Nasıl

Arduino'ya birçok NeoPiksel bağlı mı?

#tanımlamak

SAYISALLAR 16

// Ne zaman

NeoPixel kütüphanesini kuruyoruz, kaç piksel olduğunu ve sinyal göndermek için hangi pini kullanacağını söylüyoruz.

// Not

daha eski NeoPixel şeritleri için üçüncü parametreyi değiştirmeniz gerekebileceğini

//

olası değerler hakkında daha fazla bilgi için örnek.

Adafruit_NeoPixel

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

int duraklatma

= 1; //gecikme2

int

duraklama2 = 80; // fsr kullanılırken aşağı iniyor

int

duraklama3 = 150; // fsr kullanılırken yapılıyor

int

gecikme değeri = 4; // gecikme1

int

fsrPin = 0; // FSR ve 10K açılan menü a0'a bağlı

int

fsrOkuma;

geçersiz

kurmak() {

pinMode(BUTTON_PIN, INPUT);

Seri.başla(9600);

piksel.begin(); // Bu, NeoPixel kitaplığı.

piksel.göster();

}

bool

düğmeye basılmış(int pin){

geri digitalRead(pin);

}

geçersiz

loop() { // pin girişinin doğru mu yanlış mı olduğunu okur

fsrReading = analogRead(fsrPin);

Serial.print("Analog okuma = ");

Serial.print(fsrReading);

if (düğmeye basılmış(BUTTON_PIN) == doğru){

// fsr sensörünü kullanırken ışık efekti

if (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.göster();

gecikme(duraklatma3);

}

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.göster();

gecikme(duraklatma2);

}

if (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.göster();

gecikme(duraklatma3);

}

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.göster();

gecikme(duraklatma2);

}

if (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.göster();

gecikme(duraklatma3);

}

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.göster();

gecikme(40);

}

if (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.göster();

gecikme(duraklatma3);

}

if (fsrOkuma <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.göster();

gecikme(20);

}

}

Başka{

nefes_mavi(20, 100, 0, 1, 1); // normal

Efekt

}

}

// Duraklat

= geçişler arasındaki gecikme

// Adımlar

= adım sayısı

// R, G, B = Tam RGB değerleri

// De void Breath, voor het licht effect als de

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

void Breath_blue(int duraklama, int adımlar, bayt R, bayt G, bayt B) {

int

tmpR, tmpG, tmpB; // Sıcaklık değerleri

// Karartmak

for (int s=1; s<=adımlar; s++) {

tmpR = (R * s) /

adımlar; // Kesme hatalarından kaçınmak için önce çarp

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

için (int i=0;

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

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

}

piksel.göster();

gecikme(4);

}

// Karartmak

for (int s=1; s<=adımlar; s++) {

tmpR = (R * s) /

adımlar; // Kesme hatalarından kaçınmak için önce çarp

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

için (int i=0;

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

}

piksel.göster();

gecikme(4);

}

// Karartmak

for (int s=1; s<=adımlar; s++) {

tmpR = (R * s) /

adımlar; // Kesme hatalarından kaçınmak için önce çarp

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

için (int i=0;

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

}

piksel.göster();

gecikme(3.5);

}

// Karartmak

for (int s=1; s<=adımlar; s++) {

tmpR = (R * s) /

adımlar; // Kesme hatalarından kaçınmak için önce çarp

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

için (int i=0;

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

}

piksel.göster();

gecikme(3);

}

için (int i=0;

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

}

// Karartmak

for (int s=1; s<=adımlar; s++) {

tmpR = (R * s) /

adımlar; // Kesme hatalarından kaçınmak için önce çarp

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

için (int i=0;

ben

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

}

piksel.göster();

gecikme(3);

}

// Karartmak

for (int s=1; s<=adımlar; s++) {

tmpR = (R * s) /

adımlar; // Kesme hatalarından kaçınmak için önce çarp

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

için (int i=0;

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

}

piksel.göster();

gecikme(2);

}

için (int i=0;

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

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

}

// Karartmak

for (int s=1; s<=adımlar; s++) {

tmpR = (R * s) /

adımlar; // Kesme hatalarından kaçınmak için önce çarp

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

için (int i=0;

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

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

}

piksel.göster();

gecikme (gecikme);

}

için (int i=0;

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

}

// Karartmak

for (int s=1; s<=adımlar; s++) {

tmpR = (R * s) /

adımlar; // Kesme hatalarından kaçınmak için önce çarp

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

için (int i=0;

ben

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

}

piksel.göster();

gecikme (gecikme);

}

// Sönük

for (int s=adımlar; s>0; s--) {

tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp

hatalar

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

for (int i=0; ben

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

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

}

piksel.göster();

gecikme(1);

}

// Sönük

for (int s=adımlar; s>0; s--) {

tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp

hatalar

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

for (int i=0; ben

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

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

}

piksel.göster();

gecikme(1);

}

// Sönük

for (int s=adımlar; s>0; s--) {

tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp

hatalar

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

for (int i=0; ben

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

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

}

piksel.göster();

gecikme(2);

}

// Sönük

for (int s=adımlar; s>0; s--) {

tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp

hatalar

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

for (int i=0; ben

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

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

}

piksel.göster();

gecikme(2);

}

// Sönük

for (int s=adımlar; s>0; s--) {

tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp

hatalar

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

for (int i=0; ben

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

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

}

piksel.göster();

gecikme(3);

}

// Sönük

for (int s=adımlar; s>0; s--) {

tmpR = (R * s) / adımlar; //

Kesme hatalarını önlemek için önce çarpın

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

for (int i=0; ben

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

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

}

piksel.göster();

gecikme(3);

}

// Sönük

for (int s=adımlar; s>0; s--) {

tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp

hatalar

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

for (int i=0; ben

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

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

}

piksel.göster();

gecikme(4);

}

// Sönük

for (int s=adımlar; s>0; s--) {

tmpR = (R * s) / adımlar; // Kesilmeyi önlemek için önce çarp

hatalar

tmpG = (G * s) / adımlar;

tmpB = (B * s) / adımlar;

for (int i=0; ben

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

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

}

piksel.göster();

gecikme(4);

}

}

Adım 5: Her Şeyi Bir Araya Getirmek:

Her Şeyi Bir Araya Getirmek
Her Şeyi Bir Araya Getirmek

Tüm kablolarınızı breadboard'unuza veya bir PVC'ye bağlı bırakabilirsiniz, bu size kalmış (arduino'nun üstüne bir PVC koymayı seçtim, bu şekilde güzel ve temiz).

Bir sonraki adım, tüm kabloların etrafına ısıyla daralan tüpler yerleştirmektir, böylece daha az karışıklık olur.

PVC kullanmayı seçtiyseniz, şimdiye kadar her şeyi lehimlemiş olmanız gerekirdi.

Bundan sonra, neopiksel halkalarını gözlüklerin dışına yerleştirirsiniz (ledlerin altta hizalandığından emin olun) ve bunları bir bant veya yapıştırıcı ile yerine sabitleyin (bant kullandım).

Fsr-sensörünü bir miktar bantla elastik banda yapıştırmayı veya kendi başına bırakmayı tercih edebilirsiniz.

Gözlüklerin tadını çıkar:)

Önerilen: