সুচিপত্র:

এমএসপি 430 ব্রেডবোর্ড অডিও স্পেকট্রাম বিশ্লেষক: 6 টি ধাপ
এমএসপি 430 ব্রেডবোর্ড অডিও স্পেকট্রাম বিশ্লেষক: 6 টি ধাপ

ভিডিও: এমএসপি 430 ব্রেডবোর্ড অডিও স্পেকট্রাম বিশ্লেষক: 6 টি ধাপ

ভিডিও: এমএসপি 430 ব্রেডবোর্ড অডিও স্পেকট্রাম বিশ্লেষক: 6 টি ধাপ
ভিডিও: Case Study 1 - Joule Jotter 2024, নভেম্বর
Anonim
Image
Image
MSP430 ব্রেডবোর্ড অডিও স্পেকট্রাম অ্যানালাইজার
MSP430 ব্রেডবোর্ড অডিও স্পেকট্রাম অ্যানালাইজার

এই প্রকল্পটি মাইক্রোফোন ভিত্তিক এবং ন্যূনতম বাহ্যিক উপাদানগুলির প্রয়োজন। 2 x LR44 মুদ্রা কোষ ব্যবহার করা হয় যাতে আমি 170 টি-পয়েন্ট মিনি রুটিবোর্ডের সীমানায় কাজ করতে পারি। ADC10, টাইমার A ইন্টারাপ্ট LPM জেগে উঠা, টাইমার A PWM আউটপুট, বোতাম ব্যবহার, পূর্ণসংখ্যা গাণিতিক ব্যবহার এবং প্রদর্শিত হয়।

বৈশিষ্ট্য

  • 500Hz বিভাজনে 8 বিট পূর্ণসংখ্যা FFT 16 নমুনা
  • 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K অ-রৈখিক 8 প্রশস্ততা দেখায়
  • আংশিক লগারিদম মানচিত্র প্রশস্ততা দেখানোর জন্য, সীমিত হিসাবে রেজোলিউশন 8 বিট FFT এর জন্য হ্রাস করা হয়েছে
  • TLC272 100x গুণ 100x লাভে এক পর্যায়ে মাইক পরিবর্ধন (আপনি w/ 2 পর্যায় অনুভব করতে পারেন)
  • মেনু নির্বাচনযোগ্য Hamচ্ছিক হামিং উইন্ডো
  • মেনু 4 স্তরের উজ্জ্বলতা সামঞ্জস্য করে
  • মেনু 8 স্তরের নমুনা হার / প্রতিক্রিয়া সময় সমন্বয়
  • 2 x LR44 কয়েন সেল "বোর্ডে" চালিত

ধাপ 1: অংশগুলি অর্জন করুন

এই প্রকল্পের জন্য যা প্রয়োজন তা নিম্নরূপ

  • MSP430G2452 (টিআই লঞ্চপ্যাড G2 থেকে অতিরিক্ত চিপ, অথবা 4K 20 পিন MSP430G সিরিজ MCU)
  • একটি 170 টাই-পয়েন্ট মিনি ব্রেডবোর্ড বা প্রাক- amp নির্মাণের জন্য পারফ বোর্ড
  • TLC272 Dual op-amp
  • মিনি ইলেক্ট্রেট মাইক্রোফোন
  • 47k (পুল-আপ), 100k, 2 x 10k, 1k প্রতিরোধক
  • 1 x 0.1uF
  • জাম্পার তার
  • ব্যাটারি হোল্ডারের জন্য ডাবল সারি পুরুষ পিন হেডার ব্যবহার করা হবে
  • 2 x LR44 কয়েন সেল ব্যাটারি

পদক্ষেপ 2: পরিকল্পনা উপাদান লেআউট

প্রকল্পটি 170 টি-পয়েন্ট মিনি ব্রেডবোর্ডে নির্মিত হবে। উপাদানগুলির বিন্যাস নীচে দেখানো হয়েছে। বিশেষ নোট হল যে 8x8 LED ম্যাট্রিক্স MSP430 MCU এর উপরে স্থাপন করা হবে। উপাদান ছাড়াও, "+------+" অক্ষর দ্বারা চিত্রিত সংযোগকারী জাম্পার তারও রয়েছে।

G V + Gnd (1 পর্যায় বিন্যাস) আমরা এই লেআউট ব্যবহার করছি + ==================================== ===================+ c0 ………… c7 | এমআইসি। । । । । । । + -----++-+। । । । | r0 o o o o o o o o o। | o || o + ----- [100k] --------------- +। । । । । | r1 X o o o o o o o o। | । +--------------+-+। C7 C6 R1 C0 R3 C5 C3 R0 | । o o o o o o o o o | । । । । । । | । । | b6 a7 | | c0 এবং r1 একই পিন শেয়ার করে এবং দেখাবে না | +। +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| *সম্ভাব্য আবেদন c6 + c0 + r1 | | | ভি+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | এটি 32khz xtal ঘড়ির জন্য b6 মুক্ত করবে | | | TLC272 | | | | | | | আউট - + জি | | |+ a0 a1 a2 a3 a4 a5 a5 b0 b1 b2 | | | +। +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| | o || o o o। +-+। । R4 R6 C1 C2 R7 C4 R5 R2 | | । । । । o- [10k]-ও। । । । । । । । । | | । o- [1k] o o o। । । । । । । । ।._। | | o ---- [10k] ----------- ও। । । । । । । o o | +======================================================= ====+.1uF 100k 10k ADC বাটন+ -----------------+

আমরা শুধুমাত্র TLC272 এর একটি পর্যায় ব্যবহার করছি

ধাপ 3: সমাবেশ

সমাবেশ
সমাবেশ
সমাবেশ
সমাবেশ

আপনি রুটিবোর্ড লেআউটের উপর ভিত্তি করে উপাদান স্থাপন শুরু করতে পারেন। যেহেতু এটি ASCII শিল্প তাই খুব স্পষ্ট নাও হতে পারে। আপনি সমস্ত সংযোগ সনাক্ত করতে এই ধাপে ছবি/ w যুক্ত করতে পারেন।

আইসি চিপগুলির অবস্থানের যত্ন নেওয়া উচিত। একটি ডিভাইসের পিন 1 নির্দেশ করার জন্য সাধারণত কোন এক কোণে একটি বিন্দু থাকে।

আমি CAT5 ইথারনেট তারের তার ব্যবহার করেছি এবং সেগুলি রুটিবোর্ড প্রকল্পে কাজ করা খুব সহজ। যদি আপনার পুরানো CAT5 তারের থাকে, আপনি এটি খুলতে পারেন এবং আপনি দেখতে পাবেন ভিতরে 6 টি পাকানো তার রয়েছে। তারা breadboards জন্য নিখুঁত।

ধাপ 4: ফার্মওয়্যার কম্পাইল এবং লোড করুন

সোর্স কোড সাধারণত আমার গিথুব রিপোজিটরিতে থাকে।

এই বিশেষ প্রকল্পের জন্য, একক সি সোর্স ফাইল nfft.c আমার রুটিবোর্ড সংগ্রহের সংগ্রহস্থলে বান্ডিল করা আছে। আপনার শুধু nfft.c প্রয়োজন

আমি ফার্মওয়্যার কম্পাইল করার জন্য mps430-gcc ব্যবহার করছি কিন্তু টিআই সিসিএস এর সাথে এটি ভালভাবে চলতে হবে। আপনি টিআই সিসিএস ক্লাউডে গিয়ে আইডিই বা কম্পাইলার ইনস্টল করার সমস্ত ঝামেলা এড়াতে পারেন, যা একটি ওয়েব ভিত্তিক আইডিই। এটি এমনকি আপনার টার্গেট ডিভাইসে ফার্মওয়্যার ডাউনলোড করবে।

এটি একটি উদাহরণ কম্পাইল কমান্ড w/ সুইচ

msp430 -gcc -Os -Wall -ffunction -section -fdata -section -fno -inline -small -functions -Wl, -Map = nfft.map, -cref -Wl, --relax -Wl, --gc- বিভাগ -I/energia -0101E0016/হার্ডওয়্যার/msp430/cores/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c

আমি MCU প্রোগ্রাম করার জন্য একটি TI Launchpad G2 প্রোগ্রামার হিসেবে ব্যবহার করছি।

ধাপ 5: সার্কিট বুঝুন

সার্কিট বুঝুন
সার্কিট বুঝুন
সার্কিট বুঝুন
সার্কিট বুঝুন

সার্কিট স্কিম্যাটিক নিচে উপস্থাপন করা হয়েছে

MSP430G2452 বা অনুরূপ, 4K ফ্ল্যাশ TLC272 Dual Op-Amp, GBW @1.7Mhz, @x100 gain, 17Khz পর্যন্ত ব্যান্ডউইথ প্রয়োজন

* আমরা শুধুমাত্র TLC272 এর একটি পর্যায় ব্যবহার করছি

._.

| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | |। | Vcc | | | | পুল-আপ (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----। Vcc | 8-+ | | | |। |। |। | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (ব্রেডবোর্ড লেআউট দেখুন) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | | 15 জিপিআইও | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | ম্যাট্রিক্স | ((ও)) |। | | | | _ | | এমআইসি | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | | _ _ | _ /// /// /// ///

LED ড্রাইভিং

LED ম্যাট্রিক্স 8 x 8 এলিমেন্টের। তারা 15 জিপিআইও পিন দ্বারা চালিত হয়। তারা মাল্টিপ্লেক্সড w/ 8 সারি এবং 8 কলাম স্কিম। যেহেতু আমরা ADC ইনপুটের জন্য 1 পিন ব্যবহার করার পর মাত্র 15 টি পিন আছে, মাল্টিপ্লেক্সিংয়ের সারি 1 এবং কলাম 0 একক পিন ভাগ করে। এর মানে হল যে সারি 1 এবং কলাম 0 এ নির্দিষ্ট LED জ্বালানো যাবে না। এটি একটি সমঝোতা কারণ সমস্ত LED উপাদান চালানোর জন্য যথেষ্ট GPIO পিন নেই।

সাউন্ড ক্যাপচার

এডুকেশনাল বুস্টারপ্যাকের অন বোর্ড কনডেন্সার মাইক্রোফোনের মাধ্যমে সাউন্ড ক্যাপচার করা হয়। যেহেতু মাইক্রোফোন সংকেতগুলি ছোট, আমাদের এটিকে এমন স্তরে বাড়ানো দরকার যা msp430 ADC10 w/ যুক্তিসঙ্গত রেজোলিউশন ব্যবহার করতে পারে। আমি এই উদ্দেশ্যে একটি দ্বি-পর্যায়ের অপ-এম্প পরিবর্ধক ব্যবহার করেছি।

অপ-এম্প পরিবর্ধক দুটি পর্যায়ে গঠিত, প্রতিটি w/ a প্রায় 100x লাভ। আমি TLC272 গ্রহণ করেছি কারণ এটি একটি খুব সাধারণ অংশ এবং এটি w/ 3V কাজ করে। লাভ ব্যান্ডউইথ প্রায় 1.7 মেগাহার্টজ হওয়ার অর্থ হল যে আমাদের 100x লাভের জন্য, আমরা কেবল গ্যারান্টি দিতে পারি যে এটি 17Khz এর অধীনে সুন্দরভাবে কাজ করবে (যেমন আমরা লাভটি বজায় রাখব)। (1.7Mhz / 100)।

মূলত আমি এই স্পেকট্রাম বিশ্লেষক 16-20Khz পর্যন্ত পরিমাপ করতে চাই, কিন্তু শেষ পর্যন্ত আমি 8Khz সঙ্গীত দেখানোর জন্য যথেষ্ট ভাল খুঁজে পেয়েছি। এটি LM358 w/ অডিও-রেটেড কিছু প্রতিস্থাপন এবং নমুনা হার পরিবর্তন করে পরিবর্তন করা যেতে পারে। শুধু আপনার বেছে নেওয়া অপ-এম্পস এর লাভ ব্যান্ডউইথ সন্ধান করুন।

নমুনা এবং এফএফটি

ব্যবহৃত FFT ফাংশন হল "fix_fft.c" কোড যা অনেক প্রকল্প গ্রহণ করেছিল, এটি কয়েক বছর ধরে ইন্টারনেটে ঘুরে বেড়াচ্ছে। আমি একটি 16 বিট সংস্করণ এবং একটি 8 বিট সংস্করণ চেষ্টা করেছি। অবশেষে আমি আমার উদ্দেশ্য হিসাবে 8 বিট সংস্করণের জন্য বসতি স্থাপন করেছি, আমি 16 বিট সংস্করণে একটি বড় অগ্রগতি দেখিনি।

এফএফটি মেকানিজম সম্পর্কে আমার ভালো বোঝাপড়া নেই, এটি ফ্রিকোয়েন্সি ডোমেন রূপান্তরের সময় ডোমেন। তার মানে FFT হিসাব ফাংশনে খাওয়ানোর পর শব্দের নমুনার হার (সময়), ফলস্বরূপ আমি যে প্রশস্ততা পাচ্ছি তার ফ্রিকোয়েন্সি প্রভাবিত করবে। তাই হারকে নমুনা শব্দের সাথে সামঞ্জস্য করে, আমি ফলাফল হিসাবে ফ্রিকোয়েন্সি ব্যান্ড নির্ধারণ করতে পারি।

TimerA 0 CCR0 স্যাম্পলিং সময় রাখার জন্য ব্যবহৃত হয়। আমরা প্রথমে ব্যান্ড ফ্রিকোয়েন্সি অর্জনের জন্য আমাদের প্রয়োজনীয় গণনাগুলি নির্ধারণ করি (আমাদের 16 মেগাহার্টজ ডিসি ঘড়ির হারের সাথে সামঞ্জস্যপূর্ণ)। অর্থাৎ TA0CCR0 (8000/(BAND_FREQ_KHZ*2))-1 এ সেট; যেখানে BAND_FREQ_KHZ আমার জন্য 8। যদি আপনি একটি ভাল অপ-amp পান এবং / অথবা এটি ভিন্ন হতে চায় তবে এটি পরিবর্তন করা যেতে পারে।

ফ্রিকোয়েন্সি ব্যান্ড এবং প্রশস্ততা স্কেলিং

ফার্মওয়্যার একটি সুইপে 16 টি ব্যান্ড প্রক্রিয়া করে এবং ক্যাপচার টাইমিং এই ব্যাঙ্কগুলির মধ্যে 500Hz বিভাজন তৈরি করে। LED ম্যাট্রিক্স 8 টি কলামের এবং এটি শুধুমাত্র 8 টি ব্যান্ড / প্রশস্ততা প্রদর্শন করবে। প্রতি দুটি ব্যান্ডের একটি প্রদর্শন করার পরিবর্তে, একটি নন-লিনিয়ার ফ্রিকোয়েন্সি ব্যান্ড তালিকা ব্যবহার করা হয় আরো গতিশীল ফ্রিকোয়েন্সি ব্যান্ডগুলি (সঙ্গীতের ক্ষেত্রে)। তালিকাটি নিম্ন প্রান্তে 500Hz ফাঁক, মাঝের ব্যান্ডগুলিতে 1KHz ফাঁক এবং উচ্চতায় 1.5Khz ব্যান্ড।

পৃথক ব্যান্ডের প্রশস্ততা 8 স্তরে স্কেল করা হয়, যা LED ম্যাট্রিক্স ডিসপ্লেতে অনুভূমিক 'বিন্দুর সংখ্যা দ্বারা প্রতিনিধিত্ব করা হয়। প্রশস্ততা স্তরগুলি একটি অ-রৈখিক মানচিত্রের মাধ্যমে ছোট করা হয় যা FFT ফলাফলগুলিকে 8 এর মধ্যে অনুবাদ করে বিন্দু এক ধরণের লগারিদমিক স্কেলিং ব্যবহার করা হয় কারণ এটি সাউন্ড লেভেল সম্পর্কে আমাদের উপলব্ধিকে সবচেয়ে ভালোভাবে উপস্থাপন করে।

সেখানে অন্তর্নির্মিত AGC যুক্তি আছে এবং বর্ণালী বিশ্লেষক প্রশস্ততার মাত্রা কমানোর চেষ্টা করবে যখন পূর্ববর্তী চক্রগুলিতে একাধিক শিখর স্তর সনাক্ত করা হবে। এটি একটি স্লাইডিং রুলারের সাথে টেবিলের তুলনা করা হয়।

ধাপ 6: ডিভাইসটি পরিচালনা করা

  • কোন বিন্দু, একটি বিন্দু, 2 বিন্দু, এবং 3 বিন্দু প্রদর্শন মাধ্যমে প্রদর্শন মোড চক্র মধ্যে সংক্ষিপ্ত কী প্রেস।
  • লং প্রেস সেটআপ মোডে প্রবেশ করে, পরবর্তীতে দীর্ঘ প্রেস মেনুতে ঘুরতে থাকে।
  • 'হামিং উইন্ডো অপশন', 'ডিমার', 'স্যাম্পলিং / রিফ্রেশ রেট' এর মাধ্যমে মেনু আইটেম চক্র।
  • 'হামিং উইন্ডো' সেটআপ মোডে, কোন হ্যামিং, হ্যামিং 1, হ্যামিং 2, হ্যামিং 3, লম্বা প্রেস সেটিং নিশ্চিত করে।
  • 'ডিমার' সেটআপ মোডে, 0 থেকে 3 পর্যন্ত উপলব্ধ উজ্জ্বলতা স্তরের মাধ্যমে ছোট প্রেস চক্র, দীর্ঘ প্রেস সেটিং নিশ্চিত করে।
  • 'স্যাম্পলিং / রিফ্রেশ রেট' সেটআপ মোডে, উপলভ্য রিফ্রেশ রেটের মাধ্যমে শর্ট প্রেস চক্র 0 থেকে 7, 0 মানে দেরি নয়, লং প্রেস সেটিং নিশ্চিত করে।
  • এলইডি সেগমেন্ট মাল্টিপ্লেক্সিংয়ে পৃথক সারির উজ্জ্বলতার পার্থক্য পূরণ করতে সময় বিলম্ব অন্তর্ভুক্ত।

প্রস্তাবিত: