Автоматическая подсветка лестницы с помощью Arduino

Автоматическая подсветка лестницы с помощью Arduino

Добрый день! В этом посте хочу поделится с интернет сообществом о том, как мне довелось сделать автоматическое освещение лестницы в своем двухэтажном коттедже. Около четырех месяцев назад, возвращаясь с работы в полной темноте, я не удачно подскользнулся и сломал две плюсниевых кости (пальца) на левой ступне. Целый месяц пришлось провалятся в постеле, так как наступать на ногу было невероятно больно. Потом еще пол месяца хромал без гипса (у кого были переломы меня сразу поймут). После этой печальной истории я начал задумываться об автоматизации освещения ступенек лестницы. Немного поиграв с поисковыми запросами, нашел для себя очень простое решение в этом блоге, как раз на основе моего любимого микроконтроллера Arduino. Схема не вызвала каких то трудностей, но отпугивало количество и длина проводов, которые мне предстояло смонтировать. До этого ничего подобного не делал. Покупать готовые решения или нанимать кого-то — накладно. В течении месяца заказал нужные комплектующие и не торопясь смонтировал за несколько дней на свою лестницу. Всем кому интересно, что из этого получилось, добро пожаловать под кат!

Компоненты

Приведу примерную стоимость всех компонентов, которые были использованы в работе. Большинство комплектующих куплены в магазинах моего города поэтому приведу все в рублях.

Arduino Pro Mini300 р
Ultrasonic Module HC-SR04 Distance Sensor — 2 шт230 р
Драйвер светодиодов M545088 р
Регулятор напряжения L78M05CV26 р
Фоторезистор ФР-76416 р
Кабель-канал 20×10 мм — 10 М100 р
Провод 2×0,12 — 100 М (с запасом для лент)190 р
Провод 4×0,12 — 20 М (для сенсоров)60 р
Светодиодная лента LSP0603W15 White — 17 шт по 30 см1020 р
Мелочевка: текстолит 15×15 см, хлорное железо, сверло 0,9 мм, штыревые соединители типа PLS, разъемы на плату BLS, термоусадочная трубка, конденсаторы и резисторы200 р
Блок питания 12В (он же корпус) от сигнализации «Парус 4»Бесплатно
Итого2230 р

Прототип

Отладку прошивки для Arduino, как и все, я производил на макетной плате с использованием обычных светодиодов.

Схема

С помощью небезызвестной среды для проектирования Eagle CAD была доработана схема автора и печатная плата. Здесь я добавил регулятор напряжения на 5 В, изменил датчики с 3х контактных дорогих Ping на четырех контактные дешевые HC-SR04. Для того, что бы подсветка лестницы срабатывала только в темное время суток, в схему добавлен советский фоторезистор ФР-764 (можно использовать и другой).

Скетч

В скетче используется свободно распространяемая библиотека для работы со светодиодным драйвером M5450, а также библиотека для работы с ультразвуковым дальномером HC-SR04.

#include “lightuino3.h”
#include “Ultrasonic.h”

//Устанавливаем контакты для первого датчика
#define TRIG_PIN 12
#define ECHO_PIN 13
//Устанавливаем контакты для второго датчика
#define TRIG2_PIN 10
#define ECHO2_PIN 11
//Определяем первый датчик
Ultrasonic OurModuleUp(TRIG_PIN, ECHO_PIN);
//Определяем второй датчик
Ultrasonic OurModuleDown(TRIG2_PIN, ECHO2_PIN);
// pins 0, 1 used by Serial
const unsigned char DataPin = 6;
const unsigned char clockPin = 7;

// задержка между ступеньками
const long lightSpacing = 280;
//задержка свечения всей лестницы
const long lightHold = 10000;
//задержка выстрела сенсоров
const long pingReadDelay = 50;

// Диапазон при котором сработает сенсор
const float minBottomIn = 33.0f;
const float minTopIn = minBottomIn;

LightuinoSink sinks(clockPin, DataPin, 100, 4);

boolean bClimbStarted = false;
boolean bDescentStarted = false;

int val;
void setup() <
Serial.begin(9600);
pinMode(DataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
delay(1000);
sinks.set(0,0,0);
>

void loop() <
val = analogRead(0);
//Проверяем освещенность в помещении
if (val>=1020)<

UltrasonicDownFire();//Выстрел нижнего датчика
if(bClimbStarted) <
bClimbStarted = false;
bDescentStarted = false;
climbLightSequence();
>
else <
// Выстрел верхнего датчика
UltrasonicUpFire();
if(bDescentStarted) <
bClimbStarted = false;
bDescentStarted = false;
descentLightSequence();
>
>
delay(pingReadDelay);
>
>

//Обработка верхнего датчика
void UltrasonicUpFire() <

if((OurModuleUp.Ranging(INC) 0))
<
Serial.println(“Top sensor tripped.”);
bDescentStarted = true;
>
>

//Обработка нижнего датчика]
void UltrasonicDownFire() <

if((OurModuleDown.Ranging(INC) 0)) <
Serial.println(“Bottom sensor tripped.”);
bClimbStarted = true;
>
>

void climbLightSequence() <
LedsOnDown();
>
void LedsOnDown() <
//Обнуляем
byte ledState[9];
for (int j=0;j=0;k—)
<
for (int j=8;j>=1;j—)
<
ledState[k] = (ledState[k] >> 1) + 128;
sinks.set(ledState);
delay(lightSpacing);
>
>
//Задержка
delay(lightHold);
//Гасим
for (int k=1;k>=0;k—)
<
for (int j=8;j>=1;j—)
<
ledState[k] = (ledState[k] >> 1);
sinks.set(ledState);
delay(lightSpacing);
>
>
delay(pingReadDelay);
>

void descentLightSequence() <
LedsOnUp();
>

void LedsOnUp() <
//Обнуляем
byte ledState[9];
for (int j=0;j ledState[j] = B00000000;
>
//Зажигаем
for (int k=0;k <
for (int j=0;j <
ledState[k]=(ledState[k] [download >[/stextbox]

95 комментариев к “Автоматическая подсветка лестницы с помощью Arduino”

Arduino: 1.8.9 (Windows 7), Плата:»Arduino Pro or Pro Mini, ATmega328P (5V, 16 MHz)»

In file included from d:DocumentsArduinolibrarieslightuino5/lightuino3.h:28:0,

d:DocumentsArduinolibrarieslightuino5/lightuinoSink.h:158:31: error: ‘prog_uchar’ has not been declared

AniPattern(Lightuino& shld, prog_uchar* anim,prog_uint16_t* delayLst, int total_frames): shield(shld)

d:DocumentsArduinolibrarieslightuino5/lightuinoSink.h:158:48: error: ‘prog_uint16_t’ has not been declared

AniPattern(Lightuino& shld, prog_uchar* anim,prog_uint16_t* delayLst, int total_frames): shield(shld)

d:DocumentsArduinolibrarieslightuino5/lightuinoSink.h:166:3: error: ‘prog_uchar’ does not name a type

d:DocumentsArduinolibrarieslightuino5/lightuinoSink.h:167:3: error: ‘prog_uint16_t’ does not name a type

d:DocumentsArduinolibrarieslightuino5/lightuinoSink.h: In constructor ‘AniPattern::AniPattern(Lightuino&, int*, int*, int)’:

d:DocumentsArduinolibrarieslightuino5/lightuinoSink.h:158:115: error: ‘delays’ was not declared in this scope

AniPattern(Lightuino& shld, prog_uchar* anim,prog_uint16_t* delayLst, int total_frames): shield(shld)

d:DocumentsArduinolibrarieslightuino5/lightuinoSink.h:158:132: error: ‘ani’ was not declared in this scope

AniPattern(Lightuino& shld, prog_uchar* anim,prog_uint16_t* delayLst, int total_frames): shield(shld)

D:DocumentsArduino________________.ino: In function ‘void LedsOnDown()’:

________:92:20: error: ‘k’ was not declared in this scope

D:DocumentsArduino________________.ino: In function ‘void LedsOnUp()’:

________:123:21: error: expected ‘;’ before ‘ledState’

for (int j=0;j ledState[j] = B00000000;

________:123:44: error: expected ‘)’ before ‘;’ token

for (int j=0;j ledState[j] = B00000000;

D:DocumentsArduino________________.ino: At global scope:

________:126:3: error: expected unqualified-id before ‘for’

________:126:16: error: ‘k’ does not name a type

________:132:8: error: expected constructor, destructor, or type conversion before ‘(‘ token

________:133:3: error: expected unqualified-id before ‘for’

________:133:16: error: ‘k’ does not name a type

________:140:7: error: expected constructor, destructor, or type conversion before ‘(‘ token

________:141:1: error: expected declaration before ‘>’ token

exit status 1
‘k’ was not declared in this scope

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»

Оставьте комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

payaem.ru

Паяем — Все о электронике

Автоматическая подсветка лестницы на Arduino mini

В этой статье рассказывается о самодельной подсветке лестницы на основе Arduino. Это очень интересная и удобная штука, не позволит вам шмякнуться с лестницы в тёмное время суток :). И смотрится довольно красиво. Итак, начнём.

Вот примерно так это должно работать

Собственно вот сама лестница.

Собрать электрическую схему управления

  • Мозг всего устройства — Arduino mini

  • В качестве датчиков используется пара PIR — сенсоров
  • Для увеличения пинов, применяется микросхема 74HC595

  • Лентами — LED управляет ИМС ULN2003A

  • Датчик освещённости — фототранзистор

  • Блок питания PD-45A с двумя выходами +12 и +5

2. Печатная плата схемы и корпус

Проектирование несложное. Использовать можно различные программы, одна из более удобных — EAGLE. Скачать файлы можно по этой ссылке https://docs.google.com/file/d/0B7mjQCYtg0hsOUdleFdIdlZRNVE/edit

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

Коробка сделана из гетинакса. Разъёмы оторваны из ненужных устройств и приклеены на холодную сварку.

3. Написать программу

Код программы спрятан здесь

4. Производим монтаж на лестницу

Это самый трудоёмкий и утомительный этап работы, надо было проложить 40 метров кабеля и спаять примерно 80 проводников.Управляющее оборудование размещено под лестницей.

Провода убраны в кабельные каналы.Датчики спрятаны под первыми ступеньками сверху и снизу, их размещение находилось экспериментально, основная задача ограничить угол обзора, чтобы лестница не включалась зря.Фототранзистор стоит по центру лестницы, где меньше всего света, по этой причине в пасмурную погоду лестница работает великолепно.Светодиодные ленты приклеены с обратных сторон ступенек, чтобы не били в глаза своим светом при подъёме наверх. Поскольку ленты были от разных фирм и IP, пришлось чередовать их через ступеньку, а это знаете ли вышло очень даже оригинально :).

Можно сделать и получше. Более так сказать модифицировать:

  • Датчики закреплены на двухсторонний скотч, можно их закрепить понадёжней.
  • Получше замаскировать проводники под ступеньками.
  • Можно перенести блоки питания и управления, чтобы они закрывались шторкой.
  • Разъемы можно установить на плату, тогда устройство станет компактней, а пайки станет в 2 раза меньше.
  • Микросхему ULN2003A можно поменять на нормальный светодиодный драйвер, или же на транзисторную микросхему, тогда появится возможность ШИМ (т.е. плавного включения).
  • Также можно применить менее навороченный блок питания, подойдет и обыкновенный светодиодный на 12 Вольт. Arduino питать через стабилизатор на 5 Вольт.
  • Ну и конечно, в идеале, применить четыре датчика, или два дальномера вдоль лестницы, тогда будет возможность с точностью определить число человек и их поведение на лестнице.

Затраты на всё

Вот так всё получилось

Конечно же вы можете сделать всё как вам угодно. Можно сделать другой корпус или поэкспериментировать с деталями, это уже на ваше усмотрение.

Ну вот и всё. Всем пока. Удачи вам в проектировании различных интересных штучек :).

Автоматическая подсветка лестницы с помощью Arduino

Дельта принтеры крайне требовательны к точности изготовления комплектующих (геометрия рамы, длины диагоналей, люфтам соединения диагоналей, эффектора и кареток) и всей геометрии принтера. Так же, если концевые выключатели (EndStop) расположены на разной высоте (или разный момент срабатывания в случае контактных концевиков), то высота по каждой из осей оказывается разная и мы получаем наклонную плоскость не совпадающая с плоскостью рабочего столика(стекла). Данные неточности могут быть исправлены либо механически (путем регулировки концевых выключателей по высоте), либо программно. Мы используем программный способ калибровки.
Далее будут рассмотрены основные настройки дельта принтера.
Для управления и настройки принтера мы используем программу Pronterface.
Калибровка принтера делится на три этапа:

1 Этап. Корректируем плоскость по трем точкам

Выставление в одну плоскость трех точек — A, B, C (расположенных рядом с тремя направляющими). По сути необходимо уточнить высоту от плоскости до концевых выключателей для каждой из осей.
Большинство (если не все) платы для управления трехмерным принтером (В нашем случае RAMPS 1.4) работают в декартовой системе координат, другими словами есть привод на оси: X, Y, Z.
В дельта принтере необходимо перейти от декартовых координат к полярным. Поэтому условимся, что подключенные к двигателям X, Y, Z соответствует осям A, B, C.(Против часовой стрелки начиная с любого двигателя, в нашем случае смотря на логотип слева — X-A, справа Y-B, дальний Z-C) Далее при слайсинге, печати и управлении принтером в ручном режиме, мы будем оперировать классической декартовой системой координат, электроника принтера сама будет пересчитывать данные в нужную ей систему. Это условность нам необходима для понятия принципа работы и непосредственной калибровки принтера.

Точки, по которым мы будем производить калибровку назовем аналогично (A, B, C) и позиция этих точек равна A= X-52 Y-30; B= X+52 Y-30; C= X0 Y60.

Читайте также:  Суперсамоделка! Самодельное судно на воздушной подушке

Алгоритм настройки:

  1. Подключаемся к принтеру. (В случае “крагозяб” в командной строке, необходимо сменить скорость COM порта. В нашем случае с 115200 на 250000 и переподключится)

    После чего мы увидим все настройки принтера.
  2. Обнуляем высоты осей X, Y, Z командой M666 x0 y0 z0.
    И сохраняем изменения командой M500. После каждого изменения настроек необходимо нажать home (или команда g28), для того что бы принтер знал откуда брать отсчет.
  3. Калибровка принтера производится “на горячую”, то есть должен быть включен подогрев стола (если имеется) и нагрев печатающей головки (HotEnd’а) (Стол 60град., сопло 185 град.) Так же нам понадобится щуп, желательно металлический, известных размеров. Для этих задач вполне подойдет шестигранный ключ (самый большой, в нашем случае 8мм, он предоставляется в комплекте с принтерами Prizm Pro и Prizm Mini)
  4. Опускаем печатающую головку на высоту (условно) 9мм (от стола, так, что бы сопло еле касалось нашего щупа, т.к. высота пока что не точно выставлена.) Команда: G1 Z9.
  5. Теперь приступаем непосредственно к настройке наших трех точек.
    Для удобства можно вместо g- команд создать в Pronterface четыре кнопки, для перемещения печатающей головки в точки A, B, C, 0-ноль.

  • Последовательно перемещаясь между тремя точками (созданными ранее кнопками или командами) выясняем какая из них находится ниже всего (визуально) и принимает эту ось за нулевую, относительно нее мы будем менять высоту остальных двух точек.
  • Предположим, что точка A у нас ниже остальных. Перемещаем головку в точку B(Y) и клавишами управления высотой в Pronterface опускаем сопло до касания с нашим щупом, считая величину, на которую мы опустили сопло (в лоб считаем количество нажатий на кнопки +1 и +0.1)
    Далее командой меняем параметры высоты оси Y: M666 Y <посчитанная величина>
    M666 Y0.75
    M500
    G28
  • Ту же операцию проделываем с оставшимися осями. После чего следует опять проверить высоту всех точек, может получится, что разброс высот после первой калибровки уменьшится, но высота все равно будет отличатся, при этом самая низкая точка может изменится. В этом случае повторяем пункты 6-7.
  • 2 Этап. Исправляем линзу

    После того как мы выставили три точки в одну плоскость необходимо произвести коррекцию высоты центральной точки. Из за особенности механики дельты при перемещении печатающей головки между крайними точками в центре она может пройти либо ниже либо выше нашей плоскости, тем самым мы получаем не плоскость а линзу, либо вогнутую либо выпуклую.

    Корректируется этот параметр т.н. дельта радиусом, который подбирается экспериментально.

    Калибровка:

    1. Отправляем головку на высоту щупа в любую из трех точек стола. Например G1 Z9 X-52 Y-30
    2. Сравниваем высоту центральной точки и высоту точек A,B,C. (Если высота точек A, B, C разная, необходимо вернутся к предыдущей калибровки.)
    3. Если высота центральной точки больше остальных, то линза выпуклая и необходимо увеличить значение дельта радиуса. Увеличивать или уменьшать желательно с шагом +-0,2мм, при необходимости уменьшить или увеличить шаг в зависимости от характера и величины искривления (подбирается экспериментально)
    4. Команды:
      G666 R67,7
      M500
      G28
    5. Подгоняем дельта радиус пока наша плоскость не выровняется
    3 Этап. Находим истинную высоту от сопла до столика

    Третьим этапом мы подгоняем высоту печати (от сопла до нижней плоскости — столика) Так как мы считали, что общая высота заведомо не правильная, необходимо ее откорректировать, после всех настроек высот осей. Можно пойти двумя путями решения данной проблемы:
    1 Способ:
    Подогнав вручную наше сопло под щуп, так что бы оно свободно под ним проходило, но при этом не было ощутимого люфта,

    • Командой M114 выводим на экран значение фактической высоты нашего HotEnd’а
    • Командой M666 L получаем полное значение высоты (Параметр H)
    • После чего вычитаем из полной высоты фактическую высоту.
    • Получившееся значение вычитаем из высоты щупа.

    Таким образом мы получаем величину недохода сопла до нижней плоскости, которое необходимо прибавить к полному значению высоты и и записать в память принтера командами:
    G666 H 235.2
    M500
    G28

    2 Способ:
    Второй способ прост как валенок. С “потолка”, “на глаз” прибавляем значение высоты (после каждого изменение не забываем “уходить” в home), добиваясь необходимого значения высоты, но есть шанс переборщить со значениями и ваше сопло с хрустом шмякнется об стекло.

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

    Умная подсветка лестницы своими руками

    Автором данной самоделки является AlexGyver (YouTube канал «AlexGyver»).

    Теперь, что касается самой подсветки. Задача следующая: сделать умную подсветку лестницы, которая бы включалась плавно при подходе к лестнице и так же плавно выключалась при выходе с нее.

    В интернете можно встретить множество вариантов исполнении этой штуки, но мы пойдем своим путем и сделаем свой собственный уникальный проект.


    Светодиодные ленты бывают разными, но в основном их можно разделить на 2 лагеря: адресные светодиодные ленты и обычные.

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


    На изображении выше продемонстрирована какая-то схема из Гугла, автор использовал ее, чтобы показать количество транзисторов, которые понадобятся для данного проекта если мы выберем в качестве источника света обыкновенную светодиодную ленту.

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

    Данная лента питается от 12В. Способна управлять каждыми тремя светодиодами. То есть, стоит один чип, который подает один и тот же цвет на 3 своих светодиода.

    Ленту целесообразно купить в Китае, например, на Алиэкспресс, так как стоимость ее в разы отличается от тех, которые можно встретить в местных магазинчиках.

    На данный момент китайцы просят за катушку 5-метровый ленты с плотностью 60 диодов на метр не так уж и дорого, всего 700 рублей, так что можно смело заказывать.

    Как уже было сказано выше, брать ленту с более плотным расположением светодиодов (более 60 светодиодов на метр) для данного проекта не имеет особого смысла, 60 светодиодов на метр в самый раз для такой подсветки.

    IP – это степень влагозащиты, IP30 без защиты, IP65 – лента покрыта силиконом, и IP67 – лента находится в герметичном силиконом кожухе, это важно для уличных лестниц, думаю, здесь все понятно.



    Но с наконечником такие датчики имеют довольно-таки большой угол обзора, почти полусфера.

    Если избавиться от колпачка, то угол сужается до 90 градусов, а если поместить датчик в отверстие, угол можно еще немного сузить, то есть датчик можно практически запрятать в стене или перилах.









    При каждом новом включении эффект меняется на следующий. Какие ещё могут быть варианты? У датчика тайм-аут около 7 секунд, то есть если вы идете вдвоем или даже втроём система вас всех заметит как одного человека, то есть включит лестницу по первому человеку и выключит соответственно тоже по первому.

    Если зайти на лестницу и стоять на ней, или просто уйти обратно, не активировав второй датчик, или если второй датчик просто не сработал – подсветка автоматически выключится через указанный в прошивки тайм-аут, причем эффект выключения будет просто плавным угасанием как будто системы не поняла куда вы делись и просто плавно погасила свет.



    На этом все. Благодарю за внимание. До новых встреч!

    Видеоролик автора:

    Свобода в действии

    Записки по применению свободных технологий в программировании и повседневной работе с персональным компьютером

    Подсветка лестницы. Продолжение 1

    • Получить ссылку
    • Facebook
    • Твиттер
    • Pinterest
    • Электронная почта
    • Другие приложения

    Что может этот прототип

    Что ещё предстоит добавить

    Пошаговая сборка прототипа

    Подключаем линейный регулятор

    Подключение драйвера светодиодных лент

    На фотографии внизу драйвера подключены зелёный (на цифровой пин 7 arduino) и белый (на цифровой пин 6) провода. Это то, что на схеме называется “CLOCK IN” и “DATA IN” соответственно. Сверху драйвера на фото вино, что к первому пину (VDD) подключен красный провод – это +12 вольт. Второй пин драйвера (BRIGHTNESS CONTROL) так же подключен к +12 вольт через резистор номаналом 1 КОм. Последний пин в верхнем ряду драйвера на фото подключен жёлтым проводом к “минусу” двенадцати вольт. Оставшиеся пины (OUTPUT BIT) подключены к катодам (короткие ножки, “минусы”) двенадцативольтовых светодиодов. Аноды (длинные ножки, “плюсы”) светодиодов подключены к +12 вольт.

    Подключаем дальномеры

    Подключаем фоторезистор

    Мой скетч

    В скетче используется библиотека для работы со светодиодным драйвером lightuino3, взятая из пакета по ссылке. Только пришлось внести небольшую правку в эту библиотеку (иначе не компилировалось). Строку 81 дополнил словом “const”. Было:
    Стало:

    • Получить ссылку
    • Facebook
    • Твиттер
    • Pinterest
    • Электронная почта
    • Другие приложения

    Комментарии

    Хорошая статья! А как насчёт ШИМ?

    Светодиодный драйвер M5451 умеет плавно зажигать/тушить своих подопечных. Как это реализуется на практике опишу в “Продолжении 2”. Пока (как находится время) делаю платку со всей обвязкой для светодиодных лент.

    У меня имеется М5450. Она тоже умеет плавно зажигать? Жду с нетерпением продолжения проекта)

    Различия между этими драйверами минимальные. Так что почти все возможности и трудности совпадают. На макетке я собрал схемку, где плавное зажигание/гашение работали (программа чужая из тырнета), но уже успел всё разобрать. Но зарисовал всё в Fritzing и пытаюсь найти время всё это спаять. А вот с программой мне ещё предстоит разбираться, т.к. мои хотелки несколько больше, чем те примеры, которые нашлись.

    Нескромный вопрос: когда можно ожидать готовую третью часть? заранее спасибо. P.S. наглость второе счастье

    Ох, медленно дело продвигается 🙁 До готового установленного изделия ещё далеко. Но в ближайшие пару недель выложу “Продолжение 2” по “железу” – плата с транзисторами uln2803 и инверторами логики 74hc04. За окончательную программу ещё не брался.

    И снова здравствуйте. Подскажите пожалуйста, как регулировать количество ступенек на даном этапе?

    В данной программе из статьи отдельной переменной для количества ступенек нет. За количество “ступенек” отвечают наибольшие числа в циклах за комментариями “//Обнуляем”, “//Зажигаем”, “//Гасим”. Там стоит “9” (в некоторых местах 9-1=”8″) – вместо девяти поставьте ваше количество ступенек.

    здравствуйте, помогите разобраться в ошибке Arduino: 1.6.5 (Windows XP), Плата”Arduino Uno”

    In file included from C:Documents and SettingsLonerМои документыArduinolibrarieslightuino5/lightuino3.h:28:0,
    from sketch_jul21c.ino:1:
    C:Documents and SettingsLonerМои документыArduinolibrarieslightuino5/lightuinoSink.h:158:31: error: ‘prog_uchar’ has not been declared
    AniPattern(Lightuino& shld, prog_uchar* anim,prog_uint16_t* delayLst, int total_frames): shield(shld)
    ^
    C:Documents and SettingsLonerМои документыArduinolibrarieslightuino5/lightuinoSink.h:158:48: error: ‘prog_uint16_t’ has not been declared
    AniPattern(Lightuino& shld, prog_uchar* anim,prog_uint16_t* delayLst, int total_frames): shield(shld)
    ^
    C:Documents and SettingsLonerМои документыArduinolibrarieslightuino5/lightuinoSink.h:166:3: error: ‘prog_uchar’ does not name a type
    prog_uchar* ani;
    ^
    C:Documents and SettingsLonerМои документыArduinolibrarieslightuino5/lightuinoSink.h:167:3: error: ‘prog_uint16_t’ does not name a type
    prog_uint16_t* delays;
    ^
    C:Documents and SettingsLonerМои документыArduinolibrarieslightuino5/lightuinoSink.h: In constructor ‘AniPattern::AniPattern(Lightuino&, int*, int*, int)’:
    C:Documents and SettingsLonerМои документыArduinolibrarieslightuino5/lightuinoSink.h:158:115: error: ‘delays’ was not declared in this scope
    AniPattern(Lightuino& shld, prog_uchar* anim,prog_uint16_t* delayLst, int total_frames): shield(shld)
    ^
    C:Documents and SettingsLonerМои документыArduinolibrarieslightuino5/lightuinoSink.h:158:132: error: ‘ani’ was not declared in this scope
    AniPattern(Lightuino& shld, prog_uchar* anim,prog_uint16_t* delayLst, int total_frames): shield(shld)
    ^
    Ошибка компиляции.

    Это сообщение будет содержать больше информации чем
    “Отображать вывод во время компиляции”
    включено в Файл > Настройки

    Я пока проверить не могу. Видимо, в какой-то момент изменились доступные типы переменных в языке программирования для Arduino. Возможно, поможет, изменить “prog_uchar” на “const unsigned char”, а “prog_uint16_t” на “const uint16_t”. Я постараюсь выяснить и добавить в статью это.

    Олег,
    здравствуйте!
    Планировал установку контроллера у себя в доме. Прошу Вас написать мне на эл.почту ovchinnikovr собака mail.ru . Надеюсь, что получится посотрудничать.

    Hello
    I’m trying to build this project but stummble on some problems. when importing sketch i get errors related to lightuino library.

    i-from › Блог › Крутая домашняя акустика своими руками

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

    Речь пойдет о сборке более или менее качественной двухполосной домашней акустики, способной передать самые мельчайшие нюансы аудиозаписей, и открыть для Вас мир качественного звука, не без (качественного усилителя разумеется).

    Это не первая акустика которую мне довелось спроектировать и собрать, до этого был опыт как очень основательного апгрейда советской классики, так и сборки акустики с нуля. Супругу не устраивал форм-фактор моей советской классики, большие широкие гробы которые не вписывались в интерьер и занимали слишком много места

    Но звучали они превосходно, на настройку кроссовера я потратил около года доводя звук до идеала.

    Колонки получились довольно тяжелой нагрузкой для усилителей, но мой усилитель собранный по мотивам форума Vegalab без проблем с ними справлялся:

    Однажды один знакомый американец сказал мне что самое крутое акустическое оформление которое он когда либо слышал это трансмиссионная линия (TL). Он же лабиринт или четвертьволновой резонатор или органная труба, не путать с резонатором Гельмгольца и с фазоинвертором. У нас в России большой опыт собрал по лабиринтам Рогожин Александр. С тех самых пор общения с американцем я и загорелся собрать что-то в данном оформлении.

    Идейным вдохновением для меня стала акустика фирмы PMC Twenty 24 Можно погуглить обзоры на данную акустику, посмотреть замеры и сравнить их с замерами моей акустики ниже.

    В качестве динамиков были выбраны привычные мне норвежские Seas CA18RLY и 27TDC. Их не сложно свести, они не имеют серьезных изъянов, в общем хорошие динамики за свои деньги.

    После прогрева и обмера динамиков получил следующие параметры Тиля-Смолла:
    Fs 49hz
    Mms 10.7g
    Rms 1.75 kg sec
    Cms 0.0009 m N
    BL 6.0
    Vas 17 L
    Qt 0.38
    Qes 0.48
    Qms 1,91

    У пары динамиков параметры почти не отличаются, я привел параметры одного из них. Параметры указывают на повышенную жесткость подвеса, относительно паспорта. Я не знаю как их так надо размять чтоб подойти к паспортным параметрам, в реальной жизни они у меня скорее задубеют чем разомнутся. Поэтому взял за опору в расчетах эти параметры.

    Проект корпуса:

    После сборки и тестов корпус получился в итоге такой:

    Внутри корпус выглядит так:

    Этот корпус даёт плавный спад АЧХ, -5дб на 30 гц. Можно уменьшить высоту корпуса на 5-10 см, тогда спад АЧХ будет быстрее, но зато общая чувствительность до 100 гц будет выше — кому что ближе. Соотношение длин 1 к 2 соблюдается, поэтому если делать выхлоп в пол то динамик придется опускать ниже, мне же наоборот хотелось поднять его как можно выше, а порт вывести вперед и красиво оформить струевыпрямителем в стиле одной известной фирмы. Должен отметить, что когда давал синус 35 гц приличной мощностью, динамик едва колебался, а из порта в прямом смысле дуло в руку, а когда отходишь подальше слышно мощный бас Поток воздуха в этой колонне очень даже приличный. Маленький с виду динамик возбуждает большой резонанс в двухметровой колонне.

    В качестве материала для корпусов была куплена 18мм березовая фанера. МДФ не нашёл.

    Поскольку корпуса будут оклеиваться шпоном, то нет возможности сделать какую либо стенку съемной, охота получить цельную монолитную конструкцию, поэтому съёмным будет дно, которое будет по совместительству выполнять роль подставки с винтовыми ножками. Лазить туда придется только за фильтром, в процессе его точной настройки.

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

    Отец у меня увлекается столярным делом, поэтому корпуса мы забацали вдвоем с ним:

    Hi-End акустика своими руками, или как сделать хорошие колонки

    Посвящается тем, у кого есть свободное время

    Открываем популярный журнал про хороший звук и с удовольствием смотрим на изящные образы (если не сказать образА) акустических систем, а посмотреть есть на что. Мощные башни ощетинились во все стороны динамиками, блестят своими лакированными боками, давят паркет острыми шипами и вообще вызывают чувство глубокого уважения. Похоже, у них есть только один недостаток – это, конечно, цена. Возникает вполне логичный вопрос, а что если сделать копию какого-либо монстра самому? Купить динамик несложно, собрать корпус, пускай и не такой красивый – тоже, катушки и конденсаторы можно отечественные, аккуратно спаять 3 детали – и вовсе задача для ученика 10-го класса школы.

    С учетом количества готовых модулей, которые предлагает Ebay, сделать хороший усилитель не намного сложнее. Чего там только нет: коммутация, защита АС, платы класса A-AB-D, регуляторы громкости на любой вкус, красивые корпуса, сделанные специально для аудио, ручки, ножки и трансформаторы – знай только соединяй. В следующей статье мы обязательно расскажем, как собрать свой усилитель, который не уступит большинству «брендовых» образцов стоимостью до 60-70 тысяч рублей.

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

    Из чего делать? Фанера, МДФ, ДСП, пластик, массив.

    Мир видел много странных акустических конструкций, например, из бетона или шлакоблока. Все же самыми «востребованными» остаются вышеперечисленные пиломатериалы на основе древесины. Попробуем понять, какой из них «правильнее». Базовое правило – вне зависимости от выбранного материала не экономьте на его качестве, то есть цене.

    Первым идет король современной Hi-Fi и Hi-End индустрии – МДФ, из него сделано подавляющее большинство колонок, как дорогих, так и дешевых. Причина проста – невысокая стоимость, удобство обработки и отделки, в том числе варианты с готовым шпоном, отсутствие ярких резонансов. При грамотном проектировании получение оптимального результата гарантировано. Рекомендуем к применению, больше сказать нечего.

    Пластик – понятие очень растяжимое, его «авторитет» значительно подточен дешевыми китайскими подделками, хотя преимуществ у него не меньше, чем у любого другого материала. Проблему недоступной для любителя возможности отливать свои заготовки из желаемого материала – проходим мимо.

    Хорошим материалом для изготовления корпуса акустической системы может служить ДСП. Пожалуй, главный его недостаток – множество проблем с отделкой, не важно, что вы решите: красить, шпонировать или обтягивать. У ДСП есть огромный плюс: если нужно сделать быстро и очень дешево, то можно использовать заводскую ламинированную плиту (ЛДСП). Добиться в таком случае высокой эстетики вряд ли получится, но цена и скорость оставят далеко позади всех остальных претендентов. Если сравнивать резонансные свойства материалов в разрезе пригодности для колонок – ДСП занимает первое место, хотя разница по сравнению с МДФ невелика.

    Капризная, но неизменно желанная «матерыми аудиофилами» госпожа фанера. Фанера бывает нескольких видов – березовая, хвойная, ольховая, ламинированная. Почему капризная? Любую фанеру «ведет», то есть при высыхании лист изменяет свою геометрию, при пилении часто появляются сколы. Также это не самый простой для отделки материал, если вы хотите получить «глухой» матовый цвет без проступающих граней, текстуры, ребер. Причина для того, чтобы терпеть эти мучения, довольно спорная: по мнению «бывалых» только фанера дает то самое живое дыхание, которое «убивают» ДСП и МДФ. Наиболее мне непонятно желание сделать себе корпус из «живой» фанеры и «убить» ее слоями шпаклевки, грунта, краски, лака в попытке скрыть «страшные» стыки с прожилками (слоями фанеры), которые днем и ночью смотрят с немым укором на своего владельца. Куда предпочтительнее варианты специальной пропитки, хотя бы тем же «датским маслом», не так уж страшны эти темные «полосочки» на ребрах корпуса…

    Что за нищебродство этот ДСП-МДФ? Может сразу из цельного дуба, да потолще!? Не спешите вставлять динамик в первое увиденное дупло. Вопреки ожиданиям массив древесины ценных пород не обогащает звук пропорционально вложенным деньгам, более того, даже требует дополнительного демпфирования по сравнению с более дешевыми материалами. Хотя его несомненные плюсы – это удобство отделки: если акустика собрана аккуратно, довести ее до симпатичного эко-вида не составит большого труда. Вместо увеличения толщины рекомендуется добавить (приклеить) с обратной стороны еще один лист менее резонансного материала, например, того же МДФ, сделать «сэндвич». Наиболее удачный вариант применения массива – это акустика типа «щит», где требуется красивая и тяжелая передняя панель.

    Экзотика. Часто выбор обусловлен тем, что есть под руками. Подобно тому, как птица может виртуозно вплести в гнездо всякий мусор, так и меломан тащит все, что плохо лежит. Можно найти на просторах сети идеи, воплощенные из сантехнических труб, искусственного камня, папье-маше, футляров и корпусов от музыкальных инструментов, примитивных строительных материалов, товаров IKEA, и.т.д., и.т.п.

    Куда вставлять динамик?

    Основную задачу акустического оформления можно сформулировать простым языком приблизительно так: максимально отделить колебания, излучаемые передней стороной диффузора динамика, от тех же противофазных колебаний, излучаемых задней стороной диффузора. Идеальным акустическим оформлением с точки зрения учебника считается бесконечный экран, такой невероятно огромный щит, в который установлен динамик. Понятное дело, слова «невероятно огромный» не подходят ни к нашему жилищу, ни к заработной плате, так что инженеры стали искать способ «свернуть» этот экран с минимально негативными последствиями для звука. Так получилось все многообразие вариантов, некоторые снискали себе наиболее обширную славу в интернете, их мы и рассмотрим в данной статье.

    Просто динамик или корпус без корпуса

    Тяжело себе представить, что есть такой вид «акустики», но, листая ленту фотографий в pinterest по теме аудио, все чаще натыкаюсь на грозди 12-ти дюймовых динамиков, которые собраны вместе без всякого оформления и явно представляют собой законченный агрегат. Наверное, замысел автора пронизан следующей логикой: любой корпус портит звук, лучше акустическое короткое замыкание, чем деревянные оковы, но чтобы был хоть какой-то «низ», надо взять динамики с максимальной площадью диффузора, на которые только хватит денег. Если это ваш путь – без комментариев.

    Щит и «широкополосник»

    Говорят, те, кто попробовал лампу, широкополосный динамик и открытое оформление, никогда уже не возвращаются к традиционному, транзисторно-резиновому образу жизни. Описывать свойства щита занятие не благодарное, вся необходимая информация есть в архиве, а для самых ленивых – и на youtube, где подробно объясняют, что это за зверь и с чем его едят, например:

    Наибольший плюс такой конструкции – простота изготовления. Нужен лист любимого материала и лобзик. Самый главный критерий, который будет влиять на итоговое качество звука – стоимость установленной динамической головки. Неутихающую народную славу снискал себе динамик 4а32, даже такие гранды, как fostex, sonido, supravox, sica или сам visaton B200, остались далеко позади. Поговорка «размер имеет значение» – вот лучшая математическая формула для щита (чем больше – тем лучше). Далее идут вариации щита, например щит, со свернутыми боковыми стенками, щит, у которого низкочастотный модуль сделан в виде ящика с фазоинвертором, и.т.п. Фирменная особенность звука – «воздушное» звучание с минимумом резонансов, при этом сравнительно высокое звуковое давление.

    ПАС – панель акустического сопротивления

    Что если попытаться скрестить щит и закрытый ящик? Получится ящик с задней стенкой, в которой сделано множество отверстий. Количество отверстий, их суммарная площадь в сочетании с объемом ящика будет определять степень демпфирования (сопротивления), уровень низких частот (чем меньше «дырок» – тем больше баса, но и больше «бубнежа»). Количество подбирается экспериментально, по вкусу.

    Линейный массив излучателей, групповой излучатель (ГИ)

    На самом деле, такой подвид акустики касается больше динамиков, нежели конструкции самого корпуса. Думаю, вы уже видели колонки, каждая из которых состоит из большого количества одинаковых маленьких-маленьких динамиков, ну или не очень маленьких, кому как позволяет бюджет и жилое пространство:

    По электрической схеме, головки включены последовательно, то есть «плюс» предыдущего подсоединен к «минусу» последующего, возможно комбинирование последовательно-параллельного соединения. Количество динамиков, собственно, тоже ограничивается только деньгами, здравый смысл, как правило, к этому моменту уже бесследно пропадает. Не подумайте обо мне ничего плохого, я пробовал такое извращение, мне даже понравилось, если есть возможность, настоятельно рекомендую собрать себе подобную конструкцию хотя бы ради интереса. Опять же, бюджет сего безобразия не очень велик, как правило, применяются отечественные динамики в хорошем состоянии, 5гдш, 8гдш, 4гд-8е, и.т.п.

    Акустическое оформление – тот же щит или закрытый ящик, желательно хитрой формы, например треугольной. Одна из проблем, с которой предстоит столкнуться – высокое суммарное сопротивление, не всякий усилитель раскроет потенциал «массива». Серийные образцы, выпускаемые фабрично, имеют более сложные решения, динамики часто собираются в хитрые модули, добавляются фильтры.

    Фазоинвертор, bass reflex port, резонатор Гельмгольца, он же ящик с «трубой»

    Вот он – самый популярный вариант акустического оформления. Массовым становится самое выгодное по соотношению ценаполучаемый результат, наш случай не исключение для данного правила. Для тех, кто не скачал архив неизвестного аудиофила, объясняем на пальцах. В трубе фазоинвертора есть некоторый объем воздуха, который зависит от его длины, он же «связан» с воздухом, который содержится внутри колонки. При удачной настройке длины трубы (не будем сходу погружаться в теорию) удается добиться более уверенного воспроизведения низких частот, чем просто в закрытом ящике. Если еще проще – с фазоинвертором получается глубокий бас. Для более углубленного понимания вот ролик с уже полюбившегося нам канала:

    Хоть данный вид акустики и популярен, он далеко не так прост в изготовлении, одно тянет за другое. Динамики, которые подходят для такого оформления, называются «компрессионными», чаще всего имеют резиновый подвес и полосу частот, которая требует установки высокочастотного звена, твиттера или пищалки, то есть добавляется электрический фильтр. Выбор оптимального объема корпуса, его геометрии, точная настройка длины трубы имеют большое значение и не всегда соответствуют расчетным величинам. Ситуацию облегчает наличие в сети массы проектов, где авторы уже прошли тернистый путь и предлагают поэтапные инструкции с подробным описанием что, как, из чего надо делать. Впрочем, всегда находятся энтузиасты, которых не устраивает «готовое» и хватает упорства пройти своей дорогой. Недостатки фазоинвертора – «бубнеж» и «задавленная середина». Первое решается тщательным подбором формы, диаметра, материала и длины трубы; второе – добавлением отдельного среднечастотного звена. Верный путь к трехполосной акустике.

    Обратный рупор TQWP и другие лабиринты судьбы

    Чего только не придумали люди, чтобы усложнить путь колебаниям, идущим от обратной стороны динамика… Пожалуй, более всех отличилась фирма B&W со своими Nautilus, хоть памятник ставь этой морской раковине-мутанту. Но это гранды, а все, что можем мы, обычные аудиофилы, так это вспомнить свои ночные кошмары и поставить внутри прямоугольного ящика дощечки с гвоздями так, чтобы этому поганому звуку мало не показалось. Если серьезно – есть такие динамики, к которым оформление типа «фазоинвертор» не подходит, а щит не дает желаемого количества баса, от вида же сабвуфера что-то сжимается в животе. Тогда на помощь приходит обратный рупор или более сложный вариант – лабиринт. Для тех, кому интересно, как это работает, желаем приятного просмотра

    Кто-то может возразить: обратный рупор – это не совсем лабиринт, отчасти мы можем согласиться, но что более достоверно – он ближе к лабиринтам, чем классический рупор:

    Он напоминает о старом граммофоне. Как можно догадаться из названия, обратный рупор или лабиринт – далеко не самый простой вид акустического оформления, он требует хорошего понимания теории, точного расчета или хотя бы соблюдения заводских рекомендаций. Например, крупные фирмы-производители широкополосных динамиков, как правило, приводят в документации к своим динамикам пару вариантов чертежей корпуса.

    Онкен, закрытый ящик (ЗЯ), рупор, пассивный излучатель и другие

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

    Демпфирование, «набивка», «заглушка»

    Корпуса готовы, что с ними делать дальше? Правильно, демпфировать. Можно разделить демпфирование на два вида: вибропоглощение и звукопоглощение. Для вибропоглощения хорошо подходят автомобильные материалы, мастики и специальные листы с клейким слоем, предпочтительней последнее. Со звукопоглощением наблюдается разброд и шатание, кому-то нравится войлок, кому-то шерсть, ватин, синтепон, прочее. Ответ достаточно прост – для разного эффекта, в зависимости от типа корпуса и частоты, которую хочется подавить, будет зависеть выбор материала. Заполнение звукопоглощающим материалом корпуса увеличивает его виртуальный объем, однако определить универсальную норму, на мой взгляд, невозможно.

    Настройка кроссовера (разделительного фильтра)

    Вы решили делать многополосную акустику. Нужен ли измерительный микрофон? Если это разовый проект, то нет, не нужен, достаточно иметь тестовую подборку треков и некоторый опыт для понимания, какое звучание можно назвать более правильным. Просто придется дольше перебирать детали пассивного фильтра, слушать и сравнивать, но в итоге результат будет именно такой, который нужен вашим ушам, помещению. Чуть легче дело обстоит с активными кроссоверами. Раньше их приходилось делать самостоятельно, травить и разводить платы, паять, очень муторный процесс, особенно если схема имеет приличную крутизну среза и регулировки, для трехполосной акустики – просто дикая штука. Благо сегодня достаточно просто зайти на ebay и выбрать вариант себе по карману, хочешь на операционниках, хочешь на DSP. Регулировать частоту, а иногда и крутизну среза (в особо редких случаях фазу), можно плавно хоть каждый день.

    Финал

    Иногда мне кажется, что ситуация в мире аудио напоминает легенду о Вавилонской башне. Когда-то, в далекие времена, когда нога Van Den Hul’a еще не ступала на землю, люди строили вместе один комплект домашнего стерео. Большие-большие колонки, не менее большой усилитель, а к ним тянулись толстые-толстые кабели. Увидел это некто свыше и ужаснулся – ну и дичь, хоть бы книжки почитали какие… Суровая кара постигла незадачливых аудиофилов, с тех пор они спорят до хрипоты, но так и не могут договориться, как надо делать колонки-усилители, вот каждый и делает свои, как может.

    Ссылка на основную публикацию