Skip to content

DrCosha/AMP-Mono-module

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Модуль управления оконечным усилителем

Amplifiler control unit

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

Общее описание

Модуль управляет усилителем мощности со следующими возможностями:

  • работа в режимах standby и powerOn;
  • индикация мощности стрелочным индикатором с подсветкой;
  • поддержка входов формата RCA и XLR, с переключением между ними;
  • установка режимов подсветки стрелочного индикатора как вручную, так и по сенсору освещенности;
  • защита акустических систем от постоянного напряжения и перегрузки;
  • принудительное отключение стрелочного индикатора в моменты переходных процессов включения/выключения усилителя.

Способы управления

Модуль управления моноблока получает команды от следующих устройств и блоков:

Лицевая панель управления:

  • кнопка Power на лицевой панели;
  • кнопка Input на лицевой панели;
  • кнопка VU light на лицевой панели;
  • датчик освещенности

Входы/выходы управления на задней панели:

  • вход TriggerIN - подача питания от +5..12V на вход (5-15mA), приводит к сработке входного триггера. На входе есть задержка от дребезга контактов, а также задержка выключения устройства для подавления переходных процессов при включении/выключении внешнего управления и переключении входов на внешних устройствах.
  • выход TriggerOUT - работает в режиме подачи сигнала +12V (до 100mA) при включении модуля, либо в режиме проброски сигнала с TriggerIN на TriggerOUT.
  • шина OneWireBUS - подключение к общей шине управления для приема/передачи команд по OneWire. Однопроводная шина с подключением до 254 блоков параллельно для синхронизации сигналов управления. Все блоки могут асинхронно передавать данные в режиме peer2peer (все-всем). На шине нет устройства "мастера", все равнозначны.

Управление через WiFi:

  • сервер MQTT - подключение к топикам сервера для возврата статуса и получения команд.
  • WEB сервер со страницей настроек доступа к WiFi и MQTT. Страница доступна по IP адресу подключения модуля.

Коммуникация

Моноблок усилителя работает в комплексе с аналогичными, поэтому общается с ними следующим образом:

OneWire BUS:

Блоки работают на общей шине по принципу равных, т.е. на шине нет мастера или ведущего устройства. Необходимость в синхронизации блоков и как следствие - передаче данных по шине OneWireBus, возникает только при внешнем управляющем воздействии на один из блоков. Сама шина данных не является источником для синхронизации данных, поэтому передача параметров по шине OneWireBus и их применение не приводит к повторной передаче данных по OneWireBusи возникновению "шторма пакетов". По шине идет передача крайне ограниченного набора данных. По ней передаётся информация о статусе включения/выключения блока, выбор источника и выбор установленного режима подсветки. Т.е. это синхронизация базового управления, доступного с лицевой панели любого из однотипных блоков.

WiFi:

Подключение к WiFi проводится с заранее установленными параметрами. Если подключение успешно, устанавливается соединение с MQTT сервером. При первичной настройке или не доступности WiFi сети или MQTT сервера, поднимается собственная точка доступа с именем HiAMP_xxxx - где xxxx - это 4 последних цифры MAC адреса. Без пароля по умолчанию. При этом, если есть соединение с WiFi, но нет соединения с MQTT, идут попытки установки соединения с ним в рамках заданной сети. Если это не происходит за 10 повторов, то повторно поднимается собственная точка доступа с возможностью подключения к ней и изменения настроек. Если никто не соединяется с этой точкой в течение 3 минут, то цикл попытки установки WiFi соединения и соединения c MQTT повторяется. После 3-х полных циклов, если нет успешного соединения с WiFi и/или MQTT сервером в сети, модуль связи с WiFi выключается до полной перезагрузки устройства. Индикация того, что идет установление соединения в рамках заданной в настройках WiFi сети - постоянное свечение синего LED, работа модуля в режиме точки доступа - мигание синего LED.

!!! Поддерживается только сеть 2.4МГц (это ограничение самого ESP32).

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

В зависимости от режима работы WiFi, доступ к странице можно получить следующим образом:

  • для собственной точки доступа контроллера - по адресу default_gateway точки доступа;
  • для режима подключения к существующей сети - по адресу выданному DHCP сервером вашего роутера.


MQTT:

Для получения команд от MQTT устройство подписывается на топик команд. Его имя можно задать через параметры на WEB странице устройства. Если работает несколько устройств, они могут быть подписаны на один топик команд и тем самам быть объединены в группу. При этом синхронизации между устройствами по MQTT при управлении с лицевой панели не будет. Свой статус устройство сообщает в топики статуса. Возвращаемый статус устройства разделен на два топика - основное состояние и вспомогательные данные.

Ниже будет описан способ полной синхронизации устройств через MQTT, без привлечения сторонних средств.

Управление через MQTT

Команды в топике команд:

Топик команд описывается в конфигурации как топик [SET]. Ниже приведена таблица команд, которые можно в нем применять:

Команда Описание
{"clear_config"} очистить Flash память и загрузится с конфигурацией по умолчанию
{"reset"} перезагрузить контроллер управления усилителем
{"report"} сформировать отчет о текущем состоянии в топик REPORT
{"power":"xxx"} включить модуль - "on" / выключить модуль - "off"
{"input":"nnn"} выбор входа для усилителя "rca" или "xlr"
{"vu_light": "aaaaaaa"} режим работы подсветки VU индикатора: "off","on_low","on_middle","on_high","auto"
{"trigger_enable":"xxx" разрешить - "on" / запретить работу триггеров - "off"
{"owb_sync":"xxx"} разрешение синхронизации по OneWireBUS "on" / "off"
{"bypass":"xxx"} разрешение прямой проброски триггерного сигнала с входа на выход - "on" / "off"
{"light_manual": [n1,n2,n3]} значения PWM для указания яркости освещения в режимах соответсвенно в режимах "on_low","on_middle","on_high" (возможный диапазон 60..2000)
{"light_auto": [min_value,max_value]} значения PWM для подстройки границ изменения автоматической яркости (возможный диапазон 60..2000)
{"ambient_sens": [min_value,max_value]} подстройка границ входного сигнала сенсора освещенности (возможный диапазон 0..4000)

Команды в топике команд могут комбинироваться в единый JSON. Пример:


{"power":"on","input":"rca","bypass":"off","trigger_enable":"off"}

Топики статуса

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

  • [STATE] - в который выводится основное состояние;
  • [MISC] - для вспомогательные данных и настроек.

Ниже приведены примеры данных, возвращаемых в топиках:

Основное состояние:

{"power":"on","input":"rca","vu_light":"on_middle"}

Формат данных в топике основного статуса и их набор идентичны формату команд в топике принимаемых команд, поэтому возможно включение модулей таким образом, что топик команд следующего устройства является топиком основного статуса предыдущего. Топик статуса последнего в цепочке может быть топиком команд первого. По сути создается кольцевая связь устройств. Так как данные в отчет выводятся только при реальной смене состояния модуля, или по таймауту, то такое включение будет синхронизировать модули между собой без возникновения "шторма" сообщений.
При такой конфигурации, внешнее управление СИНХРОННО ВСЕМИ УСТРОЙСТВАМИ можно осуществлять подавая команду в любой топик этой цепочки, либо с лицевой панели любого модуля.

Вспомогательные данные и настройки:

{"vu_brightness":0,"ambient":169,"trigger_in":"off","trigger_enable":"on","trigger_out":"off","bypass":"on","owb_sync":"on","light_manual":[65,80,500],"light_auto":[75,500],"ambient_sens":[0,1024],"versions":"SW=4.3 HW=6.0a","ip":"192.168.40.187"}

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

Тег Описание
"vu_brightness":nnn nnn текущее значение PWM для текущего уровня подсветки (может быть вычислено в режиме "auto")
"ambient":mmm mmm текущее значение сенсора освещенности скорректированное по границам, заданным в параметре "ambient_sens"
"trigger_in":"xxx" "xxx" = "on"/"off" - текущее значение триггерного входа IN
"trigger_enable":"xxx" "xxx" = "on"/"off" - разрешение управления внешним триггерным входом IN
"trigger_out":"xxx" "xxx" = "on"/"off" - текущее значение триггерного входа OUT
"bypass":"xxx" "xxx" = "on"/"off" - прямая трансляция сигнала со входа TRIGGER_IN на выход TRIGGER_OUT
{"light_manual": [n1,n2,n3]} текущее значение PWM для указания яркости освещения в режимах соответсвенно в режимах "on_low","on_middle","on_high"
{"light_auto": [m1,m2]} текущее значение PWM для подстройки границ изменения автоматической яркости
{"ambient_sens": [a1,a2]} текущее значение границ входного сигнала сенсора освещенности (нормализация значений)
{"versions":"SW=xx.xх HW=xx.xх"} версия прошивки и аппаратной части контроллера
{"ip":"xx.хх.хх.xх"} текущий IP контроллера

Amplifiler control unit - Hardware part

Описание аппаратной части контролера изложено здесь:

README.md (раздел hardware)

About

Amplifiler control unit. Hardware & soft.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published