산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

오픈 소스 COVID-19 폐 인공호흡기

구성품 및 소모품

Arduino UNO
Arduino 버전용
× 1
Arduino 4 릴레이 실드
Arduino 버전용
× 1
디지털 서보 MG995
모든 버전용
× 1
LM2596S 모듈
모든 버전용
× 2
10k 선형 다중 회전 전위차계
모든 버전용
× 1
Digilent 60W PCIe 12V 5A 전원 공급 장치
모든 버전용
× 1
5mm LED:빨간색
모든 버전용
× 1
5mm LED:녹색
× 1
영숫자 LCD, 20 x 4
모든 버전용
× 1
스위치 버튼 220v
모든 버전용
× 1
스노클링 풀페이스
× 1
솔레노이드 밸브, 양방향
× 1

필요한 도구 및 기계

3D 프린터(일반)
A8
300-001 - 라이트박스, UV 노출

앱 및 온라인 서비스

Arduino IDE
PcB 우아함
오토데스크 퓨전 360

이 프로젝트 정보

오픈 소스 비침습적 인공호흡기 사용 가능한 인공호흡기가 없고 환자가 진정되거나 삽관되지 않는 한 건강 위기 Covid19에 대처하기 위한 저비용 및 구축하기 쉬운 비상 인공호흡기

이 프로젝트는 제 전 선생님이자 친구인 Serafim Pires가 스페인 프로젝트를 보여주며 제가 이 세계 위기를 극복하는 데 도움이 되는 프로젝트를 개발할 수 있으면 좋겠다고 연락해 왔던 챌린지의 결과였습니다.

비침습적 환기라는 주제에 대한 여러 연구와 연구 끝에 2가지 기존 기술을 기반으로 이 기능적 프로토타입을 만들었습니다.

모든 테스트는 성공적이었고 20일 이상 문제나 중단 없이 기능 테스트를 거쳤습니다.

비침습적 인공호흡은 일정량의 압축 공기를 폐로 밀어넣는 안면 마스크 비강 마스크를 사용하여 전달됩니다. 이는 질병으로 인해 폐 기능이 저하된 경우 자연 호흡 과정을 지원하여 신체가 감염과 싸우고 나을 수 있도록 합니다.

이탈리아에서 수행된 연구를 기반으로 하여 Decathlon 스노클링 마스크를 COVID-19로 고통받는 환자를 위한 응급 인공호흡기로 바꾸는 프로젝트에서 이 기술을 사용하여 코로나바이러스 대유행이 정점에 이르렀을 때 인공호흡기 부족을 완화했습니다.

이 마스크는 저렴하고 쉽게 적응할 수 있기 때문에 전 세계에서 적응되고 사용되었습니다.

결과는 분명했고 최근에는 이 기술이 포르투갈 Santarém 병원에서도 사용되었습니다.

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

포르투갈 신문의 뉴스입니다.

지역 라디오의 Iterview는 포르투갈의 소셜 네트워크에서 입소문을 탔습니다.

.

적은 양의 공기를 사용하고 15번의 호흡 주기를 사용하여 호흡 빈도를 변경하고 시연을 위해 엿보는 동작을 먼저 테스트합니다.


경고:이 프로토타입은 아직 공식 기관의 검증을 받지 않았으며 사용에 대한 모든 책임을 거부합니다.

또한 이 장비는 최후의 수단으로 사용되며 숙련된 의료진이 극한 상황에서 생명을 구하기 위한 장비입니다.

비영리 프로젝트는 포르투갈 관할 당국의 승인을 받은 경우 일괄 복제할 수 있습니다.

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • INOVT_COVID19_Version_2.2.ino
  • INOVT_COVID19_Version_2.2.rar
  • INOVT_COVID19_Version_2.2.ino아두이노
    /* 프로그램 폐호흡기 INOVT COVID-19 Versio 2.2 * 저자: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_1#INSPIRAN =0, int valInspira =0, int valExpira =0, int valPeep =0, 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, B00; [8]={B00000, B00000, B00000, B00000, B10001, B11111, B01110};byte a1[8]={B11000, B01100, B00110, B00011, B00000 , B00000, B00000, B00001, B00011, B00110, B01100, B11000 };byte a5[9]={ B00000, B01110, B010}, B0110, B11111, B10001, B00000, B0 B00000, B00000, B00000, B10000, B11000, B01100, B00110, B00011};byte a7[10]={ B00000, B0, B0, B0=B00000, B00001, B00 , B01110, B00100, B00000, B10001, B11111, B01110}; lcd.print("*코로나19*"); 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(바이트(3)); lcd.write(바이트(4)); lcd.write(바이트(5)); lcd.write(바이트(3)); lcd.write(바이트(6)); lcd.write(바이트(5)); lcd.setCursor(10,1); lcd.write(바이트(0)); lcd.write(바이트(1)); lcd.write(바이트(2)); lcd.write(바이트(0)); lcd.write(바이트(7)); lcd.write(바이트(2)); } 무효 initior() { 바이트 c11[8] ={B00000,B00000,B11111,B11111,B11111,B11111,B00000,B00000};lcd.createChar(3, c11);lcd.setCurs); lcd.write(3); 지연(x);lcd.setCursor(1, 2); lcd.write(3); 지연(x); digitalWrite(PIN_LED,HIGH);lcd.setCursor(2,2); lcd.write(3); 지연(x);lcd.setCursor(3, 2); lcd.write(3); 지연(x); digitalWrite(PIN_LED2,HIGH);lcd.setCursor(4,2); lcd.write(3); 지연(x);lcd.setCursor(5, 2); lcd.write(3); 지연(x); digitalWrite(PIN_LED,LOW);lcd.setCursor(6,2); lcd.write(3); 지연(x);lcd.setCursor(7, 2);lcd.write(3); 지연(x); digitalWrite(PIN_LED2,LOW);lcd.setCursor(8,2); lcd.write(3); 지연(x); 디지털 쓰기(PIN_LED, HIGH); digitalWrite(PIN_LED2,HIGH);lcd.setCursor(9,2); lcd.write(3); 지연(x); myServo.write(100); 디지털 쓰기(PIN_LED, LOW); digitalWrite(PIN_LED2,LOW);lcd.setCursor(10, 2); lcd.write(3); 지연(x); 디지털 쓰기(PIN_LED, HIGH); digitalWrite(PIN_LED2,HIGH);lcd.setCursor(11,2);lcd.write(3); 지연(x); myServo.write(110); 디지털 쓰기(PIN_LED, LOW); digitalWrite(PIN_LED2,LOW);lcd.setCursor(12,2); lcd.write(3); 지연(x); 디지털 쓰기(PIN_LED, HIGH); 디지털 쓰기(PIN_LED2, HIGH); lcd.setCursor(13, 2); lcd.write(3); 지연(x); myServo.write(115); 디지털 쓰기(PIN_LED, LOW); digitalWrite(PIN_LED2,LOW);lcd.setCursor(14,2); lcd.write(3); 지연(x); 디지털 쓰기(PIN_LED, HIGH); digitalWrite(PIN_LED2,HIGH);lcd.setCursor(15,2); lcd.write(3); 지연(x); myServo.write(120); 디지털 쓰기(PIN_LED, LOW); 디지털 쓰기(PIN_LED2,LOW); lcd.setCursor(16, 2); lcd.write(3); 지연(x); 디지털 쓰기(PIN_LED, HIGH); 디지털 쓰기(PIN_LED2, HIGH); lcd.setCursor(17, 2); lcd.write(3); 지연(x);myServo.write(130); 디지털 쓰기(PIN_LED, LOW); digitalWrite(PIN_LED2,LOW);lcd.setCursor(18,2); lcd.write(3); 지연(x); lcd.setCursor(19, 2); lcd.write(3); 지연(x);} 무효 maobc() { thumbdownA(); 지연(x); lcd.clear(); 엄지손가락(); 지연(x); 썸다운A(); 지연(x); lcd.clear(); 엄지손가락(); 지연(x); 썸다운A(); 지연(x); lcd.clear(); 엄지손가락(); 지연(x); 썸다운A(); 지연(x); lcd.clear(); 엄지손가락(); 지연(1000); lcd.clear();} 무효 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}; 바이트 썸4[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);} 무효 thumbsup() { 바이트 thumb1[8] ={B00100,B00011,B00100,B00011,B00100,B00011,B00010,B00001}; 바이트 썸2[8] ={B00000,B00000,B00000,B00000,B00000,B00000,B00000,B00011}; 바이트 thumb3[8] ={B00000,B00000,B00000,B00000,B00000,B00000,B00001,B11110}; 바이트 썸4[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 ) { // 영감을 받아 디지털Write(PIN_LED2,LOW); 디지털 쓰기(PIN_LED, HIGH); myServo.write(MIN_ANGLE); 시간 =millis() + (valInspira * 100); 에스타도 =인스피란도; lcd.setCursor(8, 2); lcd.print("엑스피란도> "); } else if ( estado ==INSPIRANDO ) { // P0asar a expirando digitalWrite(PIN_LED2,HIGH); 디지털 쓰기(PIN_LED, LOW); myServo.write(MAX_ANGLE - valPeep); 시간 =millis() + (valExpira * 100); 에스타도 =엑스피란도 lcd.setCursor(8, 2); lcd.print("인스피란도 <"); } }} 무효 설정() { myServo.attach(PIN_SERVO); myServo.write(92); //디지털 쓰기(PIN_LED, LOW); 핀모드(PIN_FREQ,INPUT_PULLUP); 핀모드(PIN_PEEP,INPUT_PULLUP); 핀모드(SENSOR_FLOW,INPUT); 핀모드(PIN_LED, 출력); 핀모드(PIN_LED2, 출력); 핀모드(PIN_Alarm_Relay,OUTPUT); 핀모드(PIN_Safety_Valve,OUTPUT); lcd.init(); lcd.backlight(); lcd.clear(); lcd.setCursor(0,0); 심벌 마크(); lcd.setCursor(4,2); lcd.print("오픈 소스"); lcd.setCursor(0,3); lcd.print("폐 인공호흡기"); 지연(4000); lcd.clear(); lcd.print("....초기화 중...."); 초기자(); 지연(500); lcd.clear(); maobc(); lcd.clear(); if(digitalRead(SENSOR_FLOW) ==LOW) { thumbsup(); lcd.setCursor(0,0); lcd.print("시스템"); lcd.setCursor(2,1); lcd.print("확인"); 지연(5000); lcd.clear(); } else { myServo.write(139); 썸다운A(); lcd.setCursor(0,0); lcd.print("시스템"); lcd.setCursor(1,1); lcd.print("실패"); 지연(5000); lcd.clear(); Serial.begin(9600); 시간 =밀리초(); frecuencia_ant=-1; valPeep_ant=-1; } 지연(500); estado=엑스피란도; } 무효 루프() {digitalRead(SENSOR_FLOW); 보조 =analogRead(PIN_FREQ); 주파수 =맵(aux,0,1023, 10, 60); 발인스피라 =((1.0 / 주파수 )* 600.0 ) * (1.0/3.0); valExpira =((1.0 / 주파수 ) * 600.0 ) * (2.0/3.0); 보조 =analogRead(PIN_PEEP); valPeep =지도(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 Arduino IDE. Serial.print("주파수:"); Serial.println(frecuencia); Serial.print("인스피라:"); Serial.println(valInspira); Serial.print("만료 기간:"); Serial.println(valExpira); Serial.print("보기:"); Serial.println(valPeep); lcd.setCursor(1, 0); lcd.print("주파수:"); lcd.setCursor(13, 0); lcd.print(frecuencia); lcd.setCursor(1, 1); lcd.print("피프:"); lcd.setCursor(13, 1); lcd.print(valPeep); // 지연(500); lcd.setCursor(0, 2); lcd.print("에스타도:"); lcd.setCursor(0, 3); lcd.print("VENTILADOR D.PASCOAL "); frecuencia_ant =frecuencia; valPeep_ant =valPeep; } if(디지털 읽기(센서_플로) ==높음) { myServo.write(139); digitalWrite(PIN_Alarm_Relay,HIGH); digitalWrite(PIN_Safety_Valve,HIGH); lcd.clear(); 썸다운A(); lcd.setCursor(0,0); lcd.print("시스템"); lcd.setCursor(1,1); lcd.print("실패"); lcd.setCursor(1,2); lcd.print("********************"); lcd.setCursor(3,3); lcd.print("AR 흐름 확인"); lcd.setCursor(12,1); lcd.print("알람"); 디지털 쓰기(PIN_LED, 높음); 디지털 쓰기(PIN_LED2, HIGH); 지연(500); lcd.setCursor(12,1); lcd.print(" "); 지연(500); lcd.setCursor(12,1); lcd.print("알람"); 디지털 쓰기(PIN_LED, LOW); 디지털 쓰기(PIN_LED2, LOW); 지연(1000); lcd.clear(); } else { digitalWrite(PIN_Alarm_Relay,LOW); digitalWrite(PIN_Safety_Valve,LOW); setServo(); 지연(10);}}
    INOVT_COVID19_Version_2.2.rarC/C++
    미리보기 없음(다운로드만 가능).

    맞춤형 부품 및 인클로저

    3D 프린터로 출력해야 합니다.
    약간의 정밀도가 필요합니다. 다이빙 마스크 변경 및 가압 호흡 마스크로 전환하기 위한 전체 단계별 지침 정밀도가 필요합니다.
    고해상도 3D 프린터 inovt_covid19_version_2_0_david_pascoal_0mbFUa0ce1.rar

    회로도

    자율 버전의 다이어그램,
    병원 공기 기둥이 필요하지 않습니다. 버전 2.2 .
    경비원 및 경보 출력으로. 버전 2.2 .
    경비원 및 경보 출력으로.

    제조공정

    1. 의료용 인공호흡기의 신속한 배포를 목표로 하는 오픈 소스 참조 게시판
    2. Arduino 스파이봇
    3. FlickMote
    4. 수제 TV B-Gone
    5. 마스터 시계
    6. 나를 찾기
    7. Arduino Power
    8. Tech-TicTacToe
    9. Arduino Quadruped
    10. Arduino 조이스틱