네오픽셀 머리띠

by 조혜인 | 2017-02-24 17:57
strip 귀걸이 네오픽셀 목걸이 액세서리 웨어러블

재료

  • JST 커넥터 1개 (1980원)
  • 리튬폴리머 배터리 150mAh 1개 (3300원)
  • Trinket 1개 (8800원)
  • 검정색 머리띠 1개
  • 3핀 스위치 1개 (220원)

머리띠 만들기를 소개합니다.(NeoPixel LED Headband, Instructables)


1. 준비물

- 집에 있는 머리띠 아무거나
- Adafruit NeoPixel strip - 60 LED/meter strip
- Adafruit Trinket microprocessor
- 리튬배터리
- JST socket
-Power switch








2. 만들기 과정

STEP 1. 네오픽셀 스트립 자르기

머리띠 길이에 맞게 네오픽셀을 잘라 줍니다.


STEP 2. 회로도 연결

다음과 같이 회로를 연결합니다. 전선을 납땜해 부품들을 이어줍니다.


STEP 3. 소스코드 업로드

아래 소스코드를 Trinket 보드에 업로드해 줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
/**************************************************************************/
/*
  NeoPixel_Headband: displays fancy NeoPixel patterns on a headband
  
  v1.0 5/13/15 - NeoPixel 15 strip
  
 
  Based on Adafruit's strandtest code.
 
    ----> https://www.adafruit.com/
    
    Adafruit invests time and resources providing this open source code,
    please support Adafruit and open-source hardware by purchasing
    products from Adafruit!
 
*/
/**************************************************************************/
 
 
#include <Adafruit_NeoPixel.h>
 
#define PIN 0
 
// Parameter 1 = number of pixels in strip
// Parameter 2 = pin number (most are valid)
// Parameter 3 = pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
Adafruit_NeoPixel strip = Adafruit_NeoPixel(15, PIN, NEO_GRB + NEO_KHZ800);
 
/* Some other colors
  colorWipe(strip.Color(219,112,147), 50); // pink
  colorWipe(strip.Color(135,206,255), 50); // skyBlue
  colorWipe(strip.Color(128,158,10), 50); // maize
  colorWipe(strip.Color(88,2,163), 50); // lavender
  colorWipe(strip.Color(32,178,170), 50); // seaFoam
  colorWipe(strip.Color(102,205,0), 50); // spring
  colorWipe(strip.Color(237,120,6), 50); // orange
*/
 
void setup() {
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
  strip.setBrightness(85); // 1/3 brightness
 
}
 
void loop() {
  // Some example procedures showing how to display to the pixels:
//  sparks(40);
  colorWipe(strip.Color(255, 0, 0), 50); // Red
  colorWipe(strip.Color(0, 255, 0), 50); // Green
  colorWipe(strip.Color(0, 0, 255), 50); // Blue
  colorWipe(strip.Color(219,112,147), 100); // Pink
  colorWipe(strip.Color(135,206,255), 100); // skyBlue
  colorWipe(strip.Color(128,158,10), 100); // maize
  colorWipe(strip.Color(88,2,163), 100); // lavender
  colorWipe(strip.Color(32,178,170), 100); // seaFoam
  colorWipe(strip.Color(102,205,0), 100); // spring
  colorWipe(strip.Color(237,120,6), 100); // orange
 
 // theaterChase(strip.Color(127, 127, 127), 200); // White
  theaterChase(strip.Color(219,112,147), 200); // Pink
  theaterChase(strip.Color(0, 0, 255), 200); // Blue
 
  rainbow(20);
  rainbowCycle(20);
}
 
// Sparkles!
void sparks(uint8_t wait) {
 
uint32_t color  = 0xFF0000; // Start red
  strip.show(); // Initialize all pixels to 'off'
 
  for(uint16_t i=0; i<strip.numPixels(); i++) {
    
    uint8_t  p = random(strip.numPixels());
  
    strip.setPixelColor(p, color);
    strip.show();
    delay(10);
    strip.setPixelColor(p, 0);
    delay(wait);
    color >>= 8;                 // Next color R->G->B
    if(!color) color = 0xFF0000; // Reset to red
 
  }
  strip.show(); // Initialize all pixels to 'off'
 
}
 
 
// Fill the dots one after the other with a color
void colorWipe(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, c);
      strip.show();
      delay(wait);
  }
}
 
void rainbow(uint8_t wait) {
  uint16_t i, j;
 
  for(j=0; j<256; j++) {
    for(i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel((i+j) & 255));
    }
    strip.show();
    delay(wait);
  }
}
 
// Slightly different, this makes the rainbow equally distributed throughout
void rainbowCycle(uint8_t wait) {
  uint16_t i, j;
 
  for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
    for(i=0; i< strip.numPixels(); i++) {
      strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
    }
    strip.show();
    delay(wait);
  }
}
 
//Theatre-style crawling lights.
void theaterChase(uint32_t c, uint8_t wait) {
  for (int j=0; j<10; j++) {  //do 10 cycles of chasing
    for (int q=0; q < 3; q++) {
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, c);    //turn every third pixel on
      }
      strip.show();
     
      delay(wait);
     
      for (int i=0; i < strip.numPixels(); i=i+3) {
        strip.setPixelColor(i+q, 0);        //turn every third pixel off
      }
    }
  }
}
 
 
// Input a value 0 to 255 to get a color value.
// The colours are a transition r - g - b - back to r.
uint32_t Wheel(byte WheelPos) {
  if(WheelPos < 85) {
   return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } else if(WheelPos < 170) {
   WheelPos -= 85;
   return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
   WheelPos -= 170;
   return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}
 



STEP 4. 네오픽셀 스트립을 머리띠에 붙이기

네오픽셀 스트립을 머리띠에 붙여줍니다. 나머지 부품들도 테이프로 잘 고정합니다.




STEP 5. 완성

완성된 모습입니다. 리튬배터리를 JST 커넥터에 꼽아주세요. 불빛이 반짝반짝합니다.



댓글 0

MADE BY

조혜인

arduino, processing, rhino, sketchup, 아두이노, 에프터이펙트, 포토샵, 프리미어
네오픽셀 머리띠현재글 네오픽셀 귀걸이&목걸이 이전글