Электронный компонент:Набор Rainbow Cube Kit
Набор Rainbow Cube Kit[1] [2]
Набор Rainbow Cube Kit – это 3-мерный радужный куб с 8-миллиметровыми RGB-светодиодами. Всего в нем используется 64 светодиода, расположенных по принципу 4х4х4. Набор Rainbow Cube Kit можно использовать для создания разных визуальных эффектов, но для этого к нему также нужно будет подключить контроллер Rainbowduino. Кроме того, Rainbow Cube Kit оснащен встроенным LDO-регулятором (3.3 вольта, 1 ампер), а также XBee-совместимым сокетом, который можно использовать для беспроводного подключения Rainbowduino к ПК или Arduino.
Куб продается в виде комплекта:
В собранном и рабочем виде куб выглядит так:
Содержимое набора
- 8-миллиметровые RGB-светодиоды – 70 шт.
- Панель для куба – 1 шт.
- Платы для светодиодов – 4 шт.
- Боковые платы A – 4 шт.
- Боковые платы B – 4 шт.
- 2,54-миллиметровые 40-контактные гребешки типа «папа» – 5 шт.
- 2,54-миллиметровые 40-контактные гребешки типа «мама» – 2 шт.
- 2,54-миллиметровые 16-контактные гребешки типа «мама» – 3 шт.
- 2-миллиметровые 10-контактные гребешки типа «мама» – 2 шт.
- 8-контактные гребешки типа «мама» – 5 шт.
- Гребешок типа «мама» 2х3 – 1 шт.
- Питающий JST-кабель – 1 шт.
- 3,5-миллиметровый 4-контактный зеленый винтовой зажим – 1 шт.
- 3,5-миллиметровый DC-разъем – 1 шт.
- 3-миллиметровый красный светодиод – 1 шт.
- 3-миллиметровый зеленый светодиод – 1 шт.
- Резисторы (1 кОм, 1/8 ватта) – 4 шт.
- Резисторы (10 кОм, 1/8 ватта) – 1 шт.
- Резисторы (15 кОм, 1/8 ватта) – 1 шт.
- Линейный регулятор напряжения – 1 шт.
- Электролитические конденсаторы – 2 шт.
Функционал
- 8-миллиметровые матовые RGB-светодиоды
- Светодиоды расположены по принципу 4х4х4
- XBee-совместимый сокет
- Наличие LDO-регулятора (3.3 вольта, 1 ампер) для питания куба нерегулируемым постоянный током с напряжением 6-9 вольт. Используйте его, когда питание идет не от USB
- Наличие контактов с общим катодом для 8 красных, 8 зеленых и 8 синих светодиодов
- Наличие восьми VCC-контактов на гребешке 2х16
- Возможность управления при помощи многоканального ШИМ-контроллера светодиодов вроде Rainowduino (8 х 8кр, 8син, 8зел)
Варианты применения
- Цветной LED-дисплей – генерируйте разные цвета, смешивая разные яркости красного, синего и зеленого каналов
- Лампа настроения или ночная лампа
- Использование в художественных целях
Схема
Куб состоит из двух главных частей: панели (платы), которая служит основой для куба, и самого куба, состоящего из 4 плат для светодиодов и 8 боковых плат.
Схему куба смотрите по ссылкам ниже:
Характеристики
- Рабочее напряжение – 3,3 вольта
- Светодиоды – 8-миллиметровые RGB-светодиоды с общим катодом; 4 провода (самый короткий – для синего канала, для зеленого канала, самый длинный – анод, для красного канала); максимальный прямой ток составляет 20 мА
Распиновка
Доступ ко всем контактам куба можно получить на панели, находящейся в его основе:
- В наборе Rainbow Cube Kit есть 32-контактный гребешок (2х16), с помощью которого к кубу можно подключить драйвер RGB-светодиодов вроде Rainbowduino:
- DC-разъем для питания; средний контакт – VIN (6-9 вольт постоянного тока), боковая «бочка» – GND
- 4-контактный (зеленый) винтовой зажим; 2 контакта GND и 2 контакта VIN
Размеры
В собранном состоянии размеры куба составляют примерно 10 (длина), 10 (ширина) и 12 (высота) сантиметров.
Объясняющие схемы
Ниже представлено несколько схем куба – чтобы было проще понять, как он работает. По сути, куб – это 64 RGB-светодиода, которые сформированы в структуру, состоящую из 8 общих анодов (контакты с положительным напряжением) и 8 общих катодов (контакты с GND) для каждого цвета (красного, зеленого и синего).
Полную схему RGB-куба, представленную в виде двухмерной светодиодной матрицы, смотрите ниже. Цифры 1-32 обозначают номера контактов на гребешке 2х16, схема которого показана выше, в разделе «Распиновка».
Схема ниже показывает, как 64 светодиода, расположенные в четырех 2-мерных плоскостях, подключаются друг к другу и формируют 3-мерный куб:
Три примера нумерации из схемы 2 можно посмотреть на фото ниже:
Чтобы узнать, как светодиоды из этих схем соотносятся друг с другом, проделайте следующее:
- Найдите координаты 2D-XY на схеме 2
- Соотнесите эти координаты с координатами X и Y на схеме 1, чтобы узнать, каким образом управляется этот светодиод (т.е. расположение катодов и контакта VCC)
К примеру, светодиод с ZXY-координатами «1,0,3» (схема 2) – это светодиод с координатами «6,3» (схема 1). VCC-контактом этого светодиода является 31, а катодами для R, G и B являются, соответственно, контакты 12, 25 и 4.
Rainbowduino V3.0
Rainbowduino – это контроллерная плата, совместимая с Arduino и оснащенная многоканальным светодиодным драйвером. С ее помощью можно управлять матрицей RGB-светодиодов 8x8 или кубом RGB-светодиодов 4х4х4 в режиме общего анода. Плата Rainbowduino укомплектована двумя 12-канальными (R/G/B x 4) чипами MY9221, которые генерируют адаптивную импульсно-плотностную модуляцию. Кроме того, Rainbowduino V3.0 оснащена интерфейсом I2C для каскадного подключения дополнительных плат.
На Rainbowduino V3.0 записан загрузчик Arduino, благодаря чему ее можно программировать при помощи IDE Arduino. Кроме того, в отличие от других драйверов для управления светодиодами, Rainbowduino оснащена чипом FT232RL (USB-UART), который упрощает загрузку скетчей.
Функционал
- Наличие двух 16-контактных гребешков для подключения многоканальных светодиодов
- Постоянная сила тока (20,8 мА)
- Возможность управлять кубом RGB-светодиодов 4х4х4 и матрицей RGB-светодиодов 8х8 (т.е. 192 светодиодами)
- Встроенный чип USB-UART (FT232RL)
- Встроенный регулятор напряжения (5 вольт, 1 ампер)
Варианты применения
- Управление светодиодами (к примеру, в форме куба RGB-светодиодов 4х4х4 или матрицы RGB-светодиодов 8х8)
- Светодиодная вывеска (путем гирляндного подключения нескольких Rainbowduino)
Характеристики
- Постоянная сила выходного тока – 20,8 мА
- Максимальное количество управляемых светодиодов – 192 (т.е. 8х8х3)
Более подробно об Rainbowduino читайте в соответствующей статье.
Питающий адаптер
Потребуется качественный настенный адаптер, выдающий 6.5 вольт и 2 ампера, а также способный конвертировать переменный ток в постоянный. Кроме того, необходимы DC-разъем, совместимый с Rainbowduino, а также совместимость с Arduino и Seeeduino. Адаптер также должен быть способен работать с входным напряжением 100-240 вольт (переменный ток).
Подойдет вот такая модель – TOL113C30.
Кабель MiniUSB
Потребуется 110-сантиметровый кабель MiniUSB. Он будет использоваться для программирования Rainbowduino через ПК.
Подойдет такая модель – ARD112C5B.
Использование
Корпус для куба Rainbow Cube Kit сделан из акрила, поэтому будьте внимательны при его разборке, т.к. крепежи могут не выдержать сильного растягивающего усилия. Вынимая крепеж, левой рукой толкайте ножки крепежа внутрь, а правой – тяните за его «гребешок». Более подробно смотрите на картинке ниже:
Сборка
Чтобы собрать конструкцию, проделайте следующее:
- Подключите два 16-контактных гребешка, установленных на куб, к Rainboduino, как показано на картинке ниже:
- Подключите к Rainbowduino кабель MiniUSB (для программирования через ПК)
Программирование
Давайте начнем с простого примера:
- Загрузите библиотеку «Rainbowduino V3.0»
- Откройте скетч «Cube1.pde» (его копию смотрите ниже)
- Скомпилируйте и загрузите скетч на Rainbowduino
/*
Пример библиотеки «Rainbowduino v3.0»: Cube1
Выставляет пиксели в трехмерном пространстве (куб 4x4x4)
*/
#include <Rainbowduino.h>
void setup()
{
Rb.init(); // инициализирует драйвер Rainbowduino
}
void loop()
{
// задаем координаты (Z,X,Y):(0,0,0) для синего пикселя,
// а также цвет, используя 24-битный RGB-код:
Rb.setPixelZXY(0,0,0,0x0000FF);
// задаем координаты (Z,X,Y):(0,3,0) для красного пикселя,
// а также цвет, используя байты для R, G и B:
Rb.setPixelZXY(0,3,0,0xFF,0,0);
// задаем координаты (Z,X,Y):(3,0,3) для зеленого пикселя,
// а также цвет, используя 24-битный RGB-код:
Rb.setPixelZXY(3,0,3,0x00FF00);
}
В результате получаем следующее:
Функции
В скетче-примере выше используются некоторые из API ниже:
- Функция init(). Инициализирует драйвер. Используется, как правило, самой первой
- Функция setPixelZXY(Z,X,Y,R,G,B). Задает координаты и яркость для красного (R), зеленого (G) и синего (B) каналов в RGB-светодиоде. Для значений яркости нужно использовать 8-битные значения. Тип данных всех шести аргументов – unsigned char
- Функция blankDisplay(). Гасит все светодиоды
Демо-скетчи
Ниже будет представлено несколько скетчей, демонстрирующих использование разных функций библиотеки Rainbowduino.
Работа с горизонтальными плоскостями куба
Этот скетч объясняет, как задавать координаты (Z,X,Y) для RGB-светодиода. В нем мы при помощи функции setPixelZXY() окрасим слой 0 в зеленый цвет, а слой 3 – в синий.
/*
Пример библиотеки «Rainbowduino v3.0»: Cube2
Выставляет пиксели в трехмерном пространстве (куб 4x4x4)
*/
#include <Rainbowduino.h>
void setup()
{
Rb.init(); // инициализируем драйвер Rainbowduino
}
unsigned int z,x,y;
void loop()
{
for(x=0;x<4;x++)
{
for(y=0;y<4;y++)
{
// окрашиваем слой 0 в зеленый, используя 24-битный RGB-код:
Rb.setPixelZXY(0,x,y,0x00FF00);
}
}
for(x=0;x<4;x++)
{
for(y=0;y<4;y++)
{
// окрашиваем слой 0 в синий, используя 24-битный RGB-код:
Rb.setPixelZXY(3,x,y,0x0000FF);
}
}
}
В результате должно получиться примерно следующее:
Случайные цвета
В этом демо-скетче все RGB-светодиоды куба окрашиваются в случайные цвета. Далее каждые пять секунд цвет всех RGB-светодиодов меняется на случайный.
/*
Пример библиотеки «Rainbowduino v3.0»: Cube3
Выставляет пиксели в трехмерном пространстве (куб 4x4x4)
*/
#include <Rainbowduino.h>
void setup()
{
Rb.init(); // инициализируем драйвер Rainbowduino
}
unsigned int z,x,y;
void loop()
{
for(z=0;z<4;z++)
{
for(x=0;x<4;x++)
{
for(y=0;y<4;y++)
{
// «рисуем» случайные цвета, используя байты для R, G и B:
Rb.setPixelZXY(z,x,y,random(0xFF),random(0xFF),random(0xFF));
}
}
}
delay(5000);
Rb.blankDisplay(); // гасим все светодиоды
}
В результате должно получиться следующее:
Ночная лампа / Лампа настроения
/*
Пример библиотеки «Rainbowduino v3.0»: Лампа настроения
*/
#include <Rainbowduino.h>
// массив для конвертации из HSV в RGB:
unsigned char RED[64] = {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,238,221,204,188,171,154,137,119,102,85,
68,51,34,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,35,52};
unsigned char GREEN[64] = {0,17,34,51,68,85,102,119,136,153,170,187,204,221,238,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,238,221,204,188,170,154,136,120,102,86,68,52,34,18,0,0,0,0};
unsigned char BLUE[64] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,34,52,68,86,102,120,136,154,170,188,
204,221,238,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255};
void setup()
{
Rb.init(); // инициализируем драйвер Rainbowduino
}
unsigned int z,x,y;
void loop()
{
for(z=0; z<64 ;z++)
{
for(x=0;x<8;x++)
{
for(y=0;y<8;y++)
{
// «рисуем» случайные цвета, используя байты для R, G и B:
//Rb.setPixelZXY(z,x,y,RED[i],GREEN[i],BLUE[i]);
Rb.setPixelXY(x,y,RED[z],GREEN[z],BLUE[z]);
}
}
delay(100);
}
for(z=63; z > 0 ;z--)
{
for(x=0;x<8;x++)
{
for(y=0;y<8;y++)
{
// «рисуем» случайные цвета, используя байты для R, G и B:
//Rb.setPixelZXY(z,x,y,RED[i],GREEN[i],BLUE[i]);
Rb.setPixelXY(x,y,RED[z],GREEN[z],BLUE[z]);
}
}
delay(100);
}
}
Эффект плазмы
/*
Пример библиотеки «Rainbowduino v3.0»: Трехмерный эффект плазмы
*/
#include <Rainbowduino.h>
// массив для конвертации из HSV в RGB:
unsigned char RED[64] = {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,238,221,204,188,171,154,137,119,102,85,
68,51,34,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,35,52};
unsigned char GREEN[64] = {0,17,34,51,68,85,102,119,136,153,170,187,204,221,238,255,255,255,255,255,255,255,255,255,255,255,255,
255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,238,221,204,188,170,154,136,120,102,86,68,52,34,18,0,0,0,0};
unsigned char BLUE[64] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,34,52,68,86,102,120,136,154,170,188,
204,221,238,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255};
unsigned char plasma[4][4][4];
void setup()
{
Rb.init(); // инициализируем драйвер Rainbowduino
for(unsigned char x = 0; x < 4; x++)
{
for(unsigned char y = 0; y < 4; y++)
{
for(unsigned char z = 0; z < 4; z++)
{
int color = int(32.0 + (32.0 * sin(x / 1.0))+ 32.0 + (32.0 * sin(y / 1.0)) + 32.0 + (32.0 * sin(z / 1.0))) / 3;
plasma[x][y][z] = color;
}
}
}
}
unsigned char x,y,z,colorshift=0;
void loop()
{
for(x=0;x<4;x++)
{
for(y=0;y<4;y++)
{
for(z=0;z<4;z++)
{
// меняем цвета, используя байты для каналов R, G и B:
Rb.setPixelZXY(z,x,y,(RED[plasma[x][y][z] + colorshift]) % 256,(GREEN[plasma[x][y][z] + colorshift]) % 256,(BLUE[plasma[x][y][z] + colorshift]) % 256);
}
}
}
delay(100);
colorshift= colorshift + 1;
}
В результате должно получиться примерно следующее:
Скетчи от сторонних разработчиков
В этом разделе будут описаны демо-скетчи, созданные не Seeed, а сторонними разработчиками.
Куб, управляемый через iPhone
Этот демо-скетч позволяет отправлять RGB-значения кубу, исопльзуя iPhone. Для этого куб вместе с Rainbowduino нужно подключить к компьютеру, а также установить на iPhone приложение TouchOSC. Исходный код можно скачать по ссылке в конце этой статьи. Видео-демонстрацию проекта можно посмотреть тут.
Имитатор цвета
Этот демо-скетч переключает цвета куба в зависимости от того, что изображено на экране компьютера. Соответственно, для этого проекта куб нужно подключить к компьютеру. Исходный код можно скачать по ссылке в конце этой статьи. Видео-демонстрацию проекта можно посмотреть тут и тут.
Гирляндное подключение Rainbow Cube Kit друг к другу
Подробнее читайте тут.
Поддержка
Если у вас есть какие-то вопросы или идеи, можете озвучить их на форуме.
Версии
На данный момент выпущена только одна версия – V1.0.
Полезные ссылки
Набор Rainbow Cube Kit:
- Библиотека «Rainbowduino V3.0»
- Библиотека «Rainbowduino» для IDE Arduino версии 1.0 и выше
- PDF-файл с полной схемой
- Eagle-файлы со схемами
Даташиты:
APK для Android:
ПО для управления Rainbowduino:
- Для Windows – раньше использовался Rainbowduino Semi Automater installtion Package Beta, но сейчас ссылка, к сожалению, битая
- Для MAC – mtXcontrol от GitHub-пользователя rngtng (бета)
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Электронный компонент
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Набор Rainbow Cube Kit
- Платформа Arduino
- Arduino платформа
- Arduino