সুচিপত্র:

4 Ch DMX Dimmer: 6 ধাপ
4 Ch DMX Dimmer: 6 ধাপ

ভিডিও: 4 Ch DMX Dimmer: 6 ধাপ

ভিডিও: 4 Ch DMX Dimmer: 6 ধাপ
ভিডিও: pknight dimmer pack 4ch tutorial 2024, নভেম্বর
Anonim
4 Ch DMX Dimmer
4 Ch DMX Dimmer

ধারণাটি একটি বহনযোগ্য ডিমার ডিজাইন এবং তৈরি করা।

প্রয়োজনীয়তা:

  • DMX512 নিয়ন্ত্রণযোগ্য
  • 4 টি চ্যানেল
  • সুবহ
  • ব্যবহার করা সহজ

আমি WSU- এ আমার অধ্যাপকের কাছে এই ধারণাটি প্রস্তাব করেছি কারণ আমি থিয়েটার এবং কম্পিউটারের প্রতি আমার আবেগকে একত্রিত করতে চেয়েছিলাম। এই প্রকল্পটি থিয়েটার বিভাগে আমার সিনিয়র প্রজেক্টের মতো কাজ করেছে। যদি আপনার কোন মন্তব্য বা প্রশ্ন থাকে, আমি সাহায্য করতে চাই।

ভবিষ্যতের উন্নয়নে আরো চ্যানেল, 5 পিন DMX সংযোগকারী, DMX পাসথ্রু, চ্যানেল পরিবর্তন করার জন্য 8 ডিপ সুইচ, মুদ্রিত সার্কিট বোর্ড অন্তর্ভুক্ত থাকতে পারে।

আমি এই প্রকল্পটি https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html থেকে স্থানান্তরিত করেছি কারণ এটি এখনও জনপ্রিয়, আমার ধারণা। এছাড়াও আমি আমার iWeb বীজ ফাইল হারিয়েছি তাই আমি সহজেই এটি আপডেট করতে পারছি না। মানুষ একে অপরের সাথে প্রকল্পে তাদের প্রশ্নগুলি ভাগ করার অনুমতি দিলে ভাল হবে।

ধাপ 1: হার্ডওয়্যার সংগ্রহ করা

হার্ডওয়্যার সংগ্রহ করা
হার্ডওয়্যার সংগ্রহ করা

ব্যবহৃত হার্ডওয়্যার: এর বেশিরভাগ অর্ডার করা হয়েছিল তাইদা ইলেকট্রনিক্স থেকে। আমি তাদের DigiKey এর চেয়ে ভাল পছন্দ করি কারণ নির্বাচন ছোট এবং সহজ বোঝার জন্য।

  1. ATMEGA328, মাইক্রো-কন্ট্রোলার
  2. MOC3020, TRIAC Optocoupler। জিরোক্রস নয়।
  3. MAX458 বা SN75176BP, DMX রিসিভার
  4. ISP814, AC Optocoupler
  5. 7805, 5v রেগুলেটর
  6. BTA24-600, 600V 25A TRIAC
  7. 20MHz ক্রিস্টাল
  8. 9V পাওয়ার সাপ্লাই

চলার পথে কয়েকটি বাধা এবং পাঠ শিখেছে

  • আপনি যদি রেজিস্টার বিশেষজ্ঞ না হন, তাহলে ATMEGA328P এর সাথে থাকুন
  • ভুল অপটোকুপলার। আপনি জিরো ক্রস চান না
  • উচ্চ চ্যানেলগুলি অস্থির ছিল। 16MHz থেকে 20MHz এ স্যুইচ করা এই সমস্যার সমাধান করেছে
  • একটি ডিএমএক্স স্ট্যাটাস লাইট রাখতে অক্ষম কারণ ইন্টারাপ্ট কলটি খুব দ্রুত হতে হয়েছিল
  • ডিসি পাওয়ার অত্যন্ত স্থিতিশীল হতে হবে, কোন তরঙ্গ DMX সংকেত খুব গোলমাল হতে হবে

TRIAC ডিজাইন MRedmon থেকে এসেছে, ধন্যবাদ।

ধাপ 2: সার্কিট ডিজাইন

সার্কিট ডিজাইন
সার্কিট ডিজাইন

আমি আমার সার্কিট ডিজাইন করতে ম্যাকের 7.7 ফ্রিজিং ব্যবহার করেছি।

শীর্ষে MAX485 DMX সংকেতকে Arduino পড়তে পারে এমন কিছুতে রূপান্তর করতে ব্যবহৃত হয়।

বাম দিকের 4N35 এসি সিগন্যালের শূন্য ক্রস সনাক্ত করতে ব্যবহৃত হয় যাতে কোন সময় সাইন ওয়েভ আউটপুট কমিয়ে দিতে হবে তা Arduino জানতে পারবে। সফ্টওয়্যার বিভাগে হার্ডওয়্যার এবং সফ্টওয়্যার কীভাবে ইন্টারঅ্যাক্ট করে সে সম্পর্কে আরও।

আমি প্রশ্ন পেয়েছি এই প্রকল্পটি কি ইউরোপে 230V এবং 50Hz দিয়ে কাজ করবে? আমি ইউরোপে থাকি না, এবং এই নকশাটি পরীক্ষা করতে সক্ষম হওয়ার জন্য আমি প্রায়ই সেখানে ভ্রমণ করি না। এটি কাজ করা উচিত, আপনাকে কেবল বিভিন্ন ফ্রিকোয়েন্সি সময় বিলম্বের জন্য কোডের উজ্জ্বলতার সময় লাইন পরিবর্তন করতে হবে।

ধাপ 3: কোভারির সার্কিট ডিজাইন

কোভারির সার্কিট ডিজাইন
কোভারির সার্কিট ডিজাইন
কোভারির সার্কিট ডিজাইন
কোভারির সার্কিট ডিজাইন

আমার ওয়েবসাইট চালু করার প্রক্রিয়ার মধ্য দিয়ে আমি কয়েকটি ইমেইল কথোপকথন করতে সক্ষম হয়েছি। একজন ছিলেন কোভারি আন্দ্রেয়ের সাথে যিনি এই প্রকল্পের ভিত্তিতে একটি সার্কিট ডিজাইন করেছিলেন এবং তার নকশাটি ভাগ করতে চেয়েছিলেন। আমি কোন সার্কিট বোর্ড ডিজাইনার নই কিন্তু এটি একটি agগল প্রকল্প। আপনি যদি এটি ব্যবহার করেন তবে এটি আপনার জন্য কীভাবে কাজ করে তা আমাকে জানান।

ধাপ 4: জিয়াকোমোর সার্কিট ডিজাইন

জিয়াকোমোর সার্কিট ডিজাইন
জিয়াকোমোর সার্কিট ডিজাইন

সময়ে সময়ে লোকেরা আমাকে এই নির্দেশের সাথে যে উত্তেজনাপূর্ণ অভিযোজন করেছে তা দিয়ে আমাকে বার্তা দেবে এবং আমি ভেবেছিলাম আমার সেগুলি আপনার সকলের সাথে ভাগ করা উচিত।

জিয়াকোমো সার্কিট পরিবর্তন করেছে যাতে একটি কেন্দ্র ট্যাপ করা ট্রান্সফরমারের প্রয়োজন হয় না। পিসিবি একটি একতরফা এবং যারা বাড়িতে ডাবল সাইড করতে পারে না তাদের জন্য এটি আরও সাশ্রয়ী মূল্যের সমাধান হতে পারে (কিছুটা কঠিন)।

ধাপ 5: সফটওয়্যার

সফটওয়্যার
সফটওয়্যার

আমি ব্যবসার দ্বারা একজন সফটওয়্যার ইঞ্জিনিয়ার তাই এই অংশটি সবচেয়ে বিস্তারিত।

Summery: যখন Arduino প্রথম বুট করে সেটআপ () পদ্ধতি বলা হয়। সেখানে আমি কিছু ভেরিয়েবল এবং আউটপুট লোকেশন সেট করেছি যা পরে ব্যবহার করা হবে। শূন্য ক্রস ইনটারপট () বলা হয়/ এসি প্রতিবার যখন ধনাত্মক থেকে নেতিবাচক ভোল্টেজ অতিক্রম করে। এটি প্রতিটি চ্যানেলের জন্য শূন্য ক্রস পতাকা সেট করবে এবং টাইমার শুরু করবে। লুপ () পদ্ধতিকে বলা হয় ক্রমাগত চিরতরে। আউটপুট চালু করতে, TRIAC কে শুধুমাত্র 10 মাইক্রোসেকেন্ডের জন্য ট্রিগার করতে হবে। যদি এটি TRIAC এবং শূন্য ক্রস ট্রিগার করার সময় হয় তবে এসি পর্ব শেষ না হওয়া পর্যন্ত আউটপুট চালু থাকবে।

অনলাইনে কয়েকটি উদাহরণ ছিল যা আমি এই প্রকল্পটি শুরু করতে ব্যবহার করতাম। প্রধান জিনিস যা আমি খুঁজে পাইনি তা হল একাধিক TRIAC আউটপুট। অন্যরা PWM আউটপুটে বিলম্ব ফাংশন ব্যবহার করেছিল, কিন্তু এটি আমার ক্ষেত্রে কাজ করবে না কারণ ATMEGA কে সব সময় DMX শুনতে হবে। আমি শূন্য-ক্রস পরে অনেক ms এ TRIAC pulsing দ্বারা এটি সমাধান। TRIAC কে শূন্য-ক্রসের কাছাকাছি নাড়ানোর মাধ্যমে পাপের তরঙ্গের আরও বেশি আউটপুট হয়।

উপরের অর্ধ 120VAC পাপ তরঙ্গটি একটি অসিলোস্কোপের মত দেখায়।

ISP814 ইন্টারাপ্ট 1 এর সাথে সংযুক্ত। সুতরাং যখন এটি সংকেত পায় যে এসি ধনাত্মক থেকে নেতিবাচক বা বিপরীতভাবে পরিবর্তিত হয় তখন এটি প্রতিটি চ্যানেলের জন্য শূন্য ক্রস সেট করে এবং স্টপওয়াচ শুরু করে।

লুপ () পদ্ধতিতে, এটি প্রতিটি চ্যানেল পরীক্ষা করে যদি শূন্যক্রস সত্য হয় এবং এটি সক্রিয় হওয়ার সময় চলে গেছে এটি 10 মাইক্রোসেকেন্ডের জন্য TRIAC কে স্পন্দিত করবে। এটি TRIAC চালু করার জন্য যথেষ্ট। একবার একটি TRIAC চালু হলে এটি শূন্য ক্রস পর্যন্ত থাকবে। যখন DMX প্রায় 3% ছিল তখন আলো জ্বলবে তাই আমি এটি রোধ করার জন্য সেখানে ছাঁটাই যোগ করেছি। এই কারণে Arduino খুব ধীর ছিল, এবং নাড়ি কিছু সময় তরঙ্গের শেষ 4% পরিবর্তে পরবর্তী পাপ তরঙ্গ ট্রিগার করবে।

এছাড়াও লুপে () আমি স্থিতি LEDs এর PWM মান সেট করেছি। এই LEDs Arduino দ্বারা উৎপন্ন অভ্যন্তরীণ PWM ব্যবহার করতে পারে কারণ এসির শূন্য ক্রস সম্পর্কে আমাদের চিন্তা করতে হবে না। একবার পিডব্লিউএম সেট হয়ে গেলে আরডুইনো সেই উজ্জ্বলতায় চলবে যতক্ষণ না অন্য জ্ঞানীকে বলা হয়।

পিন 2 এ একটি DMX ইন্টারাপ্ট ব্যবহার করার জন্য এবং 20MHz এ চালানোর জন্য উপরের মন্তব্যগুলিতে উল্লেখ করা হয়েছে আপনাকে কিছু Arduino অ্যাপ্লিকেশন ফাইল সম্পাদনা করতে হবে। HardwareSerial.cpp- এ কোডের একটি অংশ অবশ্যই মুছে ফেলা উচিত, এটি আমাদের আমাদের নিজস্ব বিরতি কল লিখতে দেয়। এই ISR পদ্ধতিটি DMX বিঘ্নটি পরিচালনা করার জন্য কোডের নীচে রয়েছে। আপনি যদি একটি আইএসপি প্রোগ্রামার হিসাবে একটি Arduino ব্যবহার করতে যাচ্ছেন, তাহলে হার্ডওয়্যারসিরিয়াল.সিপিতে আপনার পরিবর্তনগুলি ফিরিয়ে আনতে ভুলবেন না অন্যথায় রুটি বোর্ডে ATMEGA328 পৌঁছানো যাবে না। দ্বিতীয় পরিবর্তন একটি সহজ। Board.txt ফাইলটি নতুন 20MHz ঘড়ির গতিতে পরিবর্তন করতে হবে।

উজ্জ্বলতা [ch] = মানচিত্র (DmxRxField [ch], 0, 265, 8000, 0);

উজ্জ্বলতার মানচিত্র 8000 কারণ এটি 60hz এ 1/2 একটি AC সাইন ওয়েভের মাইক্রোসেকেন্ডের পরিমাণ। সুতরাং সম্পূর্ণ উজ্জ্বলতা 256 DMX এ প্রোগ্রামটি 8000us এর জন্য 1/2 AC সাইন ওয়েভ চালু করবে। আমি অনুমান এবং চেকের মাধ্যমে 8000 নিয়ে এসেছি। 1000000us/60hz/2 = 8333 এর গণিত করা যাতে এটি একটি ভাল সংখ্যা হতে পারে, কিন্তু মাথার উপর অতিরিক্ত 333us থাকার কারণে TRIAC খোলার অনুমতি দেয় এবং প্রোগ্রামে যে কোন ঝাঁকুনি সম্ভবত একটি ভাল ধারণা।

Arduino 1.5.3 তে তারা HardwareSerial.cpp ফাইলের অবস্থান সরিয়ে নিয়েছে। এখন এটি হল

অন্যথায় আপনি এই ত্রুটিটি শেষ করবেন: core/core.a (HardwareSerial0.cpp.o): ফাংশন `_vector_18 ':

ধাপ 6: প্যাকেজিং ইট আপ

প্যাকেজিং ইট আপ
প্যাকেজিং ইট আপ
প্যাকেজিং ইট আপ
প্যাকেজিং ইট আপ
প্যাকেজিং ইট আপ
প্যাকেজিং ইট আপ

আমি তাদের বৈদ্যুতিক বিভাগে মেনার্ডে ধূসর প্রজেক্ট বক্সটি তুলেছিলাম। আমি বৈদ্যুতিক প্লাগ ছিদ্র কাটা একটি পারস্পরিক করাত ব্যবহার। মামলাটি ঝুলন্ত উদ্দেশ্যে শীর্ষস্থানে একটি থিয়েটার সি-ক্ল্যাম্প সংযুক্ত করেছে। কোন ইনপুট এবং আউটপুটের জন্য স্ট্যাটাস লাইট যদি কোন সমস্যা হয় তা নির্ণয় করতে সাহায্য করে। ডিভাইসের বিভিন্ন পোর্ট ব্যাখ্যা করার জন্য একটি লেবেল প্রস্তুতকারক ব্যবহার করা হয়েছিল। প্রতিটি প্লাগের পাশের সংখ্যাগুলি DMX চ্যানেল নম্বরকে উপস্থাপন করে। আমি কিছু গরম আঠা দিয়ে সার্কিট বোর্ড এবং ট্রান্সফরমার লাগিয়ে দিলাম। LED গুলি LED হোল্ডারের সাথে জায়গায় আটকে আছে।

প্রস্তাবিত: