
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.

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

Для начала нам необходимо скачать Arduino IDE и библиотеку для работы с Rainbowduino. Файлы из архива с библиотекой нужно распаковать в папку libraries, которая находится в папке с Arduino IDE. После этого нужно подключить куб через USB и установить для него драйвер.
Стандартные функции Rainbowduino для куба:
Отмечу, что для «отключения» одного диода нужно передать в качестве цвета 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: Камера не особо хотела передавать всю красоту смены цвета.
На этом всё! Фантазируйте, экспериментируйте, пишите, друзья! И всё у вас получится, ведь всё гениальное — просто.
Никто пока не комментировал эту страницу.
В стандарте [6] предусмотрено присваивать различным документам вида «расчет» код[1] документа РР, а для локальной сметы код документа ЛС.
Никакой необходимости использовать код Б для обозначения документов, в названии которых нет слова «Обоснование», не существует, а отсутствие документов, в названии которых использовано это слово подтверждает, что из ГОСТ 34.201-2020 должен быть исключен фактически не существующий документ «Обоснование».
Литература:
6 ГОСТ Р 21.101-2020 Основные требования к проектной документации
7 Н. Зенин. Судьба требований ГОСТ 34-й серии в проектах по информационной безопасности // [Электронный ресурс], режим доступа: https://www.anti-malware.ru/practice/methods/GOST-requirements-34th-series-in-information-security-projects
[1] В данном стандарте вместо термина «код документа» используют словосочетание «шифр документа»
Разработчики стандартов иногда предлагают новые виды документов, объясняя это тем, что существующих видов документов недостаточно для новых изделий. Например, в таблице 1 стандарта [1] перечислены несколько видов документов, разрабатываемых для автоматизированных систем (далее АС). Обратим внимание на документ «Обоснование» (код документа Б). Его назначение определено так:
«Изложение сведений, подтверждающих целесообразность принимаемых решений»
Отметим, что в числе толкований значений слова «обоснование» есть и тексты, служащие основанием для принятия решения.
Какие же текстовые документы приведены в таблице 2 стандарта [1], где перечислены конкретные документы?
Как ни странно, но документа со словом «обоснование» в названии нет ни в стандарте [1] нет, как нет его и в отменном руководящем документе [2].
Слово «обоснование» в [2] использовано в названии раздела отчета, разрабатываемого на стадии формирования требований к АС – Обоснование необходимости совершенствования информационной системы объекта.
«Обоснование» содержится ещё в двух стандартах [3, 4], где применено в названии этапа работы – Обследование объекта и обоснование необходимости создания АС.
Отметим, что в cтандартах [3, 4] обоснование необходимо для вынесения технико-экономической, социальной и т.п. оценок на стадии формирования требований к АС.
При этом сам документ, содержащий результаты обоснования, оформляют в виде отчета по ГОСТ 7.32 [5], а не в виде документа вида «Обоснование».
Обратимся теперь к стандарту [1] и посмотрим какие же документы с кодом Б (присвоен документу «Обоснование») указаны в таблице 2:
- локальный сметный расчет (код Б2);
- проектная оценка надежности системы (код Б1);
- локальная смета (код Б3).
Из перечисления видно, что ни в одном из названий этих документов с кодом Б нет слова «Обоснование».
Продолжение следует