Buongiorno a tutti,
sono il papà di una bimba "speciale" che durante la notte ha spesso delle crisi epilettiche.
Abbiamo già un "anellino" che monitora costantemente frequenza cardiaca e saturazione ma purtroppo le ultime crisi si manifestano in maniera differente e sia la frequenza che la saturazione non vengono alterate.
L'unico segnale per intercettare in tempo queste crisi è quindi tramite il respiro che improvvisamente diventa affannoso e veloce.
Avevo pensato quindi che forse sarebbe possibile riconoscere un determinato pattern sonoro al rilevamento del quale basterebbe emettere un piccolo suono di allarme.
Ho cercato online qualcosa di simile ma non ho trovato nulla che possa fare al caso nostro e allora ho pensato di procedere in autonomia tramite Arduino.
Il mio background informatico mi porta ad avere una discreta conoscenza del C++ ed in generale del mondo della programmazione. Ho invece una conoscenza quasi nulla di tutta la parte elettronica.
A questo stadio iniziale del "progetto" mi basterebbe qualche consiglio di alto livello sulla fattibilità e sui componenti da utilizzare. Poi ovviamente qualunque consiglio è ben accetto.
Benvenuto, Marcolino, nella sezione Italiana del forum!
Cortesemente, leggi attentamente il REGOLAMENTO di detta sezione: [REGOLAMENTO] Come usare questa sezione del forum
(... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15)
e poi, come da suddetto regolamento (punto 16.7), fai la tua presentazione IN CODA ALL'APPOSITA DISCUSSIONE: Presentazioni nuovi iscritti: fatevi conoscere da tutti! (Part 2)
spiegando bene quali esperienze hai in elettronica e in programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.
Vedo che ti sei già presentato: quella puoi lasciarla, ma devi metterla anche dove indicato.
Ti ricordo che, purtroppo, fino a quando non avrai fatto la presentazione dove indicato, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto.
Questa secondo me è un'applicazione in cui può esserti di aiuto un algoritmo di machine learning.
Il produttore di schede Seeed Studio ha più di un tutorial sull'argomento perché vende diversi prodotti che si prestano a quest'applicazione.
Ad esempio questo potrebbe essere una buona base di partenza anche se orientato al riconoscimento di parole.
Considera che lo stesso tipo di hardware è montato anche sul'Arduino Nano 33 BLE Sense (nRF52840 e microfono PDM). Risulta comodo perché il microfono PDM è già a bordo, ma se ne può aggiungere anche uno esterno eventualmente se hai una MCU che ne è sprovvista.
La Seeed Studio produce anche il modello XIAO Sense basato su ESP32-S3 che ha anche il WiFi nel caso servisse.
Edit: Questo tutorial mi sembra ancora più indicato. Il Wio Terminal è sempre un prodotto Seeed Studio basato su SAMD21 ed altre componenti
Pensiero da neurologo epilettologo digiuno di elettronica: considera anche di leggere non il respiro, ma l'attività cerebrale con una sorta di micro-EEG. Due elettrodi, forse anche uno solo più la massa, dovrebbero essere sufficienti, dato che quello che vi interessa è 'solo' differenziare lo stato di crisi da quello di non-crisi. Se Arduino può leggere tensioni dell'ordine dei microvolt, e applicare dei filtri passa-basso e passa-alto, può funzionare, ancor più se associato a un sistema di riconoscimento a rete neurale o machine learning per differenziare i due stati. La sensibilità e attendibilità sarebbero quasi certamente maggiori di un sistema basato sul respiro. Ma, scusa se mi permetto di chiedertelo, perché volete monitorare le crisi nel sonno? Temete crisi troppo lunghe o continue, o uno stato di male? Per nel caso intervenire con il diazepam? Se sono troppo invadente naturalmente ignora queste domande.
Le schede di sviluppo "Arduino like" cosi come sono non riuscirebbero mai a leggere segnali di questo ordine di grandezza in modo affidabile.
E' necessario acquisirli ed amplificarli in modo opportuno con dell'hardware aggiuntivo.
Di sicuro esistono dei moduli pronti all'uso per rilevare l'attività cardiaca, per quella celebrale non ne ho idea (), ma non mi sentirei di escluderlo.
Grazie mille innanzitutto,
effettivamente era l'altra opzione che avevo in mente. La vedo però di difficile applicazione, primo perchè tecnicamente credo sia più difficile da implementare, secondo perchè gli elettrodi da applicare ogni notte oltre ad essere "scomodi" durerebbero pochi minuti .
Temiamo di non intercettre in tempo o del tutto una crisi visto che si manifestano solitamente verso le 4 di notte e non tramite "scosse" ma assenze, la bimba quindi rimane immobile e l'unico segno distintivo è il respiro affannato. Saturazione ok, battito altino ma ok.
Grazie per le informazioni, sono un principiante con Arduino. Sì, in effetti sulla cute i segnali ECG sono in millivolt mentre quelli EEG sono microvolt. Tuttavia ricordo che un mio collega (professore di neurologia fortissimo in elettronica: costruisce robot per divertimento!) aveva realizzato un semplice ed economico sistema di registrazione EEG a due elettrodi fatto-in-casa. A questo punto non con Arduino, evidentemente.
Puoi tenere l'opzione EEG di riserva in caso quella del respiro non risulti fattibile o soddisfacente: sono abbastanza sicuro che quella EEG sia fattibile -- magari non con Arduino, v. la mia risposta a cotestatnt. Gli elettrodi si possono tenere al loro posto con una fascia elastica morbida o con un collante al collodio. Ma soprattutto: da quel che mi sembra di capire le crisi sono assenze (assenze complesse o crisi parziali complesse, immagino, comunque senza movimenti rilevanti), non danno alterazioni della saturazione di ossigeno, e si verificano a letto ovvero in un ambiente sicuro. Se è così potete anche non sentirvi angosciati dalla necessità di monitorarle (a meno che dobbiate registrarne la frequenza per riferirla ai curanti per regolare la terapia).
No, attenzione non dico che non va bene Arduino, ma che bisogna aggiungere un po' di elettronica esterna.
Considera che il convertitore analogico/digitale incluso nel micro è da soli 10 bit.
Usando una tensione di riferimento di 5V come impostato di default hai 5V/2^10=4.8mV di risoluzione. Le cose migliorano un po' impostando la Vref ad 1.1V, ma siamo comunque sullo stesso ordine di grandezza.
Nel settembre 1986, sul numero 9 della rivista Progetto, è stato presentato un antirussatore. Fondamentalmente uno stadio di amplificazione con microfono, seguito da uno squadratore trigger e da una logica discreta con temporizzatori e contatori, in grado di riconoscere rumori periodici di una certa durata e dare... la sveglia.
Il caso non è lo stesso, sia per il diverso tipo di rumore, sia per la grande differenza di intensità (nel caso del russare) rispetto al silenzio.
Tuttavia è interessante vedere che anche per quella applicazione (dal punto di vista sonoro più semplice) hanno previsto uno stadio amplificatore in tensione con un guadagno regolabile fino a 48 mila volte, prelevando il segnale da una capsula elettrete preamplificata che già di per sé produce un segnale molto più forte di un normale microfono passivo.
Al di là dell'uso dei "componenti che usava la nonna", e di qualche scelta circuitale opinabile, può essere interessante vedere come avevano realizzato questo stadio iniziale, compreso il trigger con una porta and retroazionata:
A quel punto il segnale è già digitale on/off, e ad Arduino o altro micro resterebbe il compito di misurare i tempi. Oppure si può saltare il trigger e misurare con l'ADC la tensione all'uscita del diodo (nell'ordine dei volt), che rappresenta l'intensità sonora attuale (anche se la corrente assorbita dal trigger concorre a far funzionare correttamente la carica/scarica dell'ultimo condensatore... se vogliamo è la parte più "critica" dello schema).