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

Почему именно анализатор-визуализатор спектра?


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

Разработка устройства


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

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

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

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


В качестве интерфейса подключения к компьютеру (или другому устройству, способному передавать аудио сигнал) был выбран разъём TRS (mini-jack 3.5 mm).

Сборка устройства


Сборку устройства начинаем с того, что делаем макет лицевой панели устройства.



Материалом для лицевой панели был выбран чёрный пластик толщиной 5мм (т.к. диаметр линзы диода также 5мм). По разработанному макету размечаем, вырезаем лицевую панель под необходимый размер и просверливаем отверстия в пластике под светодиоды.





Таким образом получаем готовую лицевую панель, на которой можно уже собирать дисплей.



В качестве светодиодов для матрицы были использованы двухцветные (красный-зелёный) с общим катодом GNL-5019UEUGC. Перед началом сборки матрицы, руководствуясь правилом “лишний контроль не повредит” все светодиоды, а именно 270 шт. (брали с запасом на всякий случай), были проверены на работоспособность (для этого было собрано тестирующее устройство, включающее в себя разъём, резистор 200Ом и источник питания на 5В).



Дальше разгибаем светодиоды следующим образом. Аноды красного и зеленого диодов отгибаем в одну сторону (вправо), катод отгибаем в другую сторону, при этом следим, чтобы катод был ниже чем аноды. И затем под 90° загибаем катод вниз.



Сборку матрицы начинаем с правого нижнего угла, сборку производим по столбцам.





Вспоминая про правило “лишний контроль не повредит”, после одного-двух спаянных столбцов, проверяем работоспособность.



Готовая матрица выглядит следующим образом.



Вид сзади:



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



Было решено так же выводить не только амплитудно-частотны, но и фазо-частотный спектр, а также выбирать количества отсчетов для отображения (32,16,8,4). Для этого были добавлены 4 переключателя: один на выбор типа спектра, два на выбор количества отсчётов, и один на включение и выключение устройства.

Написание программы


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



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

Сборка конечного устройства


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



Дело оставалось за малым, разметить отверстия под разъёмы, кабели и переключатели, а также вырезать две боковые панели из пластика.



В итоге, собрав всё воедино, подключив устройство к компьютеру мы получили следующее:

Амплитудно-частотный спектр (32 отсчёта):



Амплитудно-частотный спектр (16 отсчётов):



Амплитудно-частотный спектр (8 отсчётов):



Амплитудно-частотный спектр (4 отсчёта):



Фазо-частотный спектр:



Вид задней панели:



Видео работы устройства


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



Список необходимых элементов


  1. Светодиоды GNL-5019UEUGC – 256 шт. (Для дисплея)
  2. Транзисторы n-p-n KT863A – 8 шт. (Для управления строками)
  3. Транзисторы p-n-p С32740 – 32 шт. (Для управления столбцами)
  4. Резисторы 1кОм – 32 шт. (Для ограничения тока базы p-n-p транзисторов)
  5. Дешифраторы 3/8 IN74AC138 – 4 шт. (Для выбора столбца)
  6. Дешифраторы 2/4 IN74AC139 – 1 шт. (Для каскадирования дешифраторов)
  7. Монтажная плата 5х10см – 2 шт.
  8. Шлейфы
  9. Arduino Pro micro – 1 шт.
  10. Разъём mini-jack 3.5мм – 1 шт.
  11. Переключатель – 4 шт.
  12. Чёрный пластик 720*490*5 мм – 1 лист. (Для лицевой панели)
  13. Горшок цветочный чёрный 550*200*150 мм – 1 шт. (Для корпуса)
Поделиться с друзьями
-->

Комментарии (47)


  1. igruh
    15.06.2016 13:07
    +5

    Ну кто тут сможет удержаться и не плюсануть? Жаль мало фотографий участников проекта.


    1. vitecd
      18.06.2016 08:19

      участниц, но действительно — мало. Технические девочки сильно редкость и еще более сильная радость )


  1. GrakovNe
    15.06.2016 13:41
    +4

    Классно) Почему-то устройства, собранные девушками всегда выглядят очень аккуратно.
    P.S. а где исходники


    1. ru_vlad
      15.06.2016 14:24

      Полностью согласен!!!
      Сколько в свое время ездил по «ящикам» и могу с уверенностью сказать что если бы не прекрасные руки монтажниц, терпеливые и прекрасные головы наладчиц не было бы у нас космоса и оборонки :)


    1. stargazr
      15.06.2016 16:38

      Да, так все и есть, вы абсолютно правы.
      Причем, ладно бы еще неаккуратно у мальчиков было, часто дело вообще до грязи и ржавчины доходит. Вот как здесь, например: https://www.facebook.com/pastindicator/posts/863706450429165
      (надеюсь, тэг не нужен?)



  1. scg
    15.06.2016 13:49

    Плюсую. Проделывание дырочек можно было бы заказать на лазерной резке. Дрелью ровно не сделаешь.


    1. olafnew
      15.06.2016 14:24
      +2

      Что самое интересное — у них есть сверлильный станок судя по одному из фото.

      Что значит «дрелью ровно не сделаешь»? Если руки растут не из Ж — то руками никаких проблем сделать ровно.


      1. scg
        15.06.2016 15:01
        +1

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


        1. igruh
          15.06.2016 15:23

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


          1. scg
            15.06.2016 15:52
            +1

            Ну, не буду с вами спорить. Лично у меня никогда не получалось. То на сотом отвевстии неверно накернишь, то сверло чуть в сторону поведет.


    1. ilyaplot
      15.06.2016 14:29

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


      1. scg
        15.06.2016 15:06

        Да не так это уж и дорого — лазерная резка. Максимум, рублей 500. Заказать изготовление различных деталей у профессионалов не равнозначно покупки девайса целиком. Ардуину и светодиоды чай не сами в печи выплавляли.


        1. Julick
          15.06.2016 15:31

          В общей сложности у нас на всё устройство ушело около 30$, так что это бы занимало существенную часть. Не спрю, было бы ровнее значительно. Но практический опыт ничто не заменит


          1. scg
            15.06.2016 15:58

            Ну, я со своей меркой подхожу, конечно. Мне для DIY и печатную плату за 50$ заказать не жалко. :) Не, девайс у вас получился то, что надо. Просто есть вещи, которые практически невозможно сделать вручную аккуратно. В частности, это — решетки из дырочек.


            1. dlinyj
              15.06.2016 17:34

              Вполне можно аккуратно прорезать. Разумеется со сверльным станком и предварительной разметкой. Пластик-то уж точно


  1. SleepwalkerOne
    15.06.2016 13:51
    +8

    А код где?


  1. uterr
    15.06.2016 14:04
    +2

    А можно по подробнее, как вы получаете спектр на ардуине? Можно даже показать исходник… Ведь в ардуине мало памяти и не слишком быстрый процессор, поэтому преобразование фурье не такая и простая штука для нее. За какое время происходит преобразование и для какой выборки?


    1. IronHead
      15.06.2016 14:33

      Чан давным давно все это реализовал http://elm-chan.org/works/akilcd/report_e.html


      1. uterr
        15.06.2016 14:42
        +1

        мне интересно, как конкретно в этом проекте :) так как тут ардуина, нужно еще выделять время на отрисовку столбиков, с какими практическими проблемами столкнулись и т.д.


        1. stargazr
          15.06.2016 14:55

          Полагаю, что так же, как и у остальных ардуино-поделок: берем либу, дописываем две строчки, и вуаля.
          Вот, например, абсолютно аналогичная железка (даже чуть посложнее), на Uno
          www.youtube.com/watch?v=jJ7lzkrQIFk

          Использовалось, видимо, вот это github.com/mike95826/makefurt/tree/master/arduino-libraries
          Да, под видео есть еще ссылка на гуглкод, но там куча мусорных файлов в исходниках.


      1. REPISOT
        15.06.2016 14:53

        Да, тоже про него сразу вспомнил.


  1. zeit-geist
    15.06.2016 14:24

    Девчонки с ножовкой и паяльником — это невероятно круто!
    Жаль, у меня плюсануть не получается


  1. AndriAnoBoTS
    15.06.2016 14:24
    +1

    Что вы понимаете под «фазо-частотный спектр»? И зачем Вам он вообще может быть полезен?


    1. avost
      15.06.2016 18:28

      Ну, амплитудо-частотный в таких устройствах тоже не особо полезен. Так, для красоты… но, что понимается под этим в данном случае, да, интересно.


  1. HeadWind
    15.06.2016 14:24

    Отлично! Места на передней панели много, еще можно добавить динамики, разъемы USB и флешек всяких, питание от аккумулятора и будет БумБокс)


  1. ilyaplot
    15.06.2016 14:25
    +1

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


  1. REPISOT
    15.06.2016 14:50
    +5

    Ни программы, ни схемы. Кто в итоге спектр-то считает?
    и уж тогда не «Амплитудно-частотный спектр», а
    Спектральная плотность мощности (СПМ).


    1. Julick
      15.06.2016 15:42

      Амплитудно-частотная характеристика спектра ведь и есть модуль спектральной плотности мощности?


      1. REPISOT
        16.06.2016 06:09
        +1

        Нет. АЧХ — это характеристика тракта. Спектр — характеристика СИГНАЛА.
        При прохождении сигнала через тракт, его спектр будет соответствовать АЧХ тракта, только если на входе будет белый шум.

        Как это АЧХ может быть модулем СПМ? компоненты СПМ вычисляются как «корень из суммы квадратов реальной и мнимой компоненты преобразования Фурье»


  1. dlinyj
    15.06.2016 14:58

    Было бы интересно посмотреть софт и схему ардуины. И как вообще её хватает на такую обработку?


  1. profitmichael
    15.06.2016 15:18

    тяжело вздыхаю и иду варить борщ…


  1. Julick
    15.06.2016 15:25

    1. stargazr
      15.06.2016 15:38

      А зачем копипастить? Нельзя было просто добавить всю библиотеку?
      https://github.com/mike95826/makefurt/blob/master/arduino-libraries/FixFFT/fix_fft.cpp
      https://github.com/Vichkarichka/Analyzer-visualizer-audio-spectrum/blob/master/code/fft.cpp


      1. Julick
        15.06.2016 15:48

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


    1. ilyaplot
      15.06.2016 17:17

      Добавьте ссылку в пост, пожалуйста.


  1. madf
    15.06.2016 16:06
    +1

    Сверхизвращенство, мне подобное было делать лень, проще было взять WS-ки: www.youtube.com/watch?v=4ldsFIbf8aU
    Подача/расположение/формы панелей в любой комбинации…


    1. IronHead
      15.06.2016 16:33

      Нет, я конечно тоже похвастаюсь своим творением
      https://www.youtube.com/watch?v=hdeJQqIIclo
      https://www.youtube.com/watch?v=l7EDhozF0PI
      сначала хотел предложить, как альтернативу разработки из статьи,
      но
      для осмысленного управления ws нужен как минимум stm32, на ардуино боюсь ничего толкового не выйдет
      плюс хороший блок питания на 5В 3А — это применительно для поделки из видео
      плюс нужно писать прошивку — тут не отделаешься простым копированием ардуиновской либы
      ну и конечно — бюджет. на видео строка из 5 метров ленты, одна лента уже дороже 30$ выходит


      1. madf
        15.06.2016 16:42

        1. на дунях — это всё прекрасно делается, без проблем и на более маломощных МК… надо только понимать, что происходит, чтобы не выходило казусов.
        2. у меня на видео 16х16х3=768 светодиодов питаются от обычного USB (500мА), яркость с избытком.
        3. ну на счет кода — это дело уже вообще для каждого сугубо личное…
        4. поглядел ваши видюшки, простите, но картинки у вас не плавные, рисуются рывками.


  1. sav13
    15.06.2016 16:20

    Есть женщины в русских селениях!
    Безусловный плюс


  1. diller61
    15.06.2016 16:32

    Реализация FFT могла бы стать изюминкой этого проекта)


  1. Kavaru
    15.06.2016 17:22

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


    1. VillyV
      15.06.2016 17:27

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


      1. jetcat78
        17.06.2016 10:26

        www.aliexpress.com/item/WS2812B-4pins-5050-SMD-W-WS2811-Individually-Addressable-Digital-RGB-LED-Chip-5V/1639139960.html

        7$ за 100 шт WS2811 — разве что плату пришлось бы чертить и травить.
        А так да, хорошо для набивки рук на «воздушный» монтаж.
        Молодцы!


  1. GarryC
    15.06.2016 17:37

    Присоединяюсь к вопросу о ФЧХ и ее смысле в данном контексте?
    Ну и заметка на полях — все великолепно и замечательно, при этом применение специализированных микросхем драйверов с токовым выходом сильно увеличило бы цену девайса, особенно если рассматривать цену владения — с учетом места на плате, разводки платы, количества точек пайки и сопутствующих факторов?
    Кстати, по поводу FFT — если число точек по частоте не превосходит определенного значения, то СКП дает намного лучшие результаты, по моим оценкам это число точек в районе 3 и лежит, так что девушки молодцы, что не стали усложнять программу сверх необходимого.


  1. AntiFreezeman
    15.06.2016 20:08

    Никто не знает где можно купить уже готовую схему с каким нибудь led экранчиком или заказать у кого?


  1. pal73
    16.06.2016 09:42

    Девчонки молодцы, здорово.