Генератор волновых всплесков STM32 WaveLet
Vložit
- čas přidán 20. 12. 2020
- Свою первую печатную плату можете заказать на сайте www.pcbway.com/
Интересные сайты: cxem.net
Особенностью генератора является формирование частотно модулированных всплесков напряжения по своей форме напоминающих вейвлеты. Вообще вейвлеты применяются для частотного анализа периодических сигналов при анализе звука, фотографий и видео.
В общих чертах Генератор позволяет создавать модулированные частоты для значений от одного до 150Гц для низкой частоты и от 500Гц до 8кГц для высокой частоты с возможностью управлять амплитудой и временной задержкой между этими всплесками.
Код в CubeIDE:
drive.google.com/drive/folder...
Модули производства TDM Lab: vk.link/tdm_lab
Группа ВК: tdm_lab
Для прямой помощи каналу, перевод с банковских карт:
yoomoney.ru/to/4100116712276152
Библиотека SH1106
drive.google.com/drive/folder...
************************************************************************************************
Рекомендованная литература:
STM32 и Cube IDE изучаем с нуля до мастера за rand() дней ч.1 «Первые шаги»
zen.yandex.ru/media/id/5eb675...
Проектирование активных аналоговых фильтров средствами Analog Devices
zen.yandex.ru/media/id/5eb675...
************************************************************************************************
************************************************************************************************
Алиэкспресс:
STM32F401CCU6 ali.pub/56s1yb
STM32F411CEU6 ali.pub/56s1yb
STM32F103C8T6 ali.pub/4s0k7j
STM32F103C8T6 Black ali.pub/579d2l
Программатор ST-Link V2 ali.pub/56weqg
3,5" TFT LCD ali.pub/56w5gl
1,8" TFT SPI LCD ali.pub/56w4oe
1,3" OLED I2C LCD ali.pub/56w8vh
ЖК-экран с клавиатурой, 1602 для Arduino Uno ali.pub/56wau2
Arduino Mega Atmega2560 ali.pub/56w5jb
Arduino Uno Atmega328p ali.pub/56s0bz
Arduino Leonardo ATmega32u4 ali.pub/56weg5
Arduino Nano ATmega328 ali.pub/56weyt
Модуль клавиатуры 3x4 ali.pub/56w9sx
TTP229L сенсорная клавиатура ali.pub/579pie
Фотоэлектрический модуль ali.pub/56wh5r
ADS1115 АЦП 16 бит ali.pub/56s0mv
MCP4725 ЦАП 12 бит ali.pub/56s2f8
MCP3421 АЦП 18 бит I2C ali.pub/56s17o
MCP23017 12864 128*64 LCD I2C адаптера ali.pub/56w58f
PCF8574 адаптер I2C для LCD ali.pub/56waqd
ACS712 Датчик тока ali.pub/56s27u
nRF24L01+ беспроводной радиомодуль ali.pub/56wgx7
AD9850 DDS генератор ali.pub/56s0yq
SI5351 генератор сигналов 8KHz-160MHz ali.pub/56s3dg
KY-008 лазерный модуль для Arduino ali.pub/56whg9
Реле электромагнитное 5В ali.pub/56wh2u
XL6009 DC-DC Вход: 5-32В Выход: 5-55В в ali.pub/56w5m8
Повышающе-понижающий DC-DC 5A/80 Вт ali.pub/579qeh
AC-DC 12V 1.5A 5V 2A ali.pub/56w9xs
AC-DC 5В/12В/100мА/500мА ali.pub/56w9zx
************************************************************************************************ - Věda a technologie
Пожалуста, пишите про STM32. В отличие от бесчисленного колличества статей с моргалками LEDом, здесь реално полезное содержание.
Смотрю/читаю с удовольствием! Да, для меня это уже давно не открытие Америки, но очень нравится ваш стиль изложения материала.
Спасибо за отзыв!)
Я предпологаю что звуковые колебания звуковых волн , и звуковые вибрации - это ключь к развитию человечества . Иак что я за то чтоб вы продолжали своё дело
Лайкос за опытных программистов, рождающихся сразу с бородой.😂
Молодец 👍. Удачи тебе в твоих проектах!
Ну очень интересное видео. СТМ32 это моё всё и я с большущей радостью буду смотреть новые видосы) Спасибо за описание весьма интересного девайса.
Рекомендую почитать/попробовать новую линейку stm32g4. Возможно, генератор можно было собрать на стандартных функциях CORDIC, а не на таблице. +там ещё есть поддержка цифровой фильтрации FMAC. И небольшая ремарка - для устройств подключаемых непосредственно к человеку лучше использовать сертифицированное для медицинских целей оборудование (в тч ОУ), у них должна быть реализована защита как по статике, так и по отделению первичных цепей от вторичных при выходе из строя.
Спасибо, гляну g4.
Да, есть такое, CORDIC применяют для генераторов как на МК так и на ПЛИС, но я не уверен что там есть та гибкость которая нужна была мне.
Это в любом случае требует расчет тригонометрии "на ходу" чего я избежал таблицей.
Аппаратная фильтрация это хорошо. У меня в данном проекте АЦП просто питание измеряет, так что FMAC крутовато для этого))) Хотя буду знать.
Как я погляжу МК не хотят сдавать позиции ПЛИС-ам и стараются нарастить побольше "железных" вычислителей.
По поводу мед. устройств, тут все таки нет прямой электрической связи, только эл. магнитные волны от изолированного излучателя.
Устройство предполагает питание только от аккумулятора 12В с повышением на DC-DC 50В max, так что выдерживается безопасное напряжение на самой плате.
Спасибо. Очень познавательно и вдохновляюще
Маньяк! Класс!!! Мне понравилось. Все без лишних: бла-бла-бла!. И да, ждем продолжений.
Кстати! Напишу ещё))) Под конец видео увидел, что ты для питания МК применил 1117. Так вот, я с этой микросхемой как-то наступил на грабли в проекте, где энергопотребление стояло не на последнем месте. Суть в том, что при стандартном включении стабилизатор потреблял весьма значительный ток (миллиампер 8 или чуть больше даже). При попытке измерить ток по bias-выводу стаб сразу же прикидывался нормальным.😅В общем, вопрос решился установкой последовательно с ногой bias (оно же ADJ) - резистора на 10 Ом. На выходное напряжение стаба это не повлияло вообще никак, а вот жор как рукой сняло. С тех пор в проекты, где использую этот стаб, всегда закладываю к нему резистор. Грешу на непонятный подвозбуд микросхемы, но осцилом нарыть ничего не вышло. Чудо какое-то.😆
Круто
Спасибо за видео, очень полезно
Отличное видео!
оо) уже стмки. поздравляю, а я еще на аврке сижу)
Очень интересно!)
Отличный ролик
супер. У меня годами не доходят руки взяться за stm32 как следует.
Хороший подход.
Вообще не рекомендуются ставить крупные смд элементы с двух сторон если от этого можно уйти.
Спасибо за видео - очень интересно.
круто, оценил
Благодарю за очередное интересное видео и кучу полезностей в описании. Однако хотел бы предостеречь от применения OLED экранов в проектах на заказ в том случае, если устройство будет использовать дисплей непрерывно. Уж больно они выгоранием страдают((
Спасибо!
Выгорание рассчитывается при работе 24/7, для устройства с периодом работы час в день это не принципиально. Хотя конкретно эти дисплеи действительно брать больше не буду.
Управление Лучше на крутилочках по максимому. Для каждого параметра своя.
Пользоваться удобно.
Как на осциллографе.
Привет! Классный проект! (Хоть я и очень скептически отношусь к физиотерапии) Тоже хочу научиться писать под STM, пойду "курить" твою статью..
Начал курить статью, но проект не компилироваться из за русских букв в пути одного файла, а эти русские буквы это имя пользователя, нагуглил как поменять, через реестр. В итоге все сломалось) потерял учётку и все файлы с рабочего стола...
@@AMPERMASTER Как так сурово-то? По поводу русских путей это да, не любят их IDE и не только эта, я в workspace создаю проекты.
@@TDMLab у меня workspace папка лежит документах, и там какраз русские буквы. Ну переустановил Винду, все заработало и все скомпилировалось. Уже помргал светодиодом, поиграл с кнопкой. И даже немного научился настраивать тактирование, запустил генератор ШИМ с нужной частотой и с нужным dead time.
@@AMPERMASTER Отлично! Успехов в изучении)
@@TDMLab Спасибо! Жду продолжение статей!
Nice
Если поставить в схему дс-дс преобразователя шунт и ОУ, и завести сигнал с выхода ОУ на пин обратной связи микросхемы, какие могут возникнуть проблемы и почему? Микросхема стабилизатор напряжения.
Говорят что проблемы возникают и оно так не работает, но не говорят какие именно проблемы и почему.
А я не могу понять откуда могут взяться проблемы, ведь коэффициент усиление ОУ подбираем таким образом чтобы на его выходе при нужном токе через шунт было напряжение равное опорному напрямую микросхемы.
И естественно речь о таких значениях тока и напряжения на нагрузке, которые вписываются в нормальные режимы работы микросхемы.
Т.е. какая разница микросхеме получать опорное напряжение или с резистивного делителя напряжения(как в стандартной схеме) или с ОУ? Если это опорное напряжение будет одинаковым в первом и во втором случае
TDM Lab привет!
Классное видео получилось!
Хотел узнать: плату в какой программе разрабативали?
Интересует футпринт дисплея, класно смотрится в 3D.
Спасибо за отзыв, EasyEDA, там полно пользовательских моделек.
Классный проект, вот если бы так же частотник на stm32f407/429 (сразу взять жирный контроллер с заделом), и так же с разбором кода, что за что отвечает. Взять хороший и доступный дисплей 20*4, Прикрутить туда оптический энкодер (мотора) , развитую систему подключения (задание частоты), ПИД туда простенький хотя бы, силовую часть уже может сам кто угодно делать на свое усмотрение. МК с дисплеем (сэндвич) можно собрать как раз на платке 10*10 см, а силовую и блок питания уже можно ЛУТом. Все проекты частотников, что есть в интернете, если хорошие то авторы не дают исходников, если так себе недоделка то нужно очень долго еще самому "напильником".
"жирный контроллер с заделом" - жадность это одна из немногих вещей, которые действительно бесконечны.
Лично я на днях ковырял залежи, поглядел на ромашковый принтер от ЕС ЭВМ который лично я купил в 90м году для попытки подключения к "специалисту" листинги прог на асме дома печатать. Принтак был 42 кг и печатал широкий рулон. Ну лет 15 назад я его для экономии места раздраконил, корпус выкинул.
Так вот пару дней назад освежил впечатления - он собран на 3 асинхронных сервах с енкодерами магнитными около сотни зубов колесо, частотники для серв на дискретке 155 серии, всеми таймингами рулит кр580вм80а с 1 МИПС при 8 бит. Печатал кажется сотню знаков в секунду - каждый знак - это старт-стоп каретки (асинхронная серва весом пару-тройку Кг), подвод ромашки к молотку (асинхронная серва весом около 1 Кг) смещение ромашки по высоте (ЭМ) и удар молотка (ЭМ). И всё это (3 частотника) - повторюсь - на 1 МИПСе 8 бит в исполнении Сименса в 85 примерно году судя по датам на 155ЛА3 которые родом из СССР.
Про частотник "с заделом" - там просится заготовка опторазделения силовухи и морды с полноценным каналом перепрошивки по УСБ.
И вот на морде по причине "народной графики 3.5 с тач скрином" - вполне возможно и потребуется камень помощнее. А сам частотник - ну, могет быть и попроще, с учётом стоимости его замены в случае ремонта и барабума.
psw2.ru Я тоже люблю люблю ностальгировать по старой технике, но нужно двигаться вперед! ) выбор "жирного" контроллера для частотника очень оправдано, и стоит он на пару баксов дороже, чем тот же атмега 328. Зато потом сэкономит кучу времени, нервы и средств. К примеру stm32f407 уже содержит блок fpu, кучу дма, периферии, 17 таймеров, много памяти и портов ввода вывода. Можно конечно построить частотник на Атмега 328, но приходится извращаться еще больше из за малых вычислительных ресурсов камушка, а прикрутить нужные фишки вообще в принципе невозможно. Мне интересно как вы к примеру все сделаете на дохлом камне, ПИД, S- образную характеристику ускорения и замедления, контроль торможения, продвинутый блок задания, энкодер двигателя или датчики положения ротора, хорошую защиту и т д. Как часто бывает, хороший проект, но слабый камень все перечеркивает, даже если что то хочешь, добавить у микроконтроллера просто нет ножек свободных.
@@denisyegorov5109 Кому именно нужно двигаться вперёд, и почему "вперёд" - это именно там, куда нас за уши толкают ?
Работа головой - сделала из обезъяны человека, компьютер запустил обратный процесс.
Лично мне остаётся лишь подождать чтоб поглядеть - что произойдёт быстрее - будет реализовано обрисованное планов громадьё в открытой=опубликованной проге или профи выпустят новый камень, красивее прежнего.
А так-то да - больше ресурса - согласен, запас карман не тянет в общем случае. Но в случае с микроконтролёрами - даже переход на 3.3 вольта вместо 5 не каждый драйвер по входу возьмёт.
А про глюки и муки выбора варианта реализации и закладные зубы в том числе в аппаратную часть - это тоже добавляет и доставляет.
psw2.ru вот видимо из за сложности такого проекта, мало кто за это берется, а готовый продукт это уже ( аля коммерческая штуковина ) Мог бы реализовать это, но пока недостаточно знаний в программировании МК. Касательно перехода на 3,3 вольта с 5
То вообще не проблема, есть как и сами драйвера работают прямиком от 3,3 вольта, так и можно использовать буферы, триггеры, и куча специализированных микрух. Видел в частотнике заводском такую связку как stm32f103vct6 и буфер-регистр hc244 потом сигнал идет на транзисторы, потом на оптодрайверы и те уже качают igbt.
@@denisyegorov5109 Вот и я об том - каждая деталь - это бапки, суровая экономия бабок (с разговорами об дешевизне модулей на STM32 в сравнении с Pic18 или Pic30 на сотню-другую рублей) не позволяет разбрасываться корпусами и площадью печатки в наиболее дешёвом частотнике. И цена/ресурсы мелкопроца тут не главная деталь.
Ну и как вишенка на торте - вытесняющая многопоточность с квантом времени 50 мкСек - сожрёт ресурса хорошо.
В итоге - вангую что функционал который лично я впихнул в "дохлый камень" 12 МИПс (примерно в 12 раз более быстрый чем то на котором Сименс тремя сервомоторами рулил одновременно) - заедет в STM32 на энтузиазме чуть позже, чем появится STM35 или STM64.
Просто потому что каждый писатель универсальных библиотек не особо экономит ресурс и не особо заботится об совместимости с другими либами.
Добрый день, вопрос немного не в тему но все же- подскажите как запустить аомплементарный канала tim1 через DMA. Получается запустить только обычный шим, а нужно в режиме комплементарных каналов.
Добрый, попробуйте так запустите сначала комплементарный канал как обычный ШИМ, типа HAL_TIMEx_PWMN_Start(&htim1, TIM_CHANNEL_1);
а затем запустите основной канал с передачей по DMA.
Спасибо большое за познавательное видео. Сейчас упоролся на те же грабли при попытке запустить китайский модуль дисплея. Есть возможность поделиться рабочей версией библиотеки? Думаю многим пригодиться.
Да, вот ссылка на мою
drive.google.com/drive/folders/19Q3uXIbQMdkgu73Ksr8nAYgdOXdyEX1M?usp=sharing
Методы аналогичны библиотеке для 1306
github.com/4ilo/ssd1306-stm32HAL
дигипот... думал я что-то не знаю) а оказывается это цифровой потенциометр
Да, никакой магии) вот тут говорил о нем czcams.com/video/1WbybqJ0aLA/video.html
смотрел и не понял как все таки получается достичь такого сигнала? таблица синуса сама содержит WaveLet, а мы ее потом запускаем с какой то периодичностью? или как
Это результат умножения двух синусоид разной частоты друг на друга. Таблица синуса содержит только синус.
2 сигнала формируются из этой таблицы путем DDS.
Что бы делать разрыв между "всплесками" просто делаем паузы в генерации.
@@TDMLab ага, немного проясняется)
Не дурно, моё почтение! Как на счёт звуковой карты на STM32 с использование DMA, такого еще никто не делал.
Спасибо!
Вот тут ST-шники описывают как это сделать www.st.com/resource/en/application_note/cd00259245-audio-and-waveform-generation-using-the-dac-in-stm32-products-stmicroelectronics.pdf
I have a question. Pardon my translation. Может ли это передать генерацию вейвлета сигнала при получении цифрового триггера?
Hi! This program cannot do this, but it can be easily added if needed.
@@TDMLab Thank you! Очень гибкая система. Благодарю за ваш ответ.
А для станка проволочного то же самое?
Есть мнение?
Собрать управление для станка это как два пальца об асфальт. А вот с механикой там торба как сложно будет
Презентация хороша! Новичков бы...
А как интересно выглядят новички в stm32? Так уж происходит, что до stm32 обычно любой "новичок" работал с чем-то типа 8051, AVR, pic или еще чем поэкзотичнее.
Конечно можно представить ситуацию, что проснулся с утра и твердо решил стать "железным" программистом, какой бы камень выбрать? Что там в 2020 нового из ARM вышло A65 или А67?
это шутка конечно😆
@@TDMLab это уже не важно, комьюнити со временем родит нормальные статьи и либы
Здравствуйте, не могли бы вы к видео приложить файлы проекта?
Здравствуйте, в данном случае делал проект на заказ и код целиком выложить не могу. Если нужна какая-то конкретная часть, например библиотека SH1106 или какой-то еще кусочек, то пишите.
Работа с RTC в HAL ужасная, да и сам модуль RTC в 103 серии тоже странный, вот в 303 исправили. Раньше была такая IDE cocox я из ее стандартной библиотеки по немного приворовываю функции, она лучше сделана. Так что работу с RTC я взял от туда. Кстати 132 точки в ширину это под столбец с иконками, 128+4. У меня в проекте тоже контроллер дисплея 128*34 PCF8531). У вас хоть был пример на си, у меня был пример драйвера на ASM для PIC.
По поводу кэлбека, если у вас компилируется с O3 вероятно там инлайн функции еcли она вызывается единожды в коде.
А почему не объявить const sin_table? У вас доступ к ROM на f103 за 1 такт как и к RAM.
Может и ужасная, но по факту работает корректно так что я не стал ничего изобретать. В целом RTC в этом проекте было сверху бантиком так что не было смысла заморачиваться.
На asm для pic это сурово:)
Про доступ за 1 такт к rom не знал, спасибо.
Собери дс-дс преобразователь на стандартных радиодеталях, без специализированных микросхем управления для дс-дс, максимум на ne555, со стабилизацией напряжения и расскажи откуда в такой системе берётся устойчивость, какие элементы за неё отвечают и как своей работой её обеспечивают.
Честно говоря в планах не стоит, но на будущее возможно.
@@TDMLab И не просто DC-DC из дискретки, а самый простой и доступный DC-DC (желательно ещё и двунаправленный) с управлением парой аналог оптронов и входом от 2.5 до 5 вольт. Применение - ячейка (желательно не просто активного а двунаправленного) балансира лития для мощных батареек, аналог LTC3300 ячейки. Эдакий двунаправленный Баксандалл на мосфетах и колечке феррита.
А можно посмотреть исходники проекта ?
Добавил ссылку в описание к видео с подписью
"Код в CubeIDE:"
Спасибо!
19:40 в таблице синусов точно ошибки нет ? Почему максимальная скорость изменения синуса в районе 1/2 от максимума что в начале что в конце таблицы, хотя у канонического синуса она от 0 до ~30 градусов примерно одинакова ?
250 КГц частота прерываний - STM32 показывает зубы на сотне МИПСов, согласен.
Не, это не ошибка, это просто не синус, а sin(x+pi/2) , т.е. на 90° сдвинут вправо. Как бы такой колокол получается, собственно его огибающая на 0:08 и есть.
Да, стм-ки хороши:) Cам удивлялся как легко и непринужденно у меня выходило то, что на 8-битных я бы замучился оптимизировать.
Перемножить два 32-рязрядных за несколько тактов, да не вопрос, просто поставь звездочку:)))
Смотрел что с интермодуляцией?
Не, пока нет, но за идею спасибо) Заодно и спектроанализатор в ослике попробую.
Здравствуйте, генератор просто офигенный для радиолюбителя, н сталкнулся с сильнейшей проблемой "Код программы" нужно както скомпилировать чтоб прошить стм-ку, так вот, установил куб иде, там все непонятно миллионы настроек, я не знаю как туда загрузить проект, а еще нужно как то скомпилировать в прошивку! Искал в инете, но нет нужной инфы а изучать с нуля для одного генератора у меня нет знаний и времени,так вот у кого есть файл прошивки этого проекта поделитесь пожалуйста если не сложно дайте ссылочку. Заранее благодарен.
и да, на поиск как открыть этот проект в куб иде ушло чуть более недели безрезультатно, понял одно тут нужен только профи. Ребят кто смог всеже скомпилить прошивку поделитесь ссылочкой пожалуйста.
У меня только один вопрос, ОТКУДА, ОТКУДА столько ума и где такому учат, где учились?
Да обычный технический ВУЗ, автоматизация производства. Микроконтроллерам нормально учат только в мегаполисах, а нам когда-то про pic16f876 рассказали-показали, а дальше по сути все контроллеры в целом одинаковые, а в подробностях хитрости конкретных только чтением мануалов и спец. форумов можно узнать, ну и ютуб конечно)
Вы левша? Почему все органы управления - слева от дисплея?
Так согласовали с заказчиком, вообще до этого момента даже не задумывался, что они слева)
Так как это не органы оперативного управления, в целом, не суть.