Merhaba arkadaşlar, bu yazımızda giyilebilir teknolojinin parlayan yıldızı LilyPad ile yapabileceğiniz eğlenceli ve kullanışlı tasarımlardan bahsedeceğiz. Aklınızda proje yapma fikri varsa ve daha karar veremediyseniz kesinlikle bu tasarımlara göz atmalısınız. LilyPad ile ilgili merak ettiğiniz diğer konular için Robolink Akademi  sayfasını ziyaret edebilirsiniz. 🙂

1.Durum Bilgilendirme Eldiveni

Durum bilgilendirme eldiveni de ne ? dediğinizi duyar gibiyiz. Merak etmeyin hemen projeyi anlatmaya başlıyoruz .:) Proje, temel olarak 3 farklı renk ile durum bilgisi verme üzerine dayalıdır. Birçok amaç için kullanılabilir. Biz projemizde renklere “evet”,”hayır” ve “belki”  kelimelerini atadık . Renkler ile ne anlatmak istediğiniz sizlere ve hayal gücünüze kalmış. Hazırsanız projemize geçelim . 🙂

Kullanılan Malzemeler :

Gelin belirlediğimiz kelimelere birer renk atayalım.

  • Kırmızı : ” Hayır”
  • Mavi : “Belki”
  • Yeşil : “Evet”

KOD :

int buttonPin = A2; 
int durum = 0;       
int RGB_red = 9;
int RGB_green = 11;
int RGB_blue = 10;
void setup()
{
  pinMode(buttonPin, INPUT_PULLUP);   
  pinMode(RGB_red, OUTPUT);
  pinMode(RGB_green, OUTPUT);
  pinMode(RGB_blue, OUTPUT);
}
void loop()
{
    if(digitalRead(buttonPin)==LOW)  
  {
     durum +=1;
     if(durum>4)
     {
       durum=0;
     }
       
  }
        
    switch(durum)
{
  
  case 0:   
  analogWrite(RGB_red,LOW);     //Beyaz
  analogWrite(RGB_green,LOW);
  analogWrite(RGB_blue,LOW);
  break; 
  case 1:     
  analogWrite(RGB_red,255);   // kırmızı
  analogWrite(RGB_green,0);
  analogWrite(RGB_blue,255);
  break; 
  case 2: 
  analogWrite(RGB_red,0);     //Mavi
  analogWrite(RGB_green,255);
  analogWrite(RGB_blue,255);
  break; 
  
  case 3: 
  analogWrite(RGB_red,255);     // Yeşil
  analogWrite(RGB_green,255);
  analogWrite(RGB_blue,0);
  break; .
  case 4:         
  pinMode(RGB_red, INPUT);
  pinMode(RGB_green, INPUT);
  pinMode(RGB_blue, INPUT);
  break; 
} 
delay(1000);
}

2. LilyPad ile Küpe

Tekdüze bir küpeden bahsetmiyoruz tabi ki . 🙂 Bu küpe giyilebilir teknoloji kullanılarak tasarlanmış ve oldukça renkli. Eğer proje dikkatinizi çektiyse gelin beraber detaylarına bakalım.

Kullanılan Malzemeler :

KOD :


#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
 #include <avr/power.h> 
#endif
#define LED_PIN     6
#define LED_COUNT  60
#define BRIGHTNESS 50 
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRBW + NEO_KHZ800);
void setup() {
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  strip.begin();           
  strip.show();        
  strip.setBrightness(BRIGHTNESS);
}

void loop() {
  colorWipe(strip.Color(255,   0,   0)     , 50); // Kırmızı
  colorWipe(strip.Color(  0, 255,   0)     , 50); // Yeşil
  colorWipe(strip.Color(  0,   0, 255)     , 50); // Mavi
  colorWipe(strip.Color(  0,   0,   0, 255), 50); // Beyaz

  whiteOverRainbow(75, 5);

  pulseWhite(5);

  rainbowFade2White(3, 3, 1);
}
void colorWipe(uint32_t color, int wait) {
  for(int i=0; i<strip.numPixels(); i++) { 
    strip.setPixelColor(i, color);         
    strip.show();                          
    delay(wait);                        
  }
}

void whiteOverRainbow(int whiteSpeed, int whiteLength) {

  if(whiteLength >= strip.numPixels()) whiteLength = strip.numPixels() - 1;

  int      head          = whiteLength - 1;
  int      tail          = 0;
  int      loops         = 3;
  int      loopNum       = 0;
  uint32_t lastTime      = millis();
  uint32_t firstPixelHue = 0;

  for(;;) { 
    for(int i=0; i<strip.numPixels(); i++) {  
      if(((i >= tail) && (i <= head)) ||     
         ((tail > head) && ((i >= tail) || (i <= head)))) {
        strip.setPixelColor(i, strip.Color(0, 0, 0, 255)); 
      } else {                                             
        int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels());
        strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(pixelHue)));
      }
    }

    strip.show(); 
    firstPixelHue += 40; 

    if((millis() - lastTime) > whiteSpeed) { 
      if(++head >= strip.numPixels()) {      
        head = 0;
        if(++loopNum >= loops) return;
      }
      if(++tail >= strip.numPixels()) {      
        tail = 0;
      }
      lastTime = millis();                   
    }
  }
}

void pulseWhite(uint8_t wait) {
  for(int j=0; j<256; j++) { 
    strip.fill(strip.Color(0, 0, 0, strip.gamma8(j)));
    strip.show();
    delay(wait);
  }

  for(int j=255; j>=0; j--) { 
    strip.fill(strip.Color(0, 0, 0, strip.gamma8(j)));
    strip.show();
    delay(wait);
  }
}

void rainbowFade2White(int wait, int rainbowLoops, int whiteLoops) {
  int fadeVal=0, fadeMax=100;
  for(uint32_t firstPixelHue = 0; firstPixelHue < rainbowLoops*65536;
    firstPixelHue += 256) {

    for(int i=0; i<strip.numPixels(); i++) {

      uint32_t pixelHue = firstPixelHue + (i * 65536L / strip.numPixels());
      strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(pixelHue, 255,
        255 * fadeVal / fadeMax)));
    }

    strip.show();
    delay(wait);

    if(firstPixelHue < 65536) {                              
      if(fadeVal < fadeMax) fadeVal++;                     
    } else if(firstPixelHue >= ((rainbowLoops-1) * 65536)) { 
      if(fadeVal > 0) fadeVal--;                            
    } else {
      fadeVal = fadeMax; 
    }
  }

  for(int k=0; k<whiteLoops; k++) {
    for(int j=0; j<256; j++) { 
      strip.fill(strip.Color(0, 0, 0, strip.gamma8(j)));
      strip.show();
    }
    delay(1000); 
    for(int j=255; j>=0; j--) { 
      strip.fill(strip.Color(0, 0, 0, strip.gamma8(j)));
      strip.show();
    }
  }

  delay(500); 
}

3.Maske Tasarımı

Siyah, beyaz , desenli ama hiçbiri bu kadar renkli ve eğlenceli değil. 🙂 Evet hayatımızın büyük bir parçası olan maskelerden bahsediyoruz. Her gün kullandığımız maskelerden sıkılıp değişiklik istiyorsanız bu projeye göz atmalısınız. 

Kullanılan Malzemeler :

Ufak bir hatırlatma !  Konfor ve hijyen için,  maskenize devre elemanlarını diktikten sonra  başka bir maskeyle kapatmayı unutmayın.  🙂

KOD :

void setup() {
  pinMode(7,OUTPUT);
  pinMode(10,OUTPUT);
  pinMode(12,OUTPUT);
  

}

void loop() {
  digitalWrite(7,HIGH);
  delay(500);
  digitalWrite(7,LOW);
  digitalWrite(10,HIGH);
  delay(500);
  digitalWrite(10,LOW);
  digitalWrite(12,HIGH);
  delay(500);
  digitalWrite(12,LOW);
  digitalWrite(10,HIGH);
  delay(500);
  digitalWrite(10,LOW);
  

}

4.Engelleri Fark Eden Ceket

Yürüyüş yaparken karşımıza çıkan engelleri görebilir ya da tahmin edebilirsiniz. Ancak bu durum herkes için aynı değil maalesef. Tam olarak önemli bir ihtiyaçtan ortaya çıkan, çözüm odaklı bu projeyi sizlerle paylaşıyoruz.

Kullanılan Malzemeler :

KOD :

#include <HCSR04.h>
#define Echo 10 
#define Trigger 11
#define buzzer 3
int cm =0;
HCSR04 ultra(Echo,Trigger);
void setup(){
  Serial.begin(9600);
  pinMode(4,OUTPUT);
  pinMode(5,OUTPUT);
  pinMode(buzzer,OUTPUT);
}

void loop() {
  
  Serial.println(cm);
  if ((cm>80)and(cm<130))
  {
    tone(buzzer,3000);
    digitalWrite(4,LOW);
    digitalWrite(5,LOW);
    delay(500);
    noTone(buzzer);
    delay(500);
  }
  if ((cm>30)and (cm<50))
  {
    tone(buzzer,2000);
    digitalWrite(4,HIGH);
    digitalWrite(5,LOW);
    delay(100);
    noTone(buzzer);
    delay(100);
  }
  if (cm<30)
  {
    tone(buzzer,1000);
    digitalWrite(4,LOW);
    digitalWrite(5,HIGH);
    delay(30);
    noTone(buzzer);
    delay(30);
  }
  delay(50);
}

Başka yazılarımızı incelemek isterseniz aşağıya linklerini bırakıyoruz . 🙂

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz