工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

オープンソースCOVID-19肺人工呼吸器

コンポーネントと消耗品

>
Arduino UNO
Arduinoを使用したバージョンの場合
× 1
Arduino4リレーシールド
Arduinoを使用したバージョンの場合
× 1
デジタルサーボMG995
すべてのバージョン
× 1
LM2596Smódule
すべてのバージョン
× 2
10kリニアマルチターンポテンショメータ
すべてのバージョン
× 1
Digilent 60W PCIe 12V 5A Power Supply
すべてのバージョン
× 1
5 mm LED:赤
すべてのバージョン
× 1
5 mm LED:緑
× 1
英数字LCD、20 x 4
すべてのバージョン
× 1
スイッチボタン220v
すべてのバージョン
× 1
いびきをかくフルフェイス
× 1
ソレノイドバルブ、2ウェイ
× 1

必要なツールとマシン

>
3Dプリンター(汎用)
A8
300-001-ライトボックス、UV露光

アプリとオンラインサービス

>
Arduino IDE
PcBエレガンス
Autodesk Fusion 360

このプロジェクトについて

オープンソースの非侵襲的人工呼吸器低コストで簡単に構築できる、利用可能な人工呼吸器がなく、患者が鎮静または挿管されていない限り、健康危機Covid19と戦うための緊急呼吸器。

このプロジェクトは、スペイン語のプロジェクトを見せてくれた元教師であり友人のSerafim Piresが立ち上げたチャレンジの結果であり、この世界の危機と戦うためのプロジェクトを開発できればいいと言っていました。

非侵襲的換気のトピックに関するいくつかの調査と研究の後、私は2つの既存の技術に基づいてこの機能的なプロトタイプを作成しました。

すべてのテストは成功し、20日以上の機能テストで問題や中断はありませんでした。

非侵襲的換気は、フェイスマスク鼻マスクを使用して提供されます。これは、設定された量の加圧空気を肺に押し込みます。これは、病気によって肺が機能しなくなったときの自然な呼吸プロセスをサポートし、体が感染症と戦い、良くなることを可能にします。

イタリアで実施された研究に基づいて、私はこの技術を使用して、デカトロンシュノーケルマスクをCOVID-19に苦しむ患者のための緊急人工呼吸器に変え、コロナウイルスのパンデミックのピーク時に人工呼吸器の不足を緩和するのに役立てました。

>

これらのマスクは、低コストで簡単に適応できるため、世界中の場所で適応され、使用されています。

結果は明らかであり、最近、このテクノロジーはポルトガルのサンタレン病院でも使用されました。

<図>

https://www.prosaude.org.br/noticias/hospital-regional-de-santarem-utiliza-mascaras-de-mergulho-no-tratamento-da-covid-19/?fbclid=IwAR36UVLXCztk0zSSJwTCBQ1lgb5iYmY1Ha_tqwIT74Bjp P>

ポルトガルの新聞のニュース。

<図>

地元のラジオのIterviewは、ポルトガルのソーシャルネットワークで話題になりました。

少量の空気を使用し、15回の呼吸サイクルを使用して呼吸頻度とのぞき見を変更してデモンストレーション用の最初の動作テストを行います。


警告:このプロトタイプはまだ公的機関によって検証されていないため、私はその使用についてすべての責任を負いません。

さらに、これは最後の手段として使用され、訓練を受けた医療関係者によって、この機器は極端なピーク状況で命を救うことを目的としています。

非営利プロジェクトは、ポルトガルの管轄当局によって承認された場合、まとめて複製することができます。

コード

  • INOVT_COVID19_Version_2.2.ino
  • INOVT_COVID19_Version_2.2.rar
INOVT_COVID19_Version_2.2.ino Arduino
 / *プログラム肺換気装置INOVTCOVID-19 Versio 2.2 * Autor:David Pascoal *機器はテストされ、証明されています。圧力センサーによるセキュリティ、* Buzerまたはビートルをオンにするアラーム出力。* /#include  #include  #include  LiquidCrystal_I2C lcd(0x27,20,4); #define PIN_SERVO 6 #define PIN_FREQ A1 #define PIN_PEEP A0 #define PIN_LED 2 #define PIN_LED2 3 #define PIN_Alarm_Relay 8 #define PIN_Safety_Valve 9#define SENSOR_FLOW A3#define EXPIRANDO 0#define INSPIRANDO 1#define MIN_ =0; int valInspira =0; int valExpira =0; int valPeep =0; int aux; int x =500; int y =1000; unsigned long time; Servo myServo; int frecuencia_ant; int valPeep_ant; int estado; void logo(){byte a3 [8] ={B00011、B00111、B01100、B11000、B10000、B00000、B00000}; byte a2 [8] ={B00000、B00000、B00000、B00000、B10001、B11111、B01110};バイトa1 [8] ={B11000、B01100、B00110、B00011、B00001、B00000、B00000};バイトa4 [9] ={B00000 、B00000、B00000、B00001、B00011、B00110、B01100、B11000}; byte a5 [9] ={B00000、B01110、B11111、B10001、B00000、B00000、B00000、B01110、B00000、}; byte a6 [8] ={ B00000、B00000、B00000、B10000、B11000、 B01100、B00110、B00011};バイトa7 [10] ={B00000、B01110、B11111、B10001、B00000、B00000、B00000、B00000、};バイトa8 [8] ={B00100、B01110、B00100、B00000、B10001、B11111 、B01110}; lcd.print( "* COVID19 *"); lcd.setCursor(0,1); lcd.print( ".. INOVT .."); lcd.createChar(0、a1); lcd.createChar(1、a2); lcd.createChar(2、a3); lcd.createChar(7、a8); lcd.createChar(3、a4); lcd.createChar(4、a5); lcd.createChar(5、a6); lcd.createChar(6、a7​​); lcd.setCursor(10,0); lcd.write(byte(3)); lcd.write(byte(4)); lcd.write(byte(5)); lcd.write(byte(3)); lcd.write(byte(6)); lcd.write(byte(5)); lcd.setCursor(10,1); lcd.write(byte(0)); lcd.write(byte(1)); lcd.write(byte(2)); lcd.write(byte(0)); lcd.write(byte(7)); lcd.write(byte(2)); } void initior(){byte c11 [8] ={B00000、B00000、B11111、B11111、B11111、B11111、B00000、B00000}; lcd.createChar(3、c11); lcd.setCursor(0、2); lcd.write(3); delay(x); lcd.setCursor(1、2); lcd.write(3); delay(x); digitalWrite(PIN_LED、HIGH); lcd.setCursor(2、2); lcd.write(3); delay(x); lcd.setCursor(3、2); lcd.write(3); delay(x); digitalWrite(PIN_LED2、HIGH); lcd.setCursor(4、2); lcd.write(3); delay(x); lcd.setCursor(5、2); lcd.write(3); delay(x); digitalWrite(PIN_LED、LOW); lcd.setCursor(6、2); lcd.write(3); delay(x); lcd.setCursor(7、2); lcd.write(3); delay(x); digitalWrite(PIN_LED2、LOW); lcd.setCursor(8、2); lcd.write(3); delay(x); digitalWrite(PIN_LED、HIGH); digitalWrite(PIN_LED2、HIGH); lcd.setCursor(9、2); lcd.write(3); delay(x); myServo.write(100); digitalWrite(PIN_LED、LOW); digitalWrite(PIN_LED2、LOW); lcd.setCursor(10、2); lcd.write(3); delay(x); digitalWrite(PIN_LED、HIGH); digitalWrite(PIN_LED2、HIGH); lcd.setCursor(11、2); lcd.write(3); delay(x); myServo.write(110); digitalWrite(PIN_LED、LOW); digitalWrite(PIN_LED2、LOW); lcd.setCursor(12、2); lcd.write(3); delay(x); digitalWrite(PIN_LED、HIGH); digitalWrite(PIN_LED2、HIGH); lcd.setCursor(13、2); lcd.write(3); delay(x); myServo.write(115); digitalWrite(PIN_LED、LOW); digitalWrite(PIN_LED2、LOW); lcd.setCursor(14、2); lcd.write(3); delay(x); digitalWrite(PIN_LED、HIGH); digitalWrite(PIN_LED2、HIGH); lcd.setCursor(15、2); lcd.write(3); delay(x); myServo.write(120); digitalWrite(PIN_LED、LOW); digitalWrite(PIN_LED2、LOW); lcd.setCursor(16、2); lcd.write(3); delay(x); digitalWrite(PIN_LED、HIGH); digitalWrite(PIN_LED2、HIGH); lcd.setCursor(17、2); lcd.write(3); delay(x); myServo.write(130); digitalWrite(PIN_LED、LOW); digitalWrite(PIN_LED2、LOW); lcd.setCursor(18、2); lcd.write(3); delay(x); lcd.setCursor(19、2); lcd.write(3); delay(x);} void maobc(){thumbdownA(); delay(x); lcd.clear();いいぞ(); delay(x); thumbdownA(); delay(x); lcd.clear();いいぞ(); delay(x); thumbdownA(); delay(x); lcd.clear();いいぞ(); delay(x); thumbdownA(); delay(x); lcd.clear();いいぞ(); delay(1000); lcd.clear();} void thumbdownA(){バイトthumb1 [8] ={B00001、B00010、B00011、B00100、B00011、B00100、B00011、B00100};バイトthumb2 [8] ={B00011、B00000、B00000、B00000、B00000、B00000、B00000、B00000};バイトthumb3 [8] ={B11110、B00001、B00000、B00000、B00000、B00000、B00000、B00000};バイトthumb4 [8] ={B00000、B11110、B01000、B10001、B10010、B10010、B01100、B00000};バイトthumb5 [8] ={B00000、B10000、B01110、B00010、B00010、B00010、B00010、B00010};バイトthumb6 [8] ={B00110、B01000、B10000、B00000、B00000、B00000、B00000、B00000}; lcd.createChar(6、thumb1); lcd.createChar(1、thumb2); lcd.createChar(2、thumb3); lcd.createChar(3、thumb4); lcd.createChar(4、thumb5); lcd.createChar(5、thumb6); lcd.setCursor(7,0); lcd.write(6); lcd.setCursor(7,1); lcd.write(1); lcd.setCursor(8,0); lcd.write(2); lcd.setCursor(8,1); lcd.write(3); lcd.setCursor(9,0); lcd.write(4); lcd.setCursor(9,1); lcd.write(5);} void thumbsup(){バイトthumb1 [8] ={B00100、B00011、B00100、B00011、B00100、B00011、B00010、B00001};バイトthumb2 [8] ={B00000、B00000、B00000、B00000、B00000、B00000、B00000、B00011};バイトthumb3 [8] ={B00000、B00000、B00000、B00000、B00000、B00000、B00001、B11110};バイトthumb4 [8] ={B00000、B01100、B10010、B10010、B10001、B01000、B11110、B00000};バイトthumb5 [8] ={B00010、B00010、B00010、B00010、B00010、B01110、B10000、B00000};バイトthumb6 [8] ={B00000、B00000、B00000、B00000、B00000、B10000、B01000、B00110}; lcd.createChar(6、thumb1); lcd.createChar(1、thumb2); lcd.createChar(2、thumb3); lcd.createChar(3、thumb4); lcd.createChar(4、thumb5); lcd.createChar(5、thumb6); lcd.setCursor(7,1); lcd.write(6); lcd.setCursor(7,0); lcd.write(1); lcd.setCursor(8,1); lcd.write(2); lcd.setCursor(8,0); lcd.write(3); lcd.setCursor(9,1); lcd.write(4); lcd.setCursor(9,0); lcd.write(5);} void setServo(){if(millis()> time){if(estado ==EXPIRANDO){// Pasar a inspirandO digitalWrite(PIN_LED2、LOW); digitalWrite(PIN_LED、HIGH); myServo.write(MIN_ANGLE);時間=ミリ秒()+(valInspira * 100); estado =INSPIRANDO; lcd.setCursor(8、2); lcd.print( "EXPIRANDO>"); } else if(estado ==INSPIRANDO){// P0asar a expirando digitalWrite(PIN_LED2、HIGH); digitalWrite(PIN_LED、LOW); myServo.write(MAX_ANGLE-valPeep);時間=ミリ秒()+(valExpira * 100); estado =EXPIRANDO; lcd.setCursor(8、2); lcd.print( "INSPIRANDO <"); }}} void setup(){myServo.attach(PIN_SERVO); myServo.write(92); // digitalWrite(PIN_LED、LOW); pinMode(PIN_FREQ、INPUT_PULLUP); pinMode(PIN_PEEP、INPUT_PULLUP); pinMode(SENSOR_FLOW、INPUT); pinMode(PIN_LED、OUTPUT); pinMode(PIN_LED2、OUTPUT); pinMode(PIN_Alarm_Relay、OUTPUT); pinMode(PIN_Safety_Valve、OUTPUT); lcd.init(); lcd.backlight(); lcd.clear(); lcd.setCursor(0,0);ロゴ(); lcd.setCursor(4,2); lcd.print( "OPEN-SOURCE"); lcd.setCursor(0,3); lcd.print( "肺人工呼吸器"); delay(4000); lcd.clear(); lcd.print( "....初期化中...."); initior(); delay(500); lcd.clear(); maobc(); lcd.clear(); if(digitalRead(SENSOR_FLOW)==LOW){thumbsup(); lcd.setCursor(0,0); lcd.print( "SYSTEM"); lcd.setCursor(2,1); lcd.print( "OK"); delay(5000); lcd.clear(); } else {myServo.write(139); thumbdownA(); lcd.setCursor(0,0); lcd.print( "SYSTEM"); lcd.setCursor(1,1); lcd.print( "FAIL"); delay(5000); lcd.clear(); Serial.begin(9600);時間=ミリ秒(); frecuencia_ant =-1; valPeep_ant =-1; } delay(500); estado =EXPIRANDO; } void loop(){digitalRead(SENSOR_FLOW); aux =analogRead(PIN_FREQ); frecuencia =map(aux、0,1023、10、60); valInspira =((1.0 / frecuencia)* 600.0)*(1.0 / 3.0); valExpira =((1.0 / frecuencia)* 600.0)*(2.0 / 3.0); aux =analogRead(PIN_PEEP); valPeep =map(aux、0,1023、0、10); if((frecuencia_ant!=frecuencia)||(valPeep_ant!=valPeep)){// Pode monitorizar os valores de Frequencia e PEEP sem display usando o Monitor serie do ArduinoIDE。 Serial.print( "Frecuencia:"); Serial.println(frecuencia); Serial.print( "Inspira:"); Serial.println(valInspira); Serial.print( "Expira:"); Serial.println(valExpira); Serial.print( "のぞき見:"); Serial.println(valPeep); lcd.setCursor(1、0); lcd.print( "FREQUENCIA:"); lcd.setCursor(13、0); lcd.print(frecuencia); lcd.setCursor(1、1); lcd.print( "PEEP:"); lcd.setCursor(13、1); lcd.print(valPeep); // delay(500); lcd.setCursor(0、2); lcd.print( "ESTADO:"); lcd.setCursor(0、3); lcd.print( "VENTILADOR D.PASCOAL"); frecuencia_ant =frecuencia; valPeep_ant =valPeep; } if(digitalRead(SENSOR_FLOW)==HIGH){myServo.write(139); digitalWrite(PIN_Alarm_Relay、HIGH); digitalWrite(PIN_Safety_Valve、HIGH); lcd.clear(); thumbdownA(); lcd.setCursor(0,0); lcd.print( "SYSTEM"); lcd.setCursor(1,1); lcd.print( "FAIL"); lcd.setCursor(1,2); lcd.print( "******************"); lcd.setCursor(3,3); lcd.print( "ARフローの確認"); lcd.setCursor(12,1); lcd.print( "ALARM"); digitalWrite(PIN_LED、HIGH); digitalWrite(PIN_LED2、HIGH); delay(500); lcd.setCursor(12,1); lcd.print( ""); delay(500); lcd.setCursor(12,1); lcd.print( "ALARM"); digitalWrite(PIN_LED、LOW); digitalWrite(PIN_LED2、LOW); delay(1000); lcd.clear(); } else {digitalWrite(PIN_Alarm_Relay、LOW); digitalWrite(PIN_Safety_Valve、LOW); setServo(); delay(10);}} 
INOVT_COVID19_Version_2.2.rar C / C ++
プレビューなし(ダウンロードのみ)。

カスタムパーツとエンクロージャー

3Dプリンターで印刷する必要があります。
ある程度の精度が必要です。 ダイビングマスクを交換し、加圧呼吸マスクに変えるためのステップバイステップの手順を完了します ある程度の精度が必要です。
高解像度3Dプリンター inovt_covid19_version_2_0_david_pascoal_0mbFUa0ce1.rar

回路図

自律バージョンの図、
病院の気柱は必要ありません。 バージョン2.2。
セキュリティガードとアラーム出力付き。 バージョン2.2。
セキュリティガードとアラーム出力付き。

製造プロセス

  1. オープンソースのリファレンスボードは、迅速な医療用人工呼吸器の展開を対象としています
  2. Arduino Spybot
  3. FlickMote
  4. 自家製テレビB-Gone
  5. マスタークロック
  6. Find Me
  7. Arduino Power
  8. Tech-TicTacToe
  9. Arduino Quadruped
  10. Arduinoジョイスティック
  11. CNCマシン