Робот для борьбы с огнем на основе Arduino


Ежегодно в мире из-за пожаров гибнет огромное количество людей. Также пожары наносят и огромный материальный ущерб. Для борьбы с огнем в различных странах созданы пожарные службы. На тушение пожаров в них выезжают люди и также рискуют своими жизнями, борясь с огнем. Но в условиях современного развития робототехники было бы логично начать строить для борьбы с огнем специальных роботов, которые могли бы спасти жизни пожарников.

Внешний вид робота для борьбы с огнем на основе Arduino

В этой статье мы рассмотрим простой проект робота на основе платы Arduino, который будет способен обнаруживать огонь, подъезжать к нему и заливать его водой, включая водяной насос. Конечно, это всего лишь макет робота-пожарника, но поняв как он работает, вы, при желании, можете сконструировать уже более совершенных роботов подобного типа.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. Датчик огня или датчик пламени (3 шт.) (купить на AliExpress).
  3. Сервомотор SG90 (купить на AliExpress).
  4. Модуль драйвера двигателей L293D (купить на AliExpress).
  5. Миниатюрный погружной насос постоянного тока (купить на AliExpress).
  6. Маленькая макетная плата.
  7. Шасси робота с двумя двигателями и двумя колесами (любого типа).
  8. Небольшая банка.
  9. Соединительные провода.

Принцип работы робота для борьбы с огнем

"Мозгом" нашего проекта является плата Arduino, которая управляет всеми процессами. Для обнаружения огня мы будем использовать датчик огня (датчик пламени) – в англоязычных источниках его называют Fire sensor или Flame sensor. Внешний вид подобного датчика представлен на следующем рисунке.

Внешний вид датчика огня (датчика пламени)

Эти датчики имеют в своем составе инфракрасный приемник (фотодиод), который и используется для обнаружения огня. Каким образом это возможно? Когда огонь горит он испускает небольшое количество инфракрасного света, и именно этот свет и улавливается инфракрасным приемником (IR receiver). Поэтому мы можем использовать операционный усилитель (также входит в состав датчика огня) чтобы обнаруживать изменения напряжения на инфракрасном приемнике. В связи с этим при обнаружении огня на выходном контакте DO датчика будет напряжение низкого уровня, а при отсутствии огня на этом контакте будет напряжение высокого уровня.

Структурная схема робота для борьбы с огнем

Когда мы определим в каком направлении от робота горит огонь мы можем с помощью шасси робота и расположенных на нем двигателей подъехать к нему. Подъехав к огню, мы можем направить на него струю воды, для этой цели у нас в составе робота есть небольшой контейнер с водой и водяной насос погружного типа, работающий от 5V. Для того чтобы направить струю воды непосредственно на огонь у нас есть сервомотор, закрепленный сверху контейнера с водой.

Работа схемы

Схема устройства представлена на следующем рисунке.

Схема робота для борьбы с огнем на основе Arduino

Вы можете либо сразу собрать всю схему робота, либо собирать ее постепенно, тестируя работы схемы по частям.

В качестве контейнера для воды мы использовали небольшую алюминиевую банку, но вы можете использовать любую имеющуюся у вас емкость для воды. Сервомотор размещен сверху банки для управления направлением струи воды. После сборки у нас получилась конструкция следующего вида:

Внутрення начинка робота для борьбы с огнем на основе Arduino

Схема крепления водяного насоса на роботе Схема крепления сервомотора на роботе

Как вы можете видеть, внизу сервомотор мы закрепили с помощью клея, а вверху - с помощью гаек и болтов. При этом контейнер (банку) можно просто поместить на верх мотора и включать/выключать его через трубу. Весь контейнер (банка) поворачивается в разные стороны с помощью сервомотора чтобы управлять направлением струи воды.

Программирование платы Arduino

Полный код программы приведен в конце статьи, здесь же мы рассмотрим только его наиболее важные фрагменты.

Как мы узнали ранее, на выходном контакте датчика огня будет напряжение низкого уровня в случае наличия огня и напряжение высокого уровня при отсутствии огня. Поэтому в программе нам необходимо будет непрерывно следить за состоянием этого контакта. Если огня нет, то на все контакты управления двигателями нам нужно подать напряжение высокого уровня чтобы робот не двигался.

Если же огонь обнаружен, то мы должны начать двигать робота в том направлении, в котором обнаружен огонь. Когда робот подъедет вплотную к огню правый и левый датчики огня уже не будут его обнаруживать поскольку робот будет стоять прямо напротив огня. Поэтому мы можем использовать переменную “fire” для сигнализации того чтобы робот начал движение к огню.

И когда переменная fire примет значение true (истинно) мы будем вызывать функцию put_off_fire до тех пор пока огонь не будет потушен.

Внутри функции put_off_fire() нам необходимо остановить робота, подав на все контакты управления двигателями напряжение высокого уровня. Затем мы должны включить водяной насос чтобы водой начать тушить огонь. Также в это время мы можем управлять сервомотором чтобы заливать огонь водой равномерно.

Работа робота для борьбы с огнем

Прежде чем испытывать работу робота целиком желательно протестировать его работу по частям. Например, сначала вы можете собрать робота до сервомотора и проверить способен ли он самостоятельно находить и подъезжать к огню. Затем вы можете проверить работу сервомотора и водяного насоса. Если все работает как надо, то тогда можете уже загружать в Arduino полный код программы и отправлять его на борьбу с огнем )).

Наш робот для борьбы с огнем в действии

Подробно работа робота показана на видео, приведенном в конце статьи. Максимальная дистанция, на которой робот способен обнаруживать огонь, зависит от размера огня – если горит всего лишь спичка, то расстояние обнаружения огня будет сравнительно небольшим. Для управления чувствительностью датчиков огня можно использовать имеющиеся на них потенциометры. Мы запитали робота от power bank'а, но вы можете использовать любой другой источник питания.

Если вас заинтересовал этот проект, то на нашем сайте вы можете посмотреть все проекты, связанные с робототехникой.

Исходный код программы

Видео, демонстрирующее работу схемы

(Проголосуй первым!)
Загрузка...
625 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *