آیا تا به حال از خود پرسیدهاید که چگونه میتوان با ترکیب چند قطعه الکترونیکی ارزانقیمت و قدرت پردازشی یک میکروکنترلر مدرن، یک دستگاه فلزیاب و طلایاب دقیق و دیجیتال ساخت؟
همه چیز از یک عصر پاییزی شروع شد؛ زمانی که رضا، یکی از علاقمندان به پروژههای الکترونیک و سیستمهای پردازش سیگنال، انگشتر یادگاری پدربزرگش را هنگام کار در باغچهی قدیمی خانه گم کرد. تلاشهای سنتی برای یافتن آن بینتیجه بود و فلزیابهای آنالوگ قدیمی موجود در بازار نیز یا قیمتهای بسیار هنگفتی داشتند یا بهدلیل نداشتن سیستم فیلترینگ دیجیتال، با کوچکترین نویز محیطی دشارژ شده و بوق اشتباه میزدند. همین چالش، رضا را بر آن داشت تا از دانش برنامهنویسی و سختافزار خود استفاده کند و با تکیه بر تراشه قدرتمند ESP32، یک دستگاه فلزیاب دیجیتال بر پایه تکنولوژی القای پالس (Pulse Induction) بسازد که قابلیت تفکیک نویز و تحلیل سرعت افت سیگنال را داشته باشد.
در این مقاله جامع از مجله اینترنتی سبزفراز، قصد داریم تمام مراحل ساخت، مفاهیم نظری القای مغناطیسی، طراحی سیمپیچ (Search Coil)، مدار سختافزاری تقویت سیگنال و الگوریتمهای پردازشی روی ESP32 را بهصورت کاملاً تخصصی و کاربردی بررسی کنیم تا شما نیز بتوانید فلزیاب اختصاصی خود را بسازید.
اصول علمی کارکرد فلزیابهای دیجیتال (تکنولوژی Pulse Induction)
فلزیابها بر اساس قوانین الکترومغناطیس فارادی و لنز کار میکنند. در روش القای پالس (PI) که یکی از دقیقترین روشها برای نفوذ در عمق خاک و زمینهای معدنی است، مراحل زیر طی میشود:
- ارسال پالس جریان: یک پالس جریان قوی برای چند میکروثانیه از طریق یک سوئیچینگ قدرتمند (مانند ماسفت) وارد سیمپیچ جستجو میشود. این پالس، یک میدان مغناطیسی شدید در اطراف کویل ایجاد میکند.
- قطع ناگهانی جریان: با قطع پالس، میدان مغناطیسی سیمپیچ بهسرعت فرو میریزد. این فروپاشی باعث ایجاد یک ولتاژ برگشتی قوی (Flyback Pulse) میشود.
- القای جریان گردابی (Eddy Current): اگر یک جسم فلزی (طلا، نقره، مس یا آهن) در محدوده میدان باشد، میدان فروپاشیده شده باعث ایجاد جریانهای گردابی در درون فلز میشود.
- پایش سرعت افت ولتاژ (Decay Rate): جریانهای گردابی فلز، یک میدان مغناطیسی ثانویه و ضعیف تولید میکنند که باعث میشود ولتاژ القایی سیمپیچ دیرتر به صفر برسد. فلزات مختلف بر اساس رسانایی و نفوذپذیری مغناطیسی، سرعت افت متفاوتی دارند؛ برای مثال، طلا و مس رفتار الگوریتمی متفاوتی نسبت به آهن نشان میدهند.
میکروکنترلر ESP32 با دارا بودن تایمرهای بسیار دقیق و مبدل آنالوگ به دیجیتال (ADC) سریع، میتواند منحنی این افت ولتاژ را نمونهبرداری کرده و وجود فلز را تشخیص دهد.
قطعات و تجهیزات مورد نیاز برای ساخت پروژه
برای پیادهسازی کامل این پروژه به قطعات زیر نیاز خواهید داشت که میتوانید اکثر آنها را از فروشگاه سبزفراز تهیه کنید:
۱. قطعات پردازشی و نمایشگر
- برد توسعه ESP32 یا آردوینو (Arduino Uno/Nano): به عنوان هسته اصلی پردازش سیگنال.
- نمایشگر OLED 0.96 inch (رابط I2C): برای نمایش گرافیکی دامنه سیگنال، شدت کشف و تنظیمات حساسیت.
- بازر اکتیو یا پسیو (Buzzer): جهت هشدارهای صوتی با تغییر فرکانس صوتی متناسب با فاصله فلز.
۲. قطعات مدار قدرت و تقویتکننده (Signal Conditioning)
- ترانزیستور ماسفت قدرت (IRF740 یا IRF840): برای سوئیچینگ جریان بالای سیمپیچ.
- تقویتکننده عملیاتی (Op-Amp TL072 یا NE5534): جهت تقویت ولتاژهای بسیار ضعیف القا شده از فلز.
- دیودهای سرعت بالا (1N4148 یا UF4007): برای حفاظت از مدار در برابر ولتاژهای ضربهای (Flyback).
- مقاومتها و خازنها: مقاومتهای ۱/۴ وات دقیق (۱٪) و خازنهای پلیاستر/میکایی جهت فیلتر کردن نویز خط تغذیه.
- پتانسیومتر ۱۰ کیلوامور متغیر: برای کالیبراسیون و تنظیم نقطه صفر (Offset Adjustment).
۳. قطعات ساخت سیمپیچ (Search Coil)
- سیم لاکی مس (قطر ۰.۳۵ تا ۰.۵ میلیمتر): حدود ۲۵ تا ۳۰ دور حول قالبی به قطر ۲۰ تا ۲۵ سانتیمتر.
- شیلد آلومینیومی یا نوار چسب برق: برای حذف نویزهای الکترواستاتیک محیطی (Parasitic Capacitance).
مراحل ساخت و سیمکشی سختافزار
گام اول: پیچیدن و آمادهسازی کویل (Search Coil)
دقت سیمپیچ، رابطه مستقیمی با عمق کاوش و حساسیت دستگاه به فلزات گرامی مانند طلا دارد. یک قالب دایرهای به قطر ۲۵ سانتیمتر آماده کنید. سیم لاکی ۰.۴ میلیمتری را ۲۵ دور بهصورت کاملاً منظم و مرتب حول قالب بپیچید. پس از اتمام، دور سیمپیچ را با نخ یا چسب محکم کنید. برای جلوگیری از نویزهای فرکانس بالا، میتوانید دور کویل را با نوار آلومینیومی شیلد کنید (توجه کنید ابتدا و انتهای شیلد آلومینیومی نباید به هم متصل شوند تا یک حلقه کوتاه تشکیل ندهند).
گام دوم: مونتاژ مدار تقویتکننده و سوئیچینگ
مطابق مراحل زیر مدار را روی بردبورد یا فیبر سوراخدار پیادهسازی کنید:
- پایه Gate ماسفت IRF740 را از طریق یک مقاومت ۲۲۰ اوهم به یکی از پینهای خروجی PWM میکروکنترلر (مثلاً پین GPIO 18 در ESP32) متصل کنید.
- پایه Drain ماسفت را به یک انتهای سیمپیچ و پایه Source را به زمین (GND) وصل کنید. انتهای دیگر سیمپیچ به تغذیه ۱۲ ولت متصل میشود.
- دو دیود محافظ را بهصورت معکوس موازی با سیمپیچ قرار دهید تا ولتاژهای سوزنی خروجی کنترل شوند.
- خروجی نقطه اتصال ماسفت و سیمپیچ را از طریق یک شبکه تقسیم ولتاژ و خازن کوپلاژ به ورودی مثبت Op-Amp TL072 متصل کنید.
- خروجی تقویتشده Op-Amp را به یکی از پینهای ورودی آنالوگ ESP32 (مانند GPIO 34) وصل نمایید.
کدنویسی و پیادهسازی الگوریتم پردازش سیگنال روی ESP32
در این پروژه، ESP32 پالسهایی با عرض ۱۰۰ میکروثانیه و فرکانس حدود ۲۰۰ هرتز به پایه ماسفت ارسال میکند. بلافاصله پس از خاموش شدن پالس، تایمر داخلی فعال شده و پین آنالوگ نمونهبرداری را انجام میدهد.
نمونه کد سادهشده برای Arduino IDE به شرح زیر است:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define PWM_PIN 18
#define ADC_PIN 34
#define BUZZER_PIN 25
int baselineSignal = 0;
void setup() {
pinMode(PWM_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
analogReadResolution(12); // تفکیکپذیری ۱۲ بیتی ESP32
// کالیبراسیون اولیه در غیاب فلز
long sum = 0;
for(int i=0; i<100; i++) {
sum += readPulse();
delay(10);
}
baselineSignal = sum / 100;
}
int readPulse() {
digitalWrite(PWM_PIN, HIGH);
delayMicroseconds(100); // ایجاد پالس القا
digitalWrite(PWM_PIN, LOW);
delayMicroseconds(15); // زمان انتظار برای عبور ولتاژ ضربهای اولیه
return analogRead(ADC_PIN);
}
void loop() {
int currentSignal = readPulse();
int difference = currentSignal - baselineSignal;
if (difference > 15) { // آستانه تشخیص فلز
int toneFreq = map(difference, 15, 500, 400, 2500);
tone(BUZZER_PIN, toneFreq);
} else {
noTone(BUZZER_PIN);
}
delay(20);
}راهکارهای افزایش حساسیت و عمق کاوش
- استفاده از فیلتر میانگین متحرک (Moving Average Filter): برای حذف نویزهای ناشی از نوسانات برق شهری (50Hz)، از الگوریتمهای نرمافزاری فیلترینگ روی دادههای ADC استفاده کنید.
- تغذیه کاملاً رگولهشده: نویز روی خط تغذیه ۱۲ ولت مستقیماً کیفیت کشف را کاهش میدهد. استفاده از باتریهای لیتیوم-یون به همراه ماژول BMS باکیفیت توصیه میشود.
- تنظیم دقیق فرکانس و عرض پالس: با تغییر عرض پالس بین ۵۰ تا ۲۰۰ میکروثانیه، میتوانید حساسیت دستگاه را برای فلزات کوچکتر (مانند سکه و طلا) یا فلزات بزرگتر در عمق بیشتر بهینهسازی کنید.
جمعبندی و ارتقای پروژه به سطوح حرفهای
ساخت یک فلزیاب دیجیتال بر پایه ESP32 پروژهای جذاب و کاربردی است که مفاهیم پردازش سیگنال، پردازش آنالوگ و برنامهنویسی میکروکنترلرها را به درستی ترکیب میکند. اما اگر به دنبال ساخت یک دستگاه حرفهایتر با قابلیت پردازش فرم موج بهصورت بلادرنگ (Real-time FFT)، تفکیک دقیقتر طلا از سایر فلزات، و داشتن یک رابط کاربری لمسی و رنگی روان هستید، تراشههای نسل اول ESP32 ممکن است بهدلیل محدودیت حافظه RAM و نداشتن دستورالعملهای شتابدهنده برداری با محدودیت مواجه شوند.
برای اجرای محاسبات سنگین ریاضی و الگوریتمهای هوش مصنوعی سبک (Edge AI) جهت جداسازی سیگنال فلزات، به سختافزاری با حافظه PSRAM بالا و پردازنده قدرتمندتر نیاز خواهید داشت.

برد توسعه وایفای و بلوتوث ESP32-S3-WROOM-1-N16R8 (16MB Flash, 8MB PSRAM)
سوالات متداول (FAQ)
۱. آیا با ESP32 و آردوینو میتوان طلا را از سایر فلزات تفکیک کرد؟
بله، با تحلیل دقیق منحنی افت ولتاژ (Decay Curve) و محاسبه ثابت زمانی (Time Constant) سیگنال القایی، میتوان تا حدودی فلزات با رسانایی بالا (مانند طلا و مس) را از فلزات مغناطیسی (مانند آهن) تفکیک کرد. البته این کار نیازمند ADC با سرعت بالا و الگوریتمهای دقیقتر ریاضی است.
۲. عمق کاوش این فلزیاب چقدر است؟
عمق کاوش کاملاً به قطر سیمپیچ، ولتاژ تغذیه بخش قدرت (۱۲ تا ۲۴ ولت) و میزان حذف نویز بستگی دارد. با یک کویل ۲۵ سانتیمتری استاندارد، امکان کشف اجسام فلزی متوسط در عمق ۳۰ تا ۸۰ سانتیمتری وجود دارد.
۳. چرا ولتاژ پینهای ADC در ESP32 نباید از ۳.۳ ولت بیشتر شود؟
پایه های GPIO در برد ESP32 تحمل ولتاژ بالای ۳.۳ ولت را ندارند. از آنجا که ولتاژ برگشتی سیمپیچ ممکن است به چند ده ولتاژ برسد، حتماً باید از دیودهای هرزگرد و شبکه تقسیم ولتاژ و Op-Amp برای محدودسازی ولتاژ ورودی به پین آنالوگ استفاده شود.






اولین نفری باشید که نظر میدهد.