RGB куб

RGB Led CubeИдея представленного светового куба хоть и не нова, но очень интересна, суть идеи заключается в применении 3-х осевого акселерометра, измеряющего проекции ускорения на три пространственные оси. По граням куба расположены трехцветные (RGB) светодиоды, яркость которых управляется посредством ШИМ. Значение яркости зависит от величины ускорения, каждый цвет соответствует одной пространственной оси, красный – оси X, зеленый – оси Y, синий – оси Z. Таким образом, при изменении ориентации, куб светится различными цветами.

Для начала я приобрел акселерометр LIS331DL, который может обмениваться данными по двум протоколам SPI и I2C. Акселерометр имеет два режима измерения ускорения с различными пределами 2g и 8g. Я использовал предел 2g, величина ускорения представляет собой однобайтное число, от 0 до 127 (0…+2g) и от 255 до 128 (0…-2g). Я ограничился пределами 0…+1g (числа 0-63) и соответственно 0…-1g (числа 255-192). Также акселерометр умеет генерировать прерыванию по превышению ускорения по какой-либо оси выше заданного порога, чем я и воспользовался в данной конструкции (об этом чуть позже). Корпус акселерометра очень маленький 3х3 мм, так что мне пришлось изрядно потрудиться, чтобы припаять его тонкими проводами к небольшой платке (плата-переходник SOIC-14 и SSOP-14 в DIP). Напряжение питания акселерометра составляет 2,16 – 3,6 В, потребляемый ток около 0,3 мА.

Ниже представлена схема куба, устройство является автономным, в качестве питания используются три Ni-Mh аккумулятора типоразмера AA емкостью 2100 мА*ч. Так как максимальное напряжение питания акселерометра составляет 3,6 В, он подключен только к двум аккумуляторам из общей последовательной цепи. В качестве микроконтроллера был выбран PIC16F676 из-за наличия встроенного модуля АЦП.
Схема RGB куба
После подачи питания микроконтроллер производит настройку параметров акселерометра, после чего начинает считывать значения ускорений по осям, далее рассчитывается коэффициент заполнения для каждого канала ШИМ. В микроконтроллере реализован трехканальный программный ШИМ, с разрядностью 7 бит и частотой около 100Гц. Передача данных между МК и акселерометром осуществляется по протоколу SPI, для согласования логических уровней установлены транзисторы VT1-VT3.

Если значения ускорений не меняются в течении 15 секунд, то микроконтроллер выключает светодиоды и переходит в спящий режим, для экономии энергии аккумуляторов. Выход из спящего режима происходит по сигналу прерывания от акселерометра, которое возникает при превышении ускорения по какой-либо оси выше заданного порога, то есть куб надо немного потрясти, чтобы он включился.

Кнопка SB1 предназначена для включения и выключения устройства, при ее нажатии во время рабочего режима, микроконтроллер выключает акселерометр и переходит в спящий режим. Для включения необходимо повторно нажать кнопку.

В устройстве реализован контроль напряжения на аккумуляторах, измерение производится с помощью АЦП на аккумуляторе G3. Опорное напряжение величиной 2,5 В снимается со стабилизатора напряжения DA1. Измерение производится после каждого выхода из спящего режима, на линии RA5 появляется высокий логический уровень, тем самым включается стабилизатор напряжения DA1 и на входе RA1 появляется опорное напряжение. Если напряжение на аккумуляторе G3 меньше 1,05 В, куб три раза мигает красным цветом, после чего микроконтроллер выключает акселерометр (если он был включен) и переходит в спящий режим. Таким образом, при снижении общего напряжения ниже 3,15 В устройство выключается, при попытке включения кнопкой SB1, будет выдаваться тот же предупреждающий световой сигнал.

Для зарядки аккумуляторов я использую простой блок питания с выходным напряжением 4,3 В, такое значение выбрано для того чтобы не перезарядить аккумуляторы, так как напряжение полностью заряженного Ni-Mh аккумулятора составляет 1,4 В.

Все элементы смонтированы на семи печатных платах, шесть из которых скрепляются в виде куба, на каждой стороне расположены по два трехцветных светодиода в SMD исполнении. Аккумуляторы вставляются внутрь куба, под отрицательные полюса которых на печатной плате установлены пружинящие контакты. Плата с микроконтроллером и акселерометром вставляется в разъем внутрь куба. Одна сторона (печатная плата) куба съемная, в нее упираются положительные полюса аккумуляторов.

Корпус устройства собран из 6 квадратных пластин размером 85х85 мм (матовое оргстекло), края которых обработаны под углом 45 градусов, пять пластин склеены клеем для ПВХ – Sintex. Шестая съемная пластина посажена на герметик, на ней закреплены тактовая кнопка SB1 и разъем для зарядки XS1. К углам внутреннего куба (того что из печатных плат) припаяны медные проводники и изогнуты таким образом, чтобы куб расположился в центре корпуса.

В одной из статей я очень подробно рассмотрел акселерометр ADXL345, который продается в виде готового модуля, желающие могут ознакомиться с информацией.

Платки RGB кубаПлата с акселерометромRGB куб общий видRGB Куб, составные части RGB Cube, составные частиRGB Куб, составные частиRGB Куб, внешний видRGB Куб, свечение

Ниже представлен видеоролик демонстрирующий RGB Куб в рабочем режиме

 
Прошивка RGB куба
Печатная плата в формате Sprint Layot

У этой записи 6 комментариев

  1. Хорошая статья, БЕЗ ВЫЛОЖЕННОЙ ПРОШИВКИ контроллера…

  2. Hello … built this cube, but wont work. Only few blinks after first powerup, then completely dead.
    I have not 2,5V on reference TL431C … Any ideas ? Thanks … Vladca

  3. Будет ли работать эта схема с акселерометром ADXL345?

    1. Нет, работать не будет, нужно корректировать прошивку под акселерометр ADXL345

  4. Отличная статья. Ничего не понял, но очень интересно.

  5. Добрый вечер свяжитесь со мной пожалуйста ! У меня есть вам коммерческое предложение ! smarkovex@mail.ru

Имя (обязательно)Email (обязательно)Веб-сайт

Добавить комментарий