Rainbow Cube — куб с RGB диодами

25 февраля 2013 в 10:00

Rainbow Cube — куб с RGB диодами

Rainbow Cube — это куб с RGB диодами (4x4x4), который можно программировать через Mac/PC, основан на Atmega 328. Для программирования используется Arduino IDE.

Заказ и доставка

Для того, чтобы сэкономить время на сборке самого куба, я заказал Rainbow Cube Kit (Assembled) с seeedstudio.com, через Hongkong Post.

Причём seeedstudio предоставляет бесплатную отправку для товаров стоимостью более $50, но без веселья не обошлось — трекинг для Украины у Hongkong Post оказался только до момента вылета за пределы Гонконга. Так что после вылета необходимо трекать посылку через Укрпочту.

Процесс доставки происходил примерно так: 25 января сделал заказ, 15 февраля посылка уже была в Киеве, 3 февраля посылка вылетела из Гонконга, 20 февраля забрал посылку в Донецке, на почте.

А что внутри?

Почтовая коробка имеет такие размеры: 19x28x17 см^3.

Фирменная коробка от Seeedstudio, в которой находится куб: 18x12,5x12,5 см^3.

В комплекте имеется:

  • Собранный Rainbow Cube в прозрачной пластиковой коробочке.
  • Сетевой адаптер (позволяет включать Rainbow Cube от сети; вилка американского стиля)
  • USB кабель

Что нужно для работы?

Для начала нам необходимо скачать Arduino IDE и библиотеку для работы с Rainbowduino. Файлы из архива с библиотекой нужно распаковать в папку libraries, которая находится в папке с Arduino IDE. После этого нужно подключить куб через USB и установить для него драйвер.

Программирование куба

Стандартные функции Rainbowduino для куба: 

  • Rb.init(void) — инициализация драйвера Rainbowduino, необходимо использовать в функции setup()
  • Rb.setPixelZXY(unsigned char z, unsigned char x, unsigned char y, unsigned char colorR, unsigned char colorG, unsigned char colorB) — устанавливаем цвет диода (Z, X, Y), указывая для каждого цвета 8-битное число
  • Rb.setPixelZXY(unsigned char z, unsigned char x, unsigned char y, unit32_t colorRGB) — устанавливаем цвет диода, указывая цвет с помощью 24-битного RGB-кода
  • Rb.blankDisplay(void) — устанавливаем для всех диодов пустой цвет

Отмечу, что для «отключения» одного диода нужно передать в качестве цвета 0x00 (NULL).

Рассмотрим простой пример кода с комментариями к каждой строчке:

/* Rainbowduino v3.0 Library examples: Cube2 Sets pixels on 3D plane (4x4x4 cube) */
#include <Rainbowduino.h> // Подключаем библиотеку для работы с Rainbowduino
void setup() // Данная функция выполняется только при включении Rainbow Cube
{ Rb.init(); // Инициализируем драйвер Rainbowduino }
/* Определяем переменные для удобства работы. * Z - переменная, в которой будет содержаться координата точки OZ * X - переменная, в которой будет содержаться координата точки OX * Y - переменная, в которой будет содержаться координата точки OY */
unsigned int z,x,y;
void loop() // Данная функция выполняется в бесконечном цикле после setup()
{ for(x=0; x<4; x++) // Создаём цикл для перемещения по оси OX
    { for(y=0; y<4; y++) // Создаём цикл для перемещения по оси OY
        { // Окрашиваем диод с координатами (0, X, Y) в зелёный цвет
        Rb.setPixelZXY(0, x, y, 0x00FF00); // используем 24-битный RGB-код
        }
    }
    for(x=0; x<4; x++) // Создаём цикл, который перемещается по оси OX
    { for(y=0; y<4; y++) // Создаём цикл, который перемещается по оси OX
        { // Окрашиваем диод с координатами (3, X, Y) в синий цвет
        Rb.setPixelZXY(3, x, y, 0x0000FF); // используем 24-битный RGB-код
        }
    }
}

После прошивки куб светится таким образом:

Немного поэкспериментировав я сделал более сложный сценарий для куба, результат ниже.

И, конечно же, для тех, кому понравилось, я оставлю исходный код.

 

P.S: Камера не особо хотела передавать всю красоту смены цвета.

На этом всё! Фантазируйте, экспериментируйте, пишите, друзья! И всё у вас получится, ведь всё гениальное — просто.

3573
Закладки
Комментарии 0

Никто пока не комментировал эту страницу.

 
Написать комментарий
Можно не указывать
На этот адрес будет отправлен ответ. Адрес не будет показан на сайте
*Обязательное поле
Самые интересные публикации
Сейчас читают
Последние комментарии
После рисунка размещена дополненная редакция статьи:
Стандартом установлено, что ссылаться можно на сторонний документ в целом, его разделы и приложения, а ссылаться на подразделы, пункты, таблицы и рисунки стороннего документа не допускается (см. Сноска).
В тексте документа можно ссылаться на подразделы, пункты, таблицы и рисунка данного документа.
Специальные правила установлены стандартом [2] и для ссылочных нормативных документов.
Структурный элемент библиография предписано размещать в конце текстового документа, перед листом регистрации изменений, и включать его в раздел содержание.
Про два других вида ссылок никаких рекомендаций в [2] не содержится, поэтому целесообразно установить единые правила расположение ссылочных нормативных документов и ссылочных документов в приложениях к текстовому документу, не ограничиваясь фразой «Материал, дополняющий текст документа, допускается оформлять в виде приложений»

См. Ссылки и сноски
Литература
1 ГОСТ Р 2.005-2023. ЕСКД. Термины и определения
2 ГОСТ Р 2.105-2019. ЕСКД. Общие требования к текстовым документам
3 ГОСТ 7.32 -2017. Отчет о научно-исследовательской работе
4 Ссылки и сноски // [Электронный ресурс], режим доступа:
https://energoboard.ru/post/7758/ (485 просмотров с 01 .08.2023 по 07.07.2026 или 485/1072 = 0,45 просмотра в день)
5 Ссылочные документы // [Электронный ресурс], режим доступа:
https://energoboard.ru/post/7741/ (1831 просмотр с 26.07.2023 по 07.07.2026 или 1831/1040 = 1, 76 просмотра в день)
Ниже приведена новая редакция последнего абзаца публикации:
Кроме этого, правила учета и хранения документов должны быть едиными для конструкторских, программных, технологических и других документов, поэтому следует выпустить вместо двух стандартов
ГОСТ 19.603-78 и ГОСТ.503-78 единый стандарт, распространяющийся на все существующие системы документов.
Перечень литературы дополнен стандартом ГОСТ 19.603-78:
Литература
1 ГОСТ Р 2.105-2019. ЕСКД. Общие требования к текстовым документам.
2 ГОСТ 2.503-2013. ЕСКД. Правила внесения изменений.
3 ГОСТ 3.1103-2011. ЕСТД. Основные надписи
4 ГОСТ 2.004-88. ЕСКД. Общие требования к выполнению конструкторских и технологических документов на печатающих и графических устройствах вывода ЭВМ.
5. ГОСТ 2.501-201. ЕСКД. Правила учета и хранения.
6 ГОСТ 19.603-78. ЕСПД. Общие правила внесения изменений
6 Лист регистрации изменений // [Электронный ресурс], режим доступа: https://www.olgezaharov.narod.ru/2023/august/LR.htm
7 Лист регистрации изменений // [Электронный ресурс], режим доступа: https://energoboard.ru/post/7779/ (673 просмотра с 07.08.2023 по 08.07.2026 - 673/1066 = 0, 63 просмотра в день)