Questo articolo spiega come l'elettronica ed il making possano fornire un valido aiuto in situazioni emergenziali. E' possibile, infatti, costruire un ventilatore rudimentale a basso costo che potrebbe aiutare con la respirazione durante un attacco respiratorio acuto. E' opportuno sottolineare che è sempre necessario consultare un medico con un'adeguata configurazione dell'attrezzatura da parte di personale qualificato e che l'ideatore di questo progetto non è un medico ma un maker.
Il ventilatore è un apparecchio elettromedicale utilizzato per insufflare nei polmoni una determinata miscela di gas e di consentirne l’espirazione, rispettando una determinata frequenza ed un appropriato regime di pressioni, per far fronte ad una funzionalità respiratoria parzialmente o completamente danneggiata. Durante la respirazione normale, nella fase inspiratoria la pressione alveolare è minore di quella atmosferica, mentre nella fase espiratoria la pressione alveolare è maggiore di quella atmosferica. Un ventilatore polmonare effettua il seguente loop di funzionamento:
- insufflare nei polmoni quantità controllate di aria o miscele gassose;
- bloccare l’insufflazione;
- far espirare i gas insufflati.
La pandemia virale di SARS-CoV-2 sta letteralmente mettendo in ginocchio molte strutture sanitarie ormai al collasso e spesso sprovviste delle necessarie apparecchiature salvavita per pazienti che presentano sintomi gravi a causa dell'infezione respiratoria da coronavirus. I ventilatori polmonari sono ormai merce rara, eppure rappresentano una strumentazione medica preziosa ed estremamente importante in situazioni emergenziali. Potrebbe accadere che in un momento di emergenza sanitaria di livello mondiale, i ricoveri ospedalieri COVID-19 esauriscano la disponibilità di ventilatori approvati dalla FDA, a seguito di ritardi nella supply chain.
L'apparecchiatura qui proposta può aiutare quando non è possibile disporre di una migliore assistenza. Si tratta di un dispositivo hand made che può avere la sua efficacia come ultima risorsa disponibile. Questo design rudimentale potrebbe fornire una frequenza respiratoria target ed una pressione espiratoria positiva, Positive End-Expiratory Pressure (PEEP), ma non può garantire un volume corrente specifico e non regola la frazione inspirata di O2 (FiO2), che indica la percentuale di ossigeno (O2) inspirata da un paziente e che in aria atmosferica è pari a 0.21 (21%), mentre la maggior parte dei ventilatori polmonari ha la possibilità di modificare la FiO2.
I fattori chiave legati alla disponibilità attuale di ventilatori polmonari sono:
- numero di ventilatori attualmente disponibili;
- numero di ventilatori necessari nel tempo;
- numero di ventilatori che possono essere prodotti nel tempo.
Questi parametri variano in base alle esigenze di ogni regione a livello globale.
Descrizione del progetto
Il sistema completo è dotato di maschera facciale, tubi, pompa, batteria 12 V e swtich per l'input. Il ventilatore è guidato da un motore BLDC (Brushless Direct Current). E' consigliabile il funzionamento con un alimentatore DC dal momento che la durata della batteria è solo di circa 3-4 ore, inoltre questa particolare batteria utilizzata nel progetto può caricare e fornire energia allo stesso tempo, fungendo da backup in linea della batteria per l'alimentazione a parete. I dispositivi Continuous Positive Airway Pressure (CPAP) sono comunemente utilizzati dagli individui per trattare l'apnea notturna. Questo dispositivo rudimentale rappresenta una conversione di un comune CPAP. In molti di questi dispositivi, il soffiatore è un semplice motore BLDC che può essere pilotato con un Electronic Speed Controller (ESC), in sostanza un regolatore elettronico di velocità. Nel progetto viene utilizzata la scheda Arduino Nano per controllare la velocità del motore, i cicli di respirazione e gestire l'input dell'utente. Si rende necessario scaricare l'IDE di Arduino per programmare il software del microcontrollore. I componenti principali sono: un motore brushless DC senza spazzole per il controllo elettronico della velocità con corrente minima di 10A, un pulsante o interruttore per il controllo dell'ingresso, un alimentatore 12 V in corrente continua in grado di gestire almeno 5 A, tubi e maschera facciale ed una batteria di backup in linea 12V opzionale. Il ventilatore funziona abbastanza bene ed i cicli di respirazione possono creare cadute di tensione che resettano l'Arduino se l'alimentazione non è abbastanza forte. La maschera integrale copre sia bocca che naso ed ha permesso un aumento della pressione nei polmoni. In alternativa, vedere nella sezione "Riferimenti" le parti stampabili in 3D.
Il software esegue una breve sequenza di inizializzazione per configurare l'ESC, quindi inizia con l'impostazione CPAP più bassa. È possibile utilizzare l'interruttore per scorrere i livelli di pressione e fare doppio clic per scorrere le modalità operative.
Di seguito lo sketch per il controllo del ventilatore:
#include <Servo.h> Servo myservo; //some variables to tweek #define version "20201603.1" #define rate 16 // breathing cycles per minute #define enable_motor true // useful for debugging without noise #define max_speed 180 #define min_speed 0 #define PEEP_speed 40 //approx 5cm/H2O #define led_pin 13 #define button_pin A5 #define current_pin A0 #define servo_pin 3 #define serial_baud 9600 int buttonState = 1; int buttonStatePrev = 1; int speed_state = 0; int loop_count = 0; int click_loop_count = 0; int click_count = 0; int target_speed_high = 0; int target_speed_low = 0; int cycle_counter = 0; int cycle_phase = 0; int mode = 0; int current = 0; void setup() { Serial.begin(serial_baud); Serial.print("Version:\t"); Serial.println(version); pinMode(led_pin, OUTPUT); pinMode(current_pin, INPUT); analogReference(INTERNAL); // sets reference to 1.1v pinMode(button_pin, INPUT_PULLUP); digitalWrite(led_pin, HIGH); if(enable_motor){ myservo.attach(servo_pin,1000,2000); // some motors need min/max setting Serial.print("Initializing ESC..."); myservo.write(max_speed); delay(3000); // wait for esc to boot, and sample maximum myservo.write(min_speed); digitalWrite(led_pin, LOW); delay(2000); // wait for esc to sample minimum digitalWrite(led_pin, HIGH); myservo.write(PEEP_speed); Serial.println("Done"); } else { Serial.println("Motor disabled. Bypassing initialization"); } } void loop() { buttonStatePrev = buttonState; buttonState = digitalRead(button_pin); // button down event, accumulate number of clicks and time of first click if(buttonState == 0 and buttonStatePrev == 1){ click_loop_count = loop_count; click_count += 1; } if(click_count > 0){ // past click count timeout if(click_loop_count + 30 < loop_count){ if(click_count == 1){ // single click speed_state = (speed_state + 1)%5; if(mode == 0){ cycle_counter = 10000; // if in CPAP mode update immediately } } if(click_count == 2){ // double click mode = (mode +1)%2; // if entering PEEP mode, update immediately in exhale cycle // otherwise, maintain phase cycle_phase = 0; cycle_counter = 10000; } // blink LED digitalWrite(led_pin, LOW); delay(50); digitalWrite(led_pin, HIGH); // print state Serial.print(loop_count/100.0); if(mode == 0){ Serial.print("\tset to CPAP level: "); Serial.println(speed_state); } if(mode == 1){ Serial.print("\tset to PEEP level: "); Serial.print(speed_state); Serial.print("\tforced rate: "); Serial.print(rate); Serial.println("/min"); } click_count = 0; } } // approximate pressure mapping fro original blower. Other blowers will vary // 40 ~= 5cm/H2O // 60 ~= 10cm/H2O // 90 ~= 18cm/H2O // 120 ~= 32cm/H2O if (speed_state == 0) { target_speed_high = 60; target_speed_low = PEEP_speed; } if (speed_state == 1) { target_speed_high = 70; target_speed_low = PEEP_speed; } if (speed_state == 2) { target_speed_high = 80; target_speed_low = PEEP_speed; } if (speed_state == 3) { target_speed_high = 90; target_speed_low = PEEP_speed; } if (speed_state == 4) { target_speed_high = 100; target_speed_low = PEEP_speed; } //CPAP mode, both speed are the same if(mode == 0) target_speed_low = target_speed_high; // handle breath in/out cycle at target rate/min cycle_counter += 1; if( (30*100)/rate < cycle_counter){ cycle_phase = (cycle_phase+1)%2; cycle_counter = 0; Serial.print(loop_count/100.0); Serial.print("\tphase speed:"); if(cycle_phase == 0){ if(enable_motor) myservo.write(target_speed_high); Serial.println(target_speed_high); } else { if(enable_motor) myservo.write(target_speed_low); Serial.println(target_speed_low); } } // for debugging breathing back pressure sensing // current = analogRead(current_pin); // Serial.print(current); // Serial.print(","); // Serial.println(digitalRead(button_pin)); loop_count += 1; delay(10); // approximately 100 cycles per second }
In Figura 2 è mostrato lo schema elettrico del dispositivo. Una versione leggermente modificata in grado di rilevare la corrente del ventilatore è disponibile qui.
La maschera Resmed AirFit F20 è abbastanza comoda e copre sia naso che bocca garantendo una buona tenuta. Come copricapo possono essere utilizzate delle cinghie elastiche, ma per ottenere una buona tenuta d'aria ed una pressione positiva sufficiente si può utilizzare del nastro adesivo. Un po' di perdita è effettivamente desiderabile per consentire alla CO2 di fuoriuscire ed espellere l'aria nel tempo piuttosto che rimanere bloccata nel tubo. Il banco di prova per misurare la pressione di uscita (Figura 3) è un tubo a forma di U con nastro di misurazione attaccato per controllare lo spostamento dell'acqua. Le linee guida per i ventilatori per i pazienti COVID-19 richiedono fino a 20 cm/H20. Il progetto è interamente visionabile su GitHub. Johnny Lee, ideatore di questo dispositivo, ha fornito appunti relativi ad una lunga conversazione con un medico specialista in pneumologia per discutere circa le specifiche tecniche funzionali di un ventilatore polmonare adeguato.
Ovviamente un ventilatore ad aria aperta nelle vie aeree non è il massimo, è preferibile, quindi, avere una certo livello di filtrazione dell'aria. Tuttavia, l'aggiunta di un filtro influirà sicuramente sulla pressione di uscita, dipende dal ventilatore che si ha e se il motore è in grado di gestire il carico aggiuntivo. La custodia di questo soffiatore non è a tenuta d'aria, quindi è difficile garantire che il 100% dell'aria arrivi solo attraverso il filtro.
Questi installatori sono disponibili con rating CBRN necessari per la difesa virale e batterica simili a quelli approvati dal CDC/NIOSH.
Considerazioni conclusive
Anche un ventilatore simile degli anni '60 è molto complesso e necessita di uno specialista adeguato per funzionare. L'idea è calda, ma è necessario analizzare le informazioni di feedback: livelli di pO2 e pCO2, prova del respiro in completa ventilazione artificiale, livello di CPAP e molto altro. Qualsiasi specialista di medicina respiratoria può spiegarlo. Una macchina CPAP disponibile in commercio è elettronicamente semplice (vedi alibaba.com), ma configurarla è difficile per i non specialisti. Makers, dobbiamo stare attenti con progetti come questi, poiché possono facilmente scivolare nella categoria "potrebbe essere più pericoloso di niente". La maggior parte delle spiegazioni che ho visto sulla situazione del ventilatore CPAP - BiPAP in relazione alla infezione da COVID sottolinea due problemi:
1) che la CPAP standard non fornisce un supporto di ossigeno sufficiente per i pazienti più colpiti, perché non aumenta l'ossigeno nell'aria respirata, solo la pressione di quell'aria (motivo per cui è buono per russare/apnea).
2) CPAP e BiPAP soffiano entrambe molta aria intorno, a causa di questa strategia di aumento della pressione dell'aria soffiata, che estenderebbe la gamma di particelle di virus contagiose. Pertanto, le soluzioni devono effettivamente aumentare il livello di ossigeno nell'aria e rilevare attentamente la caduta di pressione associata ad un respiro per aumentare la pressione mentre diminuisce il soffio, oppure avere un qualche tipo di N95 o un filtro migliore per l'aria espirata. Ancora una volta, "keep hacking y'all", ma per favore fate del vostro meglio per incorporare le migliori pratiche che abbiamo nei vostri progetti.
Avvertente e precauzioni
Indossare questo sigillato alla bocca con nastro adesivo senza alimentazione può causare un pericoloso accumulo di CO2. Indossare la maschera con una batteria scarica potrebbe causare un pericoloso accumulo di CO2. Non utilizzare informazioni casuali che hai trovato su Internet. Esistono rischi significativi associati all'uso di un BiPAP ad alta pressione come ventilatore fai da te senza controllo medico. Come funzionalità hardware, questo design rudimentale potrebbe fornire una frequenza respiratoria target programmabile (10-16/min), una Positive End-Expiratory Pressure target (PEEP) ed il ventilatore è fisicamente in grado di colpire una pressione di picco delle vie aeree fino a 45 cmH20, tuttavia, andare oltre i 20 cmH20 può essere pericoloso.
In alternativa alla costruzione di un ventilatore polmonare fai da te, questo dispositivo può anche diventare un ragionevole respiratore ad aria purificata, noto anche come Powered Air Purifying Respirator (PAPR) se viene applicato un filtro e viene utilizzata una maschera a pieno facciale. Consultare la parte inferiore del file README per i collegamenti per gli adattatori delle cartucce filtranti. I PAPR sono molto meno rischiosi e meno controversi rispetto alla costruzione di un ventilatore fai da te.
Riferimenti
Coronavirus Makers: https://github.com/CoronavirusMakers
Assemblaggio componenti: https://youtu.be/n57u1NvXBgw
Riferimenti di medici specifici sui requisiti tecnici del ventilatore (specificamente per COVID-19): https://mobile.twitter.com/aribindi/status/1238629714069032961
Riferimenti sulle modalità del ventilatore CPAP/BiPAP/PEEP:
Ventilator Modes Explained! PEEP, CPAP, Pressure vs. Volume
Modelli 3D: https://github.com/jcl5m1/ventilator/tree/master/3dmodels
Video della soffiante: https://photos.app.goo.gl/b3yMPE5QpdeduxKS6
Risorse: https://github.com/jcl5m1/ventilator/blob/master/resources.md
CDC (Centers for Disease Control and Prevention): https://www.cdc.gov/niosh/npptl/standardsdev/cbrn/papr/default.html
Utilissimo dispositivo medicale. Geniale direi. Ringrazio la redazione.
Segnalo anche un altro articolo che abbiamo pubblicato qualche tempo fa:
https://it.emcelettronica.com/col-fiato-sospeso-come-progettare-un-autorespiratore
P.S. E’ un articolo premium ma visto il periodo l’ho reso di libero accesso
Interessante articolo, mi permetto di sottolineare le avvertenze soprattutto per chi ha intenzione di realizzarlo. Non è un giocattolo ma un dispositivo che se ben progettato può fare la differenza.
Grazie per aver pubblicato questo articolo, meglio saper come si progetta e non doverlo mai realizzare che averne bisogno e non saperlo fare.
http://www.ventilation.cz
Visto il periodo ben vengano questi progetti.
E’ sicuramente il momento che tutte le menti del pianeta che possono e ne hanno le capacità mettano le le loro capacità a servizio della collettività.
Analogamente a come ho visto per la progettazione e la stampa 3D dei raccordi per trasformare in respiratori le maschere Decathlon.
Spero che qualche azienda riesca a prendere spunto per la realizzazione di questo respiratore, visto l’andamento del virus c’è n’è proprio bisogno.
Molte aziende, sia italiane che estere, stanno riconvertendo il proprio processo produttivo per produrre dispositivi di protezione ed apparecchi medicali per la ventilazione. Questo denota non solo una grande solidarietà ma anche la voglia di ripartire e non fermarsi, nonostante il momento non sia dei migliori.
Fantastico. Volevo proporre ai miei alunni di realizzare una cosa simile spartana (e non utilizzabile ovviamente) con arduino per sensibilizzarli sulla questione
Il progetto completo è disponibile sulla piattaforma GitHub al link: https://github.com/jcl5m1/ventilator.