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

4 Ch DMX باهتة: 6 خطوات
4 Ch DMX باهتة: 6 خطوات

فيديو: 4 Ch DMX باهتة: 6 خطوات

فيديو: 4 Ch DMX باهتة: 6 خطوات
فيديو: Cameo EVOS® W3 Compact LED Wash-Moving Head Unboxing!.. MatrixPRO Tech Channel. 2024, يوليو
Anonim
4 Ch DMX باهتة
4 Ch DMX باهتة

المفهوم هو تصميم وإنشاء باهتة محمول.

متطلبات:

  • DMX512 قابل للتحكم
  • 4 قنوات
  • محمول
  • سهل الاستخدام

لقد اقترحت هذه الفكرة على أستاذي بجامعة WSU لأنني أردت الجمع بين شغفي بالمسرح وأجهزة الكمبيوتر. كان هذا المشروع يشبه إلى حد ما مشروعي في قسم المسرح. إذا كان لديك أي تعليقات أو أسئلة ، فأنا أحب المساعدة.

يمكن أن يشمل التطوير المستقبلي المزيد من القنوات ، وموصل DMX ذي 5 دبابيس ، وممر DMX ، و 8 مفاتيح غمس لتغيير القناة ، ولوحة الدوائر المطبوعة.

لقد قمت بترحيل هذا المشروع من https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html لأنه لا يزال شائعًا ، على ما أعتقد. كما فقدت ملف بذور iWeb لذا لا يمكنني تحديثه بسهولة بعد الآن. سيكون من الجيد السماح للأشخاص بمشاركة أسئلتهم حول المشروع مع بعضهم البعض.

الخطوة 1: تجميع الأجهزة

جمع الأجهزة
جمع الأجهزة

الأجهزة المستخدمة: تم طلب معظمها من Tayda Electronics. أنا أحبهم أفضل من DigiKey بسبب التحديد الأصغر والأسهل في الفهم.

  1. ATMEGA328 ، وحدة تحكم صغيرة
  2. MOC3020 ، مقارن بصري TRIAC. لا ZeroCross.
  3. MAX458 أو SN75176BP ، جهاز استقبال DMX
  4. ISP814 ، AC Optocoupler
  5. 7805 ، منظم 5 فولت
  6. BTA24-600 ، 600 فولت 25 أمبير
  7. 20 ميجا هرتز كريستال
  8. 9V امدادات الطاقة

بعض العقبات والدروس المستفادة على طول الطريق

  • إذا لم تكن خبيرًا في التسجيل ، فالتزم بـ ATMEGA328P
  • مقارنات بصرية خاطئة. أنت لا تريد زيرو كروس
  • القنوات العالية كانت غير مستقرة. أدى التبديل من 16 ميجا هرتز إلى 20 ميجا هرتز إلى حل هذه المشكلة
  • تعذر الحصول على ضوء حالة DMX لأن مكالمة المقاطعة يجب أن تكون سريعة جدًا
  • يجب أن تكون طاقة التيار المستمر مستقرة للغاية ، وأي تموج سيؤدي إلى جعل إشارة DMX صاخبة للغاية

جاء تصميم TRIAC من MRedmon ، شكرًا لك.

الخطوة 2: تصميم الدوائر

تصميم الدوائر
تصميم الدوائر

لقد استخدمت Fritzing 7.7 على Mac لتصميم دائري.

يتم استخدام MAX485 في الجزء العلوي لتحويل إشارة DMX إلى شيء يمكن أن يقرأه Arduino.

يتم استخدام 4N35 الموجود على اليسار لاكتشاف التقاطع الصفري لإشارة التيار المتردد ، لذا سيعرف Arduino في أي وقت يتم فيه تعتيم خرج الموجة الجيبية. المزيد حول كيفية تفاعل الأجهزة والبرامج في قسم البرامج.

لقد تلقيت السؤال هل سيعمل هذا المشروع في أوروبا مع 230 فولت و 50 هرتز؟ أنا لا أعيش في أوروبا ، ولا أسافر هناك كثيرًا لأتمكن من اختبار هذا التصميم. يجب أن يعمل ، سيكون عليك فقط تعديل خط توقيت السطوع للشفرة لتأخير وقت التردد المختلف.

الخطوة 3: تصميم دائرة كوفاري

تصميم دوائر كوفاري
تصميم دوائر كوفاري
تصميم دوائر كوفاري
تصميم دوائر كوفاري

من خلال عملية تشغيل موقع الويب الخاص بي ، تمكنت من إجراء بعض المحادثات عبر البريد الإلكتروني. كان أحدهما مع Kovari Andrei الذي صمم دائرة بناءً على هذا المشروع وأراد مشاركة تصميمه. أنا لست مصمم لوحات دوائر كهربائية ولكنه مشروع نسر. اسمحوا لي أن أعرف كيف يعمل من أجلك إذا كنت تستخدمه.

الخطوة 4: تصميم دائرة جياكومو

تصميم دوائر جياكومو
تصميم دوائر جياكومو

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

قام Giacomo بتعديل الدائرة بحيث لم يكن هناك حاجة إلى محول مركزي. PCB هو جانب واحد ويمكن أن يكون حلاً ميسور التكلفة لمن لا يستطيع جعل الوجهين في المنزل (صعب بعض الشيء).

الخطوة 5: البرمجيات

برمجة
برمجة

أنا مهندس برمجيات عن طريق التجارة ، لذا فإن هذا الجزء هو الأكثر تفصيلاً.

الملخص: عندما يقوم Arduino بالتمهيد لأول مرة ، يتم استدعاء طريقة الإعداد (). هناك قمت بإعداد عدد قليل من المتغيرات ومواقع الإخراج لاستخدامها لاحقًا. يتم استدعاء / تشغيل zeroCrossInterupt () في كل مرة ينتقل فيها التيار المتردد من الجهد الموجب إلى الجهد السالب. سيقوم بتعيين علامة zeroCross لكل قناة ويبدأ الموقت. تسمى طريقة الحلقة () باستمرار إلى الأبد. لتشغيل الإخراج ، يجب تشغيل TRIAC لمدة 10 ميكروثانية فقط. إذا حان الوقت لبدء تشغيل TRIAC وحدث الصفر كروس ، فسيتم تشغيل الإخراج حتى نهاية مرحلة التيار المتردد.

كانت هناك بعض الأمثلة عبر الإنترنت التي استخدمتها لبدء هذا المشروع. الشيء الرئيسي الذي لم أجده هو وجود العديد من مخرجات TRIAC. استخدم آخرون وظيفة التأخير لـ PWM الإخراج ، لكن هذا لن ينجح في حالتي لأن ATMEGA يجب أن يستمع إلى DMX طوال الوقت. لقد قمت بحل هذا عن طريق نبض TRIAC عند عدة مللي ثانية بعد التقاطع الصفري. من خلال نبض TRIAC بالقرب من الصفر ، يتم إخراج المزيد من موجة الخطيئة.

هذا ما تبدو عليه نصف موجة الخطيئة 120VAC على الذبذبات أعلاه.

يتم توصيل ISP814 بالمقاطعة 1. لذلك عندما يستقبل إشارة بأن انتقال التيار المتردد من الموجب إلى السالب أو العكس ، فإنه يضبط الصفر المتقاطع لكل قناة على القيمة الحقيقية ويبدأ ساعة الإيقاف.

في طريقة الحلقة () ، تتحقق من كل قناة إذا كانت قيمة zeroCross صحيحة وقد مر وقت تنشيطها ، فسوف تنبض TRIAC لمدة 10 ميكروثانية. هذا يكفي لتشغيل TRIAC. بمجرد تشغيل TRIAC ، سيبقى قيد التشغيل حتى الصفر. سيومض الضوء عندما يكون DMX حوالي 3 ٪ لذا أضفت الاقتطاع هناك لمنعه. وقد تسبب هذا في بطء Arduino للغاية ، وسيؤدي النبض في بعض الأحيان إلى موجة الخطيئة التالية بدلاً من آخر 4٪ من الموجة.

أيضًا في الحلقة () قمت بتعيين قيمة PWM لمصابيح LED الخاصة بالحالة. يمكن لمصابيح LED هذه استخدام PWM الداخلي الذي تم إنشاؤه بواسطة Arduino لأنه لا داعي للقلق بشأن الصفر عبر التيار المتردد. بمجرد ضبط PWM ، سيستمر Arduino في هذا السطوع حتى يتم إخباره بحكمة أخرى.

كما هو مذكور في التعليقات العليا من أجل استخدام مقاطعة DMX على الدبوس 2 وتشغيلها بسرعة 20 ميجاهرتز ، سيتعين عليك تحرير بعض ملفات تطبيق Arduino. في HardwareSerial.cpp ، يجب حذف جزء من التعليمات البرمجية ، وهذا يسمح لنا بكتابة مكالمة المقاطعة الخاصة بنا. توجد طريقة ISR هذه في الجزء السفلي من الكود للتعامل مع مقاطعة DMX. إذا كنت ستستخدم Arduino كمبرمج ISP ، فتأكد من إعادة تغييراتك إلى HardwareSerial.cpp وإلا فلن يمكن الوصول إلى ATMEGA328 على لوحة الخبز. التغيير الثاني أسهل. يجب تغيير ملف board.txt إلى سرعة الساعة 20 ميجا هرتز الجديدة.

السطوع [ch] = الخريطة (DmxRxField [ch] ، 0 ، 265 ، 8000 ، 0) ؛

تعيين السطوع إلى 8000 لأن هذا هو مقدار ميكروثانية من 1/2 موجة جيبية تيار متردد عند 60 هرتز. لذلك عند السطوع الكامل 256 DMX ، سيترك البرنامج 1/2 موجة جيبية AC لمدة 8000us. لقد توصلت إلى 8000 عن طريق التخمين والتحقق. القيام بحساب 1000000us / 60hz / 2 = 8333 لذلك قد يكون رقمًا أفضل ، ولكن الحصول على 333us الإضافي يسمح بفتح TRIAC وأي توتر في البرنامج ربما يكون فكرة جيدة.

في Arduino 1.5.3 قاموا بنقل موقع ملف HardwareSerial.cpp. إنه الآن /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp ستحتاج إلى التعليق على هذا بالكامل إذا كانت الكتلة تبدأ بالسطر 39: #if تعريف (USART_RX_vect)

وإلا فسوف ينتهي بك الأمر مع هذا الخطأ: core / core.a (HardwareSerial0.cpp.o): في الوظيفة "_vector_18":

الخطوة 6: تغليفها

تغليفها
تغليفها
تغليفها
تغليفها
تغليفها
تغليفها

التقطت صندوق المشروع الرمادي في Menards في قسمهم الكهربائي. لقد استخدمت منشارًا تردديًا لقطع فتحات التوصيل الكهربائي. حصلت العلبة على مشبك مسرح C مثبت على الجزء العلوي لأغراض التعليق. مصابيح الحالة لكل إدخال وإخراج للمساعدة في تشخيص ما إذا كانت هناك مشكلة في أي وقت. تم استخدام صانع الملصقات لشرح المنافذ المختلفة على الجهاز. تمثل الأرقام الموجودة بجانب كل قابس رقم قناة DMX. لقد ألصقت لوحة الدوائر والمحول ببعض الغراء الساخن. مصابيح LED عالقة في مكانها مع حوامل LED.

موصى به: