في هذا الدرس، سنقوم بإنشاء مشروع باستخدام متحكم ESP32 وشرائط LED WS2812 التي يمكن أن تغيّر اتجاهها بناءً على الكشف عن العقبات. عندما تتحرك شرائط LED للأمام، ستعرض ألواناً عشوائية، وعند اكتشاف عقبة، ستتحول إلى لون محدد مسبقاً وتنعكس في الاتجاه. يعرض هذا المشروع قدرات ESP32 بالتعاون مع جهاز استشعار لتجنب العقبات بالأشعة تحت الحمراء.
ESP32-31-ضوء-متدفق-رئيسي2
خلال هذا البرنامج التعليمي، سنغطي مكونات الأجهزة اللازمة، وتعليمات التوصيل، والشفرة المطلوبة لإحياء هذا المشروع. للحصول على شرح أكثر بصريًا، تأكد من مراجعة الفيديو المرتبط أدناه (في الفيديو عند :00).
شرح الأجهزة
يتطلب هذا المشروع عدة مكونات، بما في ذلك وحدة التحكم الدقيقة ESP32، وشريط LED WS2812، ومستشعر تجنب العقبات بالأشعة تحت الحمراء. تعد ESP32 وحدة تحكم دقيقة قوية تتميز باتصال Wi-Fi وBluetooth مدمجين، مما يجعلها مثالية لتطبيقات إنترنت الأشياء. شريط LED WS2812 هو شريط LED RGB قابل للبرمجة يتيح التحكم الفردي في كل LED، مما يمكننا من إنشاء تأثيرات إضاءة ديناميكية.
يعمل مستشعر تجنب العقبات بالأشعة تحت الحمراء عن طريق إصدار ضوء الأشعة تحت الحمراء واكتشاف الانعكاسات من الأجسام القريبة. عندما يتم اكتشاف عقبة، يغير المستشعر حالة إخراجه، مما يسمح لوحدة ESP32 بالاستجابة وفقًا لذلك عن طريق تغيير سلوك شريط LED.
تفاصيل ورقة البيانات
شركة تصنيع
WS2812B
رقم الجزء
WS2812B
جهد المنطق/المدخلات والخرج
٣.٣ فولت (معتاد)
جهد الإمداد
5 فولت (نموذجي)
التيار الناتج (لكل قناة)
20 مللي أمبير (أقصى)
التيار الذروي (لكل قناة)
60 مللي أمبير (كحد أقصى)
توجيه تردد PWM
٤٠٠ هرتز (تقريباً)
عتبات منطق الإدخال
0.3 فولت (عالي)، 0.1 فولت (منخفض)
فقدان الجهد / Rدي إس (تشغيل)/ التشبع
1.2 فولت (كحد أقصى)
الحدود الحرارية
85 °م (أقصى)
حزمة
تركيب سطحي
ملاحظات / متغيرات
متوفر بأطوال وكثافات متنوعة
تأكد من أن شريط LED يعمل بجهد 5 فولت لتحقيق الأداء الأمثل.
استخدم مقاومة مناسبة لدبوس البيانات لمنع مشاكل تكامل الإشارة.
كن حذرًا من قيود تيار الخرج لتفادي ارتفاع درجة الحرارة.
يفصل بشكل صحيح مصدر الطاقة لمنع ارتفاعات الجهد.
قم بتعديل حساس الأشعة تحت الحمراء بعناية لتحقيق مدى الكشف المطلوب.
تعليمات التوصيل
ESP32-31-flowing-light-wiring
لتوصيل المكونات، ابدأ بمستشعر تجنب العقبات بالأشعة تحت الحمراء. قم بتوصيل دبوس الخرج من المستشعر بالدبوس25على ESP32. يجب أن يكون الدبوس الأوسط متصلاً بالأرض، ويجب أن يكون الدبوس الأخير (VCC) متصلاً بمصدر طاقة 3.3 فولت.
مخطط إضاءة متدفق ESP32-31
بعد ذلك، بالنسبة لشريط LED WS2812، قم بتوصيل دبوس البيانات (عادةً السلك الأصفر) إلى الدبوس14على ESP32. يجب توصيل السلك الأحمر بمصدر طاقة 5 فولت، ويجب توصيل السلك الأسود بالأرض. تأكد من تأمين جميع الاتصالات بشكل صحيح لمنع أي أسلاك غير محكمة.
أمثلة الشيفرة والدليل
إليك نظرة عامة موجزة عن الكود الذي يُشغل هذا المشروع. أولاً، نحدد عدد البيكسلات في شريط 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 بعرض ألوان عشوائية عند التحرك للأمام وتغيير الاتجاه عند اكتشاف عقبة. يتم تحميل الكود الكامل أسفل المقال، لذلك تأكد من الاطلاع عليه للحصول على جميع التفاصيل.
عرض / ماذا تتوقع
عند الانتهاء من الإعداد ورفع الشيفرة، يجب أن تبدأ شريط LED بعرض ألوان عشوائية أثناء التحرك للأمام. عند اكتشاف عقبة، سيتحول الشريط إلى لون محدد مسبقاً (مثل الأخضر) ويعكس اتجاهه. إذا تمت إزالة العقبة، سيستأنف الشريط التحرك للأمام بألوان عشوائية. يجب أن تكون على دراية بأن نطاق الكشف لمستشعر الأشعة تحت الحمراء قد يختلف بناءً على مصدر الطاقة المستخدم (في الفيديو عند 10:30).