Полноценный IB металлодетектор на ARDUINO


Задумка проекта такая — по возможности доступная для повторения схема и открытый код, и естественно я выбрал среду ARDUINO, и хотя многие утверждают что ничего серьёзного на Ардуине не сделать — я попробую доказать обратное.  Схема реализована на любой Ардуине с камнем  Atmega328, и модуле АЦП ADS1115.  Выходной каскад я не стал изобретать и использовал хорошо зарекомендовавшую себя схемку на IRF7105, но и ту я соригинальничал и в качестве драйвера мосфетов использовал таймер 555, он вполне для этого подходит — на входе компараторы, выход от нуля до напряжения питания при токе до 200мА.  Я в первые использую накачку меандром(до этого всё на синусе) для меня это некий эксперимент(пока всё идёт нормально) но говорят что при такой накачке будет больше ложняков на грунте, и судя по тому как на грунте работает Квазар — я склонен этому верить.

Если будут вопросы по схеме -задавайте. Резистором R27 подбираем ток в датчике, с Garrett 6.5×9 ACE PROformance и 10Ом получился ток в 120ма — это приемлемо.

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


Тест проводил с датчиком Garrett 6.5×9 ACE PROformance он крайне устойчив к ЭМ помехам, не каждый датчик так работает у меня дома, ещё это датчик у меня индикатор чуйки, если удалось получить больше 20см на пятак ссср — значит прибор имеет право на жизнь.

Для баланса грунта надо просто пару раз качнуть датчиком над грунтом.

Перед тем как выложу код-скетч сделаю пару полевых выходов — вдруг надо что-то подправить, не хочется выкладывать сырой код.

Для подключения датчика  Garrett 6.5×9 ACE PROformance надо кое что добавить к схеме или сделать переходник, датчики от Квазаров-Фортун — подключаются напрямую.

Ниже — схема подключения датчика ACE,

Схема в Splan70.

Вы хотите использовать просто Atmega328 в DIP? это надо предварительно загрузчик ещё прошивать, я предполагал использовать готовые модули типа Arduino Pro Mini.  Ещё  надо учесть место для конденсаторов фильтра (те что зелёные на схеме)

По разводке и размещению элементов есть пару рекомендаций.

Входные каскады должны быть подальше от проводников дисплея, кнопок и самого МК, все плюсовые и минусовые дорожки от входных и выходных каскадов должны сходиться к конденсатору фильтрующему питание +5V  C18 который как можно ближе к стабилизатору питания+5V, конденсатор С24 как можно ближе к выводам модуля IRF7105.

Из за желания упростить схему и уменьшить количество элементов я отказался от отдельных стабилизаторов на каскады, при неправильной разводке возможно самовозбуждение, по хорошему надо добавить маломощный стабилизатор на входные каскады  MCP602, 4053, ADS1115, и возможно  стабилизатор на каскад TX , но это если при повторении у кого-будет нестабильно работать прибор, у меня всё нормально, главное не экономить на конденсаторах фильтров питания каскадовС18, С19,С22,С24.

Shuravi вы можете заложить в печатку возможность установки дополнительных стабилизаторов  типа ams1117 5.0, а ставить их или просто запаять перемычки — уже будет видно при повторении схемы. Если нужна схема с стабилизаторами могу нарисовать.

Вот компоновка  прототипа, я там пытался усадить всё в слишком маленький объём для DIP, отсюда все проблемы с разводкой — много проводов. Выходной каскад на отдельной плате так как изначально схема была вообще без выходного каскада, накачка ТХ выводами контроллера, не поверите но это работало!!! правда слишком много шумов от МК и пришлось отказаться от этой идеи.

Это все только прикид  ДИП это не СМД  поставил размер 0805  и в перед)))  В ДИПе  масса размеров и вариантов по этому нужно все выложить и посмотреть а затем корректировать размеры особенно резисторов , собираю все по блокам ТХ , звук…… Arduino Pro Mini пока нет в наличии, корпус АТмеги для габарита и чтоб увидеть связи Вот ТХ и Звук, это все предварительно для оценки размера.

Вот загрузчик 328 меги и прога для прошивки программатором USBASP.

Сначало шьем фузы

Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

После прошивки FUSES прошиваем загрузчик который в архиве.

Прошивать нужно с кварцем.

Это немного усложняет повторение проекта для тех кто не в ладах прошивкой МК. Поэтому я и предложил варианты с уже прошитым загрузчиком.

А сделать МД можно в принципе на любой Ардуине

Интересное на схемафоруме:
Схема компьютерного микрофонного УНЧ TDA1308

Кому-то будет проще на Arduino Nano, потому как там прошивка сразу через USB , но она потребляет больше, за счёт микросхемы конвертера USB->UART-TTL.

Мне кажется впереди, при работе на грунте, для удержания, а вероятно и повышения чуйки, понадобится перевод ТХ на 9…12в. или даже без 555й на V_bat.

И, для более читабельного вида в один клик, немного уплотненная Ваша схема.

Из вариантов накачки ТХ я думал  попробовать схему преобразования менандра во что-то похожее на синус . Накачка синусом делает прибор стабильнее , меньше ложняков и тд.. Но эта схема имеет один недостаток — у неё слишком нелинейная АЧХ, и для использования с датчиками на разные частоты — нужна регулировка тока TX.

Как видно на диаграмме АЧХ разница напряжения на выходе например при частотах 8 и 12 кГц аж в два раза, чем выше частота таем меньше будет ток в датчике.

в пихнул все это дело в размер 80х75  получится плотненько при разводке растяну  100х75  . нужно добавить стаб для входного каскада. пара conn….для внутри схемного программирования ну и на кидать кондеров на питание.

То что на шлейфе это даже хорошо — можно всё это подальше от входного каскада поставить, потому как провода идущие к кнопкам источник помех для входного каскада, мне даже в прототипе пришлось дорожки перерезать(те что шли рядом с входными цепями) и вести по другому.

Ещё не забудет сделать выход на UART   так что-бы был доступен без снятия дисплея, это для заливки сектча и для наладки, я выложу ещё програмку которая получат данные с прибора и выводит их на график в реальном времени, можно посмотреть что там происходит по каналам XY.

Ещё либо кнопку ресета либо вывод ресета через конденсатор и резистор на вывод UART DTR, при заливки скетча надо ресетить Ардуину, либо в ручную либо она сама через сигнал по DTR

Вот как на схеме ниже.

KVANT-SL  разделение на фильтрах «S»  «N»  «F»

Вариант в  SMD .

Стабилизатор на аналоговую часть можно и поменьше, там потребление не больше 5…10 мА, а вот стабилизатор на МК и ТХ надо на полигон побольше припаять, так как он может греться при повешенном напряжении питания — если больше 9 вольт.

Конденсаторы фильтра (те что зелёные на схеме) конечно можно и керамику, но хорошо-бы вариант и под плёнку, не понятно как они там будут плыть от температуры, если одинаково остывать и прогреваться то нестрашно, а если одни нагреются больше чем другие то VDI будет плавать в зависимости от уровня сигнала, озвучка интересная конечно получается но непредсказуемая, то-же будет если эти конденсаторы не подобрать по точности. Самые критичные в точности и термостабильности  С2,С3 и С4,С5 их так и надо парами подбирать с точностью 1%. Те что на входе(с13,с12) точность вообще не важна, а вот термостабильность особо критична, если поставь керамику то от температуры будет плыть VDI целей , отстроил от ферита дома , вышел в низкие температуры или на жару покапать  и всё — VDI уплывёт до десятков градусов. С14 тоже желательно термостабильный .

В общем если SMD  то хотя бы с диэлектриком X7R, потому как с диэлектриком NP0 хоть и идеально но дорого будет.

Сама идея создания «полноценного металлодетектора на ARDUINO» заслуживает внимания, и автор проделал несомненно большую работу по его созданию, отдельное спасибо Shuravi за оперативную поддержку (в плане проектирования ПП в дипе и смд). НО, как всегда возникают вопросы?

1 Без скетча (пусть даже «сырого») этот диалог просто ни о чем, повторить и проверить решения автора не представляется возможным.

2 Зачем используется ADS1115 (16 бит АЦП с I2C) — относительно дорогая и достаточно капризная (превышение напряжения на входах на 5% выше напряжения питания выводит ее из строя). Ни какой защиты не предусмотренно. Возможно ли использование встроенного в 328 контроллер 10-битного аппаратного АЦП? Это значительно бы упростило и удешевило бы проект и несомненно увеличило бы его привлекательность.

1) Скетч обязательно выложу после серии испытаний прототипа, не только мной но и Shuravi.

2) ADS1115 значительно упрощает схему и уменьшает количество активных и пассивных элементов.  Если делать по предложной вами схеме то получиться Фортуна,  Фортуна разве проще и дешевле ? ADS1115 делает схему простой и оригинальной. Насчёт дороговизны это вы преувеличили,  1,5$ это дорого? Я выбрал ADS1115 как-раз по причине дешевизны и распространённости . По поводу ненадёжности тоже преувеличение — в схеме никак не может напряжение на входе ADS1115 — быть больше напряжения питания.

Интересное на схемафоруме:
Простой IB металлоискатель на Arduino

Вторую плату сделал по упрощенной схеме о которой раньше говорил, вот она. Работает как оригинальная схема.
Сделал некоторые испытания, но результаты странные.

А. напряжение электромагнитного поля Tx на расстоянии 50 см = 1V , напряжение питания 8V, ток 54 mA , 5 коп = 35 см.

Б . напряжение электромагнитного поля Tx на расстоянии 50 см = 1.8V , напряжение питания 14V, ток 95 mA , 5 коп = 35 см.

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

Катушка овал 30×22,пробую разные режимы на глубине 21см и 27см.Датчик скорей всего кривой,достраивал разбаланс кусочком ферита.

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

Квант не улучшит этим. Нет приборов с таким алгоритмом, все берут VDI от максимального уровня или усредняют. Проблема в медленном АЦП, у меня есть решение, но когда я его реализую не знаю, схема ниже.

В приборе с которым я хожу сейчас — есть статический режим, прибор на STM32 — там больше возможностей. Но я не пользуюсь статистическим режимом , с небольшим датчиком типа кольцо —  можно в статике определять положение цели, но когда у тебя большая ДД — всё равно надо разворачивать датчик на 90 градусов что-бы локализовать цель, что в статике что в динамике. В общем режим пинпоинт — оказался самым бесполезным. И Камрады которые ходили с Квазаром и Фортуной тоже крайне редко пользовались режимом пинпоин.

Вот вариант аналоговой части схемы с возможностью реализовать статический режим.

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

Добавил в схему регулировку громкости, ну и стабилизатор на аналоговую часть(Shuravi уже так сделал). По мне так регулировка громкости лишнее, сколько копаю — никогда не хотелось сделать тише, а вот громкости всегда не хватает, а когда надо тихо то тут только наушники.

На данный момент схема такая.

Был сегодня пробный выход с KVANT-SL. Опасения что накачка меандром сделает прибор нестабильным на грунте — не оправдались, стабильность к ударам тоже хорошая — на ветки не реагировал, разделение и цепкость — в норме. Мне даже понравилось, возможно переделаю все свои приборы под меандр, просто по всем признакам прибор реагирует меньше на грунт чем при накачке синусом, я имею ввиду не ложняки а именно уровень сигнала грунта. Правда фаза уплыла от низкой температуры, дома +20 на улице +1, фаза уплыла вниз на 7 градусов, пришлось подкорректировать, благо это через быстрое меню делается, в любой момент можно сдвинуть VDI  целей + — . Сейчас разбираюсь где проблемы с термостабильностью — грешу на кондёр в переходнике на датчик  Garrett  ACE, поставил первый попавшийся, засунул его и другие на замену в морозилку, посмотрим как ёмкость измениться.

Разобрался от чего уплыла фаза, действительно виноват резонансный конденсатор ТХ в переходнике на датчики Garrett ACE. Поставил переходник в морозилку на 15 минут, подключил и VDI  всех целей сместилось на -7  градусов. Из тех что были по рукой лучше всех по ТКЕ оказался большой жёлтый  MKP, видимо такие лучше всего применять в датчиках , но и он не идеальный, на пару градусов VDI всё равно уходит при больших перепадах температуры. Там по ходу нужен конденсатор с нулевым ТКЕ.

Люди которые хотят повторить схему нужны для проекта, надо тестить, выевлять баги и тд….

IB металлоискатель для вашего проекта не подойдёт, тут нужен хороший PI.

По поводу скетча — сейчас выложу, но ещё до конца не испытал на разных датчиках. Надо ещё инструкцию написать, как резонанс найти, как по фериту отстраиваться, и вообще по всем функциям.

Там ещё программка которая показывает что там по каналам XY происходит, получает данные по COM  порту, по которому скетч заливается. Ниже пример проводки над датчиком 5 копеек ссср.

Оставьте комментарий