Jump to content
Sign in to follow this  
prv1984

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

Recommended Posts

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

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

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

 

Share this post


Link to post
Share on other sites

Видел на "мд4ю" подобную тему.

Что можно добавить. Взять "чистый" процессор лучше, чем готовую сборку Ардуньи - правильная разводка печатки в таком приборе имеет далеко не последнее значение. Какой процессор выбрать, тут два варианта. Если планируется прибор с прямой обработкой сигнала - нужен быстрый, с хорошим АЦП и другой периферией. Если делать полу-цифровик (как "Фортуна-М"), то можно обойтись процем попроще - он получит уже готовый подготовленный к оцифровке (с внешним АЦП - даже оцифрованый) сигнал, который не обязательно обрабатывать реалтайм со скоростю в тысячи "перезапусков" в секунду - копарь делает проводку 0,5...1 метр в секунду - достаточно "скорости" в 10-20 Гц.

Со схемотехникой на сегодня тоже более-менее всё понятно: питание от лития, несколько стабилизаторов, ЖКИ по выбору конструктора, хороший ОУ на входе, передающий вых.каскад - несколько вариантов, каждый из которых имеет право на существование.

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

Лучше всего процесс работы с цифровым сигналом описано в знаменитой работе Хулко - http://md4u.ru/viewtopic.php?f=77&t=10291 . Лучше ничего не попадалось - с учётом, что конструкторы-программисты, в основном, держат свои наработки в тайне и "книжек для конкурентов не пишут". По части консультации - гуру в отрасли работы с цифрой в любительских МД счас, безусловно, Andy_F - очень грамотный специалист и знает, что делает, всё "по науке"; остальные (например, автор "Крота") пишут программы "основываясь на собственной интуиции" - например: чтобы прибор "не видел" гарячих камней - тупо взять и обрезать последние сектора (86...90) шкалы ВДИ, чтобы прибор их не отображал))))) - без учёта, что можно на пару градусов прибор неправильно откалибровать и крупной медной монеты больше никогда не найдёшь, не говоря уже о том, что сам грунт может на эти пару градусов "сдвинуть мишень вверх" по шкале ВДИ)))


 

Share this post


Link to post
Share on other sites

Про дремучую ерунду ты погорячился: тут важно все учитывать.

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

Какой МК ты собираешься применять? мегу32 - так это Квазар АВР. Что-то слабее - не добьешься должного функционала. Вообще, тут в соседней ветке народ требует разработать хороший\дешевый\не сложный глубиннки. Так что может посмотри в его сторону.

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

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

Share this post


Link to post
Share on other sites

Финальные результаты тестирования литиевых батареек FANSO при нормальных условиях

Перед разработчиком устройства, в котором предполагается использование батарейки, всегда стоит задача выбора того или иного бренда. Конечно, наиболее объективный результат по качеству можно получить при реальном тестировании в режиме работы самого устройства. Для того чтобы у разработчиков была некоторая информация о реальных значениях основных параметров ЛХИТ, инженеры компании КОМПЭЛ решили провести серию из трех тестов. Первый тест на постоянный разряд в нормальных климатических условиях, начатый в апреле 2019 г., мы завершили.

Узнать финальный результат тестирования

3 часа назад, DesAlex сказал:

Взять "чистый" процессор лучше, чем готовую сборку Ардуньи - правильная разводка печатки в таком приборе имеет далеко не последнее значение.

Здесь не буду спорить, тем более с вами (собирал несколько Clone PI-W на вашей плате), но всё же для прототипа сгодится и Arduino, а потом можно будет перебросить на Atmega328.

3 часа назад, DesAlex сказал:

Какой процессор выбрать, тут два варианта.

С одной стороны хотелось бы сделать прямую обработку, но глядя на возможности микроконтроллеров AVR, даже с кварцем 16МГц не уверен, что хватит скорости. Здесь пока определиться не могу. АЦП естественно нужно внешний. Изучать STM32 очень долго.


 

3 часа назад, DesAlex сказал:

Со схемотехникой на сегодня тоже более-менее всё понятно

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

Share this post


Link to post
Share on other sites
1 час назад, prv1984 сказал:

выдаёт прямоугольные импульсы на резонансной частоте катушки (например 10 кГц). Эти импульсы подаются на выходной каскад, который преобразовывает всё это дело в синусоидальный сигнал той же частоты, чтобы избежать помех от крутых фронтов. Синус подаётся на катушку, резонансная частота которой в нашем случае 10 кГц

Два варианта.

Можно подать на контур ТХ готовый синусоидальный сигнал. Преимущество - можно будет регулировкой амплитуды регулировать ток накачки. Недостатки - придётся отнять у проца ЦАП (а его у проца "лишнего" может и не оказаться), перепотребление - вых.каскад на гармоническом сигнале будет слишком много жрать от источника питания.

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

1 час назад, prv1984 сказал:

Как из одного напряжения выделяют два канала (X и Y)

Автор "Квазара" так отвечал на подобный вопрос (оцифрованый сигнал преобразовывается  в три канала; третий канал - G - канал грунта для векторного вычетания; если прибор будет с фазовой вырезкой - второе домножение не применяется):

У меня "проинтегрированные" отсчёты приходят с частотой 128 Гц, проходят через ФНЧ FIR 8-го порядка, дальше система координат поворачивается (отсчёты домножаются на синусы и косинусы), формируется канал G (опять таки домножением на синус и косинус), и получившиеся 3 канала пропускаются через ФВЧ IIR 2-го порядка. 
 

Share this post


Link to post
Share on other sites
                     

Видеокурс Работаем с микроконтроллерами STM32G0. Впервые на русском языке.

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

Подробнее

Вот мне как раз и интересно, как из одного значения напряжения получить 3 канала. Обращался к andy_f, но он не сильно разговорчив-наверное достали такие как я.

Share this post


Link to post
Share on other sites

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


 

Share this post


Link to post
Share on other sites
9 часов назад, DesAlex сказал:

Что есть "каналы" в МД вообще? Это проекции вектора отклика (простейшее применение в отношении к входному значению функций синуса и косинуса).

Вот именно применение ко входному сигналу функций синуса и косинуса. Я это знаю, только к какому входному сигналу - напряжению? По данной логике я должен получив отклик с приёмной катушки преобразовать это значение напряжения в цифру, например Аm (образно назовём амплитуда мишени). Затем чтобы получить каналы я должен выполнить преобразования вида: X=Am * sin(q); Y=Am * cos(q). q-некоторый угол, который я не пойму откуда взять.
 

Share this post


Link to post
Share on other sites

Я могу многое объяснить, касаемо непосредственно принципов работы МД, но не то, как это реализуется в цифре. Если правильно понимаю - аналоговый сигнал надо оцифровать (это уже станет не "входным напряжением", а некой цепочкой, набором цифр))), потом, для борьбы с грунтом - фильтруется ФНЧ высокого порядка (отделяется сильный постоянный сигнал грунта от слабого, но мнгновенного сигнала от мишени) и только после этого из этого "нечта", которое теперь считают "откликом", получают каналы, которые также ещё подфильтровывают ФВЧ для отсекания "ложняков", лежащих выше полосы пропускания прибора. Потом, этот условно чистый отклик берут для вычисления ВДИ фазовым методом, применения "хитрых" алгоритмов дискриминации, отличных от обычных "фазоизмерительных" (если прибор предендует быть "с изюминкой") и т.д. и т.п. Как это делается практически-программно, какие используются операторы интерпретатора и пр. - для меня тёмный лес.
 

Share this post


Link to post
Share on other sites

Хорошо, тогда можете по-подробнее рассказать как это делается с помощью аналоговой части, например в Фортуне, а я уже попытаюсь часть аналоговых функций передать на исполнение МК.
 

Share this post


Link to post
Share on other sites

"Поподробнее" - это книга на150 страниц, набивать которую вряд ли кто станет. Очень коротко, ладно.

Фортуна-М2
Полуцифровик. На АЦП приходит уже отфильтрованый поканальный сигнал.
Входной ОУ с небольшим КУ. На входе и выходе стоят простейшие ФНЧ, ослабляющие "ложняки" от механического воздействия на датчик. Поскольку АЦП может работать только с сигналом положительной полярности, весь спектр сигнала "переносится вверх" сдвигом рабочей точки входного ОУ (привязана к половине питающего напряжения - стандарт для любительских цифровых МД).
Синхронный детектор простейший - два ключа. Фортуны не собирал, осциллом и другими приборами не тыкал. По идее - ключи "щёлкают так", чтобы получились два канала, сдвинутые между собой на 90 градусов. Отдельно имеется канал статики на одном ОУ, используется для пинпоинтера. Дальше идут фильтры движения, идентичные для обеих каналов. Частоты, крутизна характеристики - мне неведомо, не собирал, не знаю (на сайте автора есть симуляции, можно по ним прикинуть). Отфильтрованый и усиленый до нужного уровня сигнал идёт на АЦП в МК - дальше работает цифра.

 

Share this post


Link to post
Share on other sites

Ладно, с чего-то надо же начинать. Попробую для начала сделать передающую часть. Попытаюсь программно сформировать синусоидальный сигнал с помощью ШИМ и интегрирующей цепочки. Посмотрю как эта цепочка будет вести себя на нужном мне диапазоне частот. Для возможности автоподстройки частоты под датчик хочу выбрать диапазон 7-20кГц. (может что поправите, пока не наделал беды??? :D)
 

Share this post


Link to post
Share on other sites

Беды от опытов не бывает! Это только на пользу) Всё новое (или хорошо повтореное старое) базируется на успешно проведённых опытах)

Формировать синусоиду не обязательно. Можно меандр, подать через "цифровой" усилитель на последовательный контур - всё, есть синусоида. Можно, конечно, и синусоду - подать на обычный УЗЧ, который вкачает её в контур. Но потребление будет больше. Диапазон 4...18 кГц хорошо. Шире в сторону ВЧ - можно. Убавлять со стороны НЧ - нежелательно, иногда нужна НЧ. В цепи усилителя желательно предусмотреть датчик тока, с которого напряжение будет поступать в МК для анализа.
 

Share this post


Link to post
Share on other sites

Ну что сказать  лутше  чем  уже есть  врятли вийдет займитесь лутше глубинником.балансников хватает а вот глубинних почти нет.

Share this post


Link to post
Share on other sites

Не хочу. Я не металлоломщик. Собирал знакомым clone pi-w на плате DesAlex'a (спасибо ему) - так вот он нормально работает с рамкой 1,2 на 1,2м, видит даже что американцы на другой стороне земли делают :D. Не люблю копать котлованы из-за железяки 30х30 см, лучше монетки.
 

Share this post


Link to post
Share on other sites

Ну нет так нет .:rolleyes: Я смотрю мало кто разделяет ваш итузиазм ну оно и правильно создать схему с нуля ой как не просто в любом случае прийдетса брать что то  за основу. 

Формировать синус прямо с процесора думаю не стоит применить лутше передающий каскад с квазара авр .но такими темпами разработи ми получим тотже квазар:unsure: как на сщет применить передающий каскад с терм.3 в месте с фазоздвигающими цепочками.

Функцию синхродетектора пусть исполняет контроллер приемний оу применить какой нибуть малошумящий.

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

Share this post


Link to post
Share on other sites

Подспорье неплохое (как-то и забыл об этом), - тема очень старая, давно читал, когда интересовался МД "Танго".

На схеме есть парочка спорных моментов (не страшно), можно чуть "присовременнить", а так, считай, железо почти готово, проц только от АВР туда )))
 

Share this post


Link to post
Share on other sites
В 21.12.2016 в 08:03, prv1984 сказал:

Вот именно применение ко входному сигналу функций синуса и косинуса. Я это знаю, только к какому входному сигналу - напряжению? По данной логике я должен получив отклик с приёмной катушки преобразовать это значение напряжения в цифру, например Аm (образно назовём амплитуда мишени). Затем чтобы получить каналы я должен выполнить преобразования вида: X=Am * sin(q); Y=Am * cos(q). q-некоторый угол, который я не пойму откуда взять.
 

Доброго дня!

Всё достаточно просто. Расскажу на примере двух семплов за период. Формируем Тх, установили вывод Тх в единицу - взяли семпл с АЦП, это значение Х. Подождали четверть периода, сняли ещё один семпл с АЦП - это Y. Через четверть периода сбросили Тх в 0. Ещё две четверти и всё по-новой. Пропускаете эти два потока через ЦФ и на выходе получаете те хе значения, что и с выходов СД в аналоговом МД.

С уважением.

Александр Клюсов.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Similar Content

    • By Swah
      Я мало разбираюсь в схемотехнике, но этот Проект на tinyAVR(что ето вообще за древняя штука) хочу сделать на ардуино. Т.к Ардуино у меня есть а  tinyAVR нет.

       Вот ссылка на Word файл. Кто может помочь с скетчем и схемкой.
      https://drive.google.com/file/d/1P5sgOSEaZMXmB6ws-ThD7XMu_FS70FwP/view?usp=sharing

      И подойдет ли просто камера смартфона?
    • By RIMUS1989i
      Здравствуйте. Затеялся собрать анализатор спектра на светодиодах, 20x20 светодиодов, МК ATMEGA328P. 
      Долго ломал голову, как переключать столбцы без использования МК, дабы его не загружать.И вот что у меня получилось. Набросал тестовую прошивку для теста в протеусе. 
      При инилизации подается импульс на вторую ножку U4a, и на предпоследнем столбце.
      Думал сетку сделать на 5 сдвиговых регистрах (как раз 40 сигнальных линий), но боюсь мощности МК не хватит для обработки FFT и вывода на матрицу, будет подвисать.
      Кто что думает по поводу схемы?
      бегущая строка.pdsprj Natali_2012_program.hex
    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
    • By Anton Bondarenko
      Всем привет
      Прошу не ругать, впервые подобный вопрос задаю.
      Хочу сделать прибор, который будет посылать сигнал, когда возле прибора будет проходить металлический предмет. 
      — угол отслеживания до 30° а лучше прямая линия, траектория
      — время реакции очень высокое до 100 мс
      — ширина проема в котором нужно сканировать от 10 до 20метров,
      — передача сигнала через вифи
      Может есть готовые решения, или отдельные компоненты.
      Подскажите пжл в каком направлении искать.
      Смотрел датчики движения, но главная проблема — время реакции.
      Спасибо
       
×
×
  • Create New...