NCRB (National Crime Records Bureau)에 따르면 2010 년부터 2014 년까지 인도에서 발생한 화재 사고로 인해 1.2lakh 이상의 사망자가 발생한 것으로 추정됩니다. 화재 사고에 대한 예방 조치가 많음에도 불구하고 이러한 자연 재해는 가끔 발생합니다. 화재 발생시 인명 구조와 화재 진압을 위해 안전하지 않은 인력을 투입해야합니다. 특히 로봇 공학의 기술 발전으로 인간을 화재 진압 용 로봇으로 대체하는 것이 매우 가능합니다. 이것은 소방관의 효율성을 향상시키고 인명 위험을 예방할 수 있습니다. 오늘은 아두 이노를 사용하여 자동으로 화재를 감지하고 물 펌프를 작동 시키는 소방 로봇 을 만들 것입니다.
이 프로젝트에서 우리는 Arduino 를 사용 하여 불을 향해 이동하고 그 주위에 물을 펌핑하여 불을 진압 할 수 있는 간단한 로봇 을 만드는 방법을 배웁니다. 우리에게 로봇 공학의 기본 개념을 가르쳐주는 매우 단순한 로봇입니다. 다음과 같은 기본 사항을 이해하면보다 정교한 로봇을 만들 수 있습니다. 그럼 시작하겠습니다…
필요한 재료:
- Arduino UNO
- 화재 센서 또는 화염 센서 (3 Nos)
- 서보 모터 (SG90)
- L293D 모터 드라이버 모듈
- 미니 DC 잠수정 펌프
- 작은 브레드 보드
- 모터 (2)와 바퀴 (2)가있는 로봇 섀시 (모든 유형)
- 작은 캔
- 전선 연결
Arduino 소방 로봇에 필요한 위의 모든 구성 요소를 구입하십시오.
소방 로봇의 작동 개념:
이 프로젝트의 주요 두뇌는 Arduino이지만 화재를 감지하기 위해 아래에 표시된 화재 센서 모듈 (화염 센서)을 사용합니다.
보시 다시피이 센서에는 화재를 감지하는 데 사용되는 IR 수신기 (포토 다이오드) 가 있습니다. 이것이 어떻게 가능한지? 화재가 발생하면 소량의 적외선이 방출되며이 빛은 센서 모듈의 IR 수신기에서 수신됩니다. 그런 다음 Op-Amp를 사용하여 IR 수신기의 전압 변화를 확인하므로 화재가 감지되면 출력 핀 (DO)이 0V (LOW)를 제공하고 화재가 발생하지 않으면 출력 핀이 5V (높은).
따라서 우리는 화재가 어느 방향으로 타오르는 지 감지하기 위해 로봇의 세 방향에 세 개의 센서를 배치합니다.
우리는 L293D 모듈을 통해 모터를 구동함으로써 모터를 사용하여 화재 근처로 이동할 수있는 화재의 방향을 감지합니다. 불 근처에있을 때는 물로 불을 꺼야합니다. 작은 용기를 사용하여 물을 운반 할 수 있고, 5V 펌프도 용기에 넣고 전체 용기를 서보 모터 위에 배치 하여 물이 분사되어야하는 방향을 제어 할 수 있습니다. 이제 연결을 진행하겠습니다.
회로도:
이 소방 로봇 의 전체 회로도 는 다음과 같습니다.
프로그램 업로드를 위해 표시된 모든 연결을 연결하여 작동하는지 확인하거나 봇을 완전히 조립 한 다음 연결을 진행할 수 있습니다. 두 가지 방법 모두 연결이 매우 간단하며 올바르게 얻을 수 있어야합니다.
사용중인 로봇 섀시에 따라 내가 사용중인 것과 동일한 유형의 컨테이너를 사용하지 못할 수도 있습니다. 이 경우 자신의 창의력을 발휘하여 펌핑 시스템을 설정하십시오. 그러나 코드는 동일하게 유지됩니다. 나는 작은 알루미늄 캔 (차가운 음료수 캔)을 사용하여 펌프를 안에 넣고 그 안에 물을 부었습니다. 그런 다음 서보 모터 위에 전체 캔을 조립하여 물의 방향을 제어했습니다. 내 로봇은 조립 후 이렇게 생겼습니다.
보시다시피 글루를 사용하여 컨테이너 바닥에 서보 핀을 고정하고 너트와 볼트를 사용하여 섀시로 서보 모터를 고정했습니다. 용기를 모터 상단에 놓고 내부 펌프를 작동시켜 튜브를 통해 외부로 물을 펌핑 할 수 있습니다. 그런 다음 전체 컨테이너를 서보를 사용하여 회전하여 물의 방향을 제어 할 수 있습니다.
Arduino 프로그래밍:
하드웨어가 준비되면 Arduino 코드를 업로드하여 작업을 수행 할 수 있습니다. 전체 프로그램은 이 페이지의 끝에 제공됩니다. 그러나 여기서는 몇 가지 중요한 부분을 추가로 설명했습니다.
우리가 알고 있듯이 화재 센서는 화재가 발생하면 HIGH를 출력하고 화재가 발생하면 LOW를 출력합니다. 따라서 화재가 발생하면이 센서를 계속 확인해야합니다. 화재가 없으면 아래 그림과 같이 모든 핀을 높게 설정 하여 모터를 정지 상태로 유지하도록 요청 합니다.
if (digitalRead (Left_S) == 1 && digitalRead (Right_S) == 1 && digitalRead (Forward_S) == 1) // 불이 감지되지 않으면 모든 센서가 0입니다 {// 로봇을 움직이지 마십시오. digitalWrite (LM1, HIGH); digitalWrite (LM2, HIGH); digitalWrite (RM1, HIGH); digitalWrite (RM2, HIGH); }
마찬가지로 화재가 발생 하면 각 모터를 회전하여 로봇에게 해당 방향으로 이동하도록 요청할 수 있습니다. 화재에 도달하면 왼쪽 및 오른쪽 센서는 화재 바로 앞에 서 있기 때문에 화재를 감지하지 못합니다. 이제 우리 는 불을 끄는 함수를 실행할 “ fire ” 라는 변수를 사용합니다.
else if (digitalRead (Forward_S) == 0) // 불이 직진하면 {// 로봇을 앞으로 이동 digitalWrite (LM1, HIGH); digitalWrite (LM2, LOW); digitalWrite (RM1, HIGH); digitalWrite (RM2, LOW); 화재 = 사실; }
변수 fire가 true가되면 소방 로봇 arduino 코드 는 화재가 꺼질 때까지 put_off_fire 함수를 실행합니다. 이것은 아래 코드를 사용하여 수행됩니다.
while (fire == true) {put_off_fire (); }
내부 put_off_fire () 우리는 단지해야 할 로봇을 중지 모든 핀은 높은하여. 그런 다음 펌프를 켜서 물을 용기 밖으로 밀어냅니다. 이렇게하는 동안 서보 모터를 사용하여 용기를 회전시켜 물이 전체적으로 균일하게 분할되도록 할 수 있습니다. 이것은 아래 코드를 사용하여 수행됩니다.
void put_off_fire () {지연 (500); digitalWrite (LM1, HIGH); digitalWrite (LM2, HIGH); digitalWrite (RM1, HIGH); digitalWrite (RM2, HIGH); digitalWrite (펌프, HIGH); 지연 (500); for (pos = 50; pos <= 130; pos + = 1) {myservo.write (pos); 지연 (10); } for (pos = 130; pos> = 50; pos-= 1) {myservo.write (pos); 지연 (10); } digitalWrite (pump, LOW); myservo.write (90); fire = false; }
소방 로봇의 작동:
로봇의 출력을 처음으로 함께 실행하는 것보다 단계적으로 확인하는 것이 좋습니다. 로봇을 서보 모터까지 조립하여 화재를 성공적으로 추적 할 수 있는지 확인할 수 있습니다. 그러면 펌프와 서보 모터가 제대로 작동하는지 확인할 수 있습니다. 모든 것이 예상대로 작동하면 아래 프로그램을 실행 하고 소방 로봇 의 완전한 작업을 즐길 수 있습니다.
로봇의 완전한 작동은 아래 의 비디오 에서 찾을 수 있습니다. 화재를 감지 할 수있는 최대 거리는 화재의 크기에 따라 다르며 작은 성냥개비의 경우 거리가 상대적으로 짧습니다. 모듈 상단의 전위차계를 사용하여 로봇의 감도를 제어 할 수도 있습니다. 나는 배터리를 사용하거나 12V 배터리로 전원을 공급할 수있는 로봇에 전원을 공급하기 위해 파워 뱅크를 사용했습니다.
프로젝트를 이해하고 비슷한 것을 만드는 것을 즐기시기 바랍니다. 이 빌드를 얻는 데 문제가 있으면 아래 댓글 섹션을 사용하여 질문을 게시하거나 포럼을 사용하여 기술 지원을 받으십시오.
더 멋진 DIY 로봇을 찾으려면 로봇 공학 섹션 을 확인하십시오.