config.txt에서 gpio-ir 관련해서 두개를 활성화 한다.
rx,tx를 반대로 하는게 영향을 주는진 모르겠지만, 아무튼 바꾸라고 하는데가 많으니 바꾸어서 시도
2018의 경우 lirc-gpio 였나? 이런 명칭인데 2020 이후에는 바뀐 것 같은데 changelog를 좀 추적해 봐야 할 듯.
$ cat /boot/config.txt # Uncomment this to enable infrared communication. dtoverlay=gpio-ir-tx,gpio_pin=17,invert=1 dtoverlay=gpio-ir,gpio_pin=18 |
하드웨어는
gpio 17핀에 IR LED의 +극(좁은 쪽) / GND에 IR LED의 -극(넓은쪽)
gpio 18핀에 IR 리시버의 signal / VCC에 3.3 / GND에 적당히 연결
lircd 환경설정은 아래와 같이
device /dev/lirc1 으로 하면 입력은 되는데 출력이 안되는 듯 하다.
그리고 irsend는 output 항목의 socket을 통해 전송하게 되니 참조.
$ cat lirc_options.conf # These are the default options to lircd, if installed as # /etc/lirc/lirc_options.conf. See the lircd(8) and lircmd(8) # manpages for info on the different options. # # Some tools including mode2 and irw uses values such as # driver, device, plugindir and loglevel as fallback values # in not defined elsewhere. [lircd] nodaemon = False #driver = devinput #device = auto driver = default device = /dev/lirc0 output = /var/run/lirc/lircd pidfile = /var/run/lirc/lircd.pid plugindir = /usr/lib/arm-linux-gnueabihf/lirc/plugins permission = 666 allow-simulate = No repeat-max = 600 #effective-user = #listen = [address:]port #connect = host[:port] #loglevel = 6 #release = true #release_suffix = _EVUP #logfile = ... #driver-options = ... [lircmd] uinput = False nodaemon = False # [modinit] # code = /usr/sbin/modprobe lirc_serial # code1 = /usr/bin/setfacl -m g:lirc:rw /dev/uinput # code2 = ... # [lircd-uinput] # add-release-events = False # release-timeout = 200 # release-suffix = _EVUP |
odroid에서 modprobe에서 invert=1을 해서 했었으니 얘도 동일하게 dtoverlay에 invert=1를 추가해서 해보니 성공
$ dtoverlay -h gpio-ir-tx Name: gpio-ir-tx Info: Use GPIO pin as bit-banged infrared transmitter output. This is an alternative to "pwm-ir-tx". gpio-ir-tx doesn't require a PWM so it can be used together with onboard analog audio. Usage: dtoverlay=gpio-ir-tx,<param>=<val> Params: gpio_pin Output GPIO (default 18) invert "1" = invert the output (make it active-low). Default is "0" (active-high). |
아래의 명령을 통해서 저장한 리모컨 명령을 전송!
$ irsend send_once samsung key_power -d /var/run/lirc/lircd |
는 실패 ㅋ
hardware does not support sending |
의외로 장치를 lirc1으로 하면 tx가 안되는 문제가 있는 것 같아서 /dev/lirc0으로 하니 문제 없이 되네
[링크 : https://www.raspberrypi.org/forums/viewtopic.php?t=263689]
+
root 권한이 필요한데
/sys/kernel/debug/gpio 파일을 열어 보면 현재 gpio이 설정 상태를 볼 수 있다.
근데 별.. 도움은 안됨 ㅠㅠ
[링크 : https://youtu.be/TSJ2gYvsVGc?t=59]
+
아래는 invert 넣지 않은 것
$ sudo cat /sys/kernel/debug/gpio gpio-17 (GPIO17 |gpio-ir-transmitter@) out lo gpio-18 (GPIO18 |ir-receiver@12 ) in hi IRQ ACTIVE LOW |
아래는 invert 넣은 것
$ sudo cat /sys/kernel/debug/gpio gpio-17 (GPIO17 |gpio-ir-transmitter@) out hi ACTIVE LOW gpio-18 (GPIO18 |ir-receiver@12 ) in hi IRQ ACTIVE LOW |
'embeded > raspberry pi' 카테고리의 다른 글
rpi 2b g_mass_storage (0) | 2021.09.25 |
---|---|
rpi4에서 gpio readall 실행 안될 때 (0) | 2021.09.24 |
rpi USB 메모리 스틱처럼 만들기? rpi zero (0) | 2021.09.17 |
rpi stretch lirc irrecord 실패 (0) | 2021.09.16 |
lirc 제조사별 키코드 (0) | 2021.09.16 |