دوربین ردیاب هوشمند با هوش مصنوعی و برد ESP32
تا حالا به این فکر کردی که چطور میتونی یه دوربین هوشمند بسازی که بتونه چهره، دست یا اشیاء رو تشخیص بده و خودش به صورت اتوماتیک دنبالشون کنه؟ تو این پروژه از آیسیمدار میخوایم دقیقا همین کار رو بکنیم. با ترکیب یه ماژول خفن هوش مصنوعی و برد ESP32، یه دوربین ردیاب حرکتی میسازیم که بدون نیاز به کامپیوتر یا اینترنت، میتونه دنیای اطرافش رو ببینه و تحلیل کنه.
این سیستم که به عنوان ردیاب ویژن (Vision Tracker) شناخته میشه، روی یه پایه متحرک (Pan-Tilt) سوار میشه. وقتی دوربین هدفی رو پیدا میکنه، با پردازش لحظهای مختصاتش رو به میکروکنترلر میفرسته تا سرووموتورها رو بچرخونه و هدف رو همیشه تو مرکز تصویر نگه داره. از این ایده میتونی تو ساخت رباتهای تعاملی، سیستمهای امنیتی پیشرفته یا حتی پایههای هوشمند دوربین استفاده کنی.
پس قطعاتت رو آماده کن تا با هم این گجت بینظیر و مبتنی بر هوش مصنوعی رو قدم به قدم جمع کنیم. بریم سراغ ساخت!
- سیستمهای نظارتی و امنیتی هوشمند
- رباتهای تعاملی و هوشمند
- دوربینهای ردیاب اتوماتیک برای تولید محتوا
- برجکهای متحرک مبتنی بر هوش مصنوعی
- تجهیزات آموزشی هوشمند برای کلاس و آزمایشگاه
ماژول هوش مصنوعی HuskyLens V2 و ویژگیها
ماژول HuskyLens V2 یه سنسور بینایی تعبیهشده خفنه که برای پروژههای نیازمند پردازش تصویر لحظهای طراحی شده. برخلاف دوربینهای معمولی که فقط تصویر رو ضبط میکنن، این ماژول تمام پردازشهای هوش مصنوعی رو روی خودش انجام میده و اصلا نیازی به کامپیوتر خارجی یا اتصال ابری نداره.
مشخصات فنی کلیدی ماژول
- پردازنده دو هستهای Kendryte K230 – برای شتابدهی هوش مصنوعی و اجرای سریع پردازشها روی لبه (Edge).
- 1 گیگابایت حافظه رم LPDDR4 – تضمینکننده اجرای روان مدلها و پردازش آنی.
- 8 گیگابایت حافظه داخلی eMMC 5.1 – برای ذخیره مدلها، تنظیمات و لاگها بدون نیاز به کارت حافظه خارجی.
- سنسور دوربین 2 مگاپیکسلی – ضبط تصاویر با کیفیت بالا و بهینهشده برای تشخیص هوش مصنوعی.
- بیش از 20 مدل هوش مصنوعی آماده – الگوریتمهای آماده به کار بینایی ماشین شامل:
- تشخیص و شناسایی چهره
- ردیابی اشیاء مختلف
- تشخیص ژستهای حرکتی دست
- تخمین و تشخیص حالت بدن
- تشخیص رنگهای خاص
- شناسایی برچسبها و تگها
- پشتیبانی از مدلهای اختصاصی – قابلیت آموزش دادن مدل هوش مصنوعی خودت و اجرای مستقیم اون روی دستگاه.
- نمایشگر لمسی تعاملی – یک صفحه نمایش لمسی 2.4 اینچی برای پیکربندی راحت و دیدن نتیجه کار به صورت زنده.
- رابطهای ارتباطی مختلف – دارای پورت USB-C برای اتصال مستقیم و رابطهای UART و I2C برای ارتباط با میکروکنترلرها، به همراه پشتیبانی از ماژول وایفای.
وقتی یه هدف (مثل چهره یا شیء) تشخیص داده میشه، ماژول مختصات دقیق X و Y رو نسبت به مرکز کادر محاسبه میکنه. این دیتا رو میشه از طریق پروتکل UART یا I2C به میکروکنترلری مثل ESP32-C6 فرستاد. با این کار میتونیم حرکت سیستم رو تو لحظه کنترل کنیم و این دقیقا همون چیزیه که برای مکانیزم متحرک دوربینمون (Pan-Tilt) بهش نیاز داریم.
طراحی و چاپ سهبعدی پایه متحرک (Pan-Tilt)
برای اینکه سیستم ردیاب ما جمعوجور و تمیز دربیاد، کل مکانیزم متحرک رو توی نرمافزار Fusion 360 طراحی کردم. تو این طراحی، تمرکز اصلی روی پایداری، توزیع مناسب وزن و مونتاژ راحت بوده تا سیمها به خوبی داخل ساختار مخفی بشن. این مکانیزم چهار بخش اصلی داره: بخش اول: پایه موتور چرخش افقی (Pan)
- این قطعه سرووموتور چرخش افقی رو محکم سر جاش نگه میداره. تراز بودن این بخش باعث میشه کل سیستم بدون لرزش و خیلی نرم بچرخه.
بخش دوم: بیس متحرک افقی
- این قطعه مستقیما به بازوی موتور افقی وصل میشه و همراهش میچرخه. علاوه بر این، جایگاهی هم برای نصب موتور عمودی (Tilt) داره تا محور دوم حرکتی ما شکل بگیره.
بخش سوم: محفظه پایینی که در واقع پایه ساختاری کل سیستمه و چند تا کار مهم انجام میده:
- برد ESP32-C6 رو داخلش جا میده.
- موتور چرخش افقی رو محکم نگه میداره.
- فضای داخلی خوبی برای مدیریت سیمها و مخفی کردنشون داره.
- یه برش دقیق برای پورت Type-C برد در نظر گرفته شده تا راحت بتونیم برنامهریزی و برقرسانیش رو انجام بدیم.
بخش چهارم: بازوی عمودی (Tilt) که خودش از دو قسمت تشکیل شده:
- مستقیما روی بازوی سرووموتور عمودی نصب میشه.
- قسمت بالایی هم دوربین رو با دو تا پیچ محکم نگه میداره.
این ساختار باعث میشه دوربین حین حرکت عمودی کاملا پایدار بمونه. تمام این قطعات با استفاده از فیلامنت مشکی PLA چاپ شدن. تو میتونی:
- فایلهای آماده STL رو دانلود کنی و خودت پرینت بگیری.
- یا فایل اصلی رو تو نرمافزار باز کنی و ابعادش رو با توجه به سرووموتورهایی که داری شخصیسازی کنی.
مونتاژ سرووموتور محور افقی (Pan)
- قطعه اول پرینتشده (پایه موتور Pan) و یکی از سرووموتورها رو بردار.
- پیچهای کوچیک رو از روی بدنه سروو باز کن.
- موتور رو داخل قطعه قرار بده تا کاملا تو شیارش بشینه.
- پیچهای بدنه سروو رو دوباره ببند تا محکم بشه.
- حالا با چهار تا پیچ، موتور رو به قطعه پرینتشده سفت کن.
- در نهایت چک کن که موتور کاملا تراز باشه و داخل پایهش لق نزنه.
سیمکشی و اتصالات الکترونیکی بین قطعات
حالا وقتشه که قطعات رو طبق نقشه به هم وصل کنیم. 1. اتصالات سرووموتورها (افقی و عمودی): هر دو موتور سه تا سیم دارن:
- سیم قرمز: تغذیه (5 ولت یا VIN)
- سیم مشکی یا قهوهای: زمین (GND)
- سیم زرد یا نارنجی: سیگنال
اتصالات سروو موتور افقی (Pan):
- سیم سیگنال به پین GPIO 5 روی برد ESP32-C6
- سیم تغذیه به VIN
- سیم زمین به GND
اتصالات سروو موتور عمودی (Tilt):
- سیم سیگنال به پین GPIO 4 روی برد ESP32-C6
- سیم تغذیه به VIN
- سیم زمین به GND
یه نکته خیلی مهم: حواست باشه که پایههای GND برد ESP32، هر دو موتور و ماژول دوربین باید به هم متصل بشن. 2. اتصال دوربین (تو حالت I2C): اول روی خود ماژول این تنظیمات رو انجام بده:
- برو تو بخش تنظیمات (Settings) و بعد Protocol Type.
- گزینه I2C رو انتخاب کن.
حالا با استفاده از کابل 4 پین مخصوص، دوربین رو به برد وصل کن:
- سیم سبز (SDA) به پین GPIO 19
- سیم آبی (SCL) به پین GPIO 20
- سیم قرمز به VIN
- سیم مشکی به GND
3. بخش تأمین برق مدار:
- برد ESP32 میتونه مستقیما با همون پورت Type-C روشن بشه.
- پین VIN هم برق موتورها و دوربین رو تأمین میکنه.
اگه از موتورهای قوی با گشتاور بالا استفاده میکنی، بهتره یه منبع تغذیه 5 ولت خارجی براشون در نظر بگیری تا مدارت افت ولتاژ پیدا نکنه. قبل از اینکه قابها رو ببندی، حتما همه سیمها رو از شکاف قطعه سوم رد کن.
- برد ESP32 رو تو جایگاه مخصوصش تو قطعه سوم قرار بده.
- پورت Type-C رو دقیقا روبروی سوراخ بدنه تنظیم کن.
- با دو تا پیچ کوچیک M2، برد رو سر جاش محکم کن.
کالیبره کردن موتورها و بستن قاب پایینی
1. کالیبره کردن موتورها: قبل از اینکه قطعات متحرک رو مونتاژ کنیم، اول باید هر دو موتور رو روی زاویه مرکز تنظیم کنیم.
- برد رو با کابل به سیستم وصل کن.
- نرمافزار آردوینو (یا هر محیط دیگهای که راحتی) رو باز کن.
- کد راهاندازی اولیه موتورها رو روش آپلود کن.
#include <ESP32Servo.h>
Servo tiltServo;
Servo panServo;
#define TILT_PIN 4
#define PAN_PIN 5
void setup() {
Serial.begin(115200);
// Attach servos
tiltServo.attach(TILT_PIN);
panServo.attach(PAN_PIN);
// Move both servos to center (90°)
tiltServo.write(90);
panServo.write(90);
Serial.println("Servos moved to center position (90 degrees)");
}
void loop() {
// Nothing here — servos stay centered
}
این کد، هر دو موتور افقی و عمودی رو به زاویه مرکز حرکت میده. حواست باشه که این مرحله خیلی مهمه! اگه موتورها رو قبل از مونتاژ کالیبره نکنی، ممکنه بعد از بستن قطعات، محدوده حرکتیشون به هم بریزه یا به پایهها فشار بیاد. صبر کن تا موتورها کاملا تو نقطه وسط قرار بگیرن. 2. نصب محفظه پایینی (قطعه سوم):
- قطعه پایینی رو بردار.
- سیمها رو با دقت داخلش مرتب کن تا جایی گیر نکنن.
- این قطعه رو روی مجموعه موتور چرخش افقی جا بزن.
حتما چک کن که:
- قسمتهای باز موتور کاملا پوشونده بشه.
- قاب بدون له کردن سیمها کاملا کیپ بشه.
- پورت Type-C کاملا تو بریدگی خودش تراز باشه.
وقتی قاب به درستی جا رفت، ساختار پایه تکمیل میشه و میتونیم بریم سراغ مونتاژ بازوی عمودی تو مرحله بعد.
نصب سرووموتور حرکت عمودی (Tilt)
1. نصب موتور روی پایه:
- قطعه دوم (بیس متحرک افقی با جایگاه نصب) رو بردار.
- سرووموتور عمودی رو داخل شکاف مخصوصش قرار بده.
- با چهار تا پیچ، موتور رو حسابی محکم کن.
2. اتصال پایه به موتور افقی:
- پایهای که الان موتور عمودی روشه رو بردار.
- اون رو دقیقا روی بازوی متصل به موتور افقی تنظیم کن.
- با احتیاط روی شفت موتور جا بزن.
مونتاژ بازوی نگهدارنده دوربین
1. نصب اهرم روی بازو:
- بخش اصلی بازوی عمودی رو بردار.
- اهرم دایرهای سرووموتور رو داخل شکاف تعبیهشده قرار بده.
- با دو تا پیچ، اهرم رو محکم کن تا اصلا لق نزنه.
- دقت کن که اهرم کاملا صاف بشینه.
2. اتصال بازو به موتور عمودی:
- مطمئن شو که موتور عمودی هنوز تو زاویه مرکز (90 درجه) قرار داره.
- بازو رو با شفت موتور همراستا کن.
- با دقت اون رو روی هزارخار شفت موتور جا بزن.
- پیچ مرکزی رو ببند تا بازو کاملا قفل بشه.
یادت نره بازو رو قبل از سفت کردن پیچ کاملا صاف نگه داری تا دامنه حرکتی متعادلی داشته باشی. 3. اتصال بخش دوم بازو:
- تیکه دوم بازوی عمودی رو بردار.
- اون رو با قسمتی که الان روی موتور نصب کردی تراز کن.
- با دو تا پیچ، این دو قسمت رو طبق عکسها به هم وصل کن.
وقتی پیچها رو بستی، بازو رو با دستت یه کم تکون بده تا مطمئن بشی حرکت عمودیش نرمه و جایی گیر نمیکنه. الان مکانیزم حرکتی کاملا آمادهست تا دوربین رو روش سوار کنیم.
نصب دوربین HuskyLens روی پایه متحرک
1. وصل کردن کابل ارتباطی:
- کابل I2C که از برد ESP32 کشیدی رو بردار.
- اون رو به پورت دوربین وصل کن.
- مطمئن شو که سوکت کاملا جا رفته و محکم شده.
- کابل رو طوری مسیردهی کن که موقع حرکتهای دوربین، مانعی ایجاد نکنه و کشیده نشه.
2. نصب فیزیکی دوربین روی پایه:
- دوربین رو روی سوراخهای بالایی بازو قرار بده.
- سوراخهای دوربین و پایه رو دقیقا تراز کن.
- دو تا پیچ M3 رو از توی براکت رد کن.
- پیچها رو محکم کن، ولی مراقب باش بیش از حد سفت نکنی که به بدنه دوربین فشار نیاد.
آپلود کدهای ردیابی روی برد ESP32
1. آپلود کدهای اصلی برنامهنویسی:
- نرمافزار آردوینو رو تو سیستم باز کن.
- کدهای ردیابی رو تو یه فایل جدید کپی کن.
- از منوی Tools بخش Board، گزینه Beetle ESP32-C6 رو انتخاب کن.
- پورت درست رو از منوی Port انتخاب کن.
- دکمه آپلود رو بزن.
#include <Wire.h>
#include "DFRobot_HuskylensV2.h"
#include <ESP32Servo.h>
HuskylensV2 huskylens;
// Servo objects
Servo tiltServo;
Servo panServo;
// Servo pins
#define TILT_PIN 4
#define PAN_PIN 5
// Camera resolution (HuskyLens default)
#define FRAME_WIDTH 320
#define FRAME_HEIGHT 240
// Current servo angles
int panAngle = 90;
int tiltAngle = 90;
// Tuning (adjust if movement too fast/slow)
float panGain = 0.05;
float tiltGain = 0.05;
void setup() {
Serial.begin(115200);
Wire.begin();
// Attach servos
tiltServo.attach(TILT_PIN);
panServo.attach(PAN_PIN);
// Center servos initially
tiltServo.write(tiltAngle);
panServo.write(panAngle);
while (!huskylens.begin(Wire)) {
Serial.println("HuskyLens Begin failed!");
delay(100);
}
huskylens.switchAlgorithm(ALGORITHM_FACE_RECOGNITION);
delay(2000);
}
void loop() {
if (huskylens.getResult(ALGORITHM_ANY)) {
while (huskylens.available(ALGORITHM_ANY)) {
Result *result =
static_cast<Result *>(huskylens.popCachedResult(ALGORITHM_ANY));
int x = result->xCenter;
int y = result->yCenter;
Serial.print("Face Center: ");
Serial.print(x);
Serial.print(", ");
Serial.println(y);
// Calculate error from center
int errorX = x - FRAME_WIDTH / 2;
int errorY = y - FRAME_HEIGHT / 2;
// Adjust angles
panAngle -= errorX * panGain;
tiltAngle += errorY * tiltGain;
// Constrain angles
panAngle = constrain(panAngle, 0, 180);
tiltAngle = constrain(tiltAngle, 0, 180);
// Move servos
panServo.write(panAngle);
tiltServo.write(tiltAngle);
}
}
delay(20);
}
صبر کن تا فرآیند کامپایل و آپلود تموم بشه. 2. سیستم چطور کار میکنه؟
- برق مدار رو وصل کن تا روشن بشه.
- یکی از حالتهای هوش مصنوعی دوربین رو انتخاب کن؛ مثلا:
- ردیابی چهره (Face Tracking)
- ردیابی اشیاء (Object Tracking)
- تشخیص دست (Hand Gesture)
- تشخیص حالت بدن (Pose Detection)
به محض اینکه هدفی تو کادر پیدا بشه اتفاقات زیر میفته:
- دوربین دادههای اون هدف (مختصات X و Y کادر دور هدف و آیدیش) رو از طریق I2C به برد میفرسته.
- برد پردازش میکنه و میفهمه هدف چقدر از مرکز تصویر فاصله داره.
- در نهایت، با توجه به این اختلاف، موتورهای متحرک افقی و عمودی رو زاویهدهی میکنه تا هدف برگرده وسط تصویر.
این فرآیند خیلی سریع اتفاق میفته و باعث میشه سوژه همیشه تو مرکز کادر بمونه. حالا یه دوربین ردیاب هوشمند تمامعیار داری که میتونه به صورت فیزیکی چهرهها، اشیاء یا حرکات رو به صورت لحظهای دنبال کنه!
آشنایی با قابلیت تشخیص و ردیابی چهره
قابلیت تشخیص چهره تو این ماژول میتونه صورت افراد رو پیدا کنه، نقاط کلیدی چهره (مثل چشمها، بینی و دهان) رو علامتگذاری کنه و حتی چهرههای مختلف رو یاد بگیره و بشناسه.
- کادر سفید روی تصویر یعنی چهره تشخیص داده شده.
- کادر رنگی به همراه آیدی و درصد، یعنی چهره شناخته شده است.
- مثلا نوشته: Face ID1 97%
- این یعنی ID1 اولین چهرهای بوده که بهش آموزش دادی.
- و 97% هم درصد اطمینان ماژوله.
وضعیت چراغهای پشت ماژول چطوریه؟
- آبی: چهره تشخیص داده شده.
- زرد: در حال یادگیری چهره است.
- سبز: چهره با موفقیت شناخته شد.
چطور یه چهره رو به دوربین آموزش بدیم؟
- حالت Face Recognition رو انتخاب کن.
- چهره رو دقیقا داخل کادر سفید قرار بده.
- مطمئن شو که علامت مثبت (+) وسط کادر باشه.
- دکمه A (بالا سمت راست) رو فشار بده.
- حالا اون چهره به عنوان ID1 (یا شمارههای بعدی) ذخیره میشه.
پارامترهای مهم تو تنظیمات چهره:
- فراموش کردن آیدیها: پاک کردن همه چهرههای آموزشدادهشده.
- شتابدهنده تشخیص چند چهره: ردیابی رو سریعتر میکنه ولی با دقت یه کم پایینتر.
- آستانه تشخیص (Detection Threshold):
- پایین: راحتتر پیدا میکنه (اما ممکنه اشتباه هم بکنه).
- بالا: سختگیرتر میشه و فقط چهرههای خیلی واضح رو میگیره.
- آستانه شناسایی (Recognition Threshold):
- پایین: راحتتر چهره رو تطبیق میده (احتمال خطای تطبیق بیشتر).
- بالا: خیلی سختگیرانه تطبیق میده.
- آستانه NMS: کادرهای تکراری که روی هم افتادن رو حذف میکنه.
- ویژگیهای چهره: نمایش یا مخفی کردن نقاط کلیدی صورت.
- تنظیم نام: اختصاص یه اسم دلخواه به آیدی.
- نمایش نام: فعال یا غیرفعال کردن نمایش اسم روی صفحه.
- بازگشت به تنظیمات کارخانه: ریست کردن همه این موارد.
- خروجی گرفتن (Export): ذخیره چهرههای آموزشدادهشده (تا 5 مدل مختلف).
- وارد کردن (Import): بارگذاری چهرههای ذخیرهشده از یه دستگاه دیگه.
خروجی و ورودی گرفتن چهرهها هم خیلی راحته. برای ذخیره مدل، تو تنظیمات گزینه Export Model رو بزن و یه شماره براش انتخاب کن. برای انتقالش به یه دستگاه دیگه هم کافیه فایلهای json و bin رو کپی کنی و تو ماژول جدید روی گزینه Import Model همون شماره رو انتخاب کنی.
تشخیص اشیاء پیشفرض با دوربین هوشمند
قابلیت Object Recognition تو این دوربین میتونه 80 نوع شیء مختلف رو به صورت پیشفرض و ثابت بشناسه. وقتی شیء مورد نظر جلوی دوربین قرار میگیره، ماژول به صورت خودکار دورش یه کادر میکشه و اسم شیء رو به همراه درصد اطمینان از تشخیص روی صفحه نمایش میده.
ردیابی اشیاء دلخواه با قابلیت Object Tracking
تو حالت Object Tracking میتونی به ماژول یاد بدی که هر بار یه شیء کاستوم رو شناسایی و ردیابی کنه. برای آموزش دادن شیء به دوربین اینطوری عمل کن:
- وارد حالت Object Tracking شو.
- دوربین رو به سمت شیء مورد نظر بگیر.
- صفحه نمایش رو لمس کن و یه کادر دور شیء بکش.
- دستت رو رها کن تا فرآیند یادگیری تموم بشه.
نتیجه ردیابی: وقتی شیء مورد نظر دوباره تو تصویر بیاد:
- یه کادر رنگی دورش کشیده میشه.
- متنی شبیه به Obj: ID1 66% روی صفحه میاد.
معنی این متن چیه؟
- کلمه Obj اسم پیشفرضه.
- عبارت ID1 نشون میده که این اولین شیء آموزشدادهشده است.
- عدد 66% هم درصد اطمینان تشخیص رو نشون میده.
قابلیت تشخیص و ردیابی رنگها
با استفاده از این ویژگی خفن، ماژول میتونه رنگهای خاصی که بهش معرفی میکنی رو تشخیص بده، یاد بگیره و به صورت لحظهای تو تصویر ردیابیشون کنه.
دستهبندی تصاویر با هوش مصنوعی (Classification)
- این حالت میتونه اشیاء رو تو 1000 دستهبندی مختلف طبقهبندی کنه.
- کاملا از مدل هوش مصنوعی داخلی استفاده میکنه و نیازی به آموزش نداره.
- اسم شیء و درصد اطمینان رو بهت نشون میده.
- مثلا: Laptop 92%
یه نکته مهم: این حالت با بخش "تشخیص اشیاء" فرق داره:
- اینجا هیچ کادری دور شیء کشیده نمیشه.
- مختصاتی برای مکان شیء هم بهت نمیده (یعنی مختصات X و Y نداریم).
پس این حالت بیشتر برای این به درد میخوره که بفهمی "این شیء چیه"، نه اینکه بفهمی "دقیقا کجای تصویر قرار داره".
دستهبندی ویژگیها و اجسام چندزاویهای
این قابلیت بهت اجازه میده از زوایای مختلف یه شیء عکس بگیری، اونا رو به ماژول آموزش بدی و بعد هر شیء کاستوم و دلخواهی رو به راحتی بهش بشناسونی.
بخشبندی و تشخیص مرز اشیاء (Segmentation)
- این ویژگی اشیاء رو تشخیص میده و دقیقا خطوط دورشون رو مشخص میکنه.
- به هر شیء یه ماسک رنگی اختصاص میده.
- برای اندازهگیری مساحت و شکل دقیق اجسام خیلی کاربردیه.
- میتونه تا 80 دستهبندی مختلف رو تشخیص بده.
- این دستهبندیها دقیقا همون مواردی هستن که تو بخش تشخیص اشیاء (Object Recognition) داشتیم.
تفاوتش با یه کادر ساده اینه که اینجا دقیقا مرز فیزیکی شیء مشخص میشه و برای درک بصری بهتر، فوقالعادهست.
تشخیص ژستهای حرکتی دست
- کف دست و 21 نقطه کلیدی رو شناسایی میکنه.
- تمام مفصلهای انگشتها رو به صورت لحظهای روی صفحه نشون میده.
- از یادگیری، تشخیص و ردیابی ژستهای مختلف دست پشتیبانی میکنه.
این 21 نقطه کلیدی شامل این موارد میشن:
- یک نقطه برای مچ دست.
- چهار مفصل برای هر کدوم از انگشتها:
- شست
- انگشت اشاره
- انگشت وسط
- انگشت حلقه
- انگشت کوچیک
(برای هر انگشت: ریشه انگشت، مفصل اول، مفصل دوم و نوک انگشت مشخص میشه). برای پروژههای کنترل با حرکت دست و گجتهای تعاملی، این قابلیت بینظیره.
تخمین حالت بدن و تشخیص حرکات
- بدن انسان رو تو تصویر تشخیص میده.
- 17 نقطه کلیدی از آناتومی بدن رو شناسایی میکنه.
- میتونه حالتهای مختلف بدن رو یاد بگیره و ردیابی کنه.
- قابلیت تشخیص چند نفر به صورت همزمان رو داره.
- از زوایای مختلف کار میکنه.
- حتی میتونه مفصلهایی که پشت یه مانع پنهان شدن رو هم پیشبینی کنه.
این 17 نقطه کلیدی شامل این موارد میشه:
- بینی
- چشمها (چپ و راست)
- گوشها (چپ و راست)
- شانهها (چپ و راست)
- آرنجها (چپ و راست)
- مچ دست (چپ و راست)
- لگن (چپ و راست)
- زانوها (چپ و راست)
- مچ پا (چپ و راست)
این قابلیت برای پروژههای فیتنس و ردیاب ورزشی، کنترل با ژستهای حرکتی کل بدن و سیستمهای تعاملی فوقالعادهست.
سیستم پلاکخوان هوشمند
- پلاک وسایل نقلیه رو تو تصویر پیدا میکنه.
- شماره پلاک رو روی صفحه نمایش میده.
- پشتیبانی از یادگیری پلاکهای خاص برای شناسایی دقیقتر.
- میتونه پلاکهای آموزشدادهشده رو شناسایی و ردیابی کنه.
- آیدی و درصد اطمینان رو هم نشون میده.
جون میده برای ساخت یه سیستم پارکینگ هوشمند، درهای اتوماتیک و پروژههای کنترل تردد.
تشخیص متن روی تصاویر (OCR)
- از فناوری OCR (تشخیص اپتیکال کاراکترها) استفاده میکنه.
- متنهای انگلیسی و چینی روی صفحه رو تشخیص میده.
- محتوای متن شناختهشده رو روی نمایشگر نشون میده.
- میتونی کاراکترها رو بهش آموزش بدی تا ردیابیشون کنه.
- تمام متنهای پیدا شده با یه کادر دورشون مشخص میشن.
- فقط متنی که به مرکز تصویر نزدیکتر باشه پردازش میشه.
- متن شناسایی شده گوشه بالا سمت چپ همون کادر نمایش داده میشه.
این ویژگی برای ساخت لیبلخوانها، رباتهای مترجم یا پروژههای اتوماسیون که با متن سروکار دارن خیلی جوابه.
ردیابی خطوط (مناسب رباتهای مسیریاب)
- خطوطی که کنتراست رنگی بالایی نسبت به پسزمینه دارن رو پیدا میکنه.
- مسیرهای مختلف رو با رنگهای متفاوت مشخص میکنه.
- سرعت پردازش لحظهای خیلی بالایی داره.
- بهترین گزینه برای رباتهای مسیریاب (Line Follower) و پروژههای ردیابی مسیره.
اگه میخوای یه ماشین خودران کوچیک یا ربات مسیریاب هوشمند بسازی، این ویژگی دقیقا همون چیزیه که لازم داری.
تشخیص احساسات چهره
- میتونه 7 تا احساس مختلف رو تشخیص بده:
- عصبانیت
- انزجار
- ترس
- شادی
- خنثی
- غم
- تعجب
- این احساسات به صورت پیشفرض تو کارخونه آموزش داده شدن.
- اصلا نیازی به یادگیری دستی نداره.
- احساس تشخیص داده شده مستقیما روی صفحه نمایش داده میشه.
برای رباتهای تعاملی یا سیستمهایی که قراره با توجه به حال و هوای کاربر واکنش نشون بدن، یه گزینه عالیه.
اسکن و تشخیص بارکدهای QR
- کدهای QR رو تشخیص میده و میخونه.
- اطلاعات داخلشون رو روی صفحه نشون میده.
- میتونه کدهای خاصی رو یاد بگیره و بشناسه.
- از ردیابی کدهای شناساییشده پشتیبانی میکنه.
- بهت اجازه میده برای هر کد یه اسم دلخواه تعریف کنی.
فوقالعاده برای ساخت سیستمهای ورود هوشمند، مدیریت انبار و پروژههای تعاملی.
بارکدخوان هوشمند
- بارکدهای خطی رو تو تصویر پیدا میکنه.
- اطلاعات کدگذاریشدهشون رو نمایش میده.
- میتونی بارکدهای خاصی رو بهش آموزش بدی تا بشناسهشون.
- از ردیابی بارکدها پشتیبانی میکنه.
- قابلیت نامگذاری دلخواه برای بارکدها داره.
با این ویژگی میتونی یه سیستم صندوق فروشگاهی، مدیریت موجودی یا انبارداری اتوماتیک خفن بسازی.
استریم ویدئو به صورت زنده (RTSP)
- تصاویر رو به صورت بیسیم با پروتکل RTSP استریم میکنه.
- میتونی خروجی دوربین رو روی موبایل، لپتاپ یا سیستم شخصی ببینی.
- با برنامههایی که از RTSP پشتیبانی میکنن (مثل VLC Player) کار میکنه.
- نتایج پردازش هوش مصنوعی رو همزمان روی دستگاههای دیگه هم میبینی.
این قابلیت برای مانیتورینگ از راه دور، دموهای کلاسی و پروژههایی که نیاز به مانیتور جداگانه دارن، خیلی به درد میخوره.
ماژول میکروسکوپ و بررسی دقیقتر اجسام
یه افزونه جذاب و خاص برای این ماژول طراحی شده که میتونه دوربینت رو به یه میکروسکوپ دیجیتال هوشمند تبدیل کنه.
- از یه لنز با فاصله کانونی 6 میلیمتری استفاده میکنه.
- بزرگنمایی 30 برابری داره.
- به سنسور 2 مگاپیکسلی GC2093 مجهز شده.
- میتونه جزئیاتی تا اندازه 3 میکرومتر رو به راحتی تشخیص بده.
این لنز فقط برای دیدن اجسام ریز نیست؛ بلکه اجازه میده با کمک هوش مصنوعی، ذرات میکروسکوپی رو تحلیل و شناسایی کنی. تو این حالت، دوربینت از یه سنسور بینایی ساده به یه سیستم میکروسکوپی مبتنی بر هوش مصنوعی ارتقا پیدا میکنه.
پایه میکروسکوپ پرینت سهبعدی
برای استفاده بهتر از حالت میکروسکوپی، یه پایه مخصوص طراحی کردم که میتونی با پرینتر سهبعدی بسازیش و دوربین رو روش سوار کنی.
- این پایه، دوربین رو به صورت عمودی و کاملا ثابت نگه میداره.
- فاصله کانونی رو دقیق حفظ میکنه تا تصویر تار نشه.
- برای مشاهدات آزمایشگاهی و بررسی دقیق قطعات ایدهآله.
از اونجایی که ماژول ما از نصب مدلهای کاستوم پشتیبانی میکنه، میتونی:
- مدل هوش مصنوعی تصویری اختصاصی خودت رو آموزش بدی.
- مستقیما روی دستگاه پیادهسازیش کنی.
- آنالیزهای میکروسکوپی مبتنی بر AI انجام بدی.
این ترکیب خفن، درهای جدیدی رو برای ساخت پروژههای متنوع برات باز میکنه:
- آزمایشهای هوشمند بیولوژی.
- کنترل کیفیت قطعات خیلی ریز به صورت اتوماتیک.
- پروژههای عملی و آموزشی STEM.
در واقع این پایه پرینتشده، دوربینت رو رسما به یه میکروسکوپ هوش مصنوعی تمامعیار تبدیل میکنه.
جمعبندی و ایدههای توسعه سیستم ردیاب
تو این آموزش از آیسیمدار یاد گرفتیم چطور یه ماژول هوش مصنوعی قدرتمند رو از یه دوربین ثابت به یه سیستم ردیاب تعاملی فیزیکی تبدیل کنیم. با ترکیب دو تا موتور و برد ESP32، یه مکانیزم متحرک نرم و دقیق ساختیم که نهتنها اجسام رو تشخیص میده، بلکه تو لحظه بهشون واکنش نشون میده و دنبالشون میکنه.
- دادههای تشخیصی هوش مصنوعی رو میخونه.
- زاویه موتورها رو تو لحظه تغییر میده.
- و سوژه رو همیشه تو مرکز کادر نگه میداره.
پروژهای که با یه ماژول ساده شروع شد، الان به یه پلتفرم کامل و هوشمند تبدیل شده. این پروژه به خوبی نشون میده که چطور هوش مصنوعی، کنترل حرکتی و میکروکنترلرها میتونن با هم ترکیب بشن تا فاصله بین دنیای دیجیتال و دنیای فیزیکی رو پر کنن.
حالا که پایه کار رو یاد گرفتی، میتونی از این مکانیزم برای ساخت سیستمهای امنیتی، رباتهای تعاملی، پایههای اتوماتیک تولید محتوا یا پروژههای پیشرفته دانشجویی استفاده کنی.
- سیستمهای نظارت هوشمند
- رباتیک تعاملی
- دوربینهای ردیاب اتوماتیک
- دموهای آموزشی مبتنی بر هوش مصنوعی
- پروژههای پیشرفته الکترونیک و تحقیقاتی
حالا تو دوربینی ساختی که فقط نمیبینه، بلکه میتونه واکنش نشون بده و حرکت کنه! دست به کار شو و این پروژه رو برای خودت بساز. حتما نظرت رو تو بخش کامنتها با ما در میون بذار و بگو دوست داری این سیستم ردیاب رو به چه وسیله دیگهای متصل کنی.
فایلهای پیوست
تو میتونی اولین سازنده باشی!
اگه پروژه رو ساختی به اشتراک بزار و اعتبار هدیه بگیر
این آموزش با استانداردهای اختصاصی آیسیمدار بازنویسی و بهینهسازی شده و تمامی حقوق انتشار آن متعلق به این مجموعه است و در صورت کپی یا بازنشر پیگرد قانونی خواهد داشت.








































گفتگوهای کاربران
هنوز نظری ثبت نشده؛ تو شروع کن!
هنوز نظری ثبت نشده؛ تو شروع کن!