Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

EKG Analyzer Didukung oleh Edge Impulse

Komponen dan persediaan

Arduino Nano 33 BLE Sense
× 1
SparkFun Single Lead Heart Rate Monitor - AD8232
× 1
ElectroPeak 0.96" Modul Tampilan OLED 64x128
× 1

Alat dan mesin yang diperlukan

Besi solder (generik)
Kawat Solder, Bebas Timah
10 Pc. Kit Kawat Jumper, Panjang 5 cm

Aplikasi dan layanan online

Edge Impulse Studio
MATLAB
Arduino IDE
Microsoft Visual Studio 2017

Tentang proyek ini

Serangan jantung mendadak dan peningkatan kematian :Kekhawatiran yang Bertambah

Dalam satu dekade terakhir, kematian akibat serangan jantung mendadak meningkat pesat.

Khususnya di negara berkembang seperti India, selain genetik dan gaya hidup, kurangnya sumber daya medis di daerah pedesaan menyebabkan sebagian besar kematian akibat serangan jantung.

Kontribusi teknologi untuk memecahkan masalah global ini:

Saya mengerjakan aplikasi TinyML yang diberdayakan oleh Edge Impulse untuk mengembangkan perangkat penganalisis EKG Mini-Diagnosis yang dapat dimasukkan ke dalam saku dan dapat mendiagnosis penyakit jantung secara mandiri tanpa konektivitas cloud.

Hadirkan mesin ECG Analyzer di pasar dan fitur-fiturnya

•Perangkat medis IoT saat ini mengirimkan data EKG massal ke seluler/server dan analisis dilakukan di Aplikasi seluler/prosesor tinggi

•Aplikasi berbasis komputer yang menerima sinyal dari perangkat EKG dan menganalisis pola EKG

•Semua perangkat penganalisis EKG memiliki ketergantungan pada Internet atau komputer dengan pemrosesan tinggi/ Aplikasi seluler.

Jadi ini dapat diringkas dalam grafik di bawah ini;

Solusi Utama

•ECG Analyzer yang didukung oleh Edge Impulse akan menganalisis data EKG tanpa ketergantungan apa pun pada Internet.

•Latensi paling rendah dibandingkan dengan perangkat IoT

•Rom 15Kb - Model TinyML yang Menganalisis EKG dapat berjalan pada mikrokontroler yang didukung TinyML.

•Perangkat akan menganalisis pola EKG dan mengklasifikasikan ke dalam Normal, Fibrilasi Atrium, dan blok jantung Derajat Pertama

Arsitektur

Penganalisis EKG melibatkan

1. Pembacaan EKG menggunakan AD8232

2. Mensimulasikan pola EKG penyakit jantung yang berbeda

3. Pendekatan baru untuk menghasilkan kumpulan data berkualitas

4. Melatih Model

5. Akurasi pengujian model dan Mengintegrasikan kode aplikasi dengan penerapan perpustakaan

Ketahui tentang grafik EKG

Sebelum melanjutkan dengan pekerjaan teknis, terlebih dahulu akan melalui beberapa dasar grafik EKG.

Grafik EKG dibagi menjadi 5 Gelombang - gelombang P, Q, R, S dan T.

Fibrilasi Atrium

Blok Jantung Tingkat Pertama

Mari membangun Penganalisis EKG

1. Pembacaan EKG menggunakan AD8232

Hubungkan sensor EKG AD8232 ke sensor Arduino Nano 33 BLE sesuai diagram koneksi di bawah ini.

Flash kode di bawah ini lalu tekan "Ctrl+Shift+L" untuk memvisualisasikan data streaming grafis.

void setup() {
// menginisialisasi komunikasi serial:
Serial.begin(115200);
pinMode(2, INPUT); // Setup untuk deteksi lead off LO +
pinMode(3, INPUT); // Setup untuk deteksi lead off LO -

}

void loop() {

if((digitalRead(2) ==1) ||(digitalRead(3) ==1)){
Serial.println('!');
}
else{

// kirim nilainya input analog 0:
Serial.println(analogRead(A0));
}
//Tunggu sebentar agar data serial tidak jenuh
delay(5);
}

1.1 Penempatan elektroda EKG

Elektroda EKG ditempatkan di RA, LA dan LL seperti yang disebutkan dalam diagram di atas dan hubungkan jack ke sensor AD8232 pada ECG Analyzer.

2.Mensimulasikan pola EKG yang berbeda menggunakan pembuat sinyal Matlab

Langkah 2.1 :Menyimpan data EKG normal di Excel

Salin dulu dan simpan data serial monitor ke dalam file excel seperti template di bawah ini. Nilai EKG harus di kolom kedua di bawah 'Y'. Kolom pertama adalah deret waktu. itu harus bertambah sebagai ( * 0,005) 5ms.

Langkah 2.2 :Pembuat sinyal di Matlab

Buat model Simulink baru di Matlab

Kemudian ketik 'signal builder' di ruang kerja dan pilih. Sisipkan juga

'lingkup' untuk menghubungkannya ke pembuat sinyal. Silakan lihat tangkapan layar di bawah ini.

Untuk memuat data excel yang disimpan, buka pembuat sinyal dan pilih opsi 'impor dari file'.

Silakan pilih opsi yang disebutkan untuk mengimpor data.

Kemudian konfirmasikan pemilihan dan impor tanpa menyimpan model. karena kita perlu beberapa langkah lagi.

2.3 : Visualisasi Data EKG di pembuat sinyal

A Data EKG 60 detik akan terlihat seperti ini di tampilan pembuat sinyal, Untuk pengeditan manual, Perbesar data selama 5 detik dan lakukan 'tarik' untuk mengedit gelombang EKG.

Setelah Zooming, saat Anda meletakkan penunjuk mouse di dekat gelombang EKG, Anda dapat memilih titik mana pun di EKG dan menyeretnya sesuai kebutuhan aplikasi Anda.

2.4 :Mengedit data interval PR di Pembuat sinyal untuk Kasus AV Blok 1

Saya telah secara manual menyeret gelombang P ke bawah dan menggeser gelombang P jauh sebelum gelombang R, sehingga interval P-R melebihi 200 md.

Ulangi langkah ini di timeline yang berbeda dalam data pembuat sinyal.

Setelah diedit, Ekspor data ke dalam file mat. Anda dapat menemukan opsi ini di pembuat sinyal. Setelah file mat disimpan, silakan ikuti langkah-langkah di bawah ini.

Langkah-langkah yang harus diikuti --> Klik dua kali file mat terlebih dahulu dan klik dua kali Dataset 1x1--> Anda dapat melihat data yang dimodifikasi di bawah Data:1.

Salin dan tempel data di file excel baru.

Langkah 2.5 :Ekspor data excel ke dalam Array

Saya telah menulis skrip a.m yang dapat mengubah data excel menjadi array.

Jalankan skrip ini di Matlab, sebelum menjalankan, ganti ExcelFilename dengan nama file tersimpan lokal Anda dan ExcelSheetName menjadi nama sheet yang sesuai.

data=xlsread('ExcelFilename.xlsx','ExcelSheetName');

ECGExtract=(data(1:end,1)); %%Column A data

fid=fopen('test.txt','wt');%pembukaan dengan tanda t mengonversi otomatis \n ke \r\n di Windows
fprintf(fid,'{');
FormatSpec=[repmat('%i ',1,size(ECGExtract,2)) ','];%atau seharusnya \r\n sebagai gantinya?
fprintf(fid,FormatSpec, ECGExtract);
fprintf(fid,'}')
fclose(fid);

File teks akan dibuat di lokasi direktori saat ini.

Salin konten larik dan tempel di kode ECGAnalyzer.c untuk mensimulasikan fibrilasi atrium dan blok jantung Derajat Pertama.

3. Pendekatan baru untuk menghasilkan kumpulan data berkualitas

Jika Anda melihat data EKG, sangat sulit untuk membedakan kondisi jantung yang berbeda Data EKG dengan data EKG normal dalam waktu yang lebih singkat (contoh:3 detik)

Saat saya melatih model dengan Data EKG Terfilter saja untuk fibrilasi atrium, blok Jantung Normal dan Derajat Pertama, Akurasinya kurang dari 23%. Alasannya adalah di jendela yang lebih pendek model tidak dapat membedakan perbedaannya.

Jika saya menggunakan waktu jendela yang lebih lama, waktu pemrosesan dan penggunaan RAM puncak meningkat cukup banyak. Bahkan Tidak ada akurasi.

Latar Belakang Pendekatan Novel:

Kapan seorang dokter atau orang terlatih mencoba menganalisis grafik EKG, Mereka akan menghitung kotak-kotak kecil antara gelombang R ke R, interval P ke R dan menuliskannya dalam grafik atau mengingatnya untuk perhitungan.

Saya membuat bentuk gelombang terpisah dari data EKG yang difilter.

Bentuk gelombang baru:

  • Interval R-R
  • Interval PR

Set Data yang Dihasilkan untuk EKG Normal data :

Yang interval R-R yang didekodekan dan data interval PR selalu 100 dan 50 untuk Data EKG normal.

Dataset yang Dihasilkan untuk Fibrilasi Atrium- Data EKG:

Kapan pun ada deviasi antara interval RR sebelumnya dan interval RR saat ini, Interval RR data akan diturunkan menjadi -100 untuk satu siklus.

Set Data yang Dihasilkan untuk EKG Blok Jantung Derajat Pertama Data:

Kapan pun interval P ke R melebihi 200 md, maka data Interval PR akan diturunkan menjadi -50 untuk satu siklus.

Pendekatan ini meningkatkan akurasi model saya menjadi lebih dari 90%.

4. Melatih Model di Edge Impulse

Sebelum masuk ke ML pelatihan Edge Impulse, kita perlu mengonfigurasi beberapa parameter dalam file library untuk simulasi dan pembacaan sensor EKG waktu nyata.

langkah4.1 :konfigurasikan SIMULASI ke 0, Jika akuisisi data dari pembacaan sensor EKG waktu nyata

atau

Konfigurasi SIMULASI ke 1, Jika akuisisi data berasal dari data EKG simulasi untuk Fibrilasi Atrium dan Blok Jantung Derajat Pertama ( mengikuti sesi Matlab).

Langkah4.2 :Beri komentar/batalkan komentar pada data yang diperlukan penyangga untuk simulasi

Langkah4.3 :Akuisisi data

Kumpulkan data EKG di bawah tiga label berbeda:Normal, Fibrilasi atrium, dan Blok Jantung Derajat Pertama

https://docs.edgeimpulse.com/docs/arduino-nano-33-ble-sense

dan pilih frekuensi sebagai 202

$ edge-impulse-daemon --frequency 202 

Langkah4.4 :Buat Impuls

Dalam bagian buat impuls, ukuran jendela adalah 3000 ms dan peningkatan jendela adalah 2999 ms, pilih deteksi anomali k-means

Langkah 4.5:Fitur spektral

Dalam fitur spektral, pilih jenis filter sebagai Tidak Ada.

Langkah 4.6 :Pengklasifikasi NN:

Saya telah menetapkan 40 jumlah siklus pelatihan dan kecepatan belajar sebagai 0,005. Saya mendapatkan akurasi 92,9.

dan untuk deteksi anomali, saya telah memilih RMS interval PR dan RMS interval RR.

5. Akurasi &Integrasi uji model

Dalam akurasi uji model, akurasinya sekitar 97%.

5.1 Penerapan:

pilih Arduino sebagai penerapan;

Tambahkan file yang di-deploy EI yang diunduh ke perpustakaan Arduino

Catatan: Tambahkan perpustakaan ECG_Analyzer dari tautan GitHub ke perpustakaan Arduino juga

Ini membantu mengintegrasikan kode algoritme decoding EKG saya untuk diintegrasikan dengan model yang dihasilkan EI.

5.2 Mengintegrasikan kode Aplikasi ke kode EI yang dihasilkan inti

Saya telah menggabungkan kode aplikasi ke dalam EI yang diterapkan "nano_ble33_sense_accelerometer_continuous " dan menyimpannya sebagai ECGAnalyzer.ino.

Ini tersedia di tautan GitHub terlampir. Flash kode dengan SIMULASI sebagai 0 di ECG_Analyzer.c di perangkat.

Perangkat Keras:

Hubungkan sesuai diagram fritzing:

Merakit :

Produk Akhir:

Berikut produk akhir dan tingkat akurasi dalam data uji!!!

Kredit:

EKG :https://geekymedics.com/how-to-read-an-ecg/

Kode

https://github.com/Manivannan-maker/ECGAnalyzer
unzip ECGAnalyzer.zipCode ke Flash:EI_Deployed_Library\examples\ECGAnalyzer\ECGAnalyzer.inoLibrary untuk Edit simulasi :ECGAnalyzer_lib\ecg_analyzer.cSkrip Matlab dan model pembuat sinyal:skrip untuk dijalankan di matlab --> Matlab_Simulation\Excel2\Arrayconverterbuilder. signalbuilder.slxhttps://github.com/Manivannan-maker/ECGAnalyzer

Skema

Hubungkan sesuai diagram ekgdefault_SjMMcgW8jY.fzz

Proses manufaktur

  1. Tiara
  2. Kawat Berduri
  3. Pelacak Toilet (Diberdayakan oleh Walabot)
  4. Demo Pembelajaran Mesin reTerminal (Edge Impulse dan Arm NN)
  5. Truk Mainan Didukung oleh Raspberry Pi
  6. MOSMusic
  7. 6 Jenis Organisasi untuk Memimpin Revolusi Komputasi Edge
  8. Mesin Jaring Kawat Heksagonal
  9. Pengantar pemotongan kawat
  10. Apa itu Pemotongan Kawat CNC?