Анализатор звукового спектра - от идеи до устройства.

  Рет қаралды 1,914

Denis Possible

Denis Possible

Күн бұрын

Представляю вашему вниманию анализатор спектра на восьмибитном микроконтроллере PIC18F2520 с диапазоном частот 600 - 13000 Герц.
Ссылка на проект:
drive.google.com/file/d/1iSax...
Тайм коды:
00:00 - Обзор, принцип действия, и составляющие будущего устройства.
07:12 - Начало выполнения программной составляющей.
15:33 - Подготовка таблиц косинуса, синуса и аргумента при помощи программы на С++.
23:54 - Добавление таблиц к проекту в MPLAB.
39:48 - Первый тест в симуляции.
40:49 - Тестирование в устройстве.
42:36 - Доработка программы.
47:15 - Финальное тестирование и шлифовка программы.
48:52 - Рекомендации для изменения количества спектров и высоты столбцов.

Пікірлер: 30
@radio7996
@radio7996 6 ай бұрын
Благодарность за материал.
@user-vb4pj2so5o
@user-vb4pj2so5o Жыл бұрын
Впечатляет! Сейчас мало кто на ассемблере что-то делает, когда-то в 2002-2009 году делал что то на PIC, нравилось кодить и лаконичность у PIC и по шагам время считать! прошивки короткие. В ATMEL одна и та же функциональность могла уже не помещаться. Спасибо за такую работу, очень наглядно.
@vsosacordeev
@vsosacordeev Жыл бұрын
Молодец, очень толково! я бы так сам, точно не смог.
@Dmirty1291
@Dmirty1291 11 ай бұрын
Олдскул. Мозгодробительный asm, когда даже сложение не просто так. Делал анализатор на avr + asm. DHT вместо DFT. Так что представляю сколько времени ушло на отладку финальной версии кода. Отличный ролик. Лайк!)
@remden
@remden 11 ай бұрын
Сложение и вычитание - самое простое, а вот с делением посложнее. Лучше всего отлаживать программы блоками, по этому я каждое вычисление делаю отдельной функцией.
@RomanMalov-ve3lu
@RomanMalov-ve3lu Жыл бұрын
Гениально, Это гениально! Я не верил , что получится, край как нибудь с эмулировать видимость , но это превзошло мои ожидания. Теперь вопрос как бы вот звук на прямую в протеус подать, схему такую я вряд ли спаяю в реалии , в данный момент, моими возможностями , а вот в протеусе под свой мк было бы здорово повторить! Спасибо , такую Большую Работу.
@remden
@remden Жыл бұрын
Звук можно подключить - выбрать в панели значок генератора (~) - аудио и указать путь в аудио файлу, только Протеус в реальном времени не сможет все обработать, будет очень сильно тормозить.
@RomanMalov-ve3lu
@RomanMalov-ve3lu Жыл бұрын
@@remden Имхо, меня это устроит , я в свободное время, займусь! спасибо.
@RomanMalov-ve3lu
@RomanMalov-ve3lu Жыл бұрын
И как вариант, в будущем, Денди на пик написать! данные можно по уарт гонять, прорисовывать на канвасе, в с++.
@remden
@remden Жыл бұрын
Как вариант, но сложновато :)
@RomanMalov-ve3lu
@RomanMalov-ve3lu Жыл бұрын
@@remden Согласен! и именно в обуздании графического процесора, их расчётов! Палка в колёса большая.
@user-cu6kn2ko3n
@user-cu6kn2ko3n 8 ай бұрын
На Ютуб канале Kuroki Almajiro 254 очень крутые анализаторы спектра знать бы как он такие делает . Повторил бы, эх.
@remden
@remden 8 ай бұрын
Делаются они в основном все по одному алгоритму, в базе тот самый алгоритм Фурье ДПФ
@stm32Lab
@stm32Lab Жыл бұрын
В MPLABx там даже другой ассемблер.
@remden
@remden Жыл бұрын
Нет, все тот-же, только версия другая, и для каждой серии МК своя разновидность.
@stm32Lab
@stm32Lab Жыл бұрын
@@remden То, что на разные МК асм разный - это понятно. Но я делал для одного и того же PIC16F877A, и в MPLAB 8.92 и в MPLABx - ассемблер отличался. Погуглил - пишут, так и есть. "При этом синтаксис языка ассемблера для транслятора MPLAB XC8 PIC Assembler существенно отличается от MPASM[2], для перехода на новый транслятор требуется существенная переработка исходного кода программы." из википедии
@remden
@remden Жыл бұрын
@@stm32Lab Давно не пользовался Х-ом, раньше на нем был стандартный ассемблер mpasm, а в новых теперь его полностью исключили. XC 8 это упрощенный С. Вот по этому я на него не хочу переходить. Я как ни будь выпущу видео, где разберу все достоинства и недостатки компилятора на С.
@XpIOHdeJIb3000
@XpIOHdeJIb3000 7 ай бұрын
почему вместо equ не пользоваться udata, удобнее же намного и посмотреть сколько памяти занято можно
@remden
@remden 7 ай бұрын
equ потому что, в основном объявляются отдельные регистры, а не блоки памяти, на счет просмотра сколько регистров занято - это также видно и с equ.
@XpIOHdeJIb3000
@XpIOHdeJIb3000 7 ай бұрын
@@remden udata же не просто константа, она резервирует место и что-то другое на тоже место случайно не назначить. В отладке все регистры подписаны своими именами. Есть автоматические секции. Пользоваться equ вообще не вижу смысла.
@remden
@remden 7 ай бұрын
@@XpIOHdeJIb3000 Все правильно, udata резервирует место под блок регистров, а equ под один регистр. Если используются совместно equ и udata (в разброс), то также можно налезть - друг на друга. Я использую - equ, в видео,- для большей наглядности, чтобы был виден порядок задействованных ячеек памяти. К именам регистров объявленных через equ - также можно обращаться через +1 и т.д. (Reg+1 ... Reg+n).
@XpIOHdeJIb3000
@XpIOHdeJIb3000 7 ай бұрын
@@remden equ - это просто урезанный дефайн, он вообще ни чего не гарантирует. В случае с udata, компилятор не позволит наехать одной секцией на другую и выехать за границы регионов памяти в мк. Я не настаиваю, можно пользоваться "дедовскими" методами, а можно упростить жизнь себе и особенно другим, кто будет копаться в вашем коде.
@remden
@remden 7 ай бұрын
@@XpIOHdeJIb3000 Все правильно, но если совмещать equ и udata, то можно пересечься по неосторожности, особенно если несколько классов. Если использовать только udata, то такого не будет, но сложнее ориентироваться в адресах регистров, когда надо отследить в них значения. В общем - это дело привычки, а так - да, можно немного разнообразить код.
@cozycactus
@cozycactus Жыл бұрын
больно видеть людей которые начинали программировать не на unix подобных системах
@gogmagog6285
@gogmagog6285 11 ай бұрын
Эти люди в Космос полетели. А те, кто кроме никс ничего не знает, никогда никуда не полетит.
@user-bi4ve1id8y
@user-bi4ve1id8y 11 ай бұрын
@@gogmagog6285 луна 25 так и не долетела, а раньше даже грунт с луны привозили.
@saburovanatoly2197
@saburovanatoly2197 9 ай бұрын
Почему в протеусе не делаете платы, денис?
@remden
@remden 9 ай бұрын
Мне как-то не удобно в нем работать, в DipTrace намного лучше, в плане библиотек, добавлении и редактировании компонентов и отправки на печать, где можно откалибровать принтер.
@maksimlenin3159
@maksimlenin3159 11 ай бұрын
Есть же ещё люди.. Думал дегенераты одни остались на ютубе
@andrandr4121
@andrandr4121 10 ай бұрын
Согласен! Мало того Денис дает бесплатные уроки и всего 904 подписчика. А там где реально дебилы и дебильные видео подписчиков под миллион.
Can A Seed Grow In Your Nose? 🤔
00:33
Zack D. Films
Рет қаралды 23 МЛН
I'm Excited To see If Kelly Can Meet This Challenge!
00:16
Mini Katana
Рет қаралды 21 МЛН
Задержи дыхание дольше всех!
00:42
Аришнев
Рет қаралды 3,7 МЛН
Визуализация гравитации
10:00
Макар Светлый
Рет қаралды 13 МЛН
Как работают АНТЕННЫ? Самое понятное объяснение!
11:00
Hi Dev! – Электроника
Рет қаралды 832 М.
Зачем ставить Микроконтроллер в простые устройства?
16:38
ElEnBlog - блог об электронике
Рет қаралды 109 М.
Octopus vs Underwater Maze
17:13
Mark Rober
Рет қаралды 67 МЛН
Высокоточный вольтамперметр на Arduino своими руками
11:58
Заметки Ардуинщика
Рет қаралды 206 М.
Look, this is the 97th generation of the phone?
0:13
Edcers
Рет қаралды 7 МЛН
📱магазин техники в 2014 vs 2024
0:41
djetics
Рет қаралды 421 М.
8 Товаров с Алиэкспресс, о которых ты мог и не знать!
49:47
РасПаковка ДваПаковка
Рет қаралды 172 М.
$1 vs $100,000 Slow Motion Camera!
0:44
Hafu Go
Рет қаралды 28 МЛН