Рубрики
Без рубрики

Использование датчика луча разрыва с Python и Raspberry Pi

Давайте посмотрим, как использовать датчик луча разрыва в сценарии Python на Raspberry Pi! У меня был … Теги с Python, RaspberryPi, Adafruit, IoT.

Давайте посмотрим, как использовать датчик луча разрыва в сценарии Python на Raspberry Pi! У меня было несколько из них на некоторое время, но, наконец, охватило, чтобы распаться в другой день.

Датчики луча разрыва определяют объекты, пересекающие свою линию «Vision», используя инфракрасные. Они приходят в две части:

  • Эмиттер: испускает луч инфракрасного света. У него есть две провода – один для власти, другой для земли.
  • Приемник: при указанном излучателе, получает луч инфракрасного элемента. У него есть три провода – один для мощности, один для земли, и третий используется для данных.

И эмиттер, и приемник должны быть подключены к источнику мощности 5 В (Adafruit, скажем, 3.3V также будет работать, но ожидает более короткий диапазон), и вы можете использовать тот же источник для обоих, если вы хотите. Оба также нуждаются в заземлении, но они не должны делиться одним.

Эмиттер и приемник работают вместе, чтобы, когда что-то проходит между ними, разбив инфракрасный луч, происходит событие, которое ваш код может забрать и использовать. Эти события обнаруживаются с помощью третьего провода на приемнике для подключения к PI PI PI GPIO на PI, установленном в качестве входа. Из перспективы настройки и кодирования датчики луча разрыва являются очень похожим входным входом в кнопку или магнитные дверные датчики I написано около Отказ

Эти датчики довольно дешевые, я получил мой из Adafruit ( Part Pare здесь ) за пару долларов каждый. Они продают их в различных размерах – в основном тем больше размер, тем дальше вы можете разместить их и все же ожидаю, что они будут работать. Я бы представил, что более крупные также действительно нуждаются в мощности 5 В, а не на 3,3 В, но я не пробовал их.

Я собираюсь использовать несколько этих датчиков в более крупном проекте в будущем. Для этого поста я просто пробежу, как проволочать один до PI и как написать базовый сценарий Python, который зажигает события всякий раз, когда датчик состояния изменяется.

Проводка

Я использовал макет для проволоки датчика к PI следующим образом:

  • Красные провода на оба излучателе и приемнике подключены к 5В Power Pins на Pi.
  • Черные провода на оба излучателе, так и на приемнике подключены к наземным контактам на PI.
  • Белый провод на приемнике подключен к GPIO 17 на PI.

Программное обеспечение

Я написал простой сценарий Python, чтобы во всякий раз, когда изменяет состояние датчика …

Код разрушается на две части, настройки и обработку событий … сначала настроек:

  • В строке 3 я устанавливаю PIN-код GPIO, к которому подключен провод данных получателя. Я использовал 17, любой доступный порт GPIO будет работать.
  • В строке 11 GPIO установлен на режим нумерации Broadcom.
  • Строка 12 настраивает GPIO 17, чтобы быть введенным, с включенным подтягивающим резистором. Если вы хотите узнать больше о настройке пинов GPIO с Python, Sparkfun имеет хорошее руководство Отказ
  • Линия 13 сообщает модуль GPIO, который мы хотим запустить функцию break_beam_callback Всякий раз, когда государственные изменения GPIO 17.
  • Строка 15 останавливает программу из выхода, пока не сделаем с ней, ожидая, когда пользователь нажимает ввод.
  • Если пользователь нажимает Enter, мы убираем ресурсы GPIO в строке 16 перед выходом.

Функция, которая обрабатывает события от датчика, называется break_beam_callback и определяется в строке 5. Вот как это работает:

  • Функция принимает параметр, канал , это не используется в этом случае, но требуется сделать его обратным вызовом для модуля GPIO add_event_detect . функция. Он содержит PIN-код PIN-кода GPIO, из которого произошло событие.
  • Линия 6 проверяет, если PIN 17 высокий или низкий.
  • Если это так, строка 7 выполняет и сообщает, что луч был восстановлен (что-то, что ранее блокировало вид приемника эмиттера, теперь ушел).
  • Если PIN 17 низкий, строка 9 выполняется и сообщает, что луч был сломан (что-то просто заблокировало вид приемника излучателя).

Это все, что есть к этому!

Демо время!

Вот быстрое демонстрационное видео, показывающее эту настройку в использовании для отчета, когда автомобиль проходит через датчик … Это то, что я хочу сделать больше в более крупном проекте, над которым я работаю, но больше на это позже!

Вы делаете что-нибудь интересное с PI и датчиками? Если это так, я хотел бы услышать об этом. Оставьте мне записку в комментариях ниже, или найди меня на Twitter Отказ

(Главное фото Дэвид Андерсон на Бессмысленно )

Оригинал: “https://dev.to/simonprickett/using-a-break-beam-sensor-with-python-and-raspberry-pi-402d”