Найти в Дзене
Amperkot.ru

"Ручное облако" под управлением Arduino

Оглавление

Сегодня мы создадим светильник ночник в виде пушистого облака, управляться который будет, при помощи платы Arduino LilyPad USB - ATmega32U4 Board. Проект довольно прост и отлично подойдет для знакомства с данной платформой.

Используемые материалы

  • Холлофайбер;
  • Деревянные шпажки;
  • Кольцо YwRobot Rainbow;
  • Бокс для 3х ААА батареек с кнопкой включения/выключения;
  • Пенопласт;
  • Соединительные провода.

Соединяем кольцо с платой Arduino

-2

Способ соединения одинаковый для всех типов колец: VCC – VOUT; IN - A1; GND – GND.

Корпус

Следующим шагом необходимо поместить плату и кольцо в предварительно подготовленный шар из пенопласта. Закрепить все это внутри можно при помощи клея.

-3

Далее вставляем деревянные шпажки в шар. И также крепим при помощи клея. Они будут служить каркасом для крепления холлофайбера.

-4

Следующим шагом вырезаем в шаре отверстия для батарей. Устанавливаем и крепим их при помощи двусторонней клейкой ленты или клея.

-5

Осталось только придать нашему облаку форму. Для этого клеим кусочки холлофайбера к шпажкам, пока они полностью не закроются.

-6

Код

Первым делом необходимо добавить библиотеку 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.