RasPi Flowing LEDs باستخدام Node.js
يعتبر Raspberry Pi منصة شائعة بين المطورين والهواة بسبب قدرتها على التحكم بالأجهزة الإلكترونية وبناء المشاريع الإبداعية. واحدة من المشاريع المثيرة للاهتمام التي يمكن تنفيذها باستخدام Raspberry Pi هي “Flowing LEDs”، حيث يمكن التحكم في مصابيح LED لتضيء بشكل متسلسل أو بتأثيرات مختلفة. في هذا المقال، سنستعرض كيفية إنشاء تأثير Flowing LEDs باستخدام Node.js.
إعداد البيئة لتشغيل Flowing LEDs
قبل البدء في برمجة Flowing LEDs، يجب توفير بعض المتطلبات الأساسية. أولاً، يجب أن يكون لديك Raspberry Pi مهيأ ومثبت عليه Node.js. كما ستحتاج إلى شريط LED متوافق مع Raspberry Pi ومكتبة للتحكم في الـ LEDs مثل مكتبة “rpi-ws281x-native”. يمكنك تثبيت هذه المكتبة باستخدام مدير الحزم npm:
npm install rpi-ws281x-native
بعد تثبيت المكتبة، تأكد من توصيل شريط LED بمنفذ GPIO الصحيح على Raspberry Pi. عادةً ما يتم توصيل شريط LED بالمنفذ GPIO18 بشكل افتراضي.
إنشاء تأثير Flowing LEDs باستخدام Node.js
الآن بعد أن أعددنا البيئة، يمكننا البدء في كتابة الكود اللازم لإنشاء تأثير Flowing LEDs. سنقوم بتعريف عدد الـ LEDs وألوانهم وسرعة الإضاءة في الكود. فيما يلي مثال بسيط لإنشاء [شركة برمجة مصرية] تأثير Flowing:
const ws281x = require('rpi-ws281x-native');
const NUM_LEDS = 16;
const pixelData = new Uint32Array(NUM_LEDS);
ws281x.init(NUM_LEDS);
let offset = 0;
setInterval(() => {
for (let i = 0; i < NUM_LEDS; i++) {
pixelData[i] = i === offset ? 0xFF0000 : 0x000000; // اللون الأحمر
}
offset = (offset + 1) % NUM_LEDS;
ws281x.render(pixelData);
}, 100);
process.on('SIGINT', () => {
ws281x.reset();
process.exit();
});
في هذا المثال، نقوم بتعريف عدد الـ LEDs إلى 16 وإعداد مصفوفة لتخزين قيم الألوان لكل LED. ثم نقوم بتهيئة المكتبة وتحديد تأثير بسيط حيث يضيء كل LED باللون الأحمر بشكل متسلسل. نستخدم دالة `setInterval` لتحديث الإضاءة كل 100 مللي ثانية.
تخصيص تأثير Flowing LEDs
يمكنك تخصيص تأثير Flowing LEDs بشكل أكبر عن طريق تغيير الألوان والسرعة أو إضافة تأثيرات جديدة. على سبيل المثال، يمكنك تغيير اللون إلى الأزرق باستخدام الكود `0x0000FF` أو زيادة سرعة الإضاءة بتقليل الوقت في `setInterval`. يمكنك أيضًا تجربة تأثيرات مثل الإضاءة المتدرجة [شركة برمجة مصرية] أو العشوائية بإضافة بعض المنطق البرمجي.
في النهاية، يوفر Raspberry Pi وNode.js بيئة قوية ومرنة لإنشاء مشاريع مبتكرة مثل Flowing LEDs. يمكنك توسيع هذا المشروع ليشمل تأثيرات أكثر تعقيدًا واستخدامه في تطبيقات متعددة بدءًا من الزخرفة وصولاً إلى الإشارات التفاعلية.
