সুচিপত্র:

ফাস্ট হার্টলি ট্রান্সফর্ম স্পেকট্রাল স্টেথোস্কোপ: 22 টি ধাপ
ফাস্ট হার্টলি ট্রান্সফর্ম স্পেকট্রাল স্টেথোস্কোপ: 22 টি ধাপ

ভিডিও: ফাস্ট হার্টলি ট্রান্সফর্ম স্পেকট্রাল স্টেথোস্কোপ: 22 টি ধাপ

ভিডিও: ফাস্ট হার্টলি ট্রান্সফর্ম স্পেকট্রাল স্টেথোস্কোপ: 22 টি ধাপ
ভিডিও: 23rd JANUARY 2024 CURRENT AFFAIRS @4.15PM | International, National, Odisha News | For All EXAMS 2024, জুলাই
Anonim
ফাস্ট হার্টলি ট্রান্সফর্ম স্পেকট্রাল স্টেথোস্কোপ
ফাস্ট হার্টলি ট্রান্সফর্ম স্পেকট্রাল স্টেথোস্কোপ

এই নির্দেশে আপনি শিখবেন কিভাবে দ্রুত হার্টলি ট্রান্সফর্ম ব্যবহার করে বর্ণালী স্টেথোস্কোপ তৈরি করতে হয়। এটি হার্ট এবং ফুসফুসের শব্দগুলি কল্পনা করতে ব্যবহার করা যেতে পারে।

ধাপ 1: উপকরণ

1.8 LCD স্ক্রিন (আমাজনে $ 7.50)

Arduino Uno বা সমতুল্য (গিয়ারবেস্টে $ 7.00)

ইলেক্ট্রেট এম্প্লিফায়ার (অ্যাডাফ্রুটে $ 6.95)

100 µF ক্যাপাসিটর ($ 0.79)

ওয়্যার এবং জাম্পার ($ 4.00)

3.5 মিমি স্টিরিও জ্যাক ($ 1.50)

10kOhm Potentiometer ($ 2.00)

ক্ষণস্থায়ী সুইচ ($ 1.50)

ধাপ 2: সরঞ্জাম

তাতাল

গরম আঠা বন্দুক

3D প্রিন্টার … অথবা 3D প্রিন্টার সহ বন্ধু (কার্ডবোর্ড দিয়েও তৈরি করা সম্ভব)

তার কর্তনকারী

ব্রেডবোর্ড

ধাপ 3: 3D মুদ্রণ

প্রথমটি হল এই ধাপে সংযুক্ত.stl ফাইলগুলি 3D মুদ্রণ করা। আমি নিম্নলিখিত উপাদান/সেটিংস ব্যবহার করে উভয় ফাইল মুদ্রণ করেছি:

উপাদান: পিএলএ

স্তর উচ্চতা: 0.1 মিমি

প্রাচীর/শীর্ষ/নীচের বেধ: 0.8 মিমি

মুদ্রণ তাপমাত্রা: 200⁰C

বিছানার তাপমাত্রা: 60⁰C

সমর্থন সক্ষম @ 10%

ধাপ 4: সার্কিট তৈরি করুন

উপকরণ বিভাগে উপাদানগুলি ব্যবহার করে, সার্কিট তৈরি করুন। সোল্ডারিং লোহা স্পর্শ করার আগে এটি সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করার জন্য আমি সর্বদা সার্কিটটি প্রথমে একটি ব্রেডবোর্ডে রাখি।

ধাপ 5: এলসিডি ওয়্যারিং

এলসিডি তারের
এলসিডি তারের

এই ধাপে সংযুক্ত চিত্রটি ব্যবহার করে, এলসিডি স্ক্রিনে আটটি পিনের সাতটিতে সোল্ডার তারগুলি। এই তারের দৈর্ঘ্য প্রায় 3 ফুট হতে হবে, মাটি এবং +5V পিন ব্যতীত (এগুলি কেবল 2-3 ইঞ্চি হওয়া দরকার)

ধাপ 6: মাইক/এম্প্লিফায়ার ওয়্যারিং

মাইক/এম্প্লিফায়ার ওয়্যারিং
মাইক/এম্প্লিফায়ার ওয়্যারিং

অ্যাডাফ্রুট মাইক্রোফোন/এম্প্লিফায়ারে +5V, গ্রাউন্ড এবং আউট পিনের সাথে এই স্টেপ সোল্ডার তিনটি তারের সংযুক্ত চিত্র ব্যবহার করে। এগুলির দৈর্ঘ্য প্রায় 2-3 ইঞ্চি হওয়া দরকার।

ধাপ 7: ক্ষণস্থায়ী সুইচ তারের

ক্ষণস্থায়ী সুইচে দুটি লগের প্রতিটিতে একটি 2-3 ইঞ্চি তারের তার।

ধাপ 8: Potentiometer তারের

ধাপ 6-এ চিত্রটি ব্যবহার করে, তিনটি তারের দৈর্ঘ্যে প্রায় 2-3 ইঞ্চি পোটেন্টিওমিটারের তিনটি লগে সোল্ডার করুন।

ধাপ 9: হেডফোন জ্যাক ওয়্যারিং

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

ধাপ 10: মাইক্রোফোন/পরিবর্ধক আউটপুট

মাইক/এমপি, পোটেন্টিওমিটার এবং হেডফোন জ্যাকের তারের সোল্ডার করার পরে, মাইক্রোফোন এম্প্লিফায়ারের "আউট" তারের সাথে প্রায় তিন ফুট দৈর্ঘ্যের একটি তারের সোল্ডার করুন। এই তারটি পরে arduino এর A0 পিনের সাথে সংযুক্ত হবে।

ধাপ 11: মাইক্রোফোন/পরিবর্ধক আউটপুট অব্যাহত

মাইক/এম্প্লিফায়ারের "আউট" তারের জন্য একটি দ্বিতীয় তারের সোল্ডার করুন। এই তারের একটি 100 microFarad ক্যাপাসিটরের বিক্রি করা প্রয়োজন। আপনি যদি একটি ইলেক্ট্রোলাইটিক ক্যাপাসিটর ব্যবহার করেন, তাহলে নিশ্চিত করুন যে ইতিবাচক দিকটি এই তারের সাথে সংযুক্ত।

ধাপ 12: ঘের মধ্যে উপাদান

ঘের মধ্যে উপাদান
ঘের মধ্যে উপাদান
ঘের মধ্যে উপাদান
ঘের মধ্যে উপাদান

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

ধাপ 13: ইন-এনক্লোজার-সোল্ডারিং

সমস্ত উপাদানগুলি ঘেরের মধ্যে সুরক্ষিত হওয়ার পরে, সমস্ত স্থল তারগুলি একসঙ্গে সোল্ডার করুন। এলসিডি থেকে একটি, মাইক/এমপি থেকে একটি এবং হেডফোন জ্যাকের হাতা থেকে একটি হওয়া উচিত। এছাড়াও +5V তারের একসঙ্গে এবং ক্ষণস্থায়ী সুইচ থেকে একটি তারের ঝালাই। আবার এলসিডি থেকে একটি, মাইক/এম্প্লিফায়ার থেকে একটি এবং ক্ষণস্থায়ী সুইচ থেকে একটি হওয়া উচিত।

ধাপ 14: +5V, GND এক্সটেন্ডেড ওয়্যার

এখন প্রায় feet ফুট দৈর্ঘ্যের তারের দুটি টুকরো কেটে নিন। স্থল তারের ক্লাস্টারে একটিকে সোল্ডার করুন এবং অন্যটিকে ক্ষণস্থায়ী সুইচে খোলা তারের সাথে সোল্ডার করুন।

ধাপ 15: ঘেরের ছিদ্রের মাধ্যমে লম্বা তারগুলি স্লিপ করুন

ঘের ছিদ্র মাধ্যমে দীর্ঘ তারের স্লিপ
ঘের ছিদ্র মাধ্যমে দীর্ঘ তারের স্লিপ

এখন, আপনার মোট আটটি তারের দৈর্ঘ্য প্রায় 3 ফুট হওয়া উচিত। ঘেরের অপূর্ণ গর্তের মাধ্যমে এগুলি রাখুন। এই ধাপে সংযুক্ত চিত্রটি দেখুন

ধাপ 16: তাপ সঙ্কুচিত

সমস্ত সোল্ডারিং সম্পন্ন হওয়ার পরে, নিশ্চিত করুন যে উন্মুক্ত তারগুলি আবৃত রয়েছে। আমি তাপ সঙ্কুচিত পাইপ ব্যবহার করেছি, কিন্তু বৈদ্যুতিক টেপও সূক্ষ্ম কাজ করে।

ধাপ 17: সীল ঘের

সীল ঘের
সীল ঘের
সীল ঘের
সীল ঘের

এলসিডি স্ক্রিন ধারণকারী ঘেরের অর্ধেকটি নিন এবং অন্যান্য উপাদান ধারণকারী ঘেরের অর্ধেকের উপরে স্লিপ করুন। দুটি টুকরা একসাথে ঠেলে দেওয়ার সময়, ঘেরটি একসাথে সুরক্ষিত করতে তাদের গরম আঠালো করুন।

ধাপ 18: Arduino এর সাথে সংযোগ করুন

সার্কিট স্কিম্যাটিক্সে বর্ণিত আটটি, লম্বা, তারগুলি সরাসরি তাদের নিজ নিজ Arduino পিনের সাথে সংযুক্ত। নিশ্চিত করুন যে প্রতিবার যখন আপনি সেই লম্বা 3ft তারের একটিকে সার্কিটে erালেন যেটি আপনি অন্য প্রান্তে টেপের একটি টুকরো রাখেন যা নির্দেশ করে যে এটি Arduino পিনে যায়!

ধাপ 19: Arduino IDE/লাইব্রেরি

আপনাকে Arduino IDE ডাউনলোড করতে হবে। এই স্কেচের জন্য, আমি তিনটি ভিন্ন লাইব্রেরি ব্যবহার করেছি: FHT.h, SPI.h, এবং TFT.h. আপনি যদি Arduino লাইব্রেরিগুলি ডাউনলোড করতে না জানেন, তাহলে দয়া করে https://www.arduino.cc/en/Guide/Libraries দেখুন। FHT.h লাইব্রেরি openmusiclabs.com থেকে ডাউনলোড করা হয়েছে। বাকি দুটি গিটহাব থেকে ডাউনলোড করা হয়েছিল।

ধাপ 20: Arduino স্কেচ

টাইম ডোমেইনকে ফ্রিকোয়েন্সি ডোমেইনে পরিবর্তনের জন্য কোডটি ফাস্ট হার্টলি ট্রান্সফর্ম (FHT) ব্যবহার করে। এটি ফাস্ট ফুরিয়ার ট্রান্সফর্ম (এফএফটি) ব্যবহার করেও করা যেতে পারে তবে এফএইচটি অনেক দ্রুত। এফএফটি এবং এফএইচটি সিগন্যাল প্রসেসিংয়ের খুব মৌলিক ধারণা এবং এটি সম্পর্কে জানতে খুব মজাদার। আমি আপনার নিজের কিছু পড়ার পরামর্শ দিচ্ছি, যদি আপনি আগ্রহী হন তাহলে দেখুন। ওপেন মিউজিক ল্যাবস ওয়েবসাইট থেকে আমি যে FHT উদাহরণ কোডটি কপি করেছি তা প্রাথমিকভাবে প্রতিটি ফ্রিকোয়েন্সি বিনের প্রশস্ততাকে লগারিদমিক বা ডেসিবেল আউটপুট হিসাবে আউটপুট করছিল। আমি একটি রৈখিক স্কেলে ফ্রিকোয়েন্সি বিন আউটপুট করতে এটি পরিবর্তন করেছি। এর কারণ হল, রৈখিক স্কেল হল মানুষ কীভাবে শব্দ শুনতে পারে তার একটি ভাল চাক্ষুষ উপস্থাপন। শেষে () জন্য লুপ LCD স্ক্রিনে প্রতিটি ফ্রিকোয়েন্সি বিনের প্রশস্ততা অঙ্কনের জন্য। সম্পূর্ণ এফএইচটি বর্ণালী i = 0 থেকে i <128 পর্যন্ত সমস্ত ফ্রিকোয়েন্সি বিন অন্তর্ভুক্ত করবে। আপনি লক্ষ্য করবেন যে আমার for () লুপটি i = 5 থেকে i <40 পর্যন্ত, এর কারণ হল ফুসফুসের অবস্থা নির্ণয়ের জন্য গুরুত্বপূর্ণ ফ্রিকোয়েন্সিগুলি সাধারণত 150Hz এবং 3.5khz এর মধ্যে থাকে, আমি প্রায় 4kHz পর্যন্ত যাওয়ার সিদ্ধান্ত নিয়েছি। যদি আপনি পূর্ণ ফ্রিকোয়েন্সি বর্ণালী দেখাতে চান তবে এটি সামঞ্জস্য করা যেতে পারে।

[কোড]

// ডিজিটাল স্টেথোস্কোপ কোড

// ফাস্ট হার্টলি ট্রান্সফর্ম লাইব্রেরি ওপেনমিউজিকল্যাব থেকে ডাউনলোড করা হয়েছে

#ডিফাইন LIN_OUT 1 // রৈখিক আউটপুট উৎপাদনের জন্য FHT সেট করুন

#ডিফাইন LOG_OUT 0 // FHT লগারিদমিক আউটপুট বন্ধ করুন

#FHT_N 256 // FHT নমুনা নম্বর নির্ধারণ করুন

#অন্তর্ভুক্ত // এফএইচটি লাইব্রেরি অন্তর্ভুক্ত করুন

#অন্তর্ভুক্ত // টিএফটি লাইব্রেরি অন্তর্ভুক্ত করুন

#অন্তর্ভুক্ত // এসপিআই লাইব্রেরি অন্তর্ভুক্ত করুন

#define cs 10 // set lcd cs pin to arduino pin 10

#ডিসি 9 নির্ধারণ করুন // এলসিডি ডিসি পিনকে আরডুইনো পিন 9 এ সেট করুন

#define rst 8 // set lcd reset pin to arduino pin 8

টিএফটি মাইস্ক্রিন = টিএফটি (সিএস, ডিসি, আরএসটি); // টিএফটি স্ক্রিনের নাম ঘোষণা করুন

অকার্যকর সেটআপ() {

//Serial.begin(9600);//set নমুনা হার

myScreen.begin (); // TFT স্ক্রিন শুরু করুন

myScreen.background (0, 0, 0); // কালো ব্যাকগ্রাউন্ড সেট করুন

ADCSRA = 0xe5; // এডিসি ফ্রি রানিং মোডে সেট করুন

ADMUX = 0x40; // adc0 ব্যবহার করুন

}

অকার্যকর লুপ () {

যখন (1) {// ঝাঁকুনি cli () হ্রাস করে; // UDRE বাধা arduino1.0 এ এইভাবে ধীর হয়ে যায়

জন্য (int i = 0; i <FHT_N; i ++) {// 256 টি নমুনা সংরক্ষণ করুন

যখন (! (ADCSRA & 0x10)); // এডিসি প্রস্তুত হওয়ার জন্য অপেক্ষা করুন

ADCSRA = 0xf5; // এডিসি বাইট পুনরায় চালু করুন

m = ADCL; // এডিসি ডেটা বাইট আনুন

j = ADCH; int k = (j << 8) | মি; // একটি int মধ্যে ফর্ম

k -= 0x0200; // একটি স্বাক্ষরিত int- এ ফর্ম

k << = 6; // 16b স্বাক্ষরিত int- এ ফর্ম

fht_input = k; // আসল তথ্য ডাবের মধ্যে রাখুন

}

fht_window (); // ভাল ফ্রিকোয়েন্সি প্রতিক্রিয়া জন্য তথ্য উইন্ডো

fht_reorder (); // এফএইচটি করার আগে ডেটা পুনরায় সাজান

fht_run (); // এফএইচটিতে ডেটা প্রক্রিয়া করুন

fht_mag_lin (); // fht এর আউটপুট নিন

sei ();

জন্য (int i = 5; i <40; i ++) {

myScreen.stroke (255, 255, 255);

myScreen.fill (255, 255, 255);

int drawHeight = মানচিত্র (fht_lin_out , 10, 255, 10, myScreen.height ());

int ypos = myScreen.height ()-drawHeight-8; myScreen.rect ((4*i) +8, ypos, 3, drawHeight);

}

myScreen.background (0, 0, 0);

}

}

[/কোড]

ধাপ 21: এটি পরীক্ষা করুন

এটি পরীক্ষা করুন!
এটি পরীক্ষা করুন!

কোডটি সঠিকভাবে কাজ করছে তা নিশ্চিত করতে আমি একটি অনলাইন টোন জেনারেটর (https://www.szynalski.com/tone-generator/) ব্যবহার করেছি। এটি কাজ করছে তা নিশ্চিত করার পর, আপনার বুক পর্যন্ত স্টেথোস্কোপের ঘণ্টা টিপুন, গভীর নিheশ্বাস নিন এবং দেখুন কোন ফ্রিকোয়েন্সি আছে !!

ধাপ 22: ভবিষ্যতের কাজ

** দ্রষ্টব্য: আমি একজন রসায়নবিদ, ইঞ্জিনিয়ার বা কম্পিউটার বিজ্ঞানী নই ** নকশা এবং কোডে সম্ভবত ভুল এবং উন্নতি হবে। বলা হচ্ছে, আমি মনে করি এটি এমন একটি ভাল শুরু যা খুব দরকারী এবং সস্তা হতে পারে। নিম্নলিখিত গুলিগুলি ভবিষ্যতের উন্নতি যা আমি করতে চাই এবং আমি আশা করি আপনারা কেউ কেউ এটি উন্নত করার চেষ্টা করবেন!

The ডিভাইসটি মোবাইল করুন। সিপিইউ বা অন্যান্য মাইক্রোকন্ট্রোলার নিয়ে আমার ব্যাপক অভিজ্ঞতা নেই, তবে পুরো এফএইচটি লাইব্রেরি বা সম্ভবত ব্লুটুথ সংরক্ষণের জন্য যথেষ্ট মেমরি থাকা প্রয়োজন।

Stat কোডে কিছু পরিসংখ্যান বিশ্লেষণ গণনা প্রবর্তন করুন। উদাহরণস্বরূপ, সাধারণত একটি হুইজের মৌলিক ফ্রিকোয়েন্সি 400 Hz এর সমান বা বেশি এবং কমপক্ষে 250 ms পর্যন্ত স্থায়ী হয়। Rhonchi প্রায় 200 Hz বা তার কম মৌলিক ফ্রিকোয়েন্সি এ ঘটে এবং কমপক্ষে 250 ms পর্যন্ত স্থায়ী হয়। অন্যান্য অনেক পালমোনারি শব্দ সংজ্ঞায়িত এবং স্বাস্থ্যের অবস্থার নির্দেশক (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf)। আমি মনে করি এটি এমন কিছু যা কোডটিতে FHT এর মাধ্যমে নির্দিষ্ট সংখ্যক চক্রের পরে ফ্রিকোয়েন্সি বিনের সংকেত তুলনা করে পরীক্ষা করা যায় এবং তারপর মিলিস () ফাংশনটি চালানোর জন্য এটি কতক্ষণ উপস্থিত ছিল তা দেখার জন্য, তারপর এটি তুলনা এফএইচটি গণনার গোলমাল পর্যন্ত। আমি আত্মবিশ্বাসী এই কাজগুলো করা যাবে!

আমি আশা করি আপনারা সবাই এই প্রকল্পের সাথে মজা করেছেন এবং যদি আপনার কোন প্রশ্ন থাকে দয়া করে মন্তব্য করুন এবং আমি যত তাড়াতাড়ি সম্ভব সাড়া দেব! আমি মন্তব্য দেখার জন্য উন্মুখ।

প্রস্তাবিত: