Сегодня мы создадим светильник ночник в виде пушистого облака, управляться который будет, при помощи платы Arduino LilyPad USB - ATmega32U4 Board. Проект довольно прост и отлично подойдет для знакомства с данной платформой.
Используемые материалы
- Холлофайбер;
- Деревянные шпажки;
- Бокс для 3х ААА батареек с кнопкой включения/выключения;
- Пенопласт;
- Соединительные провода.
Соединяем кольцо с платой Arduino
Способ соединения одинаковый для всех типов колец: VCC – VOUT; IN - A1; GND – GND.
Корпус
Следующим шагом необходимо поместить плату и кольцо в предварительно подготовленный шар из пенопласта. Закрепить все это внутри можно при помощи клея.
Далее вставляем деревянные шпажки в шар. И также крепим при помощи клея. Они будут служить каркасом для крепления холлофайбера.
Следующим шагом вырезаем в шаре отверстия для батарей. Устанавливаем и крепим их при помощи двусторонней клейкой ленты или клея.
Осталось только придать нашему облаку форму. Для этого клеим кусочки холлофайбера к шпажкам, пока они полностью не закроются.
Код
Первым делом необходимо добавить библиотеку Neopixel Adafruit.
Наш код придает облаку приятный эффект радуги.
}
// 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);
}
}
// 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) {
WheelPos = 255 - WheelPos;
if(WheelPos < 85) {
return strip.Color(255 - WheelPos * 3, 0,
WheelPos * 3);
}
if(WheelPos < 170) {
WheelPos -= 85;
return strip.Color(0, WheelPos * 3, 255 -
WheelPos * 3);
}
WheelPos -= 170;
return strip.Color(WheelPos * 3, 255 -
WheelPos * 3, 0);
}
На этом все. Наш ночник полностью готов к работе.
Статья является авторским переводом с сайта instructables.com.