Isi kandungan:

Stetoskop Spektrum Transform Hartley Cepat: 22 Langkah
Stetoskop Spektrum Transform Hartley Cepat: 22 Langkah

Video: Stetoskop Spektrum Transform Hartley Cepat: 22 Langkah

Video: Stetoskop Spektrum Transform Hartley Cepat: 22 Langkah
Video: the normal stethoscope convert into digital stethoscope 2024, Julai
Anonim
Stetoskop Spektrum Transform Hartley Cepat
Stetoskop Spektrum Transform Hartley Cepat

Dalam arahan ini anda akan belajar bagaimana membuat stetoskop spektral menggunakan transformasi hartley cepat. Ini dapat digunakan untuk menggambarkan suara jantung dan paru-paru.

Langkah 1: Bahan

Skrin LCD 1.8 ($ 7.50 di Amazon)

Arduino Uno atau Setaraf ($ 7.00 di Gearbest)

Electret Amplifier ($ 6.95 untuk Adafruit)

Kapasitor 100 µF ($ 0,79)

Kawat dan Pelompat ($ 4.00)

Jack Stereo 3.5mm ($ 1.50)

Potensiometer 10kOhm ($ 2.00)

Suis Sekejap ($ 1.50)

Langkah 2: Alat

Besi pematerian

Senapang Gam Panas

Pencetak 3D … atau rakan dengan pencetak 3D (Mungkin juga dibuat dengan kadbod)

Pemotong wayar

Papan roti

Langkah 3: Percetakan 3D

Yang pertama adalah mencetak 3D fail.stl yang dilampirkan pada langkah ini. Saya mencetak kedua-dua fail menggunakan bahan / tetapan berikut:

Bahan: PLA

Ketinggian Lapisan: 0.1mm

Ketebalan Dinding / Atas / Bawah: 0.8mm

Suhu Percetakan: 200⁰C

Suhu Tempat Tidur: 60⁰C

Sokongan Diaktifkan @ 10%

Langkah 4: Bina Litar

Dengan menggunakan komponen di bahagian bahan, bina litar. Saya selalu meletakkan litar di papan roti terlebih dahulu untuk memastikan ia berfungsi dengan baik sebelum menyentuh besi pematerian.

Langkah 5: Pendawaian LCD

Pendawaian LCD
Pendawaian LCD

Dengan menggunakan gambar yang dilampirkan pada langkah ini, kabel solder ke tujuh daripada lapan pin pada skrin LCD. Kawat ini panjangnya kira-kira 3 kaki, kecuali tanah dan pin + 5V (ini hanya perlu 2-3 inci)

Langkah 6: Pendawaian Mic / Amplifier

Pendawaian Mic / Amplifier
Pendawaian Mic / Amplifier

Dengan menggunakan gambar yang dilampirkan pada langkah ini, pateri tiga wayar ke pin +5V, Ground, dan Out pada mikrofon / penguat Adafruit. Panjangnya hanya kira-kira 2-3 inci.

Langkah 7: Pendawaian Suis Momen

Kawat satu wayar 2-3 inci ke setiap dua lug pada suis sesaat.

Langkah 8: Pendawaian Potensiometer

Dengan menggunakan gambar pada langkah 6, pateri tiga wayar dengan panjang kira-kira 2-3 inci ke tiga lug potensiometer.

Langkah 9: Pendawaian Jack Headphone

Pateri tiga wayar ke gelang, hujung, dan pelindung lengan pada bicu fon kepala. Saya menggunakan bicu keluar dari metronom yang sudah berwayar. Sekiranya anda tidak tahu apa itu cincin, hujung, dan pelindung lengan, hanya google sahaja terdapat banyak gambar yang baik mengenai bicu stereo pendawaian.

Langkah 10: Output Mikrofon / Penguat

Setelah menyolder wayar pada mikrofon / amp, potensiometer, dan bicu fon kepala, pateri satu wayar sepanjang tiga kaki ke wayar "keluar" penguat mikrofon. Kawat ini kemudian akan disambungkan ke pin A0 arduino.

Langkah 11: Output Mikrofon / Penguat Diteruskan

Pateri wayar kedua ke wayar "keluar" mikrofon / penguat. Kawat ini perlu disolder ke kapasitor 100 mikroFarad. Sekiranya anda menggunakan kapasitor elektrolitik, pastikan sisi positif disambungkan ke wayar ini.

Langkah 12: Komponen dalam Lampiran

Komponen dalam Lampiran
Komponen dalam Lampiran
Komponen dalam Lampiran
Komponen dalam Lampiran

Setelah semua wayar disolder pada komponen, letakkan komponen di tempat masing-masing mengikut gambar yang dilampirkan pada langkah ini. Saya menggunakan lem panas untuk memasang mikrofon dan bicu fon kepala di tempatnya.

Langkah 13: Pematerian Dalam Kandang

Setelah semua komponen dilekatkan di dalam kandang, pasangkan semua kabel tanah bersama-sama. Harus ada satu dari LCD, satu dari mikrofon / amp, dan satu dari lengan bicu fon kepala. Pateri juga wayar + 5V dan satu wayar dari suis sesaat. Sekali lagi harus ada satu dari LCD, satu dari mikrofon / penguat, dan satu dari suis sesaat.

Langkah 14: + 5V, WND Extended Wires

Sekarang potong dua kepingan dawai dengan panjang kira-kira 3 kaki. Pateri satu ke sekumpulan wayar tanah dan pateri yang lain ke wayar terbuka pada suis sesaat.

Langkah 15: Selipkan Kawat Panjang Melalui Lubang Penutup

Selipkan Kawat Panjang Melalui Lubang Penutup
Selipkan Kawat Panjang Melalui Lubang Penutup

Sekarang, anda mesti mempunyai lapan wayar sepanjang 3 kaki. Letakkan ini melalui lubang yang tidak diisi di kandang. Lihat gambar yang dilampirkan pada langkah ini

Langkah 16: Panaskan Pengecutan

Setelah semua pematerian selesai, pastikan wayar yang terdedah ditutup. Saya menggunakan tiub penyusutan panas, tetapi pita elektrik juga berfungsi dengan baik.

Langkah 17: Penutup Seal

Kandang meterai
Kandang meterai
Kandang meterai
Kandang meterai

Ambil separuh kandang yang mengandungi skrin LCD dan selipkannya di atas separuh kandang yang mengandungi komponen lain. Semasa menyatukan kedua-dua kepingan itu, tempelkan panas untuk melekatkan penutupnya.

Langkah 18: Sambung ke Arduino

Lapan, panjang wayar yang tersisa disambungkan terus ke pin Arduino masing-masing yang digariskan dalam skema litar. Pastikan bahawa setiap kali anda memasangkan salah satu wayar sepanjang 3 kaki ke dalam litar, anda meletakkan sekeping pita di hujung yang lain menunjukkan pin Arduino ke mana!

Langkah 19: Arduino IDE / Perpustakaan

Anda perlu memuat turun Arduino IDE. Untuk lakaran ini, saya menggunakan tiga perpustakaan yang berbeza: FHT.h, SPI.h, dan TFT.h. Sekiranya anda tidak tahu memuat turun perpustakaan Arduino, sila lihat https://www.arduino.cc/en/Guide/Libraries. Perpustakaan FHT.h dimuat turun dari openmusiclabs.com. Dua yang lain dimuat turun di GitHub.

Langkah 20: Lakaran Arduino

Kod tersebut menggunakan Fast Hartley Transform (FHT) untuk menukar domain masa menjadi domain frekuensi. Ini juga boleh dilakukan dengan menggunakan Fast Fourier Transform (FFT), tetapi FHT jauh lebih pantas. FFT dan FHT adalah idea yang sangat asas dalam pemprosesan isyarat dan sangat menyeronokkan untuk dipelajari. Saya cadangkan anda membaca sendiri, jika anda berminat. Kod contoh FHT yang saya salin dari laman web Open Music Labs pada mulanya mengeluarkan amplitud setiap tong frekuensi sebagai output logaritmik atau desibel. Saya menukar ini untuk mengeluarkan tong frekuensi pada skala linear. Ini kerana skala linear adalah gambaran visual yang lebih baik tentang bagaimana manusia mendengar bunyi. Gelung untuk () di hujung adalah untuk melukis amplitud setiap tong frekuensi pada skrin LCD. Spektrum FHT penuh akan merangkumi semua tong frekuensi dari i = 0 hingga i <128. Anda akan melihat bahawa gelung untuk () saya adalah dari i = 5 hingga i <40, ini kerana frekuensi yang penting untuk mendiagnosis keadaan paru-paru biasanya antara 150Hz dan 3.5khz, saya memutuskan untuk mencapai sekitar 4kHz. Itu boleh disesuaikan jika anda ingin menunjukkan spektrum frekuensi penuh.

[kod]

// Kod Stetoskop Digital

// Perpustakaan Fast Hartley Transform dimuat turun dari openmusiclabs

#tentukan LIN_OUT 1 // tetapkan FHT untuk menghasilkan output linear

#tentukan LOG_OUT 0 // matikan output logaritma FHT

#tentukan FHT_N 256 // Nombor sampel FHT

#masuk // sertakan perpustakaan FHT

#sertakan // sertakan perpustakaan TFT

#masuk // sertakan perpustakaan SPI

#define cs 10 // tetapkan pin lcd cs ke pin arduino 10

#define dc 9 // tetapkan pin lcd dc ke pin arduino 9

#define rst 8 // tetapkan pin reset lcd ke arduino pin 8

TFT myScreen = TFT (cs, dc, rst); // nyatakan nama skrin TFT

batal persediaan () {

//Serial.begin(9600);//set sampling rate

myScreen.begin (); // memulakan skrin TFT

myScreen.background (0, 0, 0); // tetapkan latar belakang menjadi hitam

ADCSRA = 0xe5; // tetapkan adc ke mod berjalan percuma

ADMUX = 0x40; // gunakan adc0

}

gelung kosong () {

sementara (1) {// mengurangkan jitter cli (); // Gangguan UDRE melambatkan cara ini pada arduino1.0

untuk (int i = 0; i <FHT_N; i ++) {// simpan 256 sampel

sementara (! (ADCSRA & 0x10)); // tunggu adc siap

ADCSRA = 0xf5; // mulakan semula bait adc

m = ADCL; // ambil bait data adc

j = IKLAN; int k = (j << 8) | m; // bentuk menjadi int

k - = 0x0200; // bentuk menjadi int yang ditandatangani

k << = 6; // bentuk menjadi int 16b yang ditandatangani

fht_input = k; // masukkan data sebenar ke dalam tong sampah

}

fht_window (); // tetingkap data untuk tindak balas frekuensi yang lebih baik

fht_reorder (); // susun semula data sebelum melakukan fht

fht_run (); // memproses data dalam fht

fht_mag_lin (); // ambil output dari fht

sei ();

untuk (int i = 5; i <40; i ++) {

myScreen.stroke (255, 255, 255);

myScreen.fill (255, 255, 255);

int drawHeight = peta (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);

}

}

[/kod]

Langkah 21: Cubalah

Uji Ia!
Uji Ia!

Saya menggunakan penjana nada dalam talian (https://www.szynalski.com/tone-generator/) untuk mengesahkan kod berfungsi dengan betul. Setelah mengesahkan ia berfungsi, tekan loceng stetoskop hingga ke dada anda, tarik nafas dalam-dalam dan lihat frekuensi apa yang ada !!

Langkah 22: Kerja Masa Depan

** Catatan: Saya seorang ahli kimia, bukan jurutera atau saintis komputer **. Kemungkinan terdapat kesilapan dan penambahbaikan pada reka bentuk dan kod. Oleh itu, saya rasa ini adalah permulaan yang baik untuk sesuatu yang akhirnya menjadi sangat berguna dan murah. Peluru berikut adalah penambahbaikan masa depan yang ingin saya buat dan saya harap ada di antara anda yang juga berusaha memperbaikinya!

· Jadikan peranti mudah alih. Saya tidak mempunyai pengalaman luas dengan CPU atau mikrokontroler lain, tetapi perlu mempunyai cukup memori untuk menyimpan keseluruhan perpustakaan FHT, atau mungkin Bluetooth.

· Memperkenalkan beberapa pengiraan analisis statistik ke dalam kod. Sebagai contoh, biasanya wheeze mempunyai frekuensi asas sama atau lebih besar daripada 400 Hz dan berlangsung sekurang-kurangnya 250 ms. Rhonchi berlaku pada frekuensi asas sekitar 200 Hz atau kurang dan berlangsung sekurang-kurangnya 250 ms. Banyak bunyi paru-paru lain ditentukan dan menunjukkan keadaan kesihatan (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Saya rasa itu adalah sesuatu yang dapat diperiksa dalam kod dengan membandingkan isyarat tong frekuensi setelah sebilangan kitaran melalui FHT dan kemudian menjalankan fungsi milis () untuk melihat berapa lama ia ada, kemudian membandingkannya ke tingkat kebisingan pengiraan FHT. Saya yakin perkara ini dapat dilakukan!

Saya harap anda semua bersenang-senang dengan projek ini dan jika anda mempunyai sebarang pertanyaan, sila komen dan saya akan bertindak balas secepat mungkin! Saya tidak sabar untuk melihat komen.

Disyorkan: