Daftar Isi:

Stetoskop Spektral Transform Hartley Cepat: 22 Langkah
Stetoskop Spektral Transform Hartley Cepat: 22 Langkah

Video: Stetoskop Spektral Transform Hartley Cepat: 22 Langkah

Video: Stetoskop Spektral Transform Hartley Cepat: 22 Langkah
Video: Image Resolutions in Remote Sensing | Spatial , Spectral , Temporal & Radiometric | Full Explanation 2024, Juli
Anonim
Stetoskop Spektral Transform Hartley Cepat
Stetoskop Spektral Transform Hartley Cepat

Dalam instruksi ini Anda akan belajar cara membuat stetoskop spektral menggunakan transformasi hartley cepat. Ini dapat digunakan untuk memvisualisasikan suara jantung dan paru-paru.

Langkah 1: Bahan

Layar LCD 1,8” ($7,50 di Amazon)

Arduino Uno atau Setara ($7,00 di Gearbest)

Electret Amplifier ($6,95 untuk Adafruit)

Kapasitor 100 F ($0,79)

Kawat dan Jumper ($4.00)

Jack Stereo 3,5mm ($ 1,50)

Potensiometer 10kOhm ($2.00)

Saklar Sesaat ($1,50)

Langkah 2: Alat

Solder Besi

Pistol lem panas

Printer 3D…atau teman yang punya printer 3D (Bisa juga dibuat dari karton)

Alat pemotong kawat

Papan tempat memotong roti

Langkah 3: Pencetakan 3D

Yang pertama adalah mencetak 3D file.stl yang dilampirkan pada langkah ini. Saya mencetak kedua file menggunakan materi/pengaturan berikut:

Bahan: PLA

Tinggi Lapisan: 0.1mm

Tebal Dinding/Atas/Bawah: 0.8mm

Suhu Pencetakan: 200⁰C

Suhu Tempat Tidur: 60⁰C

Dukungan Diaktifkan @ 10%

Langkah 4: Bangun Sirkuit

Menggunakan komponen di bagian bahan, buat sirkuit. Saya selalu menyatukan sirkuit di papan tempat memotong roti terlebih dahulu untuk memastikannya berfungsi dengan baik sebelum menyentuh besi solder.

Langkah 5: Kabel LCD

Kabel LCD
Kabel LCD

Dengan menggunakan gambar yang dilampirkan pada langkah ini, solder kabel ke tujuh dari delapan pin pada layar LCD. Kabel ini harus memiliki panjang sekitar 3 kaki, kecuali untuk ground dan pin +5V (ini hanya perlu 2-3 inci)

Langkah 6: Kabel Mikrofon / Amplifier

Kabel Mikrofon/Amplifier
Kabel Mikrofon/Amplifier

Dengan menggunakan gambar yang dilampirkan pada langkah ini, solder tiga kabel ke pin +5V, Ground, dan Out pada mikrofon/amplifier Adafruit. Ini hanya perlu sekitar 2-3 inci panjangnya.

Langkah 7: Pengkabelan Sakelar Sesaat

Hubungkan satu kabel 2-3 inci ke masing-masing dari dua lug pada sakelar sesaat.

Langkah 8: Pengkabelan Potensiometer

Menggunakan gambar di langkah 6, solder tiga kabel dengan panjang sekitar 2-3 inci ke tiga lug potensiometer.

Langkah 9: Kabel Jack Headphone

Solder tiga kabel ke ring, tip, dan lug selongsong jack headphone. Saya menggunakan jack dari metronom yang sudah terhubung. Jika Anda tidak tahu apa itu ring, tip, dan sleeve lug, googling saja ada banyak gambar bagus tentang wiring stereo jacks.

Langkah 10: Output Mikrofon / Amplifier

Setelah menyolder kabel pada mic/amp, potensiometer, dan jack headphone, solder satu kabel dengan panjang sekitar tiga kaki ke kabel "keluar" dari amplifier mikrofon. Kawat ini nantinya akan disambungkan ke pin A0 arduino.

Langkah 11: Output Mikrofon / Amplifier Lanjutan

Solder kabel kedua ke kabel "keluar" mikrofon/amplifier. Kawat ini perlu disolder ke kapasitor 100 mikroFarad. Jika Anda menggunakan kapasitor elektrolitik, pastikan sisi positif terhubung ke kabel ini.

Langkah 12: Komponen dalam Enclosure

Komponen dalam Enklosur
Komponen dalam Enklosur
Komponen dalam Enklosur
Komponen dalam Enklosur

Setelah semua kabel disolder pada komponen, letakkan komponen di tempatnya masing-masing mengikuti gambar yang terlampir pada langkah ini. Saya menggunakan lem panas untuk mengamankan mikrofon dan jack headphone di tempatnya.

Langkah 13: In-Enclosure-Soldering

Setelah semua komponen diamankan di enklosur, solder semua kabel ground bersama-sama. Harus ada satu dari LCD, satu dari mic/amp, dan satu dari lengan jack headphone. Juga solder kabel +5V bersama-sama dan satu kabel dari sakelar sesaat. Sekali lagi harus ada satu dari LCD, satu dari mic/amplifier, dan satu lagi di sakelar sesaat.

Langkah 14: +5V, Kabel Perpanjangan GND

Sekarang potong dua potong kawat dengan panjang sekitar 3 kaki. Solder satu ke sekelompok kabel ground dan solder yang lain ke kabel terbuka pada sakelar sesaat.

Langkah 15: Selipkan Kabel Panjang Melalui Lubang Kandang

Selipkan Kabel Panjang Melalui Lubang Kandang
Selipkan Kabel Panjang Melalui Lubang Kandang

Sekarang, Anda harus memiliki total delapan kabel dengan panjang sekitar 3 kaki. Tempatkan ini melalui lubang yang tidak terisi di enklosur. Lihat gambar terlampir pada langkah ini

Langkah 16: Panas Menyusut

Setelah semua penyolderan selesai, pastikan kabel yang terbuka tertutup. Saya menggunakan tabung panas menyusut, tetapi pita listrik juga berfungsi dengan baik.

Langkah 17: Kandang Segel

Kandang segel
Kandang segel
Kandang segel
Kandang segel

Ambil setengah dari selungkup yang berisi layar LCD dan selipkan di atas bagian lain dari selungkup yang berisi komponen lainnya. Sambil mendorong kedua bagian menjadi satu, rekatkan dengan lem panas untuk menyatukan penutupnya.

Langkah 18: Hubungkan ke Arduino

Delapan, panjang, kabel yang tersisa terhubung langsung ke pin Arduino masing-masing yang diuraikan dalam skema rangkaian. Pastikan bahwa setiap kali Anda menyolder salah satu kabel sepanjang 3 kaki itu ke dalam sirkuit, Anda menempelkan selotip di ujung yang lain yang menunjukkan pin Arduino yang digunakannya!

Langkah 19: Arduino IDE/Perpustakaan

Anda harus mengunduh Arduino IDE. Untuk sketsa ini, saya menggunakan tiga library yang berbeda: FHT.h, SPI.h, dan TFT.h. Jika Anda tidak tahu cara mengunduh perpustakaan Arduino, silakan lihat https://www.arduino.cc/en/Guide/Libraries. Pustaka FHT.h diunduh dari openmusicabs.com. Dua lainnya diunduh di GitHub.

Langkah 20: Sketsa Arduino

Kode menggunakan Fast Hartley Transform (FHT) untuk mengubah domain waktu ke domain frekuensi. Ini juga dapat dilakukan dengan menggunakan Fast Fourier Transform (FFT), tetapi FHT jauh lebih cepat. FFT dan FHT adalah ide yang sangat mendasar dalam pemrosesan sinyal dan sangat menyenangkan untuk dipelajari. Saya sarankan untuk membaca sendiri, jika Anda tertarik, lihat. Contoh kode FHT yang saya salin dari situs web Open Music Labs awalnya mengeluarkan amplitudo setiap nampan frekuensi sebagai keluaran logaritmik atau desibel. Saya mengubah ini untuk menampilkan nampan frekuensi pada skala linier. Ini karena skala linier adalah representasi visual yang lebih baik tentang bagaimana manusia mendengar suara. Loop for() di bagian akhir adalah untuk menggambar amplitudo setiap nampan frekuensi pada layar LCD. Spektrum FHT penuh akan mencakup semua frekuensi dari i=0 sampai i<128. Anda akan melihat bahwa for() loop saya dari i=5 ke i<40, ini karena frekuensi penting untuk mendiagnosis kondisi paru-paru biasanya antara 150Hz dan 3.5khz, saya memutuskan untuk naik ke sekitar 4kHz. Itu dapat disesuaikan jika Anda ingin menampilkan spektrum frekuensi penuh.

[kode]

//Kode Stetoskop Digital

// Pustaka Fast Hartley Transform diunduh dari openmusiclabs

#define LIN_OUT 1 //set FHT untuk menghasilkan output linier

#define LOG_OUT 0 //matikan keluaran logaritma FHT

#define FHT_N 256 //nomor sampel FHT

#include //sertakan perpustakaan FHT

#sertakan //sertakan perpustakaan TFT

#include //sertakan perpustakaan SPI

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

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

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

TFT myScreen = TFT(cs, dc, rst);//deklarasikan nama layar TFT

batalkan pengaturan() {

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

myScreen.begin();//menginisialisasi layar TFT

myScreen.background(0, 0, 0);//set background menjadi hitam

ADCSRA=0xe5;//setel adc ke mode berjalan bebas

ADMUX=0x40;//gunakan adc0

}

lingkaran kosong() {

while(1){ // mengurangi jitter cli(); // Interupsi UDRE melambat seperti ini pada arduino1.0

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

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

ADCSRA = 0xf5; // mulai ulang adc byte

m = ADCL; // ambil byte data adc

j = ADCH; int k = (j << 8) | M; // bentuk menjadi int

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

k<<= 6; // bentuk menjadi 16b masuk ke

fht_input = k; // masukkan data asli ke dalam bin

}

fht_jendela(); // jendela data untuk respons frekuensi yang lebih baik

fht_reorder(); // menyusun ulang data sebelum melakukan fht

fht_run(); // memproses data di 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);

}

}

[/kode]

Langkah 21: Ujilah

Uji!
Uji!

Saya menggunakan generator nada online (https://www.szynalski.com/tone-generator/) untuk memastikan kode berfungsi dengan baik. Setelah memastikan berfungsi, tekan bel stetoskop ke dada Anda, tarik napas dalam-dalam dan lihat frekuensi apa yang ada!!

Langkah 22: Pekerjaan Masa Depan

**Catatan: Saya seorang ahli kimia, bukan insinyur atau ilmuwan komputer**. Kemungkinan akan ada kesalahan dan perbaikan pada desain dan kode. Karena itu, saya pikir ini adalah awal yang baik untuk sesuatu yang bisa menjadi sangat berguna dan murah. Poin-poin berikut adalah perbaikan di masa mendatang yang ingin saya lakukan dan saya harap beberapa dari Anda juga mencoba memperbaikinya!

· Jadikan perangkat mobile. Saya tidak memiliki pengalaman yang luas dengan CPU atau mikrokontroler lainnya, tetapi perlu memiliki cukup memori untuk menyimpan seluruh perpustakaan FHT, atau mungkin Bluetooth.

· Perkenalkan beberapa perhitungan analisis statistik ke dalam kode. Misalnya, biasanya mengi memiliki frekuensi dasar yang sama atau lebih besar dari 400 Hz dan berlangsung setidaknya 250 ms. Rhonchi terjadi pada frekuensi dasar sekitar 200 Hz atau kurang dan berlangsung setidaknya 250 ms. Banyak suara paru lainnya didefinisikan dan menunjukkan kondisi kesehatan (https://commongiant.github.io/iSonea-Physicians/assets/publications/7_ISN-charbonneau-Euro-resp-Jour-1995-1942-full.pdf). Saya pikir itu adalah sesuatu yang dapat diperiksa dalam kode dengan membandingkan sinyal tempat frekuensi setelah sejumlah siklus melalui FHT dan kemudian menjalankan fungsi millis() untuk melihat berapa lama ia hadir, lalu membandingkannya ke lantai kebisingan dari perhitungan FHT. Saya yakin hal-hal ini bisa dilakukan!

Saya harap Anda semua bersenang-senang dengan proyek ini dan jika Anda memiliki pertanyaan, silakan beri komentar dan saya akan merespons sesegera mungkin! Saya berharap untuk melihat komentar.

Direkomendasikan: