Estoy tratando de controlar una unidad IR HVAC en mi casa con una Raspberry Pi 2 y un escudo infrarrojo (ver aquí: http://bit.ly/29iC0lr ).
Seguí las instrucciones en la página del producto de protección IR con consejos de algunos otros lugares y recibir señales del control remoto HVAC funciona muy bien. Pude crear un archivo .conf e irsend ve los botones que configuré cuando uso el comando LIST, pero cuando intento SEND_ONCE, obtengo esta respuesta:
irsend: hardware does not support sending
Pasé varias horas probando varios sistemas operativos (incluidos piCore 6.1-v7 y Raspbian Jesse 2016-05-27 y 2015-11-21) y dos versiones de LIRC (0.9.0 y 0.9.4) pero siempre obtuve el mismo resultado.
Confirmé que el LED IR funciona con una cámara digital y un script de Python que opera manualmente el pin GPIO.
¿Alguien puede señalarme en la dirección correcta para solucionar este problema? ¿Hay alguna forma de averiguar por qué LIRC parece pensar que mi hardware no tiene un transmisor?
Gracias por adelantado.
Nota: mi /boot/config.txt incluye esta línea para lirc-rpi
dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17
[EDITAR 7-7-2016]
Aquí hay información adicional, incluida la salida de varios comandos en la sección Solución de problemas de esta página: http://aron.ws/projects/lirc_rpi/
La salida de cat /sys/kernel/debug/gpio
no se ve bien pero no No sé qué hacer al respecto. : - \
Tengo la siguiente línea en /etc/rc.local:
modprobe lirc_rpi gpio_in_pin=18 gpio_out_pins=17
También probé un código similar en / etc / modules pero no hizo ninguna diferencia.
pi@raspberrypi:~ $ ls -l /dev/lirc*
crw-rw---- 1 root video 244, 0 Jul 7 11:27 /dev/lirc0
lrwxrwxrwx 1 root root 21 Jul 7 11:27 /dev/lircd -> ../var/run/lirc/lircd
pi@raspberrypi:~ $ dmesg | grep lirc
[ 5.219904] lirc_dev: IR Remote Control driver registered, major 244
[ 5.230067] lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned.
[ 6.196796] lirc_rpi: auto-detected active low receiver on GPIO pin 18
[ 6.197243] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0
[ 6.197248] lirc_rpi: driver registered!
pi@raspberrypi:~ $ sudo cat /sys/kernel/debug/gpio
GPIOs 0-53, platform/3f200000.gpio, pinctrl-bcm2835:
gpio-35 (? ) in hi
gpio-47 (? ) out lo
pi@raspberrypi:~ $ cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
16: 0 0 0 0 ARMCTRL 16 Edge bcm2708_fb dma
20: 1500 0 0 0 ARMCTRL 20 Edge DMA IRQ
32: 145314 0 0 0 ARMCTRL 32 Edge dwc_otg, dwc_otg_pcd, dwc_otg_hcd:usb1
49: 0 0 0 0 ARMCTRL 49 Edge 3f200000.gpio:bank0
50: 0 0 0 0 ARMCTRL 50 Edge 3f200000.gpio:bank1
65: 26 0 0 0 ARMCTRL 65 Edge 3f00b880.mailbox
66: 2 0 0 0 ARMCTRL 66 Edge VCHIQ doorbell
75: 1 0 0 0 ARMCTRL 75 Edge
77: 120 0 0 0 ARMCTRL 77 Edge DMA IRQ
82: 192 0 0 0 ARMCTRL 82 Edge mmc0
83: 5 0 0 0 ARMCTRL 83 Edge uart-pl011
96: 0 0 0 0 ARMCTRL 96 Edge arch_timer
97: 3798 2724 1275 1139 ARMCTRL 97 Edge arch_timer
FIQ: usb_fiq
IPI0: 0 0 0 0 CPU wakeup interrupts
IPI1: 0 0 0 0 Timer broadcast interrupts
IPI2: 2225 2478 3697 2901 Rescheduling interrupts
IPI3: 7 6 8 9 Function call interrupts
IPI4: 3 5 0 1 Single function call interrupts
IPI5: 0 0 0 0 CPU stop interrupts
IPI6: 0 0 0 0 IRQ work interrupts
IPI7: 0 0 0 0 completion interrupts
pi@raspberrypi:~ $ lsmod
Module Size Used by
cfg80211 419759 0
rfkill 16659 2 cfg80211
8192cu 528485 0
evdev 10226 1
snd_bcm2835 19739 0
bcm2835_gpiomem 3023 0
snd_pcm 74833 1 snd_bcm2835
snd_timer 18164 1 snd_pcm
lirc_rpi 6638 0
snd 52116 3 snd_bcm2835,snd_timer,snd_pcm
lirc_dev 8169 1 lirc_rpi
rc_core 16910 1 lirc_dev
uio_pdrv_genirq 2966 0
uio 8228 1 uio_pdrv_genirq
ipv6 341892 30
/boot/config.txt
?Respuestas:
Para mí este paso adicional ayudó:
editar
/etc/lirc/lirc_options.conf
y conjuntodriver = devinput
a
driver = default
y luego reiniciar o reiniciar el servicio lircd
fuente
De acuerdo, encontré la respuesta, o mejor dicho, alguien mucho más conocedor de Linux que yo ( /raspberrypi//users/49162/jonathan-dieter ) la encontró. :)
En lugar de cargar el módulo lirc_rpi en / etc / modules o /etc/rc.local, sugirió agregar un nuevo archivo de configuración a /etc/modprobe.d/ (en mi caso /etc/modprobe.d/ir-remote.conf ) con la siguiente línea:
Mi mejor conjetura de por qué esto marcó la diferencia es que el módulo se estaba cargando con la configuración predeterminada ANTES de que se ejecutara el comando en / etc / modules o rc.local. Como ya estaba cargado, el sistema simplemente ignoró mi intento posterior y el pin de salida nunca se configuró correctamente (esto está bajo Raspbian Jessie BTW).
Otra nota sobre la unidad HVAC que podría ser útil. No pude usar irrecord para guardar los comandos del control remoto. Parece que los sistemas HVAC funcionan de manera un poco diferente a un televisor o videograbadora.
Estas dos páginas ( http://www.instructables.com/id/Reverse-engineering-of-an-Air-Conditioning-control/?ALLSTEPS y http://absurdlycertain.blogspot.com/2013/03/lirc-raspi -remote-control-configuration.html especialmente los primeros dos comentarios) me ayudaron a descubrir cómo grabar la salida sin procesar del modo 2, normalizarla y luego transmitirla con irsend.
fuente
Después de seguir esta guía: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board Me encontré con el mismo problema que se indica en esta pregunta:
Intenté agregar esta línea:
en /etc/modprobe.d/ir-remote.conf, pero eso tampoco ayudó.
Cuando comencé el demonio LIRC con el siguiente comando:
¡funcionó! El dispositivo debe ser el mismo que configuró en el archivo /etc/lirc/hardware.conf. Entonces los pasos son:
irsend: hardware does not support sending
sudo lircd --device /dev/lirc0
para iniciar el demonio LIRCirsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV
fuente