Схемы металлоискателей MD4U
http://www.md4u.ru/

VDI sound mod
http://www.md4u.ru/viewtopic.php?f=25&t=11560
Страница 1 из 2

Автор:  Korvo [ Ср: 01 апр 2020 15:14 ]
Заголовок сообщения:  VDI sound mod

Сделал в первом варианте аналог VDI индикатора от Random из ветки вайтса. Хотя индикатор Random я не собирал, но судя по его описанию - полный аналог, только без дисплея. Пока работает с компадриком в домашних условиях (карантин, однако). В планах - прицепить этот мод к моему vaquero.

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

Основные фичи:
1. Можно уложиться в $1, компоненты копеечные.
2. Проц STM32F030 в корпусе TSSOP20. Операционник - любой в корпусе SOIC-8, я взял TL062. Резисторы 0805, емкости 1206.
3. Потребление модуля - 6 мА от 5 Вольт (в планах понизить до 4-5мА).
3. Открываю Сишные исходники для STM32Cube + HAL. Меняйте на здоровье!
4. Экрана нет, только озвучка - втыкается в базу последнего транзистора в выходном каскаде звукового тракта (картинка ниже).
5. Для отладки используется USART; можно убрать, чтобы не потребляло ток.
6. Печатка для ЛУТ, земли соединены по нижнему шейпу - 5 отверстий сверлить обязательно, остальные по желанию. Плата сделана как макетка - к неиспользуемым выводам можно подпояться, и использовать модуль для других задач. Компоненты расположены очень тесно, собирать сложно, но в результате размер платы получился чуть больше корпуса DIP28 - в перспективе планирую выкинуть PIC из своего Vaquero и воткнуть этот модуль. На 2.54 гребенки выведены: St-linkII, X+Y, USART, Sound.
Вложение:
connection.png
Вложение:
connectors_big.jpg

Принцип работы изложен здесь viewtopic.php?f=24&t=9306&start=27 Думаю, функционал прошивки будет расширяться. Если кто готов помочь советом или делом - велкам )
Старое видео, как выглядела отладка через USART на STM32F4_DISCOVERY https://youtu.be/ADXhDx-GHkk
Если кратко, то программа работает так:
Вложение:
principle.jpg
Ждем пересечения порога, ищем максимум, получаем два значения амплитуд, делим, конвертируем в звук. Все.

В архиве - схема, гербера, исходники на Си и проект для STM32Cube + HAL.
- Настройте на свой тулчейн, компилируйте и прошивайте (в интернете полно обучалок и примеров. Я учился с нуля).
- Перед прошивкой в дебагере надо обязательно выставить Software reset, т.к. порт SWD урезан.
- Вывода SWO в F0 чипах нет, поэтому отладчик не работает. Я вывожу все в USART, а в комп завожу с помощью платы STM32F4_DISCOVERY (прошил в нее мост USART-VCOM), и с нее же беру ST-LINK для прошивки.
- Если нужно другое питание - не забудьте изменить резистивный делитель между операционником и входами АЦП.

По ЛУТ - использовал бумагу каталога ИКЕА, лазерник, переносил на клей БФ6 с помощью ацетона (утюгом только прихватил чутка). Травил первый раз в лимонной кислоте с перекисью, понравилось. Получилось с первой попытки.

Претензии по коду не принимаются :-) это мой первый проект для микроконтроллера, и первая за ~20 лет программа на Си. Делал на основе примеров в интернете. Главное - работает.

Автор:  Korvo [ Пт: 17 апр 2020 16:08 ]
Заголовок сообщения:  Re: VDI sound mod

Скрестил саунд-мод со своим Vaquero. Выкинув при этом родной пик-контроллер. Полевых испытаний пока не было - карантин.

Платка из поста выше теперь не просто считает vdi и управляет пищалкой, она выполняет все функции процессора вакуеро. Для этого пришлось изготовить коннектор DIP-28 : кусочек текстолита + припаянные ножки (получены из разломанной Female-2.54 гребенки). Так же, пришлось добавить каналов: в АЦП появился канал для измерения батарейного питания, плюс несколько ног нужны для анализа кнопок АллМет и пинпоинтер, для управления звуком и - для управления 4053 аналоговым мультиплексором, который переключает выходные каналы дискрима и АллМет, а так же переключает пинпоинтер и Авто.
Вложение:
dip28_connector.jpg
Вложение:
installation.jpg
На втором фото платка чуть доработана - упрощен разъем USART (оставил только TX - толстый белый провод). Но это тот же самый модуль что в первом посте.
Собственно, прибор работает так же как и раньше, но добавился 1 новый режим (VDI-звук), для включения которого надо зажать кнопку пинпоинтера, и переключиться из АллМет в дискрим, поставив ручку в положение TAB (экспериментально выяснил что это 50% синхронного детектора).

Алгоритм определения VDI здесь улучшен: ловится не одна полуволна сигнала, а две (пролет над RX и TX половинами ДД-датчика), добавлен CORDIC для расчета арктангенса (раньше я только делил Y/X), watchdog больше не используется - вместо него обычное DMA.

В архиве - Сишные исходники, схема, фотка как подпаивать X и Y.
За код претензии не принимаю - пишу на Си меньше месяца. Текст форматирован слегка кривовато - спасибо Eclipse, самой кривой IDE в мире. Но, я ставил принципиально бесплатный тулчейн - STM32CubeMX + Eclipse (он же System Workbench)

Чем мне нравится мод, в любой момент его можно снять, вставить обратно PIC, и будет снова заводской прибор. Ни новых ручек, ни переключателей, ни перерезанных дорожек. Только подпаять X Y и землю.

Отвечая на вопрос, зачем было разносить коннектор DIP28 и платку - к сожалению над процеcсорным сокетом очень мало места - впритык упирается динамик. Поэтому пришлось делать такого "краба".

Из процессора выжато все что только можно, память почти под завязку (с USART). Чтобы считать VDI более точно с ЦОС (Фурье и т.д.) - надо брать более старший процессор вроде того что ставят в квазар, этот проц не годится - он слабый, и его фишка в очень низком потреблении. Но, я и так фактически новый прибор разработал - Vaquero-ARM, так что с квазаром пуcть уже кто то другой скрещивает, если в этом вообще есть смысл.

p.s.
Измерил потребление прибора
- С оригинальным PIC - 33mA standby
- 32F030 - 38mA standby
- 32F030 режим VDI - 39mA standby (работает АЦП)
Итого, есть куда двигаться. Думаю, до уровня PIC можно питание понизить. Скорее всего, в оригинале звук режется по уровню входа RA1 пика. Других предположений нет. Но, меня и 38мА устраивает.

Автор:  GoldenJoe [ Сб: 22 авг 2020 16:30 ]
Заголовок сообщения:  Re: VDI sound mod

Спасибо, что поделились своей работой. Очень интересно.

Автор:  Korvo [ Чт: 17 сен 2020 21:20 ]
Заголовок сообщения:  Re: VDI sound mod

Подумал, и решил запостить сюда схему, присланную ЛА3 для сдвигания средней точки АЦП. Она лучше чем у меня, правильней.
Вложение:
levelshifters.jpg

Автор:  geptod3.14 [ Пт: 18 сен 2020 23:11 ]
Заголовок сообщения:  Re: VDI sound mod

Ла3 и есть Самый-Самый. СУПЕР!
..я чем смогу подскажу.

Супер!

Автор:  vlaser [ Сб: 19 сен 2020 9:14 ]
Заголовок сообщения:  Re: VDI sound mod

Korvo писал(а):
Подумал, и решил запостить сюда схему, присланную ЛА3 для сдвигания средней точки АЦП. Она лучше чем у меня, правильней.
Вложение:
levelshifters.jpg

А кто будет HEX писать?

Автор:  Korvo [ Пн: 21 сен 2020 13:43 ]
Заголовок сообщения:  Re: VDI sound mod

Хекса нет. Я не знаю как его делать, и даже не интересовался. В этой теме модель распространения информации, которой я делюсь с форумом - не копирование, без возможности изменения, как у Andy_F или Random, а диаметрально противоположная - я даю все сорцы, но копировать их просто так не получится - надо хотя бы установить и запустить тулчейн. Почему я так сделал: 1. я считаю что информация должна быть 100% открыта. 2. я не готов поддерживать этот проект из года в год. 3. я надеюсь, что если появится несколько энтузиастов, то проект будет развиваться независимо от меня - и от этого станет лучше.

Вектор развития, чего можно достичь - что то вроде Маски 5. К тому что я тут выложил надо просто добавить дисплей, правда не факт что это влезет в тот же проц что у меня (самый маленький и дешевый). Ну и прибор неплохо бы иметь с хорошим усилением, и наверное было бы неплохо иметь векторное вычитание грунта как у Тежона или Патриота. Алгоритмически, с точки зрения прошивки, что напрашивается сделать - научиться подсвечивать очень большие железные цели. Чтобы не копать ржавый лист железа, который звучит в цвете. Можно попытаться подсвечивать несколько пиков, если целей несколько, и они разнесены. Ну и озвучку надо улучшать. Я думаю в этих направлениях, но самоизоляция закончилась, свободного времени почти нет.

Автор:  geptod3.14 [ Вт: 22 сен 2020 20:36 ]
Заголовок сообщения:  Re: VDI sound mod

Где-то читал давно шутку программиста..
Сделать из СИ HEX просто как яишницу.
, сделать из СИ Ассемблер.. как куриц из яиц.
А вот из HEX-а сделать Си... это будут курицы из яишницы
:)
Так ,что Ваш вариант самый простой.
Жаль ветка не программистов.
.... самое большое усиление из тесор у Лобо.
..... Tejon "не совсем" векторный.
.... на сто процентов определить ржавую жесть- это замах.
Круто.

Автор:  Korvo [ Вт: 22 сен 2020 21:45 ]
Заголовок сообщения:  Re: VDI sound mod

Я не согласен насчет программистов. В микроконтроллерах используется сильно упрощенный Си, я бы сказал - совсем-совсем упрощенный. И если вы хоть раз в жизни на чем то писали (бейсик, фортран, асм?), то понять микроконтроллерные Сишные исходники не составит проблемы. На своем опыте могу сакзать - натырил примеров из интернета, склеил, и заставил работать. Наверное, у опытного программиста такой код лишь слезы вызовет, но мне как то по барабану - работает и ладно. Мы же здесь любители, а не профессионалы, верно? :-) А вот если профессионал-программист заглянет, я первый скажу спасибо - за улучшенный код.

Автор:  ЛА3 [ Вт: 22 сен 2020 21:56 ]
Заголовок сообщения:  Re: VDI sound mod

Korvo писал(а):
....В микроконтроллерах используется сильно упрощенный Си, я бы сказал - совсем-совсем упрощенный. И если вы хоть раз в жизни на чем то писали (бейсик, фортран, асм?), то понять микроконтроллерные Сишные исходники не составит проблемы. ...

Код:
/*************  Timer Counter 0 Channel 0 to generate PWM pulses thru TIOA0  ************/
void tc_setup() {

  PMC->PMC_PCER0 |= PMC_PCER0_PID27;                       // Timer Counter 0 channel 0 IS TC0 / Лічильник таймера 0 канал 0 IS TC0

  TC0->TC_CHANNEL[0].TC_CMR = TC_CMR_TCCLKS_TIMER_CLOCK1   // MCK/2, clk on rising edge
                              | TC_CMR_WAVE                // Waveform mode
                              | TC_CMR_WAVSEL_UP_RC        // UP mode with automatic trigger on RC Compare
                              | TC_CMR_ACPA_CLEAR          // Clear TIOA0 on RA compare match
                              | TC_CMR_ACPC_SET;           // Set TIOA0 on RC compare match

  TC0->TC_CHANNEL[0].TC_RC = 525;                      // Frequency = (Mck/2)/TC_RC/2 = 20000Hz
  TC0->TC_CHANNEL[0].TC_RA = 20;                            // Duty cycle / робочий цикл = (TC_RA/TC_RC) * 100  % ???

  TC0->TC_CHANNEL[0].TC_CCR = TC_CCR_SWTRG | TC_CCR_CLKEN;  // Reset TC0 counter and enable
}

:mrgreen:

Автор:  Korvo [ Вт: 22 сен 2020 22:10 ]
Заголовок сообщения:  Re: VDI sound mod

А я вот даже не знаю что это, как называется - объекты, структуры или еще что. Но- все интуитивно понятно. И никаких ужасов вроде указателей, 100500 типов переменных и прочей Си-шной лабуды, которой я не знаю, и которая в МК мне точно не встретится :-)

Автор:  geptod3.14 [ Вт: 22 сен 2020 23:17 ]
Заголовок сообщения:  Re: VDI sound mod

Это.. ардуинковый генератор похоже.
:)

Автор:  Pawa [ Вт: 22 сен 2020 23:30 ]
Заголовок сообщения:  Re: VDI sound mod

Korvo писал(а):
никаких ужасов вроде указателей
Ничего в них ужасного нет.., очень даже удобная штука, особенно в построении многоуровневого пользовательского меню. И все выше перечисленное в мк встречается, и даже ООП (очень полезная для смены взгляда на мир программ).

Автор:  geptod3.14 [ Ср: 23 сен 2020 19:22 ]
Заголовок сообщения:  Re: VDI sound mod

Если у Вас Троих Программистов появится общий код с идеями в " складчину"... всё равно на каком "камне"..
Для остальных форумчан будет ,что-то новое и интерестное... если поделитесь результатом на форуме.
Лички не кто не отменял.. у всех есть не стыковки кода.. возмодности паять "железо" и тд.
Покрайней мере в данной ветке жадин нет.. у нас всё древние :) аналоговое :)

Автор:  ЛА3 [ Ср: 23 сен 2020 23:52 ]
Заголовок сообщения:  Re: VDI sound mod

geptod3.14 писал(а):
...Для остальных форумчан будет ,что-то новое и интерестное... если поделитесь результатом на форуме.
...Покрайней мере в данной ветке жадин нет.. .

Код:
// Дані для фільтру пікового шуму (медіанний фільтр на 3 значення)

  intA = sensorValues[0][intCs];
  intB = sensorValues[1][intCs];
  intC = sensorValues[2][intCs];

  // Медіанний фільтр (фільтр пікового шуму)
  /* https://embeddedgurus.com/stack-overflow/tag/median-filter/ */
  /*Проводимо перше сортування за спаданням:if (A<B) and (A<C),
    то вважаємо A – найменшим елементом і далі вибираємо між B і С,
    найменший елемент є медіаною і видаємо його на вихід*/
  if ((intA <= intB) && (intA <= intC))
  {
    intMiddle[intCs] = (intB <= intC) ? intB : intC;
  }
  /*Якщо умова при першому сортуванні не виконується,
    тоді проводимо друге сортування за спаданням: if (B<A) and (B<C),
    тоді вважаємо B – найменшим елементом і далі вибираємо між A і С,
    найменший елемент є медіаною і видаємо його на вихід*/
  else if ((intB <= intA) && (intB <= intC))
  {
    intMiddle[intCs] = (intA <= intC) ? intA : intC;
  }
  /*Якщо умови по першому і другому сортуванню не виконуються,
    тоді проводимо третє сортування за спаданням між  A і B,
    найменший елемент є медіаною і видаємо його на вихід*/
  else
  {
    intMiddle[intCs] = (intA <= intB) ? intA : intB;
  }

Автор:  geptod3.14 [ Чт: 24 сен 2020 20:31 ]
Заголовок сообщения:  Re: VDI sound mod

Ну кому надо.. я переведу :) не код конечно :)
Программисты и Медики... у них свои общепонятные языки.
Надеюсь Укранська Мова не проблема.
Очень красивый язык.

Автор:  ЛА3 [ Пт: 25 сен 2020 8:28 ]
Заголовок сообщения:  Re: VDI sound mod

degrees:
Код:
if (lngSX > 0)
      {
        VDI = 90 * lngSY / (lngSY + lngSX);
      }
      else
      {
        VDI = -90 * lngSY / (lngSY - lngSX);
      }


VDI:
Код:
if (lngSX > 0)
      {
        VDI = 50 * lngSY / (lngSY + lngSX);
      }
      else
      {
        VDI = -50 * lngSY / (lngSY - lngSX);
      }

Автор:  Pawa [ Пт: 25 сен 2020 9:14 ]
Заголовок сообщения:  Re: VDI sound mod

ЛАЗ, вы лучше бы сказали над чем трудитесь...

Автор:  praktik_1974 [ Вт: 28 июн 2022 8:30 ]
Заголовок сообщения:  Re: VDI sound mod

Здравствуйте.
Как то упустил из виду эту тему, тема очень интересна.
Благодарю Korvo за открытый исходник.
Я вот тоже решил "покорить" СИ для stm, и собираю материалы такого рода.
Возьму наверное для повторения и модернизации схему Tesoro Vaquero, ту что в крайнем архиве от Korvo.
Попробую заменить Pic на stm.
Для начала хочу спросить мнения достопочтенной публики, стоит заморачиваться с
Tesoro Vaquero, или есть более интересные схемы?
Ну и совета по замене микросхем в схеме на более современные.
С ув.

P.S.
Установил CubeIDE и MX

Автор:  praktik_1974 [ Вт: 28 июн 2022 9:03 ]
Заголовок сообщения:  Re: VDI sound mod

Запустил проект, откомпилировал, все ОК.
Возьму "зеленую таблетку" и на ней буду делать прототип.
Ну и экспериментировать...
Теперь дело за малым, собрать сам приборчик...))

Автор:  praktik_1974 [ Вт: 28 июн 2022 9:32 ]
Заголовок сообщения:  Re: VDI sound mod

Ну как вариант, попробую подружить это устройство с Голден Маской...

Автор:  Korvo [ Чт: 15 сен 2022 22:47 ]
Заголовок сообщения:  Re: VDI sound mod

@praktik_1974
Отчечу по микросхеме. Кортес М0 - минимально и достаточно для реализованного алгоритма. Потому что алгоритм - не ЦОС (как в квазаре), а просто цифровой компаратор (на замену аналогового) в выходном тракте синхронного детектора сибола/вакуеро. Преимущество цифрового компаратора - чуть большая чуйка, и возможность немножко пошаманить со звуковым окрасом vdi. Но по большому счету, этому алгоритму до квазара как до китая пешком (в плане сложности, а не результата!), потому что не ЦОС. Для тесоро получается очень приятный довесок. Думаю отлично встанет и на 4ю маску, и на любой другой аналоговый девайс с СД. Возвращаясь к алгоритму, сейчас наверное имеет смысл попробовать адаптировать его к китайским микроконтроллерам, которые дешевы и доступны (в отличие от стм). Из доработок - можно конечно соорудить и цифровой фильтр, вычленяя частоту 3-7Гц (частоту смотреть по схеме фильтров в СД). Но мне кажется, толку будет не много, а микроконтроллер понадобится мощнее - и жрать будет тоже больше.

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

Автор:  geptod3.14 [ Пт: 23 сен 2022 20:49 ]
Заголовок сообщения:  Re: VDI sound mod

Города надеюсь вернутся своим странам.
А насчёт жрать будет больше...
Хоть 100 амперный ранцевый акум.. не важно.
Важно,чтоб Е2 в грунте глубже 30 см и чишуя в грунте глубже 15см.
Все приборы с достоинствами меньше этих показателей
Безсмысленны( уже есть и проекирование шаг назад). За исключением радиолюбительского интереса.

Автор:  Korvo [ Сб: 24 сен 2022 22:20 ]
Заголовок сообщения:  Re: VDI sound mod

Это не теоретический раздел, здесь речь о приспособе, позволяющей (как я считаю) чуть-чуть улучшить аналоговые приборы с СД.
В остальном .. Являются ли аналоговые приборы бессмысленными? Думаю, пока еще нет, не до конца. Но и будущего у аналога нет.

Автор:  FOMA [ Ср: 05 окт 2022 12:06 ]
Заголовок сообщения:  Re: VDI sound mod

Настроение праздничное. Всех с праздником, Днем учителя! Каждый живет так, и делает так как его научили. Спасибо учителям.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/