Страница 1 из 2

Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Вт дек 20, 2016 09:08:44
prv1984
Здравствуйте, надеюсь я задаю вопрос в правильном разделе. Дело в том, что у меня есть очень стойкое желание разработать свой металлодетектор по принципу индуктивного баланса (такой как quasar, крот, кощей-20 и.т.д.). В качестве обработчика планирую использовать Arduino или AVR. Уже прочитал все роботы Колоколова, Щедрина, литературу по цифровой обработке сигналов и прочую дремучую ерунду. Теперь у меня в голове куча информации, которую я никак не могу сложить в нужный пазл. В итоге получается, что знания в этом направлении ничем не отличаются от знаний пятиклассника. Но желание заняться построением металлодетекторов всё сильнее и поэтому обращаюсь к специалистам этого форума (md4u.ru мне не помог).

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

Повторюсь, хочется узнать всё подноготную построения IB-металлоискателей. Совет собрать уже готовый не есть для меня интересным. Заранее всем благодарен!!!

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Вт дек 20, 2016 10:40:06
B@R5uk
prv1984 писал(а):...хочется узнать всё подноготную построения IB-металлоискателей...
С таким вопросом эта тема превратится в сплошной флуд. Задавайте более конкретные вопросы.

Если ничего конкретного не можете спросить, то как на счёт сначала разобраться и попробовать поработать с уже собранным металлоискателем. После месяца каждодневных тренировок глядишь всё в голове и уляжется. Потом можно попробовать собрать что-нибудь самому и тоже опробовать, сравнить, оценить. Если вот так браться за большое дело совсем с нуля, то дело окажется неподъёмным.

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Вт дек 20, 2016 12:12:15
prv1984
...как на счёт сначала разобраться и попробовать поработать с уже собранным металлоискателем
На досуге собрал себе Quasar ARM, ходил с ним всё лето - понравилось. После этого м появилось желание сделать свой прибор.
С таким вопросом эта тема превратится в сплошной флуд. Задавайте более конкретные вопросы.
Давайте буду задавать. Первый вопрос, который меня интересует следующий: допустим у нас есть микроконтроллер, который генерирует прямоугольные импульсы с нужной нам частотой, например 10 кГц. Некий передающий каскад переводит всё это дело в синусоидальное напряжение и раскачивает передающую катушку. В приёмной катушке у нас ничего не наводится, так как она сбалансирована (остаточный разбаланс не берём во внимание). При поднесении к датчику металлического предмета, в приёмной катушке наводится мизерная ЭДС, которую мы усиливаем с помощью операционника и подаём на АЦП. А суть вопроса в том как по одному показанию АЦП формируют два канала (X и Y) и меряют сдвиг фаз?

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Вт дек 20, 2016 16:39:26
B@R5uk
prv1984 писал(а):...допустим у нас есть микроконтроллер, который генерирует прямоугольные импульсы с нужной нам частотой, например 10 кГц. Некий передающий каскад переводит всё это дело в синусоидальное напряжение...
С помощью ШИМ можно сразу генерировать почти синус (будет нужна фильтрация только минимального уровня).
prv1984 писал(а):А суть вопроса в том как по одному показанию АЦП формируют два канала (X и Y) и меряют сдвиг фаз?
Не совсем понял что за каналы X и Y вы имеете в виду, но разность фаз между поданным с таймера сигналом и принятым на АЦП легко получить, если таймер и АЦП работают на одной частоте и были запущены одновременно.

И да, по одному показанию разность фаз определить не получится, только если она не лежит в диапазоне, длиной меньше чем п/2 и амплитуда сигнала известна. Если диапазон 2п и амплитуда не известна, то нужно по крайней мере два отсчёта синуса с разностью фаз в точности п/2 (четверть периода сигнала).

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Ср дек 21, 2016 06:41:51
prv1984
B@R5uk писал(а):С помощью ШИМ можно сразу генерировать почти синус
Если генерировать синус с помощью ШИМ, то необходимо городить ЦАП и забирать у процессора драгоценное время. К тому же ШИМ, как правило генерируется на определённой частоте, которая перестраивается в узких пределах, при этом пропадает возможность сделать гибкую настройку выходной частоты под разные типы катушек. В случае с прямоугольными импульсами можно аппаратно менять выходную частоту в широких пределах, например от 6 до 20 КГц. На мой взгляд лучше подавать прямоугольные импульсы на последовательный LC контур - по идее LC-цепь сама преобразует импульсы в синус.

Не совсем понял что за каналы X и Y
Каналы X и Y - это проекции вектора отклика. По идее их получают умножением входного сигнала на sin (для Х) и cos (для Y), но вот тут как раз до конца и не могу понять...

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Ср дек 21, 2016 08:21:14
B@R5uk
prv1984 писал(а):Каналы X и Y - это проекции вектора отклика...
Ну тогда вам надо обсуждать этот вопрос с теми, кто знаком с этими терминами.
prv1984 писал(а):Если генерировать синус с помощью ШИМ, то необходимо городить ЦАП и забирать у процессора драгоценное время.
:facepalm: Сначала разберитесь что такое ШИМ и что такое ЦАП, а потом уже делайте такие заявления.

Более того, на счёт времени. Что ШИМ, что ЦАП при грамотной реализации через прерывания займут не более 10 тактов процессора раз в один тик дискретизации. Если частота МК 16 МГц, а частота дискретизации 16 кГц, то это всего лишь 1% времени АЦП. Впрочем, хозяин — барин, нравится куча рассыпухи — делайте на рассыпухе. Я лишь указал на возможную альтернативу.

Добавлено after 5 minutes 45 seconds:
prv1984 писал(а):В случае с прямоугольными импульсами можно аппаратно менять выходную частоту в широких пределах, например от 6 до 20 КГц.
Думаю, это не тот размах частот, на котором можно увидеть качественную разницу в отклике от искомых объектов.

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Ср дек 21, 2016 10:42:28
prv1984
Ну тогда вам надо обсуждать этот вопрос с теми, кто знаком с этими терминами.
Я для того и на форуме, чтобы найти тех людей, которые знакомы с этими терминами, но знакомы с ними больше чем я.
Сначала разберитесь что такое ШИМ и что такое ЦАП
Что это такое я знаю, как знаю и то что все таймера будут задействованы при демодуляции сигнала с приёмной катушки и использовать 2 из 3-х аппаратных таймеров МК для генерации синуса в некотором диапазоне частот это, на мой взгляд, расточительно.
Думаю, это не тот размах частот, на котором можно увидеть качественную разницу в отклике от искомых объектов
Почему-то большинство датчиков для балансников работают в этом диапазоне или я чего-то не до конца понимаю...

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Ср дек 21, 2016 12:46:59
mickbell
prv1984 писал(а):К тому же ШИМ, как правило генерируется на определённой частоте, которая перестраивается в узких пределах, при этом пропадает возможность сделать гибкую настройку выходной частоты под разные типы катушек.
:shock:

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Ср дек 21, 2016 13:35:26
prv1984
mickbell писал(а):
prv1984 писал(а):К тому же ШИМ, как правило генерируется на определённой частоте, которая перестраивается в узких пределах, при этом пропадает возможность сделать гибкую настройку выходной частоты под разные типы катушек.
:shock:
И не надо на меня так смотреть :)) я объяснил выше почему не хочется связываться с ШИМ - жалко использовать 2 таймера, а на одном каши не сваришь.

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Ср дек 21, 2016 13:40:44
B@R5uk
prv1984 писал(а):а на одном каши не сваришь.
:facepalm: Скажите честно: вы пробовали?

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Ср дек 21, 2016 19:01:26
mickbell
prv1984 писал(а):И не надо на меня так смотреть :)) я объяснил выше почему не хочется связываться с ШИМ - жалко использовать 2 таймера, а на одном каши не сваришь.
ШИМ иногда можно сгенерировать вообще без таймера.

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Чт дек 22, 2016 09:57:34
prv1984
Скажите честно: вы пробовали?
Да
ШИМ иногда можно сгенерировать вообще без таймера.
Как тут поспоришь, иногда можно для включения одного светодиода дёргать весь порт контроллера - чего париться, так же проще. Andy_F, разработавший Quasar не зря перескочил с AVR на STМ32, потому что дорога каждая микросекунда процессорного времени. Давайте будем генерировать сигнал без таймера, прерываний а затем загрузим контроллер обработкой данных и посмотрим во что превратится генерируемый сигнал.

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Чт дек 22, 2016 09:58:37
Fallk
Один нескромный вопрос.
А Вы катушку своими руками пробовали мотать? Чтобы был баланс и он не уходил от влажности, температуры, тряски, ударов, погоде, давления, от чиха. Да от всего. Этим очень грешат самодельные катушки
Есть куча готовых схем, но все упирается в изготовление катушек. Я пробовал мотать - пока не далась. И еще неодин самоделкин не смог сделать электронику к готовой заводской катушке.

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Чт дек 22, 2016 10:11:40
mickbell
prv1984 писал(а):Andy_F, разработавший Quasar не зря перескочил с AVR на STМ32, потому что дорога каждая микросекунда процессорного времени. Давайте будем генерировать сигнал без таймера, прерываний а затем загрузим контроллер обработкой данных и посмотрим во что превратится генерируемый сигнал.
Правильно сделал. У STM32 этих таймеров - как на таймерной фабрике, не придётся их экономить.

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Чт дек 22, 2016 10:19:32
prv1984
И еще неодин самоделкин не смог сделать электронику к готовой заводской катушке.
А как же quasar, фортуна-м и др. У них подбирается резонансная частота автоматом по току потребления. Подключил, нажал, порадовался. Я думаю, что большой процент датчиков можно к ним прикрутить, даже заводских.

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Чт дек 22, 2016 10:23:49
B@R5uk
prv1984 писал(а):
Скажите честно: вы пробовали?
Да
Я тоже пробовал и у меня прекрасно получился синус из ШИМ на одном таймере.

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Чт дек 22, 2016 10:42:30
fedyasolder
Меандр в катушку сразу давал?

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Чт дек 22, 2016 10:49:30
Fallk
prv1984 писал(а):Подключил, нажал, порадовался. Я думаю, что большой процент датчиков можно к ним прикрутить, даже заводских.
Ага, только чего то миллион тем как сделать катушку своими руками и полмиллиона темм с вопросом, а можно ли использовать что то заводское.

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Чт дек 22, 2016 11:28:02
prv1984
Я тоже пробовал и у меня прекрасно получился синус из ШИМ на одном таймере
Можно узнать в каких пределах и с каким шагом вы можете менять частоту синуса. Хочется ведь сделать возможность автоподстройки частоты под датчик...
Меандр в катушку сразу давал?
Мы с товарищами пока только обсуждаем что лучше подать: синус или меандр
Ага, только чего то миллион тем как сделать катушку своими руками и полмиллиона темм с вопросом, а можно ли использовать что то заводское.
Так это такие же люди как я, знаний не хватает, а делать хочется - будем эволюционировать :))

Re: Разработка IB-метлладетектора на Arduino или AVR

Добавлено: Чт дек 22, 2016 12:03:08
B@R5uk
prv1984 писал(а):Можно узнать в каких пределах и с каким шагом вы можете менять частоту синуса
Верхний предел — половина частоты дискретизации (лучше не более 1/8). Шаг — любой.

Разумеется форма синуса не идеальна (хотя это зависит от многих факторов и выбора параметров), но одно верно наверняка: спектр сигнала ШИМ значительно ближе к синусу, чем просто прямоугольник (пара порядков?). Соответственно, фильтровать значительно легче.