جدول المحتويات:

LightMeUp! التحكم في شريط LED عبر الأنظمة الأساسية في الوقت الفعلي: 5 خطوات (بالصور)
LightMeUp! التحكم في شريط LED عبر الأنظمة الأساسية في الوقت الفعلي: 5 خطوات (بالصور)

فيديو: LightMeUp! التحكم في شريط LED عبر الأنظمة الأساسية في الوقت الفعلي: 5 خطوات (بالصور)

فيديو: LightMeUp! التحكم في شريط LED عبر الأنظمة الأساسية في الوقت الفعلي: 5 خطوات (بالصور)
فيديو: How to Self Tape Audition 2024, يوليو
Anonim
LightMeUp! التحكم في شريط LED عبر المنصات في الوقت الحقيقي
LightMeUp! التحكم في شريط LED عبر المنصات في الوقت الحقيقي
LightMeUp! التحكم في شريط LED عبر المنصات في الوقت الحقيقي
LightMeUp! التحكم في شريط LED عبر المنصات في الوقت الحقيقي
LightMeUp! التحكم في شريط LED عبر المنصات في الوقت الحقيقي
LightMeUp! التحكم في شريط LED عبر المنصات في الوقت الحقيقي

LightMeUp! هو نظام اخترعته للتحكم في شريط RGB LED في الوقت الفعلي ، مع الحفاظ على التكلفة المنخفضة والأداء العالي.

تمت كتابة الخادم في Node.js ومن ثم يمكن استخدامه عبر الأنظمة الأساسية.

في المثال الخاص بي ، أستخدم Raspberry Pi 3B للاستخدام طويل المدى ، ولكن جهاز الكمبيوتر الشخصي الذي يعمل بنظام Windows من أجل العرض التوضيحي وتصحيح الأخطاء.

يتم التحكم في شريط 4pin بواسطة لوحة من نوع Arduino Nano ، والتي تنفذ أوامر معطاة تسلسليًا لإرسال إشارات PWM إلى ثلاثة ترانزستورات تقوم بتحويل + 12VDC إلى دبوس اللون المقابل للشريط.

LightMeUp! يتحقق النظام أيضًا من درجة حرارته الخاصة ، بمجرد أن يزيد عن 60 درجة مئوية (140 درجة فهرنهايت) ، فإنه يقوم بتشغيل مروحتين للكمبيوتر بقدرة 12 فولت تيار مباشر مدمجة في الغلاف ، من أجل تبريد نفسه لتحسين عمر الدائرة.

ميزة أخرى لبرنامج LightMeUp! هو إلقاء الضوء على زجاجة بومباي-سافير جين ، ولكن هذا ليس محور هذا Instructable.

استمتع بالقراءة:)

اللوازم

  • Arduino Nano (أو أي متحكم ATmega328 / عالي المستوى آخر)
  • Raspberry Pi 3 Model B مع تثبيت Node.js (أو أي كمبيوتر آخر)
  • 12V RGB 4-Pin LED قطاع
  • امدادات الطاقة 12V 3A
  • كبلات توصيل (ذكر - ذكر إذا كنت تستخدم اللوح ، بالطبع)
  • اللوح (اختياري)
  • 2 مراوح كمبيوتر تيار مستمر 12 فولت (اختياري)
  • 3x TIP120 Darlington Transistor مع غرفة التبريد (4 إذا كنت تريد تضمين مراوح التبريد)
  • 2 مؤشرات LED للحالة باللونين الأحمر والأخضر (اختياري)
  • 6 ، 7K NTC المقاوم القائم على درجة الحرارة + 6 ، 7K المقاوم (اختياري)
  • كابل بيانات USB-Mini إلى USB 2.0 (من أجل Raspberry Pi للتواصل مع Arduino)
  • USB-Hub خارجي يعمل بالطاقة (اختياري ، لـ Raspberry Pi فقط)

الخطوة الأولى: فهم النظام

افهم النظام
افهم النظام

LightMeUp! يعتمد على دوائر إلكترونية بسيطة للغاية.

لدينا نوع من الكمبيوتر (في هذه الحالة Raspberry Pi) الذي يتصل بشكل متسلسل مع لوحة التحكم الدقيقة الخاصة بنا. تقوم هذه اللوحة بعد ذلك بتنفيذ أوامر تسلسلية محددة مثل "RGB (255 ، 255 ، 255)" والتي من شأنها تحويل شريط LED إلى الأبيض.

بمجرد حصولنا على القيم الثلاث الخاصة بنا للأحمر والأخضر والأزرق الضرورية لشريط LED رباعي الدبابيس ، نقوم بتنفيذ analogWrite (دبوس ، القيمة) من أجل تزويد ترانزستور TIP120 بإشارة PWM.

تسمح إشارة PWM هذه للترانزستور بتبديل دبوس اللون المقابل الذي يتصل به المجمع على الأرض ، إلى درجة معينة أو تشغيل / إيقاف تشغيل بالكامل. نعم ، الكثير من "to" s:)

من خلال مزج مخرجات الترانزستورات الثلاثة مع دبابيس ألوان شرائط LED ، يمكننا بشكل أساسي إنشاء أي لون نريده!

الآن مع هذا الفهم ، يمكننا مهاجمة التحدي الأكبر لهذا المشروع ، خادم الويب واتصاله التسلسلي بـ Arduino.

الخطوة 2: كتابة WebSocketServer

كتابة WebSocketServer
كتابة WebSocketServer

الآن ، يتعين علينا إنشاء نوع معين من خادم الويب ، والذي يسمح لنا بنقل البيانات ذهابًا وإيابًا دون التحديث مرة واحدة من أجل تحقيق التحكم في شريط LED في الوقت الفعلي.

يرجى ملاحظة ، أن الاتصال في الوقت الفعلي بالطبع مستحيل ، سيكون هناك دائمًا تأخير على الأقل بضع ميلي ثانية ، ولكن بالنسبة للعين البشرية ، يعد الأمر كبيرًا مثل الوقت الفعلي.

يمكن تحقيق ذلك بسهولة باستخدام مكتبة socket.io إذا كنت تستخدم Node.js كما فعلت أنا. ومع ذلك ، يمكنك دائمًا الالتزام بلغة البرمجة المفضلة لديك بالطبع.

سنتعامل مع اتصال websocket الذي يسمح لنا بنقل بيانات الإدخال مثل اللون الذي تريد ضبط شريط LED عليه ، أو بيانات الحالة مثل "LED ON" ثنائي الاتجاه دون تحديث.

ميزة أخرى مهمة جدًا يجب أن يتمتع بها الخادم ولكنها لا تحتاج إليها هي تسجيل الدخول البسيط. لقد أسست تسجيل الدخول الخاص بي من حقل بسيط لاسم المستخدم وكلمة المرور. يتم بعد ذلك نشر هذه الأجزاء من المعلومات في مسار / تسجيل الدخول للخادم ، والذي يقارن بعد ذلك اسم المستخدم بقائمة المستخدمين (ملف.txt) وكلمة المرور المقابلة له في شكله المشفر SHA256. أنت لا تريد أن يعبث جيرانك بشريط LED الخاص بك بينما تستمتع بمشروبك المفضل على مقعدك الأكثر راحة ، أليس كذلك؟

الآن يأتي قلب الخادم ، الاتصال التسلسلي.

يجب أن يكون الخادم الخاص بك قادرًا على الاتصال بشكل تسلسلي - في Node.js يمكن تحقيق ذلك عن طريق فتح منفذ باستخدام مكتبة "serialport". ولكن حدد أولاً اسم منفذ اردوينو على جهاز الكمبيوتر الذي يستضيف الخادم. اعتمادًا على نظام التشغيل الخاص بك ، سيكون للمنافذ أسماء مختلفة ، على سبيل المثال. في نظام التشغيل Windows ، يتم تسمية هذه المنافذ باسم منافذ "COMx" ، بينما يتم تسميتها في نظام التشغيل Linux "/ dev / ttyUSBx" ، حيث يمثل x رقم منفذ USB.

الخطوة 3: إنشاء بروتوكول للأوامر التسلسلية

إنشاء بروتوكول للأوامر التسلسلية
إنشاء بروتوكول للأوامر التسلسلية

في الصورة أعلاه ، ترى رمز Arduino IDE الفعلي المسؤول عن التحكم في RGB. الهدف من هذه الخطوة هو جعل الخادم المكتوب ذاتيًا ولوحة Arduino يتحدثان مع بعضهما البعض بنجاح.

بمجرد فتح المنفذ التسلسلي الخاص بك بنجاح ، يجب أن تكون قادرًا على إرسال أوامر إلى اللوحة التي تعتني برغباتك. على سبيل المثال ، إذا رسمنا إصبعًا فوق منتقي الألوان على صفحة ويب HTML ، فيجب إرسال رمز RGB إلى الخادم الذي يرسله بعد ذلك إلى Arduino حتى يقوم بمعالجة مجموعة القيم.

لقد استخدمت jscolor ، ولديهم تنفيذ رائع لعنصر انتقاء الألوان عالي الجودة ، والذي يمتلك حدثًا يسمى "onFineChange" والذي يتيح معالجة البيانات من منتقي الألوان بمجرد تغيير قيمها.

موصى به: