• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Датчик движения Raspberry Pi
с использованием ИК-датчика

 

 

Датчик PIR - это простое, но отличное устройство для обнаружения движения. В системах безопасности более старого типа эти датчики использовались очень часто. Однако в большинстве современных систем используется видео. Я объясню немного больше о датчике ниже на этой странице. Чтобы сделать этот проект немного более интересным, мы также будем использовать пьезо-динамик при обнаружении движения. Оба эти устройства должны быть подключены к контактам GPIO для работы.

Настройка оборудования Raspberry Pi PIR Sensor

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

 

 

На большинстве датчиков PIR есть регулируемые винты, которые позволяют регулировать их время и чувствительность. Время позволит вам установить задержку до того, как она погаснет (послать высокий сигнал). (Примерно две-четыре секунды). Чувствительность - это то, сколько движения нужно совершить, прежде чем оно исчезнет. Пьезозуммер - это простой динамик, который издает звук всякий раз, когда через него проходит ток. В этой схеме зуммер будет издавать громкий звуковой сигнал при срабатывании схемы детектора движения. Макетная плата не обязательно является требованием для этого проекта, но я настоятельно рекомендую ее использовать. Макетная плата значительно упрощает создание прототипов и схем. Вам не обязательно использовать макетную плату, как я, вы можете просто подключить их прямо к Raspberry Pi.

 

Схема датчика движения Raspberry Pi

 

Чтобы построить схему, просто сделайте следующее.

1.Запуск заземляющего контакта на первый рельс на макете.

2.Запуск 5v штифта к положительной шине на плате.

3.Подключите пьезозуммер к контакту 7 (красный провод) и отрицательной шине (черный провод).

4.Протяните провод от контакта 11 к макетной плате . Поместите резистор на 100 Ом на конец провода. Затем подключите его к желтому проводу датчика PIR.

5.Теперь для датчика PIR протяните красный провод к линии 5 В, а черный провод к шине заземления на макетной плате.

 Настройка программного обеспечения датчика движения Raspberry Pi

Чтобы воплотить в жизнь нашу схему датчика движения Raspberry Pi, нам нужно будет немного запрограммировать. Это программирование относительно простое, является отличным способом изучить основы Python . Во-первых, на вашем Pi введите следующую команду, чтобы создать скрипт Python и загрузить его в текстовый редактор nano.

sudo nano motion_sensor.py

Если вам не хочется печатать полный сценарий, вы можете напрямую загрузить, распаковать и войти в папку сценариев на Pi, введя команды ниже. Кроме того, вы также можете скачать его прямо со страницы GitHub .

sudo wget https://github.com/pimylifeup/motion_sensor/archive/master.zip

unzip master.zip

cd ./motion_sensor-master

Я кратко объясню, что делает каждая часть кода.

Во-первых, мы импортируем пакеты GPIO и time Python, поскольку они нам понадобятся, чтобы иметь возможность взаимодействовать с выводами GPIO, а также приостанавливать наш скрипт. Мы устанавливаем три переменные, первые две - это ссылки на наши контакты, поэтому я назвал их соответствующим образом. Переменная текущего состояния - это то место, где мы будем хранить состояние нашего датчика. Если это 0 , значит, он выключен, или 1 означает, что он был активирован. В этом руководстве мы настроим наш режим GPIO так, чтобы он ссылался на физическую нумерацию контактов, а не на фактическую нумерацию. Эту нумерацию немного легче понять, поскольку все контакты пронумерованы по порядку. Мы также настраиваем наши контакты GPIO как выходы или входы. Например, мы хотим обнаруживать движение, поэтому наш датчик PIR будет входным. С другой стороны, наш пьезозуммер должен работать как выход.

import RPi.GPIO as GPIO

import time

 

pir_sensor = 11

piezo = 7

 

GPIO.setmode(GPIO.BOARD)

 

GPIO.setup(piezo,GPIO.OUT)

 

GPIO.setup(pir_sensor, GPIO.IN)

 

current_state = 0

В следующей части у нас есть бесконечный цикл while. Этот цикл означает, что он никогда не выйдет, потому что он всегда верен. (Вы все еще можете отменить скрипт, нажав ctrl+ cв терминале). Мы начинаем с того, что помещаем скрипт в спящий режим на 0,1 секунды. После этого мы получаем текущее состояние датчика, и если оно равно 1 (например, обнаружено движение), мы запускаем код внутри оператора if. Если это не 1, мы продолжаем цикл, непрерывно проверяя датчик. Код в операторе if отправляет пьезозуммер на высокий уровень, который должен издавать шум. Скрипт сделает это на секунду, а затем выключит зуммер. После этого он будет ждать еще 5 секунд, прежде чем выйти из оператора if, а затем перепроверить датчик Raspberry Pi PIR. Мы также вложили код в блок try, за исключением блока finally. Мы добавили это, потому что нам нужно будет использовать клавиатуру, чтобы остановить скрипт. Также очень важно, чтобы мы работали, GPIO.cleanup()чтобы убедиться, что наш скрипт хорошо очищается. Код try, except, finally позволяет нам это сделать.

try:

    while True:

        time.sleep(0.1)

        current_state = GPIO.input(pir_sensor)

        if current_state == 1:

            print("GPIO pin %s is %s" % (pir_sensor, current_state))

            GPIO.output(piezo,True)

            time.sleep(1)

            GPIO.output(piezo,False)

            time.sleep(5)

except KeyboardInterrupt:

    pass

finally:

    GPIO.cleanup()

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

sudo python motion_sensor.py

Если вы подойдете к датчику PIR Raspberry Pi, он должен включить пьезозуммер и издать шум. Если это не так, вероятно, вы подключили провода к неправильным контактам или в коде есть ошибка. Если это ошибка кода, вы, скорее всего, увидите ошибку в терминале Raspberry Pi. Это довольно простое руководство, и это только начало многих приложений, в которых вы можете использовать датчик PIR. 

 




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024