LilyPad Arduino で光る帽子を作った
妻とのコラボで、LilyPad Arduino で暗くなると LED が光る帽子を作りました。
実装はとても簡単なものでしたが、導電糸の縫い付けがとても難儀でした。
帽子本体は妻作。
暗くなると光ります。
普通の糸でまず仮止めして、
導電糸で縫い付けます。
ただ縫い付けただけだと、帽子の裏でショートしてしまうので、絶縁に工夫が必要です。
この写真では仮にセロハンテープで固定しています。
また、LED 素子が焼けてしまって交換に苦労したので、メンテナンス性を考慮していなかったことが反省点です。
素材
- LilyPad Arduino SimpleSnap
- 導電糸 (太)
- LilyPad LED Micro
- LilyPad 明るさセンサ
- FTDI USB シリアル変換アダプター (プログラムの書き込みに必要)
実装
const int temt6000Pin = A5;
const int ledPins[] = { 5, 6, 9, 10, 11, A2, A3, A4};
const int ledSize = 8;
const int threshold = 20;
const int ledDelay = 500;
int ledCursor;
void setup() {
ledCursor = 0;
pinMode(temt6000Pin, INPUT);
for(int i = 0; i < ledSize; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
boolean isDark() {
int value = analogRead(temt6000Pin);
return value < threshold;
}
void allOff() {
for(int i = 0; i < ledSize; i++) {
digitalWrite(ledPins[i], LOW);
analogWrite(ledPins[i], 0);
}
}
void allOn() {
for(int i = 0; i < ledSize; i++) {
digitalWrite(ledPins[i], HIGH);
analogWrite(ledPins[i], 0xff);
}
}
void loop() {
if(isDark()) {
digitalWrite(ledPins[ledCursor], HIGH);
analogWrite(ledPins[ledCursor], 0xff);
delay(ledDelay);
digitalWrite(ledPins[ledCursor], LOW);
analogWrite(ledPins[ledCursor], 0);
if(++ledCursor == ledSize) {
ledCursor = 0;
}
}
else {
allOff();
}
}
ソースコードは GitHub で管理しています。 ngs/ledcap