সুচিপত্র:

MIDI2LED - একটি MIDI নিয়ন্ত্রিত LED স্ট্রিপ লাইট ইফেক্ট: 6 টি ধাপ
MIDI2LED - একটি MIDI নিয়ন্ত্রিত LED স্ট্রিপ লাইট ইফেক্ট: 6 টি ধাপ

ভিডিও: MIDI2LED - একটি MIDI নিয়ন্ত্রিত LED স্ট্রিপ লাইট ইফেক্ট: 6 টি ধাপ

ভিডিও: MIDI2LED - একটি MIDI নিয়ন্ত্রিত LED স্ট্রিপ লাইট ইফেক্ট: 6 টি ধাপ
ভিডিও: Как спрятать данные в ячейках Excel? 2024, নভেম্বর
Anonim
MIDI2LED - একটি MIDI নিয়ন্ত্রিত LED স্ট্রিপ লাইট ইফেক্ট
MIDI2LED - একটি MIDI নিয়ন্ত্রিত LED স্ট্রিপ লাইট ইফেক্ট

এটি আমার প্রথম নির্দেশযোগ্য, তাই আমার সাথে সহ্য করুন।

আমি সঙ্গীত তৈরি করতে পছন্দ করি, এবং লিভিং-রুমের কনসার্টের মতো লাইভ পরিস্থিতিতে, আমি যখন খেলি তার সাথে সিঙ্কে হালকা প্রভাব থাকে। তাই আমি একটি Arduino- ভিত্তিক বাক্স তৈরি করেছি যা একটি LED স্ট্রিপকে এলোমেলো রঙে আলোকিত করে যখন আমি আমার MIDI কীবোর্ডে একটি নোট আঘাত করি এবং যেখানে আমি নোটটি আঘাত করি।

সরবরাহ

  • আরডুইনো উনো
  • আরডুইনো প্রোটোসিল্ড
  • MIDI জ্যাক
  • 1N4148 ডায়োড
  • 6N138 অপটো কাপলার
  • প্রতিরোধক: 2x 220 Ohm, 1x 10kOhm, 1x 470Ohm
  • WS2812B LED স্ট্রিপ (60 LEDs)
  • কিছু অবশিষ্ট তারের
  • তাপ সঙ্কুচিত টিউবিং
  • Arduino জন্য উপযুক্ত আবরণ (আমি একটি প্লাস্টিকের জংশন বাক্স ব্যবহার)

আপনারও লাগবে

  • সোল্ডারিং লোহা এবং ঝাল
  • MIDI কীবোর্ড এবং MIDI কেবল

ধাপ 1: ইলেকট্রনিক্স

ইলেকট্রনিক্স
ইলেকট্রনিক্স

সার্কিট বেশ সোজা। এটি একটি স্ট্যান্ডার্ড MIDI ইনপুট (Arduino এর বাম) এবং LED স্ট্রিপ (Arduino এর ডানদিকে) সংযোগ নিয়ে গঠিত। প্রোটোসিল্ডে সমস্ত অংশ রাখুন, প্রচুর জায়গা আছে এটি সাধারণত LED স্ট্রিপকে পাওয়ার জন্য একটি বাহ্যিক বিদ্যুৎ সরবরাহ ব্যবহার করার সুপারিশ করা হয়, কিন্তু আমি দেখেছি যে যখন আপনি খেলেন, তখন একই সময়ে কেবল কয়েকটি LEDই চালু থাকে, তাই সেখানে ছিল Arduino +5V / GND পাওয়ার আউটপুট হিসাবে ব্যবহার করতে কোন সমস্যা নেই। (একই সময়ে, এবং সম্পূর্ণ বেগ সহ সমস্ত কীগুলি এড়ানোর চেষ্টা করুন। কিছু লোক এই দুটি লাইনের মধ্যে 100uF ক্যাপাসিটর (পরিকল্পিতভাবে দেখানো হয়নি) recommendোকানোর পরামর্শ দেয়।

প্রোটোসিল্ডে অংশগুলিকে সোল্ডার করুন এবং পরিকল্পিতভাবে দেখানো হিসাবে LED স্ট্রিপটি সংযুক্ত করুন।

ধাপ 2: LED স্ট্রিপ সংযোগ করা

LED স্ট্রিপ সংযুক্ত করা হচ্ছে
LED স্ট্রিপ সংযুক্ত করা হচ্ছে

সার্কিটের সাথে LED স্ট্রিপের ডান প্রান্ত - ইনপুট শেষ - সংযোগ করা গুরুত্বপূর্ণ। আমার স্ট্রিপের একটি ইনপুট হিসাবে একটি মহিলা সংযোগকারী আছে, এবং ইনপুট থেকে দূরে নির্দেশ করার সাথে সাথে সামান্য ত্রিভুজ রয়েছে। আউটপুটে, একটি পুরুষ সংযোগকারী ছিল (এটি অন্য স্ট্রিপের সাথে সংযুক্ত করতে সক্ষম হবে, যা আমাদের প্রয়োজন নেই), তাই আমি এটি কেটে ফেলেছি এবং এটি Arduino থেকে আসা তিনটি তারের কাছে বিক্রি করেছি। তিনটি ক্যাবলকে এলইডি স্ট্রিপে একসঙ্গে বাঁধতে এবং সেগুলি কম দৃশ্যমান করতে তাপ সঙ্কুচিত টিউবিং ব্যবহার করুন।

আমি যে LED স্ট্রিপটি ব্যবহার করেছি তার পিছনে আঠালো টেপ রয়েছে, তাই এটি সহজেই MIDI কীবোর্ডের পিছনে আঠালো করা যায়।

ধাপ 3: আপনার কীবোর্ডে প্রকল্পটি মানিয়ে নেওয়া

আপনার কীবোর্ডে প্রকল্পটি মানিয়ে নেওয়া
আপনার কীবোর্ডে প্রকল্পটি মানিয়ে নেওয়া
আপনার কীবোর্ডে প্রকল্পটি মানিয়ে নেওয়া
আপনার কীবোর্ডে প্রকল্পটি মানিয়ে নেওয়া

আপনাকে আপনার কীবোর্ডে LED স্ট্রিপ এবং Arduino কোডটি মানিয়ে নিতে হতে পারে। খনিতে 76 টি কী রয়েছে এবং স্ট্রিপের দৈর্ঘ্য প্রায় ঠিক কীবোর্ডের প্রস্থ। আপনার যদি থাকে যেমন 61 টি কী, আপনার একটি ছোট স্ট্রিপের প্রয়োজন হতে পারে। এলইডি স্ট্রিপ যে কোন দুটি এলইডি এর মধ্যে কাটা যাবে। শুধু নিশ্চিত করুন যে আপনি সঠিক অংশটি কেটে ফেলছেন, এর একটি ইনপুট শেষ (একটি মহিলা সংযোগকারী সহ) এবং একটি আউটপুট শেষ (একটি পুরুষ সংযোগকারী সহ), আপনাকে ইনপুট শেষ রাখতে হবে। কোডে, #সংজ্ঞা পরিবর্তন করুন জন্য

  • NUMBER_OF_LEDS শেষ করার পরে আপনার স্ট্রিপে থাকা LEDs এর সংখ্যা,
  • NUMBER_OF_KEYS আপনার কীবোর্ডের কীগুলির সংখ্যায়, এবং
  • MIN_KEY থেকে আপনার সর্বনিম্ন কীটির MIDI পিচ নম্বর। আপনি কীবোর্ডের ব্যবহারকারী ম্যানুয়াল এ এটি খুঁজে পেতে পারেন; অথবা একটি টুল ব্যবহার করুন যা MIDI নোট নম্বর প্রদর্শন করে, যেমন লিনাক্সের জন্য KMidiMon, অথবা উইন্ডোজ বা ম্যাকের জন্য পকেট MIDI; অথবা ডিভাইসটি আপনার কীবোর্ডের সমস্ত কীগুলিতে সাড়া না দেওয়া পর্যন্ত বিভিন্ন মান ব্যবহার করে দেখুন

ধাপ 4: Arduino কোড

Arduino কোড MIDI লাইব্রেরি ব্যবহার করে Arduino IDE ব্যবহার করে এই লাইব্রেরিগুলি ইনস্টল করুন। তারপরে কোডটি কম্পাইল করুন এবং theাল সংযুক্ত না করে এটি আরডুইনোতে আপলোড করুন (অপটোকপলার আরএক্স পিনের সাথে সংযুক্ত, যা আপলোডে বাধা দেয়)। ইউএসবি তারের মাধ্যমে আরডুইনোকে শক্তি দিন (আমি একটি ইউএসবি ওয়াল ওয়ার্ট ব্যবহার করি)।

আপনি যদি আপনার পছন্দ অনুযায়ী কোডটি পরিবর্তন করতে চান, তাহলে এটি কীভাবে কাজ করে তার একটি সংক্ষিপ্ত বিবরণ: প্রতিটি লুপে, MIDI ইনপুট পড়া হয়। যদি একটি নোট অন বা নোট অফ ইভেন্ট পাওয়া যায়, তাহলে MyHandleNoteOn বা MyHandleNoteOff ফাংশন বলা হয়। তারা উভয়েই UpdateVelocityArray ফাংশনকে কল করে, যা কী সংখ্যার বেগ (যেমন আপনি কী চাপিয়েছেন) সংরক্ষণ করে। যদি বেগ আগে সঞ্চিত ছিল তার চেয়ে বেশি হয়, তাহলে সংশ্লিষ্ট LED এর রঙ "বর্তমান রঙ" এ সেট করা হয়। MIDI ইভেন্টগুলি পরিচালনা করার পরে, ফাংশন updateLedArray বলা হয়। এটি "বর্তমান রঙ" আপডেট করে (লাল, সবুজ এবং নীল মানগুলি একটি রৈখিক উপায়ে স্বাধীনভাবে পরিবর্তিত হয়, যতক্ষণ না নীচের বা উপরের প্রান্তে পৌঁছানো হয়, সেই সময়ে রৈখিক পরিবর্তনের গতি এলোমেলো সংখ্যায় সেট করা হয়), আস্তে আস্তে চাপা নোটের বেগ কমিয়ে দেয়, এবং প্রতিটি LED এর রঙের মান আপডেট করে যা তার রঙ পরিবর্তন করতে হয় (নতুন নোট আঘাত বা বেগ হ্রাসের কারণে)। ফাংশন showLedArray "পিক্সেল" নামক Adafruit_NeoPixel কাঠামোতে রং স্থানান্তর করে এবং প্রকৃত LEDs পিক্সেল কাঠামোতে রং দেখায়।

ধাপ 5: সম্ভাব্য উন্নতি …

একটি প্রকল্প কখনো শেষ হয় না। এটির উন্নতির জন্য সর্বদা কিছু করা যেতে পারে:

  • প্রোটোসিল্ডে এত কম অংশ থাকে যে এটি সত্যিই একটি বর্জ্য; আরডুইনো ন্যানো এবং 15x7 হোল পিসিবি এবং কিছু মহিলা পিন হেডারের সাহায্যে কেউ সহজেই একই প্রভাব অর্জন করতে পারে।
  • কিছু MIDI সংকেত হারিয়ে যায়। যদি এটি একটি নোটঅন হয়, তাহলে সংশ্লিষ্ট LED জ্বলবে না; যদি এটি একটি নোটঅফ হয় তবে এটি বের হবে না (এজন্যই আমি বেগ হ্রাসের প্রবর্তন করেছি, যা নিশ্চিত করে যে এলইডি অনির্দিষ্টকালের জন্য থাকবে না)। আমি এখনও কারণ খুঁজে বের করার চেষ্টা করছি। সম্ভবত এটি একটি সময় নির্ধারণের সমস্যা, এবং MIDI.read () আরো প্রায়ই বলা উচিত।
  • কিছু MIDI সংকেত ভুলভাবে পড়ে, যেমন ভুল LEDs আলো জ্বলে। উপরের পয়েন্টের সাথে সংযুক্ত হতে পারে। কিছু তদন্ত প্রয়োজন।
  • সার্কিটটি খুব বেশি ব্যবহারকারীর মিথস্ক্রিয়া ছাড়াই একটি মনোরম চাক্ষুষ প্রভাব দেওয়ার জন্য ডিজাইন করা হয়েছে (কীবোর্ড বাজানো ছাড়া)। যাইহোক, আমি একটি পটেনশিয়োমিটার যোগ করার কথা কল্পনা করতে পারি যা পড়া হয় (Arduino এর এনালগ ইনপুটগুলির একটি ব্যবহার করে) যার সাহায্যে আপনি সর্বাধিক গতি পরিবর্তন করতে পারেন (বর্তমানে #MAX_COLOR_CHANGE_SPEED = 20 হিসাবে সংজ্ঞায়িত)। অথবা দুটি নোটঅন ইভেন্টের মধ্যে গড় সময় পরিমাপ করুন এবং সেই অনুযায়ী MAX_COLOR_CHANGE_SPEED পরিবর্তন করুন - ধীর গানে, রঙ আরও ধীরে ধীরে পরিবর্তন করা উচিত।

ধাপ 6: সম্পন্ন

USB তারের মাধ্যমে Arduino কে শক্তি দিন (আমি একটি USB ওয়াল ওয়ার্ট ব্যবহার করি)। আপনার MIDI কীবোর্ডটিকে MIDI জ্যাকের সাথে সংযুক্ত করুন এবং রকিং শুরু করুন। আমাকে একটু হালকা মিউজিক বাজানো দেখুন

প্রস্তাবিত: