Სარჩევი:

სწრაფი ჰარტლის ტრანსფორმირება სპექტრალური სტეტოსკოპი: 22 ნაბიჯი
სწრაფი ჰარტლის ტრანსფორმირება სპექტრალური სტეტოსკოპი: 22 ნაბიჯი

ვიდეო: სწრაფი ჰარტლის ტრანსფორმირება სპექტრალური სტეტოსკოპი: 22 ნაბიჯი

ვიდეო: სწრაფი ჰარტლის ტრანსფორმირება სპექტრალური სტეტოსკოპი: 22 ნაბიჯი
ვიდეო: Она всю жизнь любила того, кто её предал#ВИВЬЕН ЛИ История жизни#биография 2024, ივლისი
Anonim
სწრაფი ჰარტლის გარდაქმნის სპექტრალური სტეტოსკოპი
სწრაფი ჰარტლის გარდაქმნის სპექტრალური სტეტოსკოპი

ამ ინსტრუქციებში თქვენ შეისწავლით თუ როგორ უნდა გააკეთოთ სპექტრალური სტეტოსკოპი სწრაფი ჰარტლის გარდაქმნის გამოყენებით. ეს შეიძლება გამოყენებულ იქნას გულისა და ფილტვების ბგერების ვიზუალიზაციისთვის.

ნაბიჯი 1: მასალები

1.8”LCD ეკრანი ($ 7.50 ამაზონზე)

Arduino Uno ან ექვივალენტი ($ 7.00 Gearbest– ზე)

ელექტროტექნიკის გამაძლიერებელი ($ 6.95 ადაფრუტზე)

100 μF კონდენსატორი ($ 0.79)

მავთულები და მხტუნავები ($ 4.00)

3.5 მმ სტერეო ჯეკი ($ 1.50)

10 კმ პოტენციტომეტრი ($ 2.00)

მომენტალური გადართვა ($ 1.50)

ნაბიჯი 2: ინსტრუმენტები

გასაყიდი რკინა

ცხელი წებოს იარაღი

3D პრინტერი… ან მეგობარი 3D პრინტერით (შესაძლებელია მუყაოს დამზადებაც)

მავთულის საჭრელი

პურის დაფა

ნაბიჯი 3: 3D ბეჭდვა

პირველი არის ამ ნაბიჯზე თანდართული.stl ფაილების 3D ბეჭდვა. მე დავბეჭდე ორივე ფაილი შემდეგი მასალის/პარამეტრების გამოყენებით:

მასალა: PLA

ფენის სიმაღლე: 0.1 მმ

კედელი/ზედა/ქვედა სისქე: 0.8 მმ

ბეჭდვის ტემპერატურა: 200⁰C

საწოლის ტემპერატურა: 60⁰C

მხარდაჭერა ჩართულია @ 10%

ნაბიჯი 4: შექმენით წრე

მასალების განყოფილების კომპონენტების გამოყენებით, ააშენეთ წრე. მე ყოველთვის ვდებ ჩამრთველს პურის დაფაზე, რათა დავრწმუნდე, რომ ის სწორად მუშაობს, სანამ შედუღების რკინას შეხებ.

ნაბიჯი 5: LCD გაყვანილობა

LCD გაყვანილობა
LCD გაყვანილობა

ამ საფეხურზე მიმაგრებული ფიგურის გამოყენებით შეაერთეთ მავთულები LCD ეკრანზე რვა პინიდან შვიდზე. ეს მავთულები უნდა იყოს დაახლოებით 3 ფუტი სიგრძისა, გარდა მიწისა და +5V ქინძისთავებისა (ეს მხოლოდ 2-3 ინჩი უნდა იყოს)

ნაბიჯი 6: მიკროფონის/გამაძლიერებლის გაყვანილობა

მიკროფონის/გამაძლიერებლის გაყვანილობა
მიკროფონის/გამაძლიერებლის გაყვანილობა

ამ საფეხურზე მიმაგრებული ფიგურის გამოყენებით შეაერთეთ სამი მავთული +5V, Ground და Out ქინძისთავებზე Adafruit მიკროფონზე/გამაძლიერებელზე. ეს მხოლოდ 2-3 სანტიმეტრის სიგრძის უნდა იყოს.

ნაბიჯი 7: მომენტალური გადართვის გაყვანილობა

მიამაგრეთ ერთი 2-3 ინჩიანი მავთული თითოეულ ორ ბორბალზე მომენტალური გადამრთველით.

ნაბიჯი 8: პოტენომეტრის გაყვანილობა

მე -6 საფეხურის ფიგურის გამოყენებით, შეაერთეთ სამი მავთული დაახლოებით 2-3 სანტიმეტრი სიგრძის პოტენციომეტრის სამ მარყუჟზე.

ნაბიჯი 9: ყურსასმენის ჯეკის გაყვანილობა

შეაერთეთ სამი მავთული ყურსასმენის ჯეკის ბეჭედზე, წვერზე და ყდის სამაგრზე. მე გამოვიყენე ჯეკი მეტრონომიდან, რომელიც უკვე სადენიანი იყო. თუ არ იცით რა არის ბეჭედი, წვერი და ყდის ბუდეები, უბრალოდ google– ში არის ბევრი კარგი სურათი სტერეო ჯეკების გაყვანილობის შესახებ.

ნაბიჯი 10: მიკროფონის/გამაძლიერებლის გამომავალი

მიკროფონ/გამაძლიერებელზე, პოტენომეტრზე და ყურსასმენის ჯეკზე მავთულის შედუღების შემდეგ, შეაერთეთ ერთი მავთული დაახლოებით სამი ფუტის სიგრძით მიკროფონის გამაძლიერებლის "გარეთ" მავთულზე. ეს მავთული მოგვიანებით იქნება დაკავშირებული არდუინოს A0 პინთან.

ნაბიჯი 11: გრძელდება მიკროფონის/გამაძლიერებლის გამოსვლა

შეაერთეთ მეორე მავთული მიკროფონის/გამაძლიერებლის "გარეთ" მავთულზე. ეს მავთული უნდა გაიყოს 100 მიკროფარადის კონდენსატორზე. თუ თქვენ იყენებთ ელექტროლიტურ კონდენსატორს, დარწმუნდით, რომ დადებითი მხარე უკავშირდება ამ მავთულს.

ნაბიჯი 12: კომპონენტები დანართში

კომპონენტები დანართში
კომპონენტები დანართში
კომპონენტები დანართში
კომპონენტები დანართში

მას შემდეგ, რაც ყველა მავთული შედუღდება კომპონენტებზე, მოათავსეთ კომპონენტები შესაბამის ადგილას, ამ საფეხურზე მიმაგრებული ფიგურების შემდეგ. მე გამოვიყენე ცხელი წებო მიკროფონის და ყურსასმენის ჯეკის დასაფიქსირებლად.

ნაბიჯი 13: დანართი-შედუღება

მას შემდეგ, რაც ყველა კომპონენტი დამაგრებულია საკანში, შეაერთეთ ყველა მიწის მავთული ერთად. უნდა იყოს ერთი LCD– დან, ერთი მიკროფონიდან/გამაძლიერებელიდან და ერთი ყურსასმენის ჯეკის ყდისგან. ასევე შეაერთეთ +5V მავთულები ერთად და ერთი მავთული მომენტალური გადამრთველიდან. ისევ უნდა იყოს ერთი LCD– დან, ერთი მიკროფონიდან/გამაძლიერებელიდან და ერთი მომენტალური გადამრთველიდან.

ნაბიჯი 14: +5V, GND გაფართოებული მავთულები

ახლა გაჭერით ორი ცალი მავთული დაახლოებით 3 ფუტის სიგრძისა. შეაერთეთ ერთი გრუნტის მავთულის მტევანზე და შეაერთეთ მეორე ღია მავთულზე მომენტალურ გადართვაზე.

ნაბიჯი 15: გადაიტანეთ გრძელი მავთულები გარეთა ხვრელში

გადაიტანეთ გრძელი მავთულები შიგთავსის ხვრელში
გადაიტანეთ გრძელი მავთულები შიგთავსის ხვრელში

ახლა თქვენ უნდა გქონდეთ სულ რვა მავთული დაახლოებით 3 ფუტის სიგრძისა. მოათავსეთ ეს დანართი დაუმთავრებელი ხვრელის მეშვეობით. იხილეთ ამ საფეხურზე მიბმული ფიგურა

ნაბიჯი 16: სითბოს შემცირება

მას შემდეგ, რაც შედუღება დასრულებულია, დარწმუნდით, რომ მავთულები დაფარულია. მე გამოვიყენე სითბოს შესამცირებელი მილები, მაგრამ ელექტრული ლენტიც კარგად მუშაობს.

ნაბიჯი 17: ბეჭდის დანართი

ბეჭედი დანართი
ბეჭედი დანართი
ბეჭედი დანართი
ბეჭედი დანართი

აიღეთ LCD ეკრანის შემცველი შიგთავსის ნახევარი და გადაიტანეთ იგი სხვა კომპონენტების შემცველი შიგთავსის მეორე ნახევარზე. სანამ ორ ნაჭერს ერთად უბიძგებთ, ცხელი წებოთი მიამაგრეთ შიგთავსის ერთად.

ნაბიჯი 18: დაუკავშირდით არდუინოს

დარჩენილი რვა, გრძელი მავთული უშუალოდ უკავშირდება მათ შესაბამის არდუინოს ქინძისთავებს, რომლებიც ასახულია წრიულ სქემაში. დარწმუნდით, რომ ყოველ ჯერზე, როდესაც ერთ -ერთ იმ გრძელი 3 მ სიგრძის მავთულს შეაერთებთ წრეში, მეორე მხარეს დააწებებთ ფირზე, სადაც მითითებულია რა არდუინოს პინზე მიდის!

ნაბიჯი 19: Arduino IDE/ბიბლიოთეკები

თქვენ უნდა გადმოწეროთ Arduino IDE. ამ ესკიზისთვის მე გამოვიყენე სამი განსხვავებული ბიბლიოთეკა: FHT.h, SPI.h და TFT.h. თუ არ იცით როგორ ჩამოტვირთოთ Arduino ბიბლიოთეკები, გთხოვთ იხილოთ https://www.arduino.cc/en/Guide/Libraries. FHT.h ბიბლიოთეკა გადმოწერილია openmusiclabs.com– დან. დანარჩენი ორი გადმოწერილი იქნა GitHub– ზე.

ნაბიჯი 20: არდუინოს ესკიზი

კოდი იყენებს სწრაფი ჰარტლის ტრანსფორმაციას (FHT) დროის დომენის სიხშირის დომენად შესაცვლელად. ეს ასევე შეიძლება გაკეთდეს სწრაფი ფურიეს ტრანსფორმაციის (FFT) გამოყენებით, მაგრამ FHT ბევრად უფრო სწრაფია. FFT და FHT არის ძალიან ფუნდამენტური იდეები სიგნალის დამუშავებაში და მათი სწავლა ძალიან სახალისოა. მე გირჩევთ წაიკითხოთ საკუთარი თავი, თუ დაინტერესდებით ნახეთ. FHT მაგალითი კოდი, რომელიც მე გადაწერილი მაქვს ღია მუსიკალური ლაბორატორიების ვებგვერდიდან, თავდაპირველად გამოსცემდა თითოეული სიხშირის კოლოფის ამპლიტუდას, როგორც ლოგარითმული ან დეციბელის გამომუშავებას. მე შევცვალე ეს, რომ გამოვყო სიხშირის ურნები ხაზოვანი მასშტაბით. ეს იმიტომ ხდება, რომ წრფივი მასშტაბი არის უკეთესი ვიზუალური წარმოდგენა იმის შესახებ, თუ როგორ ესმით ადამიანები ხმას. ბოლოს () მარყუჟი არის LCD ეკრანზე თითოეული სიხშირის კოლოფის ამპლიტუდის დახატვისთვის. სრული FHT სპექტრი მოიცავდა ყველა სიხშირის ბინებს i = 0 -დან i <128 -მდე. თქვენ შეამჩნევთ, რომ ჩემი for () მარყუჟი არის i = 5 -დან i <40 -მდე, ეს იმიტომ ხდება, რომ ფილტვების მდგომარეობის დიაგნოსტიკისთვის მნიშვნელოვანი სიხშირეებია, როგორც წესი, 150Hz- დან 3.5khz- მდე, მე გადავწყვიტე, დაახლოებით 4kHz– მდე ავიდე. ეს შეიძლება მორგებული იყოს, თუ გსურთ აჩვენოთ სრული სიხშირის სპექტრი.

[კოდი]

// ციფრული სტეტოსკოპის კოდი

// სწრაფი ჰარტლის ტრანსფორმირების ბიბლიოთეკა გადმოწერილი openmusiclabs– დან

#განსაზღვრეთ LIN_OUT 1 // დააყენეთ FHT ხაზოვანი გამომუშავების წარმოებისთვის

#განსაზღვრეთ LOG_OUT 0 // გამორთეთ FHT ლოგარითმული გამომავალი

#განსაზღვრეთ FHT_N 256 // FHT ნიმუშის ნომერი

#მოიცავს // მოიცავს FHT ბიბლიოთეკას

#მოიცავს // მოიცავს TFT ბიბლიოთეკას

#მოიცავს // მოიცავს SPI ბიბლიოთეკას

#განსაზღვრეთ cs 10 // დააყენეთ lcd cs pin arduino pin 10 -ზე

#განსაზღვრეთ dc 9 // დააყენეთ lcd dc pin arduino pin 9 -ზე

#განსაზღვრეთ პირველი 8 // დააყენეთ LCD გადატვირთვის pin arduino pin 8 -ზე

TFT myScreen = TFT (cs, dc, rst); // TFT ეკრანის სახელის გამოცხადება

void setup () {

// სერიული.დაწყება (9600);// შერჩევის შერჩევის მაჩვენებელი

myScreen.begin (); // TFT ეკრანის ინიციალიზაცია

myScreen.background (0, 0, 0); // დააყენეთ ფონი შავზე

ADCSRA = 0xe5; // დააყენეთ ადკ თავისუფალ რეჟიმში

ADMUX = 0x40; // გამოიყენეთ adc0

}

ბათილი მარყუჟი () {

ხოლო (1) {// ამცირებს jitter cli (); // UDRE შეფერხება ანელებს ამ გზით arduino1.0– ზე

for (int i = 0; i <FHT_N; i ++) {// შეინახეთ 256 ნიმუში

ხოლო (! (ADCSRA & 0x10)); // დაელოდეთ სანამ adc მზად იქნება

ADCSRA = 0xf5; // გადატვირთეთ adc ბაიტი

მ = ADCL; // adc მონაცემების ბაიტის მოტანა

j = ADCH; int k = (j << 8) | მ; // ჩამოყალიბდეს ინტ

k -= 0x0200; // ჩამოყალიბდეს ხელმოწერილ ინტად

k << = 6; // ფორმა 16 ბ ხელმოწერილი ინტ

fht_input = k; // რეალური მონაცემების ჩასმა ყუთებში

}

fht_window (); // ფანჯარა მონაცემების უკეთესი სიხშირის რეაგირებისთვის

fht_reorder (); // გადააკეთეთ მონაცემები fht– ის გაკეთებამდე

fht_run (); // მონაცემების დამუშავება fht

fht_mag_lin (); // აიღეთ fht- ის გამომავალი

სეი ();

for (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/) იმის დასადასტურებლად, რომ კოდი მუშაობს გამართულად. მუშაობის დადასტურების შემდეგ დააჭირეთ სტეტოსკოპის ზარს მკერდზე, ღრმად ჩაისუნთქეთ და ნახეთ რა სიხშირეებია !!

ნაბიჯი 22: მომავალი სამუშაო

** შენიშვნა: მე ქიმიკოსი ვარ და არა ინჟინერი ან კომპიუტერის მეცნიერი **. სავარაუდოდ იქნება შეცდომები და გაუმჯობესება დიზაინსა და კოდში. როგორც ითქვა, მე ვფიქრობ, რომ ეს არის კარგი დასაწყისი იმისთვის, რაც შეიძლება აღმოჩნდეს ძალიან სასარგებლო და იაფი. შემდეგი ტყვიები არის მომავალი გაუმჯობესებები, რომელთა გაკეთებაც მსურს და იმედი მაქვს, რომ ზოგიერთი თქვენგანი ასევე შეეცდება მის გაუმჯობესებას!

· გახადეთ მოწყობილობა მობილური. მე არ მაქვს დიდი გამოცდილება პროცესორებთან ან სხვა მიკროკონტროლებთან, მაგრამ მას უნდა ჰქონდეს საკმარისი მეხსიერება მთლიანი FHT ბიბლიოთეკის შესანახად, ან შესაძლოა Bluetooth.

· რამდენიმე სტატისტიკური ანალიზის გაანგარიშება კოდში. მაგალითად, ჩვეულებრივ ხიხინი ფუნდამენტური სიხშირეა 400 ჰც -ზე მეტი ან მეტი და გრძელდება მინიმუმ 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– ს გარკვეული რაოდენობის ციკლის შემდეგ და შემდეგ გაუშვით millis () ფუნქცია, რომ ნახოთ რამდენ ხანს იყო იგი, შემდეგ კი შეადაროთ იგი FHT გამოთვლის ხმაურის იატაკამდე. დარწმუნებული ვარ, ეს ყველაფერი შეიძლება გაკეთდეს!

ვიმედოვნებ, რომ ყველამ გაერთეთ ამ პროექტით და თუ თქვენ გაქვთ რაიმე შეკითხვები გთხოვთ დაწეროთ კომენტარი და მე გიპასუხებთ რაც შეიძლება მალე! მოუთმენლად ველი კომენტარების ნახვას.

გირჩევთ: