Rapberry Pi IR remote

Ик модуль в сборе Собрал инфракрасный приёмник с передатчиком под Raspbery для будущих проектов. Ниже пошаговая хаутушка, разбавленная парой фотографий.

Электрическая часть

R1 — 1 кОм
R2 — 33 Ом
Q1 — BC547
D1 — IR LED
IR — TSOP1738

shema1

Програмная часть

sudo apt-get update
sudo apt-get install lirc
sudo /etc/init.d/lirc stop

Содержимое /etc/lirc/hardware.conf

########################################################
# /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS="--uinput"

# Don't start lircmd even if there seems to be a good config file
# START_LIRCMD=false

# Don't start irexec, even if a good config file seems to exist.
# START_IREXEC=false

# Try to load appropriate kernel modules
LOAD_MODULES=true

# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"

# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""
########################################################

Завести модули ядра

sudo echo "
lirc_dev
lirc_rpi gpio_in_pin=19 gpio_out_pin=26" >> /etc/modules

sudo echo "dtoverlay=lirc-rpi,gpio_in_pin=19,gpio_out_pin=26" >> /boot/config.txt

Вывести список доступных кодов для кнопок

irrecord --list-namespace

Записываем пульт ДУ, сливаем полученный конфиг

irrecord -d /dev/lirc0 -f ~/lircd.conf

sudo cat ~/lircd.conf >> /etc/lirc/lircd.conf

Добавляем конфиг для ДУ Nikon

wget --output-document=~/Nikokn2.conf http://lirc.sourceforge.net/remotes/nikon/ML-L3

sudo cat ~/Nikokn2.conf >> /etc/lirc/lircd.conf

rm ~/Nikokn2.conf

Именуем секцию пульта

sudo vim /etc/lirc/lircd.conf

Запускаем демона

sudo /etc/init.d/lirc start

Смотрим что конфиг добавлен, тестируем отправку команды

irsend LIST Nikon2 ""

irsend SEND_ONCE Nikon2 shutter

Тестируем приём-передачу скриптом test.py на python

import lirc
from subprocess import call

sockid = lirc.init("myprogram")
print("Ready")

while True:
code = lirc.nextcode()
if code:
print(code[0])
call(['irsend', 'SEND_ONCE', 'nikon', 'shutter'])

Запускаем

python3 test.py

При нажатии на OK видим выхлоп

Ready
KEY_OK
KEY_OK

Механическая часть

отладка

Ик модуль на монтажной плате

Подключение ик модулятут

Ик модуль в сборе

Ссылки на источники информации

  1. mvartan.com
  2. alexba.in
  3. randomtutor.blogspot.com
  4. botmayank.wordpress.com
  5. habrahabr.ru
  6. Конфиги пультов ДУ на lirc.sourceforge.net