Индикатор уровня на основе платы Arduino DUE с 3,5-дюймовым TFT-дисплем для RPi
Вид с первоначальным вариантом программы:
Вид с другим вариантом программы:
Меня в своё время заинтересовала идея реализации такого индикатора, которую предложил Артём (getsket), правда он рассматривал возможность использовать для этого микрокомпьютер Raspberry Pi 3 и дисплей большего размера. У меня же лежал без надобности 3,5-дюймовый сенсорный дисплей, который я безуспешно пытался подключить к плееру RuneAudio (а его использование совместно с системой Raspbian, на мой взгляд, лишено всякого смысла, хотя с ней он заработал).
Рассматриваемый дисплей имеет разрешение 480x320 точек и активные размеры экрана 75x50 мм (следует заметить, что рабочая область экрана смещена несколько влево — это видно на фотографии, но это просто нужно учесть при монтаже дисплея). Он управляется по последовательной шине SPI, но, несмотря на это, совместно с платой Arduino DUE обладает достаточным быстродействием, высокой яркостью и контрастностью. Подсветка экрана — равномерная, без пятен и засветов, с отличной прорисовкой мелких деталей (очень хорошо читается текст из символов высотой 1,5 мм), приличные углы обзора (имеющаяся фотография всего этого передать не может). На основе используемой графической библиотеки GxTFT нетрудно реализовать и другие подобные проекты, например для «Умного дома», или для автомобиля, где требуется наглядное представление информации от различных датчиков. Можно использовать дисплеи с другими размерами экрана, главное, чтобы они поддерживались указанной библиотекой. Дальше — что, где и как отображать — зависит от фантазии программиста. Мне пришлось вспоминать школьный курс тригонометрии и преобразование координат.
По предложению Дениса (caleb) на основе этих же устройств я попробовал сделать многофункциональный сервисный блок для УНЧ, архив с материалами по которому прикреплён во вложении в конце статьи. Можно доработать эту конструкцию под свои нужды, исключив из неё лишнее и добавив требуемые узлы.
Решение использовать плату Arduino DUE было совершенно не очевидным. Мне помогла статья Александра Жорника Соединяем несоединимое. 3.5" TFT цветной дисплей на чипе ILI9486 от Raspberry Pi подключаем к Arduino DUE. В этой статье довольно доходчиво расписано, как можно в принципе реализовать такую связку, правда за подробностями пришлось обращаться к автору — большое ему спасибо за оказанную помощь. Для меня вообще было открытием, что существует такая плата Arduino с 32-разрядным микроконтроллером ARM (AT91SAM3X8E), работающим на тактовой частоте 84 МГц! При работе с описываемой платой необходимо учитывать, что напряжение её питания и логические уровни сигналов составляют +3.3В.
На мой взгляд, приобретать оригинальную плату Arduino DUE не имеет никакого смысла — её стоимость может в несколько раз превышать стоимость китайского клона, который прекрасно работает. Единственное, что нужно сделать — провести небольшую доработку, которая устраняет возможный неустойчивый запуск после включения — без доработки для нормального запуска может потребоваться нажатие кнопки Reset. На оригинальных платах эта доработка R3 уже проведена, на китайских клонах — обычно нет. Здесь подробно описан способ решения этой проблемы. Суть доработки сводится к тому, что нужно запаять резистор 10 кОм типоразмера 0603 между истоком и затвором полевого транзистора T3 рядом с 6-контактным разъёмом ICSP. Я не стал проверять работоспособность своего экземпляра китайского клона платы Arduino DUE без этого резистора, и сразу запаял его, и никаких проблем в работе замечено не было.
Можно подключить дисплей к плате Arduino DUE с помощью обычных проводов со штырьками, которые используются на макетных платах Arduino. Поначалу, для первой проверки, я так и сделал, но это очень неудобно, так как провода перекручиваются, штырьки выскакивают и даже обламываются. Поэтому для дальнейших экспериментов для дисплея был сделан переходник на основе 7-проводного ленточного кабеля — именно столько контактов используются дисплеем для отображения информации (функции сенсорного экрана мы не используем). На одном конце кабеля распаивается 26-контактный разъём «папа» для подключения непосредственно к дисплею:
а на другом конце кабеля — 7-контактный разъём CHU-7 (с ответной частью для монтажа на плату CWF-7), или другой подходящий:
Контакты дисплея, используемые для вывода информации:
Контакт переходника | Контакт дисплея | Сигнал дисплея | Сигнал Arduino | Примечание |
1 | 2 | +5V | +5V | На плате дисплея уже имеется стабилизатор +3,3V |
2 | 6,9,20,25 | Gnd | Gnd | |
3 | 22 | RST | D5 | |
4 | 18 | DC | D6 | |
5 | 24 | CS | D10 | |
6 | 19 | MOSI | D75 | Разъём SPI, контакт 4 |
7 | 23 | SCK | D76 | Разъём SPI, контакт 3 |
Так выглядит дисплей с переходником:
Благодаря наличию сигнала выбора CS можно подключить к плате Arduino DUE ещё один дисплей. Для этого все выводы второго дисплея, кроме CS, подключаются параллельно выводам первого, а сигнал выбора — к одному из свободных портов платы Arduino DUE.
Для защиты дисплея от внешних воздействий, а также для возможности его крепления, из оргстекла для него был изготовлен корпус, состоящий из 6 частей: переднее тонированное серое стекло толщиной 2 мм размерами 104x73 мм, задняя крышка такого же размера из прозрачного оргстекла толщиной 2 мм с вырезом, и 4 бортика шириной 8 мм из оргстекла толщиной 6 мм (покупалось когда-то в Чип и Дип), прикреплённые к переднему стеклу клеем B7000. По углам конструкции просверлены 4 отверстия под винты M2x12 с потайными головками. Во вложении вместе с рисунком печатной платы переходника для дисплея приведена разметка корпуса для дисплея. Оргстекло я резал на станке, установив в него пильный диск для стеклотекстолита.
Для выполнения функций измерителя уровня необходимо собрать узел полуволновых пиковых детекторов, преобразующих звуковые сигналы с (линейного) выхода усилителя к уровням до +3,3В, которые будут подаваться на аналоговые входы A0, A1 платы Arduino (являющиеся на самом деле входами АЦП):
Схемы пиковых детекторов «подсмотрены» в статье ATmega8 — VU5 Светодиодный индикатор уровня. Их особенностью является использование однополярного питания с сохранением достаточной линейности и практическим отсутствием начального напряжения смещения на выходах, что обеспечивает нормальную работу в диапазоне сигналов примерно до 30..40 дБ. При слишком малых уровнях сигнала возможно влияние помех по цепям питания и проявление разбаланса каналов. Ввиду последнего обстоятельства желателен подбор диодов VD1, VD2 по прямому падению напряжения (с помощью мультиметра). Может быть также потребуется подбор микросхемы компаратора LM393 (из-за заметной разницы в отображении каналов на малых уровнях мне пришлось заменить свой первоначальный экземпляр LM393 на другой, более «удачный»). Выбор такой схемы пиковых детекторов является компромиссным: он в целом обеспечивает приемлемую точность измерений при относительной простоте схемы (этот вариант пиковых детекторов хорошо подойдёт для второй версии программы, которая точнее имитирует поведение аналоговых измерителей и имеет меньший диапазон). Лучших результатов можно достичь применением пиковых детекторов на основе ОУ с двухполярным питанием, при этом диапазон фиксируемых уровней расширится до 50..60 дБ:
На приведённой схеме от стабилитронов VD5 и VD6 пришлось отказаться, так как они, с одной стороны, начинают слишком рано ограничивать выходное напряжение (уже при уровнях порядка +2В), а с другой стороны, выходное напряжение в любом случае не превышает величину +3,3В (вследствие ограниченности уровня выходного напряжения у применённых ОУ DA1,DA2 и за вычетом прямого падения напряжения на диодах VD1,VD3). В качестве формирователя отрицательного напряжения -5В я применил готовый миниатюрный DC-DC преобразователь HLK-1D0505A с гальванической развязкой (можно приобрести: здесь, здесь или здесь). Чувствительность пиковых детекторов можно повысить уменьшением номиналов резисторов R3 и R6. Подстроечные резисторы VR1 и VR2 служат для плавной регулировки чувствительности, а VR3 и VR4 — для точной подстройки нуля и выравнивания показаний каналов на малых уровнях.
Для сборки воедино необходимых узлов можно изготовить отдельную печатную плату, которая устанавливается сверху платы Arduino DUE. Однако, мне приглянулся другой вариант — использовать для этих целей готовую макетную плату для Arduino MEGA 2560 — по размерам и распиновке она подходит для Arduino DUE. На ней мы скоммутируем разъём для подключения дисплея и соберём пиковые детекторы.
Для первого варианта пиковых детекторов плата может выглядеть так:
Рядом с разъёмом для дисплея к шинам питания +5В необходимо подключить фильтрующий электролитический конденсатор номиналом 100 мкФ — без него возможны сбои в работе.
Для монтажа пиковых детекторов с двухполярным питанием я изготовил отдельную печатную плату, которая стыкуется с основной макетной платой через штыревые (PLS) и гнездовые (PBS) разъёмы (преобразователь для формирования отрицательного напряжения размещён отдельно на макетной плате):
Здесь на макетной плате по шинам питания +5В установлен ещё один электролитический конденсатор с низким ESR номиналом 100 мкФ, снижающий уровень помех от преобразователя напряжения.
Вид печатной платы пиковых детекторов снизу:
Этот вариант пиковых детекторов можно использовать и в других конструкциях.
Монтаж соединений на макетной плате удобно выполнять с помощью тонкого лужёного одножильного провода в цветной изоляции — можно сразу приобрести катушку с проводами 8 цветов (Multi). Во вложении приведён файл архива с рисунками печатных плат в формате программы Sprint Layout, а также схема монтажа проводов на макетной плате для обоих вариантов пиковых детекторов.
Пример соединений снизу макетной платы для пиковых детекторов V1.0:
Пример соединений снизу макетной платы для пиковых детекторов V2.0:
Для разводки сигналов SCK (D76) и MOSI (D75), идущих к разъёму SPI Arduino DUE, на макетную плату снизу припаивается разъём PBS-2. Схема всех контактов Arduino DUE приведена ниже:
Теперь рассмотрим не менее важную программную часть устройства. Как уже указывалось, она основана на использовании готовой библиотеки GxTFT, автором которой открыт небольшой форум.
Для первоначального запуска графической демо-программы необходимо сначала загрузить и затем распаковать архивный файл библиотеки GxTFT-master.zip в папку Arduino\libraries, расположенную в папке «Мои документы» («Документы» в системе Windows 10) — после этого библиотека будет установлена. То же самое можно сделать через среду Arduino IDE, если зайти в меню Скетч | Подключить библиотеку | Добавить .ZIP библиотеку… и выбрать файл с архивом GxTFT-master.zip. После этого нужно перейти во вложенную папку распакованного архива examples\GxTFT_DUE_HVGA_graphicstest и откорректировать файл скетча GxTFT_DUE_HVGA_graphicstest.ino — в нём необходимо после строки:
// ***> select a pre-configured display header <***
заменить имя файла в заголовке include:
# include «myTFTs/my_3.5_HVGA_480x320_DUE_direct.h»
на имя файла, соответствующего нашему дисплею:
# include «myTFTs/my_3.5_RPi_480x320_DUE.h»
Теперь нужно открыть файл скетча GxTFT_DUE_HVGA_graphicstest.ino в среде Arduino IDE. Далее через меню Инструменты | Платы | Менеджер плат в среде Arduino IDE необходимо добавить плату Arduino DUE, если она отсутствует. Плата Arduino DUE подключается к компьютеру через разъём USB «Programming», находящийся рядом с разъёмом питания платы, а в настройках среды Arduino IDE требуется выбрать соответствующий COM-порт: «Programming Port».
Если нажать на кружок со стрелкой в меню Arduino IDE, начнётся компиляция программы с последующей записью полученной прошивки в плату (на это потребуется некоторое время — объём прошивки может составляет порядка 60 кбайт). После этого на экране должны появиться демонстрационные изображения.
Документации на библиотеку нет. Чтобы облегчить её применение, приведу краткий список использованных мной в программе индикатора уровня графических процедур и функций с небольшими пояснениями (или неиспользованных, но понятных). Полный перечень и примеры их использования можно найти в файлах src\GxTFT.cpp и examples\GxTFT_DUE_HVGA_graphicstest\GxTFT_DUE_HVGA_graphicstest.ino. Для доступа к ним необходимо создать в программе экземпляр (объект) класса TFT_Class (или, что то же самое, класса GxTFT): в нашей программе этот объект создаётся в файле src\myTFTs\my_3.5_RPi_480x320_DUE.h и имеет имя tft. После этого в программе можно использовать методы (процедуры и функции) этого объекта:
Метод | Пояснение |
tft.init (); | Выполняет сброс и инициализацию дисплея (должно выполняться первым) |
tft.setRotation ( r ); | Устанавливает ориентацию экрана r=0..3 (по умолчанию 1) |
tft.width () | Возвращает ширину экрана в пикселях (480) |
tft.height () | Возвращает высоту экрана в пикселях (320) |
tft.fillScreen (color); | Очищает экран заданным цветом color |
tft.drawPixel (x,y,color); | Рисует точку заданного цвета в позиции (x,y), где 0 <= x <= 479, 0 <= y <= 319, причём координатам (0,0) соответствует верхний левый угол экрана |
tft.drawLine (x1,y1,x2,y2,color); | Рисует линию заданного цвета между точками (x1,y1) и (x2,y2) |
tft.drawFastHLine (x,y,w,color); | Рисует горизонтальную линию заданного цвета шириной w от точки (x,y) |
tft.drawFastVLine (x,y,h,color); | Рисует вертикальную линию заданного цвета высотой h от точки (x,y) |
tft.drawTriangle (x1,y1,x2,y2,x3,y3,color); | Рисует треугольник заданного цвета по координатам его вершин (x1,y1), (x2,y2), (x3,y3) |
tft.fillTriangle (x1,y1,x2,y2,x3,y3,color); | Рисует залитый треугольник заданного цвета по координатам его вершин (x1,y1), (x2,y2), (x3,y3) |
tft.drawRect (x,y,w,h,color); | Рисует прямоугольник заданного цвета с координатами левого верхнего угла (x,y), шириной w и высотой h пикселей |
tft.fillRect (x,y,w,h,color); | Рисует залитый прямоугольник заданного цвета с координатами левого верхнего угла (x,y), шириной w и высотой h пикселей |
tft.drawRoundRect (x,y,w,h,r,color); | Рисует прямоугольник заданного цвета со скругленными углами радиусом r, с координатами левого верхнего угла (x,y), шириной w и высотой h пикселей |
tft.fillRoundRect (x,y,w,h,r,color); | Рисует залитый прямоугольник заданного цвета со скругленными углами радиусом r, с координатами левого верхнего угла (x,y), шириной w и высотой h пикселей |
tft.drawCircle (x,y,r,color); | Рисует окружность заданного цвета с центром в точке (x,y) и радиусом r |
tft.fillCircle (x,y,r,color); | Рисует залитый круг заданного цвета с центром в точке (x,y) и радиусом r |
tft.drawEllipse(x,y,rx,ry,color); | Рисует эллипс заданного цвета с центром в точке (x,y), радиусами горизонтальной rx и вертикальной ry дуг |
tft.fillEllipse(x,y,rx,ry,color); | Рисует залитый эллипс заданного цвета с центром в точке (x,y), радиусами горизонтальной rx и вертикальной ry дуг |
tft.setTextSize (s); | Устанавливает размер шрифта (0..7) |
tft.setTextColor ( c ); | Устанавливает заданный цвет текста c (с прозрачным фоном) |
tft.setTextColor (c,b); | Устанавливает заданные цвета текста c и фона b |
tft.setCursor (x,y); | Устанавливает текстовый курсор в графическую позицию (x,y) |
tft.print (a); | Выводит значение параметра a на экран в текущую позицию текстового курсора |
Для цветового параметра color можно использовать следующие предопределённые названия констант:
BLACK, NAVY, DARKGREEN, DARKCYAN, MAROON, PURPLE, OLIVE, LIGHTGREY, DARKGREY, BLUE, GREEN, CYAN, RED, MAGENTA, YELLOW, WHITE, ORANGE, GREENYELLOW, PINK.
В случае потребности подключения второго дисплея для него необходимо будет создать в программе отдельный объект класса TFT_Class, например, с именем tft1, добавив после строки:
# include «myTFTs/my_3.5_RPi_480x320_DUE.h»
следующие команды (по аналогии с содержимым файла «myTFTs/my_3.5_RPi_480x320_DUE.h»):
GxIO_Class io1(SPI, 8, 6, 5); // Подключаем вывод CS второго дисплея к порту D8 Arduino DUE
GxCTRL_Class controller1(io1);
TFT_Class tft1(io1, controller1, 480, 320);
Вывод информации на второй дисплей осуществляется так же, только вместо имени объекта tft нужно будет указывать tft1. Например, команда инициализации второго дисплея будет выглядеть так:
tft1.init ();
В прилагаемом к статье архивном файле vu-meter.zip содержатся все необходимые материалы: схемы обоих вариантов пиковых детекторов, рисунки печатных плат, схема соединений на макетной плате, список используемых радиоэлементов, а также библиотека GxTFT и самое главное — скетч с текстом программы. Достаточно распаковать загруженные архивы, перейти в папку DUE_3.5_RPi_VU_meter и открыть файл DUE_3.5_RPi_VU_meter.ino. Библиотека GxTFT-master должна быть предварительно установлена либо через меню Скетч | Подключить библиотеку | Добавить .ZIP библиотеку…, либо путём распаковки в папку Мои документы\Arduino\libraries. После компиляции и заливки скетча в плату Arduino DUE индикатор уровня должен заработать. При желании программы можно изменить по своему усмотрению или написать заново, используя имеющиеся наработки.
Позже программа измерителя уровня была переработана до версии 2 — она имеет более плавное движение стрелки, но, как и обычные аналоговые измерители, обеспечивает менее широкий диапазон и меньшую точность. Именно поэтому совместно с новой программой вполне можно использовать пиковые детекторы по схеме первоначальной версии 1. Скетч этой версии программы также находится в общем архиве.
В заключение рассмотрим конструкцию сервисного блока для УНЧ. В ней использован второй — улучшенный вариант пиковых детекторов на отдельной печатной плате, в дополнение к которой требуется ещё одна печатная плата — с узлами управления. Внешний вид сервисного блока приведён на фотографии (к сожалению, качество передачи цветов оставляет желать лучшего):
Возможности рассматриваемого сервисного блока:
- Выбор с помощью энкодера и отображение одного из 4-х входов с формированием позиционного кода управления селектором входов;
- Управление уровнем громкости с помощью энкодера и отображение этого уровня в виде линейки и в виде числового значения ослабления в -дБ, с формированием на выходах двоичного кода громкости, также с возможностью управления регулятором «Antecom» с помощью изменения выходного аналогового уровня постоянного напряжения в диапазоне 0..5В;
- Запись в память (FLASH) текущего номера входа и уровня громкости по нажатию кнопки энкодера селектора входов — эти значения будут восстанавливаться после включения питания;
- Включение и выключение кнопкой энкодера громкости режима Mute и отображение его состояния с формированием на выходе управляющего сигнала для соответствующего реле;
- Отображение состояния системы защиты динамиков (ОК — динамики подключены, Alarm — динамики отключены);
- Управление скоростью вращения компьютерного вентилятора (и её отображение) в зависимости от максимальной температуры, получаемой от 1..3 термодатчиков DS18B20, включённых параллельно;
- Отображение значения максимальной температуры от указанных датчиков;
- Формирование сигнала плавного пуска «Soft start» с задержкой порядка 5 секунд после подачи питания для организации пошагового включения питания, что позволяет плавно зарядить конденсаторы большой ёмкости в силовых цепях усилителя;
- Измерение выходного уровня усилителя (или уровня с линейного выхода) по шкале от -50 до +3 дБ (25 уровней с шагом по 2 и 3 дБ) с отображением так называемых зависающих «поплавков» на пиках сигнала (цвет отображаемых на шкале прямоугольников — зелёный, жёлтый и оранжевый — это зависит от уровня сигнала).
Для полной реализации перечисленных возможностей плата Arduino DUE должна запитываться от внешнего источника питания постоянного напряжения +9..12В, так как это напряжение используется для питания вентилятора. В этом случае также обеспечивается более точная и стабильная величина напряжения +5В, чем при питании через разъём USB.
Функции сервисного блока реализуются с помощью скетча, приведённого в архиве. В тексте скетча содержатся подробные пояснения по его работе и порядку его настройки, включая установку необходимых библиотек (установочные файлы всех необходимых библиотек тоже содержатся в прикреплённом архиве). Перед компиляцией скетча нужно вручную скорректировать некоторые параметры в настройках платы Arduino DUE, обеспечивающие формирование ШИМ на более высокой частоте по сравнению с установленной по умолчанию 1 кГц (как это сделать, также описано в тексте скетча). Также, возможно, потребуется изменение параметров библиотеки, используемой для обработки энкодеров, в зависимости от их типа (см. там же).
Приведём схему сервисного блока, за исключением ранее рассмотренной схемы пиковых детекторов:
Для аналогового управления громкостью в регуляторе «Antecom» используется цифровой потенциометр U1 AD5245, который подключается к плате Arduino DUE через преобразователи уровней на полевых транзисторах VT5,VT6 (на плате требуется запаять перемычку Jmp1). К сожалению, альтернативный вариант управления с помощью ШИМ не обеспечивает требуемой точности (линейности) регулировки. Для связи сервисного блока с силовыми цепями усилителя в целях обеспечения безопасности платы Arduino DUE используется гальваническая развязка на оптронах OC1, OC2. Все датчики температуры IC1..IC3 DS18B20 включаются параллельно через клеммник. Остальные необходимые пояснения можно найти в тексте скетча и в прилагаемом списке элементов. В архиве также содержатся принципиальные схемы, рисунки печатных плат, соответствующие гербер-файлы и схема монтажа соединений на макетной плате.
Макетная плата сверху:
Макетная плата снизу:
При выполнении соединений на макетной плате необходимо уделить особое внимание прокладке провода, идущего от контакта Vin — это относительно высокое напряжение от внешнего источника питания, и ни при каких условиях оно не должно попасть на другие контакты платы. Вероятно, лучше использовать для монтажа этой шины термостойкий провод МГТФ.
Собранная печатная плата сервисного блока сверху:
Собранная печатная плата сервисного блока снизу:
Так выглядят «поплавки» индикатора уровня — в отладочном режиме (впоследствии уровни шкалы были изменены):
Примечание: Цвет прямоугольников на шкале для уровней -10..0 дБ на самом деле жёлтый, выше 0дБ — оранжевый.
caleb 3 года назад #
Допилить до отображения выбранного входа, уровня выставленной громкости, режима защиты, можно температуры, цены ему не будет.
Точнее даже так, управления выбранным входом, уровнем, защитой, вентиляторами.
Pushok62 3 года назад #
Да, можно отображать что угодно, в зависимости от потребностей и фантазии, индикатор и библиотека GxTFT это позволяют :) Тем более, что для Arduino имеется множество разных готовых датчиков и соответствующих библиотек, и всё довольно просто с точки зрения программирования реализуется.
caleb 3 года назад #
В данном применении его сенсорность я так понимаю не используется ?
Pushok62 3 года назад #
Нет, не используется.
caleb 3 года назад #
Статью потом обновите?
Pushok62 3 года назад #
А в связи с чем обновлять статью? Пока ничего нового не появилось. В ближайшее время, когда придут платы, добавлю улучшенный вариант пиковых детекторов, а потом в проекте — доделать сервисный блок для УНЧ.
caleb 3 года назад #
Ну потом естественно.
Pushok62 3 года назад #
Добавил улучшенный вариант пиковых детекторов с корректировкой списка элементов, рисунком печатной платы для них и схемой монтажа на макетной плате.
Pushok62 3 года назад #
По предложению caleb «допилил» устройство до многофункционального сервисного блока для УНЧ, и его описание разместил в конце статьи.
Pushok62 3 года назад #
Обновил архив с вложениями: добавил текст программы новой версии V2 измерителя уровня, а также скорректировал текст версии V1 (исправление ошибки).
msoft 3 года назад #
>>возможностью управления регулятором «Antecom» с помощью изменения выходного аналогового уровня постоянного напряжения
Зачем эмулировать потенциометр, если можно просто передать код громкости на РГ? В теме на Веге у автора есть описание протокола управления регулятором.
Динамический диапазон потенциометра и разрешение АЦП на входе контроллера РГ меньше, чем 128 шагов аттенюатора. Поэтому для точного регулирования во всем диапазоне, выбора уровня ослабления в дб, индикации в виде точного цифрового значения, управление передачей кода видится более оптимальным. И по схеме — нужна всего одна нога контроллера и не нужен цифровой потенциометр.
Pushok62 3 года назад #
Да, наверное вы правы. Но у меня на самом деле нет регулятора Antecom, чтобы проверить его работу. В программу была внесена возможность аналогового управления в качестве альтернативы. То есть это как бы пример, или попытка предусмотреть возможности устройства на разные случаи жизни. Думаю, что по любому, в случае конкретного применения, придется корректировать и предлагаемую схему, и программу под свои нужды, так как учесть все нюансы довольно проблематично. Здесь основной упор был сделан скорее на демонстрацию возможности использования рассматриваемого дисплея для этой задачи, в качестве основы для собственных разработок.
caleb 3 года назад #
caleb 3 года назад #
А мне кытайцы так и не прислали релейного регулятора, хоть деньги вернули .
Andry 3 года назад #
Нашел похожий проект на Ваш, но он более оригинальней, в нем несколько вариантов отображения на экране разных индикаторов. Это может послужить идеей для дальнейшего совершенствования Вашего проекта?
Pushok62 3 года назад #
Нет, этим проектом я больше не занимаюсь. Основной идеей было подключить именно этот индикатор, и показать, как им можно управлять применительно, например, к индикатору выходного уровня и сервисному блоку для УНЧ. Все различные варианты и нюансы применения, конечно, предусмотреть невозможно. Поэтому, при наличии приведённых исходных текстов программ в среде Ардуино, каждый сможет адаптировать их под свои нужды, что-то добавить, что-то убрать, или переделать.
Andry 3 года назад #
Спасибо большое за ответ. К сожалению я пользуюсь готовыми прошивками. Придется искать кто сможет реализовать дополнения к Вашей прошивке, т.к. очень хотелось бы прицепить эту красоту к своему проекту.
Cat777 2 года назад #
А можно узнать, что именно нашли подобное?
Andry 2 года назад #
Проект, который я нашел теперь невозможно приобрести ввиду последних событий.
Cat777 2 года назад #
а всё-таки, что за проект?
Cat777 2 года назад #
И ещё. А если я приобрету и поделюсь? Имею возможность. Живу в Израиле.
Andry 2 года назад #
Вот проект, который мне очень нравится. Я его изготавливаю сам.
https://www.youtube.com/watch?v=S552t2I722w&t=114s
Идет модернизация проекта. Сделал шикарное приложение для управления этим проектом.
Cat777 2 года назад #
Смотрится шикарно! Нет слов.
Спасибо.
Но ранее Вы говорили о другом проекте, с выводом на дисплей, как я понял. В котором можно менять вывод на дисплей. Я об этом спрашивал
Andry 2 года назад #
https://www.youtube.com/watch?v=zvFINnP7cZY&t=10s
В этом проекте смотрите видео с 1 мин. 30 сек.
Andry 2 года назад #
https://www.youtube.com/watch?v=BhmFVt-WEBw
Cat777 2 года назад #
Да, впечатляет. Но… 349 евро...
Оно того стОит, конечно.
Будем, значит, пытаться сделать аналогичное:)
А на светодиодах бесподобно смотрится!
Cat777 2 года назад #
https://diylab.de/projekte/revox-a700-audiovisualizer/
Это не тот проект, случайно? Индикация на дисплее один в один как на видео в YouTube. Есть там и ссылка на GitHub. Там и исходники, и программа конфигурации, и hex файлы для прямой заливки на контроллер. Даже печатные платы прилагаются. По моему это именно тот проект. Но используется не Arduino, а Teensy 4.x версии. Мощная штучка, как оказалось! Надо «вгрузнуть» в неё попробовать. Впечатлило…
Andry 2 года назад #
Добрый день! Да, это именно он. Находил раньше как EVOR04. Он меня впечатлил. Хочу тоже попробовать собрать, т.к. его можно вставить в мой проект.
Вчера закончил мобильное приложение для управления своим проектом. Очень удобная штука и никто так не делал. Скоро выложу видео на YouTube.
Cat777 2 года назад #
EVOR04 это другой проект. И он мне не особо понравился. А этот — ну зацепил прям-)
Удачи с проектом! Жду видео. Очень интересно посмотреть.
Andry 2 года назад #
Что то не нашел схемы соединения по этому проекту. Наверное по прошивке придется смотреть соединения и подключения.
Cat777 2 года назад #
Всё в скетчах. Информации достаточно для повторения и переделки под себя
Andry 2 года назад #
Сейчас не могу заняться этим проектом. Соберете — сообщите как работает. Хорошо?
Cat777 2 года назад #
Конечно. Заказываю сегодня всё, что для этого нужно. Мне, вообще то, надо сделать немного другое. Думаю применить 3 дисплея: посередине — контроль усилителя, слева и справа от него — индикация. Всё без излишеств, чтобы было строго и красиво. И, главное, удобно в использовании и не перегружено. В общем, сделаю — сообщу тут.
Andry 2 года назад #
Я хотел использовать этот экран для коммутатора звуковых сигналов для меломанов, у которых много аппаратуры. Интересно посмотреть как у Вас получится. Жду с нетерпением конечный результат.
Andry 2 года назад #
Добрый день! Как успехи по сборке проекта?
caleb 2 года назад #
Это все проекты по индикации, а в шапке функционал был на первом месте, контроль и управление первостепенное. Так что сравнивать как-то не корректно.
Pushok62 2 года назад #
По правде говоря, в статье сделан упор именно на индикацию и использование индикатора (индикатор уровня), а сервисный блок для УНЧ рассмотрен как возможное дополнение :)
Andry 2 года назад #
Я Вам посоветую весь функционал перенести в приложение для телефона, а не на лицевую панель усилителя. Я рассматривал множество модулей, которые способны регулировать то или иное значение. Это удобно и современно. А визуал оставить на лицевой панели. Что бы глазу было приятно. Мне предлагали вариант с регулировкой параметров на TFT панели. Это неудобно. Надо обязательно подойти. Впрочем Вам самому выбирать каким быть Вашему устройству.
Pushok62 2 года назад #
Согласен, подходить неудобно. Чтобы не привязываться к смартфону, можно реализовать ИК управление.
Cat777 2 года назад #
Смартфон для управления усилителем? Как то не классически. В моём понимании усилитель должен быть таким: ИК управление, минимум кнопок-энкодеров, дисплей с лаконичной, но, по возможности, полной информацией (при этом не перегружен надписями-значками! Лучше уж вложенные меню), красивая индикация (VU, спектроанализатор). Как-то так. Вообщем — строгость и лаконичность. Что-то похожее сейчас делают в приборных панелях современных машин. Есть реально очень продуманные реализации. Так что я сейчас пытаюсь сделать нечто из этой оперы. Надеюсь, получится
Pushok62 2 года назад #
Когда получится, надеюсь, поделитесь с нами идеями вашей реализации?
VKhrychikov 2 года назад #
Я делал (и сделал) подобную концепцию в своём РГ (на перемножающем ЦАПе) и добавил индикацию и управление (входы, фильтры) в AH-D6. Действительно, получилось лаконично и симпатично. Индикация — семисегментные индикаторы (чтобы мне с моим уже не очень хорошим зрением издалека было видно), управление — пара ручек к энкодерам, пара кнопок и ИК. А если хочется со смартфона управлять, то есть Home Assistant с недорогим мостом WiFi- ИК (тоже, понятное дело, работает). Но можно, конечно, и ESP Home воткнуть, чтобы прямо на смартфоне всё видеть.
Cat777 2 года назад #
А есть возможность увидеть сделанное? Очень интересно посмотреть
VKhrychikov 2 года назад #
Да, конечно.
Быстро сделал фото и снял пример видео (сорри за качество).
https://disk.yandex.ru/i/B6Br6ZYZ7QZMxw или https://drive.google.com/file/d/1aqO-E6nqAGq58cSro...
https://disk.yandex.ru/i/HbuKED_M4rMDgw или https://drive.google.com/file/d/1avtRQoGZ2ZZQpoLzs...
https://disk.yandex.ru/i/MS_ps50DL8qReQ или https://drive.google.com/file/d/1at8jGc8ZLqTL6zEc6...
Внизу — AH-D6, вверху — мой РГ на перемножающих ЦАПах (не публиковался, но ув. Admin с ним знаком, прослушивал и измерял).
AH-D6 управляется двумя кнопками и ИК - переключение входов, фильтров, яркость или полное отключение дисплея, mute
РГ управляется кнопкой и энкодером и ИК- собственно, громкость, яркость или полное отключение дисплея, mute, переключение входов, уход в/выход из в дежурный режим (отключение всего, кроме управления и пульта, триггер 5вольт для отключения/включения других устройств)
При случае добавлю туда ESP чтобы публиковать статус устройств в WiFi домашней сети
ЯнС 1 год назад #
Хочу выразить свою благодарность автору этого проекта! Воодушевился и вдохновился. Решил повторить. Сделал шилд для Arduino Due и планирую попробовать идею в различных аудио-проектах. Я немного изменил схему пиковых детекторов, но большая часть компонентов осталась прежней. Сделал универсальные посадочные места под ОУ DIP8 и SO8, также применил два разных типа DC-DC преобразователей, так как у меня в наличии есть и те и другие. Получилась вот такая трассировка.
Печатные платы отдал на изготовление. Получу, попробую, обязательно отпишусь о результате.
Pushok62 1 год назад #
Спасибо! Ждём результатов :)
ЯнС 1 год назад #
Сегодня получил изготовленные платы.
Получилось вроде бы неплохо. Буду пробовать.
Pushok62 1 год назад #
Красота!
Cat777 7 месяцев назад #
Добрый день. Не поделитесь файликом платы?
Pushok62 7 месяцев назад #
Это вопрос, наверное, должен быть адресован к Яну, я так понял.
Cat777 7 месяцев назад #
Очевидно да, ему. Надеюсь увидит просьбу:)
ЯнС 7 месяцев назад #
Приветствую! Конечно, поделюсь. Единственное, я так был загружен работой, что я до сих пор не выбрал времени, чтобы собрать плату и протестировать устройство, поэтому, я не гарантирую, что все реализовано без косяков.
Cat777 7 месяцев назад #
Ян, огромное спасибо за гербер файлы! Срочно заказываю в Китае и буду пробовать:)
Файлы просил исключительно для собственного использования.
Как только будет готово, напишу сразу!