সুচিপত্র:

অ-ঠিকানাযোগ্য RGB LED স্ট্রিপ অডিও ভিজুয়ালাইজার: 6 টি ধাপ (ছবি সহ)
অ-ঠিকানাযোগ্য RGB LED স্ট্রিপ অডিও ভিজুয়ালাইজার: 6 টি ধাপ (ছবি সহ)

ভিডিও: অ-ঠিকানাযোগ্য RGB LED স্ট্রিপ অডিও ভিজুয়ালাইজার: 6 টি ধাপ (ছবি সহ)

ভিডিও: অ-ঠিকানাযোগ্য RGB LED স্ট্রিপ অডিও ভিজুয়ালাইজার: 6 টি ধাপ (ছবি সহ)
ভিডিও: Inside of a Music Bulb [Teardown] // মিউজিক লাইটের ভেতরে যা পেলাম 2024, নভেম্বর
Anonim
Image
Image

আমার টিভি ক্যাবিনেটের চারপাশে কিছু সময়ের জন্য 12v RGB LED স্ট্রিপ ছিল এবং এটি একটি বিরক্তিকর LED ড্রাইভার দ্বারা নিয়ন্ত্রিত হয় যা আমাকে 16 টি প্রি-প্রোগ্রামড রঙের মধ্যে একটি বেছে নিতে দেয়!

আমি প্রচুর সংগীত শুনি যা আমাকে অনুপ্রাণিত করে কিন্তু আলো শুধু মেজাজ ঠিক রাখে না। AUX (3.5 মিমি জ্যাক) এর মাধ্যমে আমার স্পিকারকে যে অডিও সিগন্যাল দেওয়া হয়েছিল তা ঠিক করার জন্য, এটি প্রক্রিয়া করুন এবং সেই অনুযায়ী RGB স্ট্রিপ নিয়ন্ত্রণ করুন।

এলইডি ব্যাস (লো), ট্রেবল (মিড) এবং হাই ফ্রিকোয়েন্সিগুলির মাত্রার উপর ভিত্তি করে সংগীতে প্রতিক্রিয়া জানায়।

ফ্রিকোয়েন্সি পরিসীমা - রঙ নিম্নরূপ:

কম - লাল

মধ্য - সবুজ

উচ্চ - নীল

এই প্রকল্পটিতে প্রচুর DIY জিনিস জড়িত কারণ পুরো সার্কিটটি স্ক্র্যাচ থেকে নির্মিত হয়েছিল। আপনি যদি এটি একটি ব্রেডবোর্ডে সেট করে থাকেন তবে এটি বেশ সহজ হওয়া উচিত, তবে এটি একটি পিসিবিতে বিক্রি করা বেশ চ্যালেঞ্জিং।

সরবরাহ

(x1) RGB LED স্ট্রিপ

(x1) Arduino Uno/Nano (Mega বাঞ্ছনীয়)

(x1) TL072 বা TL082 (TL081/TL071 খুব ভালো)

(x3) TIP120 NPN ট্রানজিস্টার (TIP121, TIP122 বা N-Channel MOSFETs যেমন IRF540, IRF 530 ঠিক আছে)

(x1) 10kOhm potentiometer রৈখিক

(x3) 100kOhm 1/4 ওয়াট প্রতিরোধক

(x1) 10uF ইলেক্ট্রোলাইটিক ক্যাপাসিটর

(x1) 47nF সিরামিক ক্যাপাসিটর

(x2) 3.5 মিমি অডিও সংযোগকারী - মহিলা

(x2) 9V ব্যাটারি

(x2) 9V ব্যাটারি স্ন্যাপ সংযোগকারী

ধাপ 1: RGB LED স্ট্রিপের ধরন বোঝা

RGB LED স্ট্রিপের ধরন বোঝা
RGB LED স্ট্রিপের ধরন বোঝা

দুটি মৌলিক ধরনের LED স্ট্রিপ আছে, "এনালগ" ধরনের এবং "ডিজিটাল" ধরনের।

অ্যানালগ-টাইপ (ডুমুর 1) স্ট্রিপগুলিতে সমস্ত এলইডি সমান্তরালভাবে সংযুক্ত থাকে এবং তাই এটি একটি বিশাল ত্রি-রঙের LED এর মতো কাজ করে; আপনি আপনার পছন্দের যেকোনো রঙে পুরো স্ট্রিপ সেট করতে পারেন, কিন্তু আপনি আলাদা LED এর রং নিয়ন্ত্রণ করতে পারবেন না। এগুলি ব্যবহার করা খুব সহজ এবং মোটামুটি সস্তা।

ডিজিটাল-টাইপ (ডুমুর 2) স্ট্রিপগুলি অন্যভাবে কাজ করে। তাদের প্রতিটি LED এর জন্য একটি চিপ আছে, স্ট্রিপটি ব্যবহার করার জন্য আপনাকে চিপগুলিতে ডিজিটাল কোডেড ডেটা পাঠাতে হবে। যাইহোক, এর মানে হল আপনি প্রতিটি LED আলাদাভাবে নিয়ন্ত্রণ করতে পারেন! চিপের অতিরিক্ত জটিলতার কারণে এগুলি বেশি ব্যয়বহুল।

আপনি যদি এনালগ এবং ডিজিটাল-টাইপ স্ট্রিপের মধ্যে পার্থক্যগুলি শারীরিকভাবে সনাক্ত করা কঠিন মনে করেন,

  1. অ্যানালগ-টাইপ 4 পিন, 1 সাধারণ ধনাত্মক এবং 3 নেতিবাচক অর্থাত RGB- এর প্রতিটি রঙের জন্য একটি ব্যবহার করে।
  2. ডিজিটাল টাইপ 3 পিন, পজিটিভ, ডেটা এবং গ্রাউন্ড ব্যবহার করে।

আমি এনালগ-টাইপ স্ট্রিপ ব্যবহার করব, কারণ

  1. খুব কম সংখ্যক ইন্সট্রাকটেবল আছে যা শেখায় কিভাবে মিউজিক রিঅ্যাক্টিভ এনালগ-টাইপ স্ট্রিপ তৈরি করতে হয়। তাদের বেশিরভাগই ডিজিটাল-টাইপের দিকে মনোনিবেশ করে এবং তাদের সঙ্গীতে প্রতিক্রিয়া দেখানো সহজ হয়।
  2. আমার চারপাশে কিছু এনালগ টাইপের স্ট্রিপ পড়ে ছিল।

ধাপ 2: অডিও সিগন্যাল বাড়ানো

অডিও সিগন্যাল বাড়ানো
অডিও সিগন্যাল বাড়ানো
অডিও সিগন্যাল বাড়ানো
অডিও সিগন্যাল বাড়ানো
অডিও সিগন্যাল বাড়ানো
অডিও সিগন্যাল বাড়ানো

অডিও জ্যাকের মাধ্যমে যে অডিও সিগন্যাল পাঠানো হয় তা হল

একটি এনালগ সংকেত যা +200mV এবং -200mV এর মধ্যে দোলায়। এখন এটি একটি সমস্যা হল আমরা অরডুইনোর একটি এনালগ ইনপুট দিয়ে অডিও সিগন্যাল পরিমাপ করতে চাই কারণ আরডুইনো এর এনালগ ইনপুট শুধুমাত্র 0 থেকে 5V এর মধ্যে ভোল্টেজ পরিমাপ করতে পারে। যদি আমরা অডিও সিগন্যালে নেতিবাচক ভোল্টেজগুলি পরিমাপ করার চেষ্টা করি, Arduino শুধুমাত্র 0V পড়বে এবং আমরা সিগন্যালের নীচে ক্লিপিং শেষ করব।

এটি সমাধান করার জন্য আমাদের অডিও সিগন্যালগুলিকে পরিবর্ধন এবং অফসেট করতে হবে যাতে তারা 0-5V এর সীমার মধ্যে পড়ে। আদর্শভাবে, সংকেতটির 2.5V এর একটি প্রশস্ততা থাকা উচিত যা 2.5V এর কাছাকাছি দোলায় যাতে এর ন্যূনতম ভোল্টেজ 0V এবং এর সর্বোচ্চ ভোল্টেজ 5V হয়।

পরিবর্ধন

পরিবর্ধক হল সার্কিটের প্রথম ধাপ, এটি সিগন্যালের প্রশস্ততা প্রায় + বা - 200mV থেকে + অথবা - 2.5V (আদর্শভাবে) বৃদ্ধি করে। অ্যাম্প্লিফায়ারের অন্য কাজ হল অডিও উৎস (প্রথম স্থানে অডিও সংকেত উৎপন্ন করার জিনিস) বাকি সার্কিট থেকে রক্ষা করা। আউটগোয়িং এমপ্লিফাইড সিগন্যাল এম্প্লিফায়ার থেকে তার সমস্ত কারেন্ট সোর্স করবে, তাই সার্কিটে পরবর্তীতে যে কোন লোড অডিও সোর্স দ্বারা "অনুভূত" হবে না (আমার ক্ষেত্রে ফোন/আইপড/ল্যাপটপ)। TL072 অথবা TL082 (fig 2) প্যাকেজে অপ-এম্পসগুলির একটি সেট করে একটি নন-ইনভার্টিং এম্প্লিফায়ার কনফিগারেশনে এটি করুন।

TL072 বা TL082 এর ডেটশীট বলে যে এটি +15 এবং -15V দিয়ে চালিত হওয়া উচিত, কিন্তু যেহেতু সিগন্যালটি কখনও + বা -2.5V এর উপরে বাড়ানো হবে না তার চেয়ে কম কিছু দিয়ে op -amp চালানো ঠিক আছে। আমি একটি + বা - 9V পাওয়ার সাপ্লাই তৈরি করতে সিরিজের তারযুক্ত দুটি নয় -ভোল্ট ব্যাটারি ব্যবহার করেছি।

আপনার +V (পিন)) এবং –V (পিন)) অপ-এম্পে ওয়্যার আপ করুন। মোনো জ্যাক থেকে নন-ইনভার্টিং ইনপুট (পিন 3) এ সিগন্যালটি ওয়্যার করুন এবং জ্যাকের গ্রাউন্ড পিনটি আপনার ভোল্টেজ সাপ্লাইতে 0V রেফারেন্সের সাথে সংযুক্ত করুন (আমার জন্য এটি সিরিজের দুটি 9V ব্যাটারির মধ্যে সংযোগ ছিল)। আউটপুট (পিন 1) এবং অপ-এম্পের ইনভার্টিং ইনপুট (পিন 2) এর মধ্যে একটি 100kOhm রোধকারী তারের। এই সার্কিটে, আমি আমার নন-ইনভার্টিং এম্প্লিফায়ারের লাভ (পরিবর্ধক পরিবর্ধক) সামঞ্জস্য করার জন্য একটি পরিবর্তনশীল রোধক হিসাবে একটি 10kOhm পোটেন্টিওমিটার তারযুক্ত ব্যবহার করেছি। ইনভার্টিং ইনপুট এবং 0V রেফারেন্সের মধ্যে এই 10K লিনিয়ার টেপার পাত্রটি তারে লাগান।

ডিসি অফসেট

ডিসি অফসেট সার্কিটের দুটি প্রধান উপাদান রয়েছে: একটি ভোল্টেজ ডিভাইডার এবং একটি ক্যাপাসিটর। ভোল্টেজ ডিভাইডারটি Arduino এর 5V সরবরাহ থেকে মাটিতে সিরিজের দুটি 100k প্রতিরোধক থেকে তৈরি করা হয়। যেহেতু প্রতিরোধক একই প্রতিরোধের, তাদের মধ্যে সংযোগস্থলে ভোল্টেজ 2.5V সমান। এই 2.5V জংশনটি 10uF ক্যাপাসিটরের মাধ্যমে এম্প্লিফায়ারের আউটপুটে আবদ্ধ। যেহেতু ক্যাপাসিটরের এম্প্লিফায়ার সাইডে ভোল্টেজ বেড়ে যায় এবং পড়ে যায়, এটি 2.5V জংশনের সাথে সংযুক্ত ক্যাপাসিটরের পাশ থেকে ক্ষণিকের জন্য চার্জ জমা করে এবং তাড়িয়ে দেয়। এটি 2.5V জংশনে ভোল্টেজকে 2.5V এর চারপাশে কেন্দ্র করে উপরে ও নিচে দোলায়।

পরিকল্পিত হিসাবে দেখানো হয়েছে, একটি 10uF ক্যাপাসিটরের নেতিবাচক সীসাকে এম্প্লিফায়ার থেকে আউটপুটে সংযুক্ত করুন। 5V এবং স্থল মধ্যে সিরিজের তারযুক্ত দুটি 100k প্রতিরোধকের মধ্যে সংযোগের সাথে ক্যাপের অন্য দিকটি সংযুক্ত করুন। এছাড়াও, 2.5V থেকে মাটিতে 47nF ক্যাপাসিটর যুক্ত করুন।

ধাপ 3: স্থির সাইনোসয়েডের সংখ্যায় সংকেত পচন - তত্ত্ব

স্টেশনারি সাইনোসয়েডের সংখ্যায় সংকেত পচন - তত্ত্ব
স্টেশনারি সাইনোসয়েডের সংখ্যায় সংকেত পচন - তত্ত্ব

যে কোনো 3.5 মিমি জ্যাকের মাধ্যমে পাঠানো অডিও সিগন্যাল

20 Hz থেকে 20 kHz এর পরিসীমা। এটি 44.1 kHz এ নমুনা করা হয়েছে এবং প্রতিটি নমুনা 16 বিটে এনকোড করা হয়েছে।

অডিও সিগন্যাল তৈরি করে এমন মৌলিক মৌলিক ফ্রিকোয়েন্সিগুলি ডিকনস্ট্রাক্ট করার জন্য, আমরা সিগন্যালে ফুরিয়ার ট্রান্সফর্ম প্রয়োগ করি, যা সিগন্যালটিকে স্থির সাইনোসয়েডের সমষ্টিতে পচে যায়। অন্য কথায়, ফুরিয়ার বিশ্লেষণ তার আসল ডোমেন (প্রায় সময় বা স্থান) থেকে একটি সংকেতকে ফ্রিকোয়েন্সি ডোমেনে প্রতিনিধিত্ব করে এবং বিপরীতভাবে। কিন্তু সংজ্ঞা থেকে এটি সরাসরি গণনা করা প্রায়ই ব্যবহারিক হতে খুব ধীর।

পরিসংখ্যান দেখায় যে সংকেত সময় এবং ফ্রিকোয়েন্সি ডোমেনে কেমন দেখায়।

এখানেই ফাস্ট ফুরিয়ার ট্রান্সফর্ম (এফএফটি) অ্যালগরিদম বেশ কার্যকর!

সংজ্ঞানুসারে, একটি এফএফটি ডিএফটি ম্যাট্রিক্সকে স্পার্স (বেশিরভাগ শূন্য) ফ্যাক্টরের একটি ফ্যাক্টর করে এই ধরনের রূপান্তরগুলিকে দ্রুত গণনা করে। ফলস্বরূপ, এটি O (N2) থেকে DFT গণনার জটিলতা হ্রাস করতে পরিচালিত করে, যা দেখা দেয় যদি কেউ কেবল DFT এর সংজ্ঞাটি O (N log N) এ প্রয়োগ করে, যেখানে N হল ডেটার আকার। গতির পার্থক্য বিরাট হতে পারে, বিশেষ করে দীর্ঘ ডেটা সেটের জন্য যেখানে N হাজার হাজার বা লক্ষ লক্ষ হতে পারে। রাউন্ড-অফ ত্রুটির উপস্থিতিতে, অনেক এফএফটি অ্যালগরিদম সরাসরি বা পরোক্ষভাবে ডিএফটি সংজ্ঞা মূল্যায়নের চেয়ে অনেক বেশি সঠিক।

সহজ কথায়, এর মানে হল যে FFT অ্যালগরিদম হল যেকোন সিগন্যালের ফুরিয়ার ট্রান্সফর্ম গণনা করার একটি দ্রুত উপায়। এটি সাধারণত কম কম্পিউটিং পাওয়ার সহ ডিভাইসে ব্যবহৃত হয়।

প্রস্তাবিত: