Мій імпульсний металодетектор на Arduino. Один із простих металошукачів із дискримінатором «Megatron Імпульсний металодетектор на arduino

Колись, побудувавши своїми руками кілька металошукачів різного ступеня працездатності, я захотів вивчити, як працює схема Ардуїно в цьому напрямку.

Є кілька хороших прикладів того, як зібрати металошукач своїми руками. Однак, для них зазвичай необхідно або багато зовнішніх компонентів для обробки аналогового сигналу, або чутливість на виході досить слабка.

Коли ми думаємо про імпульсні металодетектори, основною темою є те, як фіксувати невеликі зміни напруги в сигналах, пов'язаних із пошуковою котушкою. Ці зміни зазвичай дуже малі. Найбільш очевидний підхід полягає у використанні аналогових входів "ATmega328". Але, дивлячись на специфікації, є дві основні проблеми: вони переважно повільні, а дозвіл (у більшості випадків) низький.

З іншого боку, металошукач на мікроконтролер працює на частоті 16 МГц і має досить непогані можливості синхронізації, а саме роздільна здатність 0,0625 мкс при використанні тактової частоти. Таким чином, замість того, щоб використовувати аналоговий вхід для зчитування, найпростішим способом сприйняття невеликих динамічних змін напруги є порівняння зміни падіння напруги з часом при фіксованій опорній напрузі.

З цією метою ATmega328 має відповідні особливості внутрішнього компаратора між D6 і D7. Цей компаратор може ініціювати переривання, що дозволяє точно обробляти події. Використовуючи його разом з акуратно закодованими процедурами синхронізації, такими як millis () і micos (), а також використовуючи внутрішній таймер ATmega328 з набагато більш високою роздільною здатністю, Arduino – відмінна основа для такого роду металошукача.

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

Підсумковий варіант коду для Arduino:

// Defining all required pre variables etc. and setting up the registers unsigned char clockSelectBits = _BV(CS10); // no prescale, full xtal void setup() ( pinMode(6,INPUT); // + comparator - by setting them as INPUT, they are // set to high impedance pinMode(7,INPUT); // - of the comparator - by setting them as INPUT, they are // set to high impedance cli(); // stop interrupts TCCR1A = 0; // set entire TCCR1A register to 0 TCCR1B = 0; // same for TCCR1B TCNT1 = 0 // Initialize counter value to 0; TCCR1B |= clockSelectBits; // sets prescaler and starts the clock TIMSK1 = _BV(TOIE1);<< ACD) | // Analog Comparator: Enabled (0 << ACBG) | // Analog Comparator Bandgap Select: AIN0 is applied to the positive input (0 << ACO) | // Analog Comparator Output: Off (1 << ACI) | // Analog Comparator Interrupt Flag: Clear Pending Interrupt (1 << ACIE) | // Analog Comparator Interrupt: Enabled (0 << ACIC) | // Analog Comparator Input Capture: Disabled (0 << ACIS1 | 0 << ACIS0 // interrupt on output toggle // (0 << ACIS1 | 1 << ACIS0 // reserved // (1 << ACIS1 | 0 << ACIS0 // interrupt on falling output edge // (1 << ACIS1 | 1 << ACIS0 // interrupt on rising input edge ; } // this routine is called every time the comparator creates an interrupt ISR(ANALOG_COMP_vect) { oldSREG=SREG; cli(); timeStamp=TCNT1; SREG = oldSREG; } // this routine is called every time there is an overflow in internal counter ISR(TIMER1_OVF_vect){ timer1_overflow_count++; } // this routine is used to reset the timer to 0 void resetTimer(void){ oldSREG = SREG; cli(); // Disable interrupts TCNT1 = 0; //initialize counter value to 0 SREG = oldSREG; // Restore status register TCCR1B |= clockSelectBits; // sets prescaler and starts the clock timer1_overflow_count=0; // resets overflow counter }

Звісно, ​​ця ідея не зовсім нова. Основна частина цього коду може бути іншою. Спробуйте пошукати інші джерела, наприклад TPIMD.

Крок 1: Ідея індукційного детектора на Arduino - фліп-котушка


Ідея полягає в тому, щоб використовувати Arduino як детектор імпульсної індукції, як і в TPIMD, оскільки задум із кривою згасання, схоже, працює дуже добре. Проблема з імпульсними індукційними детекторами полягає в тому, що вони зазвичай потребують різної напруги для роботи. Одна напруга для живлення котушки та окрема напруга для обробки кривої згасання. Ці два джерела напруги завжди ускладнюють процес побудови імпульсних індукційних детекторів.

Розглядаючи напругу котушки в детекторі PI, отриману криву можна розділити на різні стадії. Перший етап - це сам імпульс, що живить котушку і створює магнітне поле (1). Другий етап - це крива спаду напруги, починаючи з піку напруги, а потім швидко змінюючись на "безпотужне" напруга котушки (2).

Проблема в тому, що котушка змінює свою полярність після імпульсу. Якщо імпульс позитивний (Var 1. на малюнку) крива розпаду негативна. Якщо імпульс негативний, крива згасання буде позитивною (Var 2. на малюнку, що додається).

Щоб вирішити цю основну проблему, котушку потрібно перевернути електронним шляхом після імпульсу. В цьому випадку імпульс може бути позитивним, і крива згасання також залишиться позитивною.

Для цього котушка має бути ізольована від Vcc та GND після імпульсу. У цей момент існує тільки струм, що протікає через резистор, що демпфує. Ця ізольована система котушки та демпфуючого резистора може бути «орієнтована» на будь-яку опорну напругу. Це теоретично створить комбіновану позитивну криву (див. нижню частину креслення).

Ця позитивна крива може бути використана за допомогою компаратора для визначення моменту часу, коли напруга згасання перетинає опорну напругу. У разі, якщо скарби поблизу котушки, змінюється крива згасання та точка перетину часу зміни опорної напруги. Ця зміна може бути виявлена.

Після деяких експериментів я зупинився на наступній схемі:

Схема складається із модуля Arduino Nano. Цей модуль управляє двома МОП-транзисторами, що живлять котушку (на SV3) через D10. Коли імпульс на кінці D10 закінчується, обидва МОП-транзистори ізолюють котушку від 12V та GND.

Збережена енергія у котушці виходить через резистор R2 (220 Ом). У той самий час резистор R1 (560 Ом) з'єднує першу позитивну сторону котушки з GND. Це змінює негативну криву згасання на резисторі R5 (330 Ом) до позитивної кривої. Діоди захищають вхідний висновок Arduino.

R7 є дільником напруги близько 0,04 В. В даний час крива згасання на D7 стає більш негативною, ніж 0,04 на D6, переривання спрацьовує, а тривалість після закінчення імпульсу зберігається.

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

Крок 2: Будуємо детектор (макет)






Процес побудови детектора є досить простим. Це можна зробити або на макеті (дотримуючись оригінальної схеми), або використовуючи пайку деталей на друкованій платі.

Світлодіод D13 на платі Arduino Nano використовується як індикатор для металу.

Використання макета - найшвидший спосіб зробити детектор, що працює. Потрібно провести деяку проводку, але це може бути зроблено на окремому маленькому макеті. На знімках це показано в 3 етапи, тому що Arduino та МОП-транзистори приховують деякі з дротів. При тестуванні я випадково відключив діоди, не помітивши одразу. Це особливо не вплинуло на поведінку детектора. У версії на друкованій платі їх залишив.

На малюнках не показано підключення до OLED-дисплея 0,96. Цей дисплей підключений таким чином:

Vcc - 5В (на виводі Arduino, а не на блоці живлення!)
GND - GND
SCL - A5
SDA - A4

Цей OLED-дисплей необхідний для початкового калібрування детектора. Це робиться шляхом встановлення правильної напруги на PIN6 Arduino. Ця напруга має бути близько 0,04 В. Дисплей допомагає встановити правильну напругу.

Макетна версія працює дуже добре, хоча, ймовірно, не підходить використання у польових умовах.

Крок 3: Проект на друкованій платі




Щодо пайки, мені не дуже подобається двостороння високотехнологічна друкована плата, тому я змінив схему для односторонньої.

Зроблено такі зміни:

  1. Діоди були виключені.
  2. На контакти МОП-транзисторів додано резистор 10 Ом
  3. Напруга живлення дільника напруги на D6 визначається сигналом високого рівня на D8
  4. Пін драйвера для МОП-транзисторів було змінено.

Таким чином, можна створити односторонню друковану плату, яка може бути спаяна на універсальній друкованій платі. Використовуючи цю схему, ви отримаєте робочий PI-детектор з 8-10 зовнішніми компонентами (залежно від того, чи використовується OLED-дисплей та/або динамік).

Крок 4: Налаштування та використання детектора




Якщо детектор правильно побудований і програма записана Arduino, найпростішим (якщо не єдиним) способом налаштування пристрою є використання OLED-дисплея. Дисплей підключено до 5V, GND, A4, A5. Дисплей повинен показувати «калібрування» після увімкнення живлення пристрою. Через кілька секунд він повинен сказати "калібрування закінчено", і на дисплеї повинні відобразитися три цифри.

Перше число — це контрольне значення, вказане під час калібрування. Друге значення – це останнє виміряне значення, а третє значення – середнє значення останніх 32 вимірів.

Ці три значення повинні бути більш менш однаковими (в моїх тестах до 1000). Середнє значення має бути більш менш стабільним.

Щоб розпочати початкове налаштування, поруч із котушкою не повинно бути металу.

Тепер дільник напруги (підстроювальний резистор) повинен бути виставлений таким чином, щоб нижні два значення були встановлені на максимум, зберігаючи при цьому стабільне показання. Існує критичне налаштування, коли середнє значення починає давати дивні показання. Поверніть тример, щоб знову отримати стабільні значення.

Може статися, що екран зависає. Просто натисніть кнопку скидання та почніть заново.

Для моєї конфігурації (котушка: 18 оборотів 20 см) стабільне значення становить близько 630-650. Після встановлення натисніть кнопку скидання, апарат знову відкалібрує і всі три значення будуть в одному діапазоні. Якщо метал тепер піднести до котушки, світлодіод на платі Arduino (D13) має спалахнути. Динамік, що додається, видає кілька клацань (у вихідному коді є простір для поліпшень).

Щоб уникнути високих очікувань:

Детектор виявляє деякі речі, але він залишається дуже простим та обмеженим.

Щоб дати уявлення про можливості, я порівняв деякі інші детектори зі своїми. Результати, як і раніше, дуже вражають для детектора з 8 зовнішніми елементами, але не дотягують до професійного обладнання.

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

Файли

Крок 5: Підключення дисплея 16х2



Під час тестування я зрозумів, що бібліотека для OLED-дисплея I2C споживала надто багато ресурсів, тому вирішив використовувати 16×2-дисплей з конвертером I2C.

Я адаптував програму для РК-дисплея, додавши деякі корисні функції. У першому рядку дисплея відображається рівень сигналу можливої ​​індикації. Другий рядок тепер показує два значення. Перше вказує на відхилення поточного сигналу порівняно з калібрувальним значенням. Це значення має бути "0". Якщо це значення є постійно негативним або позитивним, детектор повинен бути відкалібрований натисканням кнопки скидання. Позитивні значення вказують на метал поблизу котушки.

Друге значення показує фактичне значення затримки кривої згасання. Це значення зазвичай не так цікаво, але воно необхідне для початкового налаштування детектора.

Тепер програма дозволяє відслідковувати численні тривалості імпульсів у послідовності (засіб для експериментів/покращення продуктивності). Тим не менш, я не досяг якогось прориву, тому значення за замовчуванням встановлено на одну тривалість імпульсу.

Початкове налаштування детектора

При налаштуванні детектора важливим є друге значення другого рядка (перше можна ігнорувати). Спочатку значення може бути «нестійким» (див. рисунок). Поверніть підстроювальний резистор, доки значення не досягне стабільного показу. Потім поверніть його, щоб збільшити значення максимального стабільного значення. Натисніть кнопку скидання для повторного калібрування, і детектор готовий до використання.

У мене склалося враження, що встановивши максимальну стабільну величину, я втратив чутливість до кольорових металів. Тому можливо варто поекспериментувати з налаштуваннями, щоб це виправити.

Котушки

Я зробив 3 котушки для подальшого тестування схеми імпульсного металошукача:

  • 1 -> 18 витків/200 мм
  • 2 -> 25 витків/100 мм
  • 3 -> 48 витків/100 мм

Цікаво, що всі котушки працювали досить добре, з майже однаковою продуктивністю (рублева монета на 40-50 мм у повітрі). Це може бути дуже суб'єктивне спостереження.

Перероблена версія всіма відомого імпульсного металошукача – "Пірата", але на Arduino. Має непогану чутливість навіть на маленькі монети. Стабільний незалежно від температури та заряду батареї. Схема максимально спрощена.

З недоліків можна назвати відсутність можливості визначати тип металу. Визначати тип можуть тільки металошукачі з радіо випромінюючим принципом детектування (складні у пристрої та потребують точного налаштування). Імпульсний металошукач у свою чергу працює на магнітному детектуванні індукційних струмів у металі. Індукція при пошуку не помітна для чорних та кольорових металів.

До речі, є ще третій тип металошукачів - частотний. Малоефективна і дуже проста конструкція в основі якої є генератор коливань магнітного контуру, який чутливий до зміни величини індукції котушки. Ми її розглядати не будемо через низьку чутливість. Особисті експерименти з розробки такої конструкції в кращому випадку дозволяли детектувати сковорідку на 20 см глибини. На монети реагував тільки в "упор". Майже непотрібна штука. Тому від неї відразу відмовився.


Наша схема імпульсного металошукача має кілька основних компонентів. Arduino генерує імпульси, вони посилюються польовим транзистором (силовим ключем), який у свою чергу індукує імпульси магнітного поля в котушці. Магнітний імпульс проходить до металу, що шукається, і індукує в ньому струм, а потім зворотний сигнал магнітного поля. Цей зворотний магнітний потік через невелику затримку повертається назад у котушку металодетектора та генерує імпульс. Сигнал проходить повз пару діодів (діоди потрібні щоб обмежити напругу до 1 вольта) і йде на вхід операційного підсилювача. Посилений сигнал потрапляє в arduino, в якому вираховується "спадаючий хвіст" після відключення котушки силовим ключем. Тобто. саме відповідь від шуканого металевого предмета. Залежно від часу спаду ми можемо судити про величину чи віддаленість об'єкта. Індикатор показує цю величину в 8 рівнях індикаторів.

До слова про котушку. Вона повинна бути діаметром 20 см з 20 витками дроту 0,4 - 0,8 мм. Товщина дроту також впливає на індукцію всієї котушки. Сильне відхилення від товщини дроту призведе до погіршення чутливості приладу. Котушка вставлена ​​у водопровідну ПВХ трубу і не має жодних додаткових металевих з'єднань.



Скетч програми містить генератор імпульсів та алгоритм обробки вхідного сигналу з підсилювача.

Int ss0 = 0; int ss1 = 0; int ss2 = 0; long c0 = 0; long c1 = 0; long c2 = 0; byte i = 0; int sss0 = 0; int sss1 = 0; int sss2 = 0; int s0 = 0; int s1 = 0; int s2 = 0; void setup() ( DDRB = 0xFF; // port B - all out DDRD = 0xFF; // port D - all out for (i = 0; i<255; i++) // калибровка { PORTB = B11111111; delayMicroseconds(200); PORTB = 0; delayMicroseconds(20); s0 = analogRead(A0); s1 = analogRead(A0); s2 = analogRead(A0); c0 = c0 + s0; c1 = c1 + s1; c2 = c2 + s2; delay(3); } c0 = c0 / 255; c0 = c0 - 5; c1 = c1 / 255; c1 = c1 - 5; c2 = c2 / 255; c2 = c2 - 5; } void loop() { PORTB = B11111111; delayMicroseconds(200); PORTB = 0; delayMicroseconds(20); s0 = analogRead(A0); s1 = analogRead(A0); s2 = analogRead(A0); ss0 = s0 - c0; if (ss0 < 0) { sss0 = 1; } ss0 = ss0 / 16; PORTD = ss0; // посылаем на индикатор (send to LEDs) delay(1); ss1 = s1 - c1; if (ss1 < 0) { sss1 = 1; } ss1 = ss1 / 16; PORTD = ss1; // посылаем на индикатор (send to LEDs) delay(1); ss2 = s2 - c2; if (ss2 < 0) { sss2 = 1; } ss2 = ss2 / 16; PORTD = ss2; // посылаем на индикатор (send to LEDs) delay(1); if (sss0+sss1+sss2 >2) ( digitalWrite(7,HIGH); digitalWrite(6,HIGH); digitalWrite(5,HIGH); digitalWrite(4,HIGH); digitalWrite(3,HIGH); digitalWrite(2,HIGH); digitalWrite(1,HIGH); );digitalWrite(0,HIGH);delay(1);sss0 = 0; sss1 = 0; sss2 = 0; ) )






Інформація надана виключно з освітньою метою.
Адміністратор сайту не несе відповідальності за можливі наслідки використання цієї інформації.

Плату Arduinoможна використовувати в імпульсному металодетекторі ( Pulse Induction Metal Detector (PI)) і як генератор імпульсів, так і для обробки та відображення результатів.

Докладніше про принципи роботи аналогового імпульсного металодетектора можна прочитати.

Мій імпульсний металодетектор на Arduino - проект FoxyPI

версія 1 (FoxyPI v1) (застаріла)
Що нового:перша версія.
GNU General Public License v3.0,доступний на Githubв репозитарії https://github.com/Dreamy16101976/foxyPIv1.

Відео випробувань прототипу:
https://youtu.be/VWCA6jYK5tY

версія 2 (FoxyPI v2) (застаріла)

Що нового:

  • додано усереднення аналізованої тривалості імпульсу котушки за алгоритмом "ковзного середнього" ( moving average, MA);
  • додано можливість налаштування тривалості імпульсів, інтервалів між ними, часу затримки та ширини вікна ковзного середнього за допомогою меню, а також збереження настройок EEPROM;
  • додано зміну тональності сигналу за зміни тривалості імпульсу котушки;
  • додано динамічний режим роботи металодетектора;
  • модифіковано драйвер MOSFET;
  • об'єднані перемикачі "+5 В" і "+12 В", а перемикач, що звільнився, використаний для управління підсвічуванням LCD-Екрана;
  • додано світлодіоди для індикації рівня сигналу.

Ліцензія вихідного коду скетчу:пропрієтарна .


Hex
-файл
прошивки FoxyPI(версія 2.11) для - .
Як прошити hex-Файл у плату Arduinoя описав .

Польові випробування та пошук(26.03.2016) - https://youtu.be/Xk4X6O1646M
Випробування прототипу(4.01.2016) - https://youtu.be/ikJbqUCbyvw

Схема металодетектора (версія 2):

версія 3 (FoxyPI v3)

Що нового:

  • визначення рівня сигналу використовується не компаратор, як у попередньої версії, а АЦП Arduino;
  • два режими пошуку - динамічний та статичний (перемикання між режимами за довгим натисканням на кнопку);
  • підвищення стабільності використовується інтегрування сигналу;
  • виконується емуляція інтегратора та фільтра високих частот;
  • змінено пункти меню;
  • утримання кнопки під час увімкнення викликає вхід у меню налаштувань;
  • натискання кнопки запускає/зупиняє балансування;
  • використовуються два рівні аудіо- та візуальної індикації замість чотирьох.

Дискримінація мішеней у цій версії відсутня.

Схема металодетектора (версія 3):

  • виключаються елементи, пов'язані з використанням компаратора - R5, R6;
  • для підвищення коефіцієнта посилення ОУ змінено номінал резистора R3на 320 кОм (складено з двох резисторів номіналами 220 кОм та 100 кОм);
  • змінено схему живлення мікроконтролера.

У схемі металодетектора дві ізольовані один від одного "землі" - аналогова (значок заземлення) та цифрова (значок корпусу).

Ліцензія вихідного коду скетчу : пропрієтарна.


Hex
-файл
прошивки FoxyPI -

Elf-файлпрошивки FoxyPI(версія 3.3 від 16.04.2019, перша доступна прошивка версії 3.3) -

Як прошити hex-Файл у плату Arduinoя описав .


Відео "повітряних" випробувань у динамічному режимі (7.04.2019, версія 3.2) - https://youtu.be/HzIiA9ws0Ak
Відео "повітряних" та "підземних" випробувань у динамічному режимі (11.04.2019, версія 3.3) - https://youtu.be/GwRvhjCmOE4
Відео "повітряних" випробувань у статичному режимі (13.04.2019, версія 3.3) - https://youtu.be/1ulevNWBZ9A

Зовнішній вигляд електронного блоку:


вид зверху:
1 - LCD-екран
2 - світлодіод
3 - п'єзодинамік
4 – кнопка управління
5 - вимикач підсвічування LCD-екрана
6 - вимикач живлення
7 - світлодіоди індикації рівня сигналу

Металодетектор транспортується розібраним на три частини - блоки електроніки та живлення з ручкою, штанга, котушка з проводом:

Зовнішній вигляд зібраного металодетектора:

Експлуатація металодетектора

Увімкнення та запуск металодетектора

При включенні живлення металодетектора (вимикача 6) спочатку запускається відлік:


Для переходу між пунктами меню потрібно коротке натискання кнопки (4) (при цьому спалахує зелений світлодіод), а для вибору пункту меню - довге натискання кнопки (4) (при цьому загоряється червоний світлодіод):

Для переходу між значеннями параметра для вибраного пункту меню потрібне коротке натискання кнопки (4) (при цьому спалахує зелений світлодіод), а для вибору значення параметра - довге натискання кнопки (4) (при цьому спалахує червоний світлодіод):

Для виходу з меню слід вибрати " EXIT":

Після завершення відліку на дисплеї (1) відображається повідомлення з позначенням пристрою і номером версії програмного забезпечення ("FoxyPI v3.x"), логотипом, а з п'єзодинаміка (3) звучить звуковий сигнал з тональністю, що змінюється, що відповідає різним рівням сигналу і супроводжується блиманням світлодіодів :

Виявлення мішеней за допомогою металодетектора

Потім, якщо не вибрано вхід у меню, відображаються поточні установки приладу:

L - Тривалість імпульсу (мкс, us)
R - частота проходження імпульсів (імп./с, pps)
I - Коефіцієнт інтегратора
F - Коефіцієнт фільтра
S - звук (вкл/викл, ON /OFF )

Потім виконується балансування ( zeroing) у статичному режимі:

Металодетектор працює у двох режимах:

  • статичний режим (static/non-motion mode) (за замовчуванням) - враховується рівень сигналу, що не вимагає постійного переміщення котушки (може використовуватися як для уточнення розташування мішені ( pinpointing), так як основний режим пошуку);
  • динамічний режим(dynamic/motion mode) - враховується динаміка зміни сигналу, у процесі пошуку котушку необхідно переміщатинад поверхнею ґрунту

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

Важливо намагатися переміщати ( sweep) котушку паралельно поверхні землі, інакше через вплив магнітного поля Землі на котушці буде наводитися деяка напруга ( EFE -earth field effect), яке може спричинити появу хибних сигналів: навіть просто при переміщенні котушки над землею:

При неправильному переміщенні пошукової котушки змінюється магнітний потік $\Phi$ через неї:

Це тим, що магнітний потік визначається выражением:
$\Phi = (B \, S \, sin \, \alpha)$, де $B$ - індукція магнітного поля Землі, $S$ - площа перетину котушки, $\alpha$ - кут між площиною котушки та напрямом силових ліній магнітного поля Землі
На наведеному малюнку в першому положенні котушки магнітний потік дорівнює нулю, а при переміщенні набуває ненульового значення. Через зміни магнітного потоку через котушку в ній згідно із законом електромагнітної індукції наводиться ЕРС, яка спотворює сигнал, що приймається.

Неакуратне переміщення котушки збільшує рівень сигналу на 4000...5000, а енергійне переміщення котушки з горизонтального положення вертикальне - на 15000...20000.

У процесі автобалансування встановлюється оптимальна початкова затримка та тривалість аналізованого сигналу, а також оцінюється динаміка сигналу (у динамічному режимі) або рівень сигналу (у статичному режимі), при цьому оновлення "нульового" рівня супроводжується коротким звуковим сигналом. Після припинення оновлення балансування можна зупинити, натиснувши кнопку (4). Також балансування можна запустити/зупинити та в процесі роботи натисканням кнопки (4). Після закінчення автобалансування подається короткий звуковий сигнал і відображається нульове значення (максимальне, в умовних одиницях).

Після цього запускається основний цикл роботи металодетектора, при цьому на екрані відображається поточний режим ( MODE ) роботи детектора, ZERO - значення "нульового" рівня, задане під час балансування (для статичного режиму типові значення 120 000 - 125 000 , при зміні тривалості імпульсу від 150 до 250 мкс змінюється незначно), та RX - початкова та кінцева точки (діапазон) аналізованого сигналу (типові значення - 16...43, , при зміні тривалості імпульсу від 150 до 250 мкс незначно змінюються) для тривалості імпульсу 150 мкс) (перемикання між режимами виконується довгим натисканням кнопки (4)):

Ознаки несправностей(нульовий рівень/діапазон)

  • обрив у котушці - 12250/3...4 або 23000/2...4
  • неіндуктивна котушка (заміна резистором 10 Ом) - 23000/0...2 або 1...3

Приклад розкиду початкових "нульових" рівнів:

111289 111701 111762 111819 112029
111907 112067 111871 111827 111625

При виявленні металевого об'єкта-"мішені" звучить звуковий сигнал тональності, що змінюється, і спалахує зелений світлодіод (2), а також зелений або червоний світлодіоди (7). Характер аудіовізуальної індикації змінюється відповідно до динаміки (у динамічному режимі) або рівня (у статичному режимі) реєстрованого RX-імпульсу:

Світлодіоди Статичний режим Динамічний режим
немає мішені немає мішені
слабкий рівень сигналу рівень сигналу зменшується
середній рівень сигналу рівень сигналу збільшується
сильний рівень сигналу -

Сильні перешкоди на роботу металодетектора надають електронні пристрої, що працюють поблизу.

перешкоди від LCD-Телевізори (відчуються на відстані до метра):

перешкоди від КЛЛ (відчуваються поблизу лампи):

перешкоди від магнітного поля включеного в мережу трансформатора виявляються у вигляді трелі - дуже частих спрацьовувань:

При експлуатації прилад повинен знаходитись на відстані від працюючих телевізорів, комп'ютерів, силових трансформаторів, КЛЛ!

Налаштування металодетектора

Якщо при увімкненні утримувати кнопку (4) до початку відліку, то відбувається вхід у меню, що дозволяє змінити налаштування металодетектора.

Структура меню (виділені значення за замовчуванням):

  • PULSE LEN- Довжина імпульсу (100/ 150 /200/250 us)
  • PULSE FREQ- частота проходження імпульсів (10/20/30/40/50/60/70/ 80 /90/100 pps)
  • INTEGRATOR K- коефіцієнт інтегратора (5/ 10 /20/30/40/50)
  • FILTER K- коефіцієнт фільтра (10/20/30/40/50/60/70/ 80 /90/100/110/120/130/140/150/160/170/180 /190/200)
  • SOUND- звук ( ON/OFF)
  • EXIT- вихід із меню

При короткому натисканні на кнопку (4) відбувається перехід до наступного пункту меню, а при довгому перехід до значень вибраної настройки.
Коротке натискання при цьому перехід до наступного можливого значення, а довге - збереження поточного значення і перехід на верхній рівень меню (до списку налаштувань).

Після вибору EXITвідбувається вихід з меню та збереження налаштувань у EEPROM.

Тестування металодетектора

Для тестування металодетектора при складанні можна завантажити в Arduinoтестову прошивку (для версії 3):

Hex-файлтестової прошивки FoxyPI -

Elf-файлтестової прошивки FoxyPI(версія 3.T від 24.04.2019) для -

У тестовому режимі металодетектор після включення генерує в пошуковій котушці імпульс струму тривалістю 150 мкс, а потім реєструє та відображає на екрані прийнятий сигнал. При натисканні клавіші генерується новий імпульс і т.д.

Приклади сигналів:
1 - без мішені, 2 - з мішенню:

Випробування металодетектора

Випробування металодетектора я проводжу на розчищеному земляному майданчику:

Мішені

Для випробувань використовуються різні мішені:


1 - алюмінієва пластина з "вінчестера" (жорсткого диска) (товщина 1,3 мм, зовнішній діаметр 3,75 дюйма, діаметр 1 дюйм)
2 - російська монета номіналом 5 рублів з міді, плакованої мельхіором (діаметр 25 мм, маса 6,45 грама)
3 - золоте колечко

Дальності виявлення мішеней "у повітрі":

Цікаво, що з накладення друг на друга двох пластин (мішеней 1) дальність виявлення знижується!

При зниженні напруги батареї дальність виявлення помітно знижується:
У закордонних металодетекторах як тестова мішеня часто використовується монета Великобританії. 10pдіаметром 24,5 мм, яка раніше (до січня 2012 року) виготовлялася з мідно-нікелевого сплаву (мідь 75%, нікель 25%):
Аналог такої монети – монета США 25 центів - 25 US cent ( U.S. quarter) діаметром 24,26 мм завтовшки 1,75 мм масою 5,67 грама:
Заявлена ​​глибина виявлення таких монет для різних металодетекторів ( max. depth for a US quarter):
Altai Treasure Seeker 2 hobby metal detector- 15 см;
Prestige Metal Detector- 16 см;
Supereye S3000 Metal Detector- 18 см;
EE Treasure Hunter- 20 див.

Дальності виявлення масивних мішеней у статичному режимі:

Вироби з порошкового заліза та багато феритових деталей (1) металодетектор не виявляє, але деякі вироби з фериту (2) детектуються всередині котушки на відстані декількох см від обмотки:

При швидкому переміщенні феритового магніту всередині котушки виникають помилкові спрацьовування:

Результат першого пошуку в саду з FoxyPI v3.3 (21.04.2019):

Результат другого пошуку в саду з FoxyPI v3.3 (27.04.2019):

А ось ще знахідки, але вже після електролітичного очищення (про неї нижче):

Про деякі цікаві знахідки можна прочитати.

Очищення знахідок від іржі

Знайдені знахідки часто покриті шаром іржі (оксиду заліза Fe2O3).
Для очищення знахідок від іржі можна використовувати кілька способів:

хімічний метод- використання хімікату, що перетворює іржу в легковидалений (пухкий) стан:

  • щавелева кислота;
  • ортофосфорна кислота.

електролітичний метод - найбільш ефективний, застосовується для видалення бруду та продуктів корозії, у тому числі і в археології:

можливі два режими очищення - анодна(очисний предмет є анодом, очищення проводиться бульбашками кисню) та катодна(очисний предмет - катод, а ефект, що очищає, дають бульбашки водню, яких виділяється в два рази більше, ніж кисню при анодному процесі - подібний процес використовується для отримання водню)

Нижче я опишу застосовуваний мною катодний спосіб очищення.

пластикова або скляна (не схильна до корозії) ємність наповнюється:
2 % (за іншими відомостями, 5 – 10 %) водним розчином лугу – їдкого натру NaOH;
водним розчином кальцинованої соди Na 2 CO 3(1 столова ложка на три літри води, але я використовую більш насичений розчин):

Один електрод (анод) – пластинка зі сталі, у тому числі нержавіючої, листового заліза, алюмінію або латуні, іноді застосовуються і вугільні електроди. Я використовую нержавіючу сталь:

Примітка.
Анод із нержавіючої сталі виділяє токсичні речовини, латунь сприяє виділенню міді на катоді, а алюмінієвий анод швидко зношується.

Анод і катод опускаються в розчин, до анода підключається "+" джерела живлення, а до деталі, що очищається, підключається "-" (я обмотую предмет, що очищається, мідним дротом). Починається процес електролізу води, що супроводжується виділенням бульбашок газу та утворенням пластівців іржі (на катоді - предметі, що очищається, - виділяються бульбашки водню, що руйнують іржу: 4H 2 0 + 4e - = 4OH +2H 2).

Також існує альтернативний опис реакції при катодному очищенні:
4H + + 4e - = 2H 2 (але в цьому випадку потрібне кислотне середовище для утворення достатньої кількості іонів водню).

У процесі іржа починає збиратися біля анода:

Наприкінці процесу вся ємність заповнена частинками іржі:

Іржа в процесі електролізу покриває анод:

Лакмусовий папірець, занурений у розчин, показує реакцію на лужне середовище:

Після закінчення процесу очищення деталь, що очищається, виявляється покрита пухким шаром забруднення, який видаляється металевою щіткою:

Після електролітичного очищення знахідка виглядає так:

Осцилограми

Використовуючи лабораторний стенд як цифровий осцилограф, я зняв ряд осцилограм:

лабораторний стенд

напруга на пошуковій котушці -

Влаштування металодетектора

Конструктивне виконання

Штанга

Для штанги металодетектора я використав ПВХ-трубу діаметром 25 мм із товщиною стінок 1,6 мм ( PN16):

Рукоятка

Рукоятка металодетектора кріпиться до труби, на якій закріплені електронний блок та блок живлення, за допомогою компресійного фітингу:

Електронний блок

Як корпус електронного блоку металодетектора я використав розподільну коробку Tycoзі ступенем захисту IP55(від води та пилу) з ПВХ з десятьма вводами діаметром 30 мм.

Вигляд усередині електронного блоку:


На ПВХ-трубі електронний блок закріплюється за допомогою U-Образних тримачів, які фіксуються нейлоновими стяжками:

Блок живлення

Для розміщення елементів живлення використовую розподільну коробку. На ПВХ-трубі блок живлення закріплюється за допомогою U-Образних тримачів, які фіксуються нейлоновими стяжками.

Електроніка

Мікроконтролер
Я використовую плату Arduino Nano 3.0.

3-й версії заснована на 8-бітному AVRмікроконтролери ATmega328P(32 кБайт Flash, 2 кБайт SRAM, 1 кБайт EEPROM, 3 таймери) (2-ї версії - на ATmega168), причому буква " P"позначає" picoPower".

контакти Arduino:

висновок Arduino призначення
D08 вихід сигналу генератора імпульсів у котушці
D13 вихід для підключення світлодіода
D11 вихід для підключення п'єзодинаміка
A00 вхід АЦП - для обмеженого та посиленого сигналу з пошукової котушки
A01 вихід для підключення зеленого світлодіоду
A02 вихід для підключення червоного світлодіода
D02 вхід підключення кнопки
REF вхід опорної напруги для АЦП

ресурси Arduino:

Для сполучення з USB-портом у моїй платі Arduinoвикористовується мікросхема перетворювача CH340G.

Джерела живлення

Живлення мікроконтролера

Для харчування Arduinoя використовую два з'єднані послідовно літій-іонні акумулятори UltraFire ZX 18650ємністю 4200 мА · год кожен:

Напруга холостого ходу такого повністю зарядженого акумулятора становить 4,21, а на навантаженні 10 Ом через 1 хвилину роботи - 3,61 В.

Номінальна напруга такої батареї становить 7,4 Ст.

Напруга батареї 7,4 В перетворюється на напругу 5 для живлення плати Arduinoза допомогою інтегрального стабілізатора 78L05(на схемі позначено VR1):

Живлення силової частини

Я використовую як джерело живлення силової частини 10 лужних батарей розміру AA (LR6).

Я оцінив деякі з використаних мною батарей:

Тип батареї Напруга х.х., Напруга
під навантаженням
(через 1 хвилину роботи),
Camelion Plus Alkaline 1
... ... (10 Ом)

... ... (10 Ом)
Duracell Duralock (Alkaline) 2
1,54 1,47 (10 Ом)
Єрмак (алкалінові)
1,62 1,43 (10 Ом)
Energizer Max (Alkaline) 3
1,62 1,51 (10 Ом)
Energy(алкалінові)
1,62 1,48 (10 Ом)

1 - номінальна ємність становить 2700 мА · год (при безперервному розряді до 0,8 В струмом 25 мА)
2 - технологія дозволяє зберігати заряд при зберіганні до 10 років,
на батарейках при цьому на смужці нанесено напис " ":

1 - батарейки Duracell, Виготовлені з використанням технології
2 - звичайні батареї Duracell
3 - за даними виробника:
номінальний внутрішній опір ( Nominal IR) - 150 ... 300 мОм;
діаграма залежності ємності від струму розряду:

Для розміщення батарей розміру AAя використовую батарейний відсік на 10 елементів:

Номінальна напруга такої батареї становить 15 Ст.

Котушка L2призначена для зниження перешкод, спричинених імпульсами струму пошукової котушки. Діод VD3шунтує батарею живлення для негативних викидів напруги, що виникають на індуктивності пошукової котушки, та захищає від неправильної полярності батареї живлення. Конденсатор C1Великої ємності є накопичувачем енергії - відіграє важливу роль при генерації імпульсів струму в котушці.

Для підключення джерел живлення використовується чотириконтактний роз'єм на боці корпусу електронного блоку:

1 - "+" батареї 15 В
2 - "-" батареї 15 В
3 - "-" батареї 7,4 В
4 - "+" батареї 7,4 В

Котушка

Параметри котушки

Пошукова котушка із середнім діаметром $D$ = 25 см (середній радіус $R$ = 12,5 см) та радіусом перетину котушки $a$ = 0,29 см містить $w$ = 27 витків емальованого мідного (питомий опір $\rho $ = 0,0175 Ом·мм 2 /м) дроти діаметром $d$ = 0,7 мм (радіус дроти $r$ = 0,35 мм, площа перерізу дроти $S$ = 0,385 мм 2):

Опір котушки $R = (\rho ((\pi D w) \over(S)))$ = 0,964 Ом, а виміряне склало $R$ = 1,3 Ом:

Для обчислення індуктивності такої котушки є кілька формул.

наближена формула:

$L = ((w^2)((\mu)_0)R[(ln(((8R) \over a)))-2])$ ,

де $a$ - радіус перетину котушки.

Ця формула наведена у книзі [ F. W. Grover, Inductance Calculations: Working Formulas and Tables, New York: Dover, 1946].

Для моєї котушки:
$L$ = 440 мкГн .

точніша формула:

$L = (((\mu)_0) \over (4 \pi)) (w^2) D \Phi$, де $\Phi$ - допоміжний коефіцієнт:
$\Phi = (2 \pi [((1 + (((\gamma)^2) \over 2))) (ln ((4 \over \gamma))) - 1,75 + (((\gamma) ) ^2) \over 6) ] ) $, де $\gamma = (a \over D)$, $a$ - радіус перерізу котушки

Ця формула використовується у плагіні multiloopдля програми Coil32(http://coil32.net/multi-winding-round-loop.html) для розрахунку індуктивності багатовиткової круглої котушки з круговим перетином (англ. multi-winding round loop with round cross-section).

Для моєї котушки:
$ \ Gamma $ = 0,0116;
$ \ Phi $ = 25,7;
$L$ = 468 мкГн .

інтегральна формула:

$L = ((\mu)_0) (w^2) (\pi) R ((\int_0^(1-(a \over R))) B_(rel)((\rho)) (\rho) \, (d(\rho)) ) $,

де $B_(rel)((\rho)) = ( (1 \over \pi) (\int_0^(\pi)) ((1 - ((\rho) cos (\phi) )) \over (( (1+((\rho)^2)-2(\rho)cos(\phi)))^(3 \over 2))) \, d(\phi) )$ - відносна магнітна індукція в площині котушки на відстані $(\rho) \over R$ порівняно з індукцією в центрі котушки, $a$ - радіус перетину котушки

Магнітне поле котушки

При протіканні за такою котушкою струму $I$ у точці на осі котушки, що знаходиться на відстані $z$ від площини котушки, створюється магнітне поле, напруженість якого визначається відомим виразом:

$H = (w (I \over 2) ((R^2) \over (((R^2 + z^2))^(3 \over 2))))$

Якщо прийняти внутрішній опір однієї батареї як 0,3 Ом, ЕРС - 1,45 В, то для десяти батарейок загальна ЕРС $E$ становитиме 14,5 В, а загальний опір $R$ ланцюга з урахуванням опору котушки 1 Ом становитиме 4 Ом. Приймаючи індуктивність котушки, що дорівнює 450 мкГн, отримуємо, що за тривалість $T$ імпульсу, що дорівнює 150 мкс, струм у котушці досягне значення $(E \over R) (1 - e^(-(T R)\over L)) = 2,7 А $.

Конструкція котушки

Для захисту котушки можна використовувати гофрований шланг для електропроводки (зазвичай сірого кольору), який розрізається вздовж:

У нього вставляється котушка, а потім скріплюється ізоляційною стрічкою. Котушка закріплюється в монтажній коробці за допомогою термоклею та нейлонових стяжок.
Котушка закріплюється на штанзі за допомогою компресійного фітинга, різьбова частина якого вкручена в поліпропіленову трубку діаметром 26 мм, закріплену на кришці монтажної коробки за допомогою нейлонової стяжки та термоклею:

Для підключення котушки використовується двоконтактний роз'єм на боці корпусу:

Генератор
Для видачі імпульсів я використовую цифровий висновок D08, встановивши його як "вихід" (цифровий висновок D08відповідає висновку PB0мікроконтролера ATmega) .
Для прискорення я використовую не команду digitalWrite, А прямий запис в порт, що швидше за приблизно у 10 разів!

Відповідність цифрових висновків Arduino та висновків портів ATmega

цифровий висновок Arduino виведення порту ATmega
D00 PD0
D01 PD1
D02 PD2
D03 PD3
D04 PD4
D05 PD5
D06 PD6
D07 PD7
D08 PB0
D09 PB1
D10 PB2
D11 PB3
D12 PB4
D13 PB5

Часові параметри генератора задаються через меню установок при включенні приладу.

Силова частина

Оскільки напруга на MOSFET-е при його вимкненні різко зростає (через індуктивність котушки), то транзистор може перейти в режим лавинного пробою (" avalanche breakdown"). Це відбувається, якщо напруга "стік-витік" $V_(DS)$ на MOSFET-е перевищує його напругу пробою $V_(DS(BR))$.
Для сучасних транзисторів робота у цьому режимі є штатною (вони маркуються як " Repetitive Avalanche Rated" або " 100% AVALANCHE TESTEDПри цьому важливо враховувати такі лавинні характеристики транзистора як максимальний лавинний струм, що повторюється, $I_(AR)$ і максимальна енергія лавинного пробою, що повторюється, $E_(AR)$.
Необхідно, щоб максимальний струм у котушці перед вимкненням не перевищував $I_(AR)$, а максимальна енергія, запасена в котушці, не перевищувала значення $E_(AR)$. Енергія магнітного поля котушки визначається як $(E_M) = ((((L(I^2)) \over (2)))$ (наприклад, для котушки індуктивністю $L$ = 700 мкГн зі струмом $I$ = 3 А енергія становитиме 3,2 мДж).

Параметри деяких MOSFET:

Найменування $V_(DS (BR))$, В $I_(AR)$, А $E_(AR)$, мДж
IRF540 100 28 15
IRF740 400 10 13
IRF840 500 8 13
FQP12N60C 600 12 22,5

Я використовую MOSFET IRF840, що володіє відповідними характеристиками:

Цоколівка IRF840:

G- затвор, D- Стік, S- витік

При лавинному пробої транзистора загасаючий струм котушки проходить по ділянці "стік-виток" MOSFET-а - батарея живлення", що володіє малим опором, що призводить до уповільнення згасання струму.

драйвер для MOSFET

Управління MOSFETздійснюється за допомогою оптопари PC817C(має швидкодію 3...4 мкс, витримує вихідний струм 50 мА і напругу в закритому стані до 35 В) і дискретної транзисторної схеми:

цоколівка PC817:

цоколівка BC547/BC557:

C- Колектор, B- база, E- емітер

Подібний драйвер описаний у статті http://radiohlam.ru/raznoe/driver_polevikov.htm.

Я досліджував характеристики такого драйвера (при подачі на світлодіод оптодрайвера напруги 5 через резистор 470 Ом):
струм споживання у "включеному" стані ( MOSFETвідкритий) дуже малий, у "вимкненому" ( MOSFETзакритий) - змінюється від 5,8 до 12 мА при зростанні напруги живлення від 7 до 15 В; напруга на виході драйвера становить 12,15/1,83 В ("вкл"/"викл") при напрузі живлення 13 Ст.

Детектор

В основі роботи імпульсного металодетектора лежить принцип електромагнітної індукції. Electromagnetic Pulse Induction (EMI).

Схема детектора мого металошукача:

Сигнал із пошукової котушки $L1$ через струмообмежуючий резистор $R2$ надходить на включені зустрічно-паралельно діоди $VD1$ та $VD2$, що обмежують величину сигналу до ~ 1 В. Це обмеження не вносить помітної похибки, так як для детектування "мішені" має значення "хвостик" сигналу, напруга на якому становить малі частки вольта (аж до мілівольт) - підтверджено моделюванням:

Такий слабкий сигнал для надійного детектування необхідно посилити, для чого я використав операційний підсилювач $OP1$ LM358N, включений за традиційною схемою підсилювача, що не інвертує. Коефіцієнт посилення визначається виразом $1+ (R3 \over R4)$, при зазначених номіналах елементів він становить 570 .

Особливістю ОУ LMx58є можливість однополярного живлення ( single supply) - на відміну від, наприклад, LM318, LF356, LF357не потрібне джерело негативної напруги.
Цоколівка LM358N (N - у DIP-корпусі):

Вид сигналу на виході ОУ:

Для обробки сигналу з пошукової котушки я використовую вбудований мікроконтролер ATmegaаналого-цифровий перетворювач.

На опорний вхід АЦП VREFподається опорна напруга u ref, що дорівнює 1,235 В, яке береться з еталонного джерела LM385Z-1.2(використовується режим роботи АЦП EXTERNAL).
Цоколівка LM385Z:

На сигнальний вхід АЦП ADC Inподається посилена операційним підсилювачем напруга сигналу з пошукової котушки, обмежена діодами VD1і VD2. АЦП дискретизує сигнал з котушки у вигляді послідовності чисел ( fast-time signal) зі значеннями 0 (мінімальний рівень, 0 В)...1023 (максимальний рівень u ref).

Наявність мішені поблизу котушки проявляється так:
(1023 - рівень сигналу, що відповідає перевантаженню АЦП)

  • зміщення точки Aправоруч;
  • збільшення інтервалу A-B;
  • зсув кривої вгору.

Порівняйте цей графік сигналу з наведеним вище:

Для визначення наявності мішені виконується обчислення суми ( slow-time signal) заданого числа дискретизованих рівнів сигналу, розташованих на однакових інтервалах один від одного, у тимчасовому "вікні" ( evaluation window). При цьому значення, розташовані раніше заданої при балансуванні початкової точки, не враховуються (для підвищення чутливості).


Потім виконується інтегрування послідовності сумарних значень (інтегратор емулюється програмно). Параметром фільтра є коефіцієнт $K$, який дорівнює кількості імпульсів, що припадають на постійну часу інтегратора.
Рівень сигналу на виході інтегратора аналізується в статичному режимі металодетектора.

При роботі металодетектора динамічному режимі результати інтегрування додатково проходять через фільтр високих частот ( high-pass filter, HPF), який емулюється програмно. Параметром фільтра є коефіцієнт $K$, який показує, у скільки разів частота проходження імпульсів більша за частоту зрізу фільтра.
На виході фільтра виходить сигнал, що характеризує динаміку зміни RX-сигналу.

При перевищенні вихідним сигналом порога - " нульового " рівня, заданого при балансуванні, спрацьовує тригер - мета вважається виявленою і реалізується аудіовізуальна індикація.

Звукова індикація

Я використовую для звукової індикації п'єзоелемент від автономного пожежного сповіщувача. Гучність звучання п'єзоелемента дуже химерним чином залежить від частоти сигналу. Я зміг знайти набір частот 900 (найслабший сигнал) - 1000 - 1100 (найсильніший сигнал), для яких гучність звучання збільшується. Для управління звучанням п'єзоелемента, підключеного до контакту 11 плати, я використовую таймер 2 Arduino.

Беззвучний режим (тільки світлодіодна індикація) може бути активований через меню установок при включенні приладу.

Візуальна індикація

Для індикації я використовую LCD-дисплей від мобільного телефону :

Дисплей для цього телефону - монохромний з роздільною здатністю 84×48:


Контролер дисплея - Philips PCD8544.
Підключення дисплея:

Виведення дисплея Висновок Arduino Призначення виведення дисплея
RST D10 скидання контролера дисплея
CE (або CS) D09 дозвіл введення даних у контролер дисплея
DC D05 режим введення - дані/команди
Din D04 дані шини SPI
CLK (або SCLK) D03 команди шини SPI
VCC * напруга живлення (2,7...3,3 В)
BL ** підсвічування
GND GND "земля"

Існує два варіанти дисплея LCD 5110- із синім (саме такий я використовую) або червоним текстолітом:

* напруги живлення контролера -
синій - суворо 3,3 В(можна підключити до висновку 3V3 Arduino)
червоний- за деякими неперевіренимвідомостям витримує напругу живлення 5 В (можна живити від висновків 5Vабо 3V3 Arduino)
** напруга живлення підсвічування -
синій- на виведення підсвічування можна подати напругу 3,3 або 5
червоний- на виведення підсвічування підключається "земля" (?)

Проблемою такого дисплея є ненадійний контакт РК-панелі з друкованою платою за допомогою з'єднувача ZEBRA, який усувається, наприклад, припаюванням провідника, що притискає панель до плати - як рекомендовано:

Якщо цю проблему не усунути, вона призводить до "почорніння" екрана, що вимагає повторної ініціалізації.

Для роботи з таким дисплеєм Arduinoя використовую бібліотеку Adafruit-PCD8544від Adafruit Industries.

Вимикач (5) керує підсвічуванням екрана. При хорошому зовнішньому освітленні підсвічування дисплея можна не використовувати, оскільки воно споживає помітну потужність.

Дискримінація мішеней

Вихрові струми згасають через наявність електричного опору у "мішені". Це згасання описується експоненційним законом $i = k H_0 (e^((-t) \over \tau))$. Коефіцієнт $k$ визначається формою та розмірами "мішені". Постійна часу $\tau = (L G) = (L \over R)$, що визначає тривалість протікання вихрових струмів, визначається електричною провідністю матеріалу мішені $G$ (або опором $R$) та її індуктивністю $L$.
У таблиці я навів відносну електричну провідність різних матеріалів щодо золота:

Вихрові струми застосовуються для дослідження властивостей матеріалів за допомогою вимірювання електричної провідності, оскільки матеріали мають унікальне значення провідності залежно від їхнього складу та способу виготовлення. Як стандарт використовується при цьому значення провідності хімічно чистої міді при температурі 20 ºC - стандарт International Annealed Copper Standard (IACS) - питомий опір 1,7241x10 -8 Ом·м або 5,8001x10 7 Див/м (100% IACS). Залізо, наприклад, має значення провідності, що дорівнює 18% від провідності міді.

Як стверджується (наприклад, у статті дослідника Reg Sniff), Мішені із золота або тонкої фольги мають дуже малу постійну часу і вихрові струми в них швидко загасають, на відміну від мішеней із заліза, міді або срібла.

Початкова напруженість магнітного поля $H_0$ визначається початковим струмом у котушці і зменшується за кубічним законом $1 \over (h^3)$ при віддаленні від котушки. Величина напруженості магнітного поля $H_0$ вздовж осі котушки на відстані $z$ від її центру, створюваного струмом $I_0$, визначається виразом: $(H_0) = ( (w (R^2) (I_0)) \over (2 ( (((R^2)+(z^2)))^(3 \over 2) ) ) )$.

Вихрові струми створюють власне загасне магнітне поле, яке наводить експоненційно загасаючу (з тієї ж постійної часу $\tau$) напругу в пошуковій котушці. Величина цієї напруги зменшується як шостий ступінь відстані $1 \over (h^6)$ при видаленні "мішені" від котушки. Це призводить до подовження імпульсу напруги на пошуковій котушці, що й реєструється металодетектором.

Додатковий аналіз кривої сигналу (напруги на пошуковій котушці) може бути виконаний з метою дискримінації (виділення різних типів) мішеней.Нахил кривої на її початку можна оцінити відношенням $K = ((x_t) \over (x_(t+(\Delta)t)))$ величин вибірок, відокремлених, наприклад, п'ятьма інтервалами ($(\Delta)t=5$) . У цьому постійна часу визначається виразом: $(\tau) = (((\Delta)t) \over (ln K))$

Для дослідження вихрових струмів можуть використовуватися програмні пакети для моделювання електромагнітних процесів. Як приклад можна навести моделювання електромагнітного гальма на вихрових струмах у пакеті COMSOL Multiphysics (опис - https://www.comsol.com/blogs/simulating-eddy-current-brakes/):

Існують негативні думки щодо можливості ефективної дискримінації для імпульсних металодекторів.

"The most reliable discriminator is you, by digging the target!" (http://www.gold-prospecting-wa.com) - "Найнадійніший дискримінатор - це ви, при викопуванні мішені".

У книзі " авторів Ahmet S. Turk, Koksal A. Hocaoglu, Alexey A. Vertiy

наведено такі твердження:


"Найважливішим недоліком імпульсних металодетекторів є неможливість легкої дискримінації між різними типами металів. ... Якщо розміри і глибина металевих об'єктів, що детектуються, різні і невідомі, то в загальному випадку неможливо визначити тип металу.

Як приклад імпульсного металодетектора, для якого заявлена ​​можливість дискримінації (феромагнітні ( FERROUS)/неферомагнітні ( N-FERROUS) матеріали), можна навести модель PULSE STAR II.
Особливості дискримінації у такому детекторі:

  • можлива тільки для мішеней не менше 10 см у діаметрі (на відміну від VLF/TR-детекторів, які мають здатність дискримінації навіть для невеликих об'єктів);
  • об'єкти меншого розміру відображаються як феромагнітні;
  • кілька невеликих неферомагнітних об'єктів відображаються як один великий феромагнітний.

Моя стаття на Хабрі про застосування нейромережі для дискримінації в імпульсному металодетекторі - https://habr.com/ua/post/435884/

Робота над проектом продовжується

Answer

Lorem Ipsum is simply dummy text printing and typesetting industry. Lorem Ipsum has been the industry"s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a typ specimen book. It has survived notly five , Але в електронному typesetting, remaining essentially unchanged.

Данський інженер Dzl разом зі своїм сином зібрали собі металошукач на базі контролера Arduino.

Схема:


Частота роботи генератора на транзисторі 2n222 залежить від індуктивності пошукової котушки і без металу дорівнює ~160кГц (це при авторських параметрах схеми - ємність конденсаторів у котушки по 22н і катуша діаметром 15см в 30 витків).
При наближенні металевих предметів (особливо заліза), індуктивність котушки змінюється, змінюється і частота генератора, яку pin 5 стежить програма на Arduino.
Початкове натискання NULL SW (pin 12) записує еталонну частоту (початкова калібрування без металу поблизу котушки).
При зміні частоти п'єзовипромінювач (pin 13) видає «клацання», які тим частіше, чим ближче метал.

Скетч:
// Ардуйно заснований метеолокатор // (C)Dzl july 2013 // http://dzlsevilgeniuslair.blogspot.dk/ // Connect search coil oscillator (20-200kHz) to pin 5 // Connect piezo between pin 13 and GND / / Connect NULL button between pin 12 anf GND // REMEMBER TO PRESS NULL BUTTON AFTER POWER UP!! #define SET(x,y) (x |=(1<10000) clf = 10000; FTW=clf; ) //-Click generator if(millis()>timer) ( timer+=10; PCW+=FTW; if(PCW&0x8000) ( digitalWrite(13,HIGH); PCW&=0x7fff; ) else digitalWrite(13,LOW); ) )

Було розроблено на основі вже відомого пристрою "Термінатор Про". Основною його перевагою є якісна дискримінація, а також мале споживання струму. Також складання приладу обійдеться не дорого, а працювати він здатний на будь-яких типах ґрунтів.

Ось короткі характеристики пристрою
За принципом роботи металошукач відноситься і імпульсно-балансного.
Робоча частота становить 8-15 кгц.

Що ж до режиму дискримінації, то тут використовується двох тональна озвучка. При виявленні заліза пристрій подає низький сигнал, а якщо потрапить кольоровий метал, тон буде високим.

Живиться апарат від джерела 9-12В.

Також є можливість регулювання чутливості і є ручне відбудова від грунту.

Ну а тепер про головне, про глибину виявлення металошукача. Прилад здатний виявляти монети діаметром 25 мм на відстані 35 см по повітрю. Золоте кільце можна зловити з відривом 30 див. Каску прилад виявляє з відривом порядку 1-го метра. Максимальна глибина виявлення становить 150 см. Щодо споживання, то без звуку це близько 35 мА.

Матеріали та інструменти для збирання:

- Мінідрель (у автора саморобна з моторчика);
- Провід для намотування котушки;
- чотирьох житловий екранований кабель;
- паяльник із припоєм;
- Матеріали для виготовлення корпусу;
- друкована плата;
- всі необхідні радіодеталі та їх номінали можна побачити на фотосхеми.


Процес виготовлення металошукача:

Крок перший. Виготовлення плати
Плата виготовляється шляхом травлення. Далі можна свердлити отвори, їхній діаметр становить 0.8 мм. Для цих цілей автор використовує маленький моторчик із встановленим свердлом.






Крок другий. Складання плати
Складання потрібно починати з впаювання перемичок. Після цього можна встановлювати панелі під мікросхеми та інші впаювати інші елементи. Дуже важливо мати для якісного складання тестер, який може виміряти ємність конденсаторів. Оскільки в приладі використовується два однакові канали посилення, то посилення по них має бути якомога ближче до одного значення, тобто бути однаковим. На обох каналах одного каскаду мають бути однакові показання під час вимірювання тестером.

Як виглядає вже зібрана схема, можна побачити на фото. Автор не став встановлювати вузол, що визначає рівень розрядки акумулятора.








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

Крок третій. Збираємо котушку
Датчик DD збирається за тим самим принципом, що й для всіх подібних балансників. Передавальна котушка позначається літерами TX, а приймальня RX. Усього потрібно зробити 30 витків дротом, складеним удвічі. Провід використовується емальований діаметром 0.4 мм. І приймальна, і передавальна котушка формуються подвійними проводами, у результаті на виході має вийти чотири дроти. Далі тестером необхідно визначити плечі обмоток і з'єднати початок одного плеча з кінцем іншого, у результаті утворюється середній висновок котушки.

Для фіксації котушки після намотування потрібно добре обмотати нитками, а потім просочити лаком. Після того як лак засохне, котушки обмотуються ізолентою.

Згодом зверху робиться екран із фольги, між початком і кінцем потрібно зробити зазор близько 1 мм, щоб уникнути короткозамкнутого витка.



Середній висновок ТХ необхідно підключити до землі плати, інакше генератор не запуститься. Що ж до середнього виходу RX, він потрібен для настройки по частоті. Після налаштування резонансу його потрібно заізолювати і приймальна котушка перетворюється на звичайну, тобто без висновку. Що стосується приймальної котушки, то її підключають замість передавальної та налаштовують на 100-150 Гц нижче, ніж зраджуюча. Кожну котушку потрібно налаштовувати окремо, при налаштуванні біля котушки не повинно бути жодних металевих предметів.

Щоб звести баланс, котушки зрушують як можна побачити на фото. Баланс повинен бути в межах 20-30 мв, але не більше 100 мв.

Робочі частоти приладу перебувають у межах від 7 кГц до 20 кГц. Чим нижче буде частота, тим глибше братиме прилад, але при низькій частоті дискримінація стає гіршою. І навпаки, що вище частота, то краще дискримінація, але заодно менше глибина виявлення. Золотою серединою вважатимуться частоту 10-14 кГц.

Для підключення котушки використовується чотири житловий екранований провід. екран підключається до корпусу, два дроти йдуть на передавальну котушку і два на приймальню.