J'essaie de contrôler une unité IR HVAC dans ma maison avec un Raspberry Pi 2 et un bouclier infrarouge (voir ici: http://bit.ly/29iC0lr ).
J'ai suivi les instructions sur la page produit du blindage IR avec des conseils provenant de quelques autres endroits et la réception des signaux de la télécommande HVAC fonctionne très bien. J'ai pu créer un fichier .conf et irsend voit les boutons que j'ai configurés lorsque j'utilise la commande LIST mais quand j'essaye SEND_ONCE, j'obtiens cette réponse:
irsend: hardware does not support sending
J'ai passé plusieurs heures à essayer différents systèmes d'exploitation (y compris piCore 6.1-v7 et Raspbian Jesse 2016-05-27 et 2015-11-21) et deux versions de LIRC (0.9.0 et 0.9.4), mais j'ai toujours obtenu le même résultat.
J'ai confirmé que la LED IR fonctionne à l'aide d'une caméra numérique et d'un script python qui actionne manuellement la broche GPIO.
Quelqu'un peut-il m'orienter dans la bonne direction pour résoudre ce problème? Existe-t-il un moyen de savoir pourquoi le LIRC semble penser que mon matériel n'a pas d'émetteur?
Merci d'avance.
Remarque: mon /boot/config.txt inclut cette ligne pour lirc-rpi
dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17
[EDIT 7-7-2016]
Voici quelques informations supplémentaires, y compris la sortie de plusieurs commandes dans la section Dépannage de cette page: http://aron.ws/projects/lirc_rpi/
La sortie de cat /sys/kernel/debug/gpio
ne semble pas correcte mais je ne ' Je ne sais pas quoi faire à ce sujet. : - \
J'ai la ligne suivante dans /etc/rc.local:
modprobe lirc_rpi gpio_in_pin=18 gpio_out_pins=17
J'ai également essayé un peu de code similaire dans / etc / modules mais cela n'a fait aucune différence.
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
?Réponses:
Pour moi , cette étape supplémentaire a permis:
modifier
/etc/lirc/lirc_options.conf
et ensembledriver = devinput
à
driver = default
puis redémarrer ou redémarrer le service lircd
la source
D'accord, j'ai trouvé la réponse, ou plutôt quelqu'un de bien plus informé sur Linux que moi ( /raspberrypi//users/49162/jonathan-dieter ) l'a trouvée. :)
Plutôt que de charger le module lirc_rpi dans / etc / modules ou /etc/rc.local, il a suggéré d'ajouter un nouveau fichier de configuration à /etc/modprobe.d/ (dans mon cas /etc/modprobe.d/ir-remote.conf ) avec la ligne suivante:
Ma meilleure estimation de la raison pour laquelle cela a fait la différence est que le module se chargeait avec les paramètres par défaut AVANT l'exécution de la commande dans / etc / modules ou rc.local. Puisqu'il était déjà chargé, le système a simplement ignoré ma tentative suivante et la broche de sortie n'a jamais été configurée correctement (c'est sous Raspbian Jessie BTW).
Une autre note sur l'unité HVAC qui pourrait être utile. Je n'ai pas pu utiliser irrecord pour enregistrer les commandes de la télécommande. Il semble que les systèmes CVC fonctionnent un peu différemment d'un téléviseur ou d'un magnétoscope.
Ces deux pages ( http://www.instructables.com/id/Reverse-engineering-of-an-Air-Conditioning-control/?ALLSTEPS et http://absurdlycertain.blogspot.com/2013/03/lirc-raspi -remote-control-configuration.html (en particulier les deux premiers commentaires) m'a aidé à comprendre comment enregistrer la sortie brute de mode2, la normaliser puis la transmettre avec irsend.
la source
Après avoir suivi ce guide: http://www.raspberrypiwiki.com/index.php/Raspberry_Pi_IR_Control_Expansion_Board J'ai rencontré le même problème que celui indiqué dans cette question:
J'ai essayé d'ajouter cette ligne:
dans /etc/modprobe.d/ir-remote.conf, mais cela n'a pas aidé non plus.
Quand j'ai démarré le démon LIRC avec la commande suivante:
ça a marché! Le périphérique doit être le même que celui que vous avez configuré dans le fichier /etc/lirc/hardware.conf. Les étapes sont donc:
irsend: hardware does not support sending
sudo lircd --device /dev/lirc0
pour démarrer le démon LIRCirsend SEND_ONCE /home/pi/lircd.conf KEY_VIDEO_PREV
la source