در این آموزش، ما یک پروژه با استفاده از میکروکنترلر ESP32 و نوار LED WS2812 ایجاد خواهیم کرد که میتواند بر اساس تشخیص موانع، جهت خود را تغییر دهد. زمانی که نوار LED به جلو حرکت میکند، رنگهای تصادفی را نمایش خواهد داد و در صورت تشخیص یک مانع، به رنگ از پیش تعیین شدهای سوئیچ کرده و جهت خود را معکوس میکند. این پروژه تواناییهای ESP32 را در ترکیب با یک حساس(حس کننده) اجتناب از موانع فروسرخ به نمایش میگذارد.
خوشامدگویی نور جاری ESP32-31-main2
در طول این آموزش، ما اجزای سختافزاری لازم، دستورالعملهای سیمکشی و کدی که برای عملی کردن این پروژه نیاز است را پوشش میدهیم. برای توضیح بصریتر، حتماً ویدئوی پیوست شده در زیر را مشاهده کنید (در ویدئو در 00:00).
توضیح سختافزار
این پروژه به چندین مؤلفه نیاز دارد، از جمله میکروکنترلر ESP32، نوار LED WS2812 و حساس(حس کننده) جلوگیری از مانع مادون قرمز. ESP32 میکروکنترلر قدرتمندی است که دارای Wi-Fi و بلوتوث داخلی است و آن را برای برنامههای IoT ایدهآل میسازد. نوار LED WS2812 یک نوار LED RGB برنامهپذیر است که امکان کنترل جداگانه هر LED را فراهم میکند و به ما اجازه میدهد تا افکتهای نوری دینامیک ایجاد کنیم.
حساس(حس کننده) جلوگیری از موانع مادون قرمز با انتشار نور مادون قرمز و شناسایی انعکاسات از اشیای نزدیک کار میکند. هنگامی که مانع شناسایی میشود، حساس(حس کننده) وضعیت خروجی خود را تغییر میدهد و به ESP32 اجازه میدهد تا بهطور مناسب با تغییر رفتار نوار LED واکنش نشان دهد.
جزئیات برگه مشخصات
تولیدکننده
WS2812B
شماره قطعه
WS2812B
ولتاژ منطق/ورودی-خروجی
۳.۳ ولت (معمولاً)
ولتاژ تغذیه
۵ ولت (معمولی)
جریان خروجی (به ازای هر کانال)
۲۰ میلیآمپر (حداکثر)
جریان اوج (به ازای هر کانال)
۶۰ میلی آمپر (حداکثر)
راهنمای فرکانس PWM
۴۰۰ هرتز (معمولی)
آستانههای منطق ورودی
۰.۳ ولت (بالا)، ۰.۱ ولت (پایین)
افت ولتاژ / RDS(on)/ اشباع
۱.۲ ولت (حداکثر)
محدودیتهای حرارتی
۸۵ درجه سانتیگراد (حداکثر)
بسته
نصب روی سطح
یادداشتها / واریانتها
در طولها و چگالیهای مختلف در دسترس است
اطمینان حاصل کنید که نوار LED با ۵ ولت تغذیه میشود تا عملکرد بهینه داشته باشد.
از یک خازن مناسب برای پایه داده استفاده کنید تا از مشکلات یکپارچگی سیگنال جلوگیری شود.
از محدودیتهای جریان خروجی احتیاط کنید تا از گرم شدن بیش از حد جلوگیری شود.
به درستی منبع تغذیه را جدا کنید تا از نوسانات ولتاژ جلوگیری شود.
حساس(حس کننده) مادون قرمز را با دقت تنظیم کنید تا به دامنه تشخیص مورد نظر دست یابید.
دستورالعملهای سیمکشی
ESP32-31-flowing-light-wiring
برای اتصال اجزا، با حساس(حس کننده) جلوگیری از موانع مادون قرمز شروع کنید. پایه خروجی حساس(حس کننده) را به پایه متصل کنید.25بر روی ESP32. پایه وسط باید به زمین متصل شود و پایه آخر (VCC) باید به یک منبع تغذیه ۳.۳ ولت متصل شود.
سیسخت افزار ESP32-31-نمودار نور در حال جریان
سپس، برای نوار LED WS2812، پایه داده (معمولاً سیم زرد) را به پایه وصل کنید14بر روی ESP32. سیم قرمز باید به یک منبع تغذیه ۵ ولت متصل شود و سیم سیاه باید به زمین متصل شود. مطمئن شوید که همه اتصالات به درستی محکم شدهاند تا از هر گونه سیمکشی شل جلوگیری شود.
مثالهای شِفر (کود) و راهنمایی
این یک مرور کلی از کدی است که این پروژه را اجرا میکند. ابتدا، تعداد پیکسلها در نوار LED و پایه دادهای که برای ارتباط استفاده میشود را تعریف میکنیم:
#define NUM_PIXELS 8
#define DATA_PIN 14
درsetup()تابع، ما نوار LED و حساس(حس کننده) مادون قرمز را راهاندازی میکنیم:
در loop()در این عملکرد، ما بررسی میکنیم که آیا مانعی شناسایی شده و بر اساس آن نوار LED را کنترل میکنیم:
if (avoid_value) {
for (int i = 0; i < NUM_PIXELS; i++) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
} else {
for (int i = NUM_PIXELS - 1; i >= 0; i--) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
}
این شِفر (کود) به نوار ال ای دی اجازه میدهد رنگهای تصادفی را در حین حرکت به جلو نمایش دهد و هنگام تشخیص مانع، جهت خود را تغییر دهد. شِفر (کود) کامل زیر مقاله بارگذاری شده است، بنابراین حتماً آن را بررسی کنید تا تمام جزئیات را ببینید.
نمایشگاه / چه انتظاری باید داشت
زمانی که راهاندازی کامل شد و شِفر (کود) بارگذاری شد، نوار LED باید شروع به نمایش رنگهای تصادفی در حال حرکت به جلو کند. زمانی که یک مانع شناسایی شود، نوار به رنگ از قبل تعیینشدهای (مانند سبز) تغییر خواهد کرد و به سمت معکوس حرکت میکند. اگر مانع حذف شود، نوار دوباره به حرکت به جلو با رنگهای تصادفی ادامه خواهد داد. توجه داشته باشید که دامنه تشخیص حساس(حس کننده) مادون قرمز ممکن است بسته به منبع تغذیه استفاده شده متفاوت باشد (در ویدیو در 10:30).
برچسبهای ویدیویی
۰۰:۰۰ شروع
:14 مقدمهای بر پروژه
۴:۵۸ سیمکشی توضیح داده شده
7:41 تنظیم حساس(حس کننده) جلوگیری از موانع
10:03 توضیحات شِفر (کود) آردوینو
انتخاب برد ESP32 و پورت COM در Arduino IDE در ساعت ۱۵:۴۰