본문으로 바로가기

lirc - ir record 방법

category 개발일기/팁 & 테크 2018.06.29 16:39

Linux 환경에서 제공하는 lirc에서 ir record 방법은 다음과 같다.

buildroot-6.2.x 버전과 buildroot-6.7.x 버전에서 다소 차이가 있으나, buildroot-6.7.x 버전을 기준으로 ir record 방법을 정리하였다.


lircd 데몬이 실행된 상태에서는 ir record가 제대로 동작되지 않기 때문에, ir record전에 lircd 데몬은 종료하도록 하자. 매번 데몬을 종료하지 않고 ir record를 하여 제대로 안된다고 짜증을 내지 말자.

lircd 데몬을 종료시켰으면, 아래의 명령어를 사용하여 ir record를 진행하면 된다.

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

위의 명령어를 실행하면 하기와 같이 출력되며, ir record를 할 수 있는 상태가 된다.

Enter를 입력하면 ir receiver의 노이즈 상태를 체크하고 생성할 RCU 이름을 입력하면 된다. 이 과정에서 ir 입력을 하지 않도록 하자.

위의 과정을 거치면, 실제적으로 ir 레코딩 과정이 시작된다. 이 과정에서 최대한 여러 키를 입력하는데, 주의할 점은 어떤 키더라도 1초이상 누르고 있으면 절대 안된다. 그리고 키를 입력하는 과정은 두번에 걸쳐 진행한다.

최대한 많은 키를 두번에 걸처 입력하게 되면, 각각의 키에 대한 키코드를 생성하는 과정이 아래와 같이 진행된다.

위의 과정이 완료되면, ir 입력에 대한 캘리브레이션 과정이 완료된 것이며, 각 키에 대한 키코드를 생성하면 된다. lirc가 정의한 키코드는 깃허브에서 확인이 가능하다. 아래의 이미지는 깃허브의 정의된 각각의 키코드를 레코딩하는 것을 보여준다.

KEY_OK / KEY_1 / KEY_2 / KEY_3 키코드를 ir record를 통하여 레코딩하였고, 모든 키에 대한 입력이 완료되면 키이름 없이 공백상태에서 kbd>Enter를 입력하면 bit mask 스캔을 찾으려고 한다. bit mask 키는 동일를 빠르게 입력하면 되며, 이것이 완료되면 handan_HD_WHL3.lirc.conf 파일이 생성된다.


생성된 키코드의 내용을 다음과 같다.

begin remote

  name  handan_HD_WHL3
  bits           14
  flags RC5|CONST_LENGTH
  eps            30
  aeps          100

  one           864   824
  zero          864   824
  plead         876
  gap          53040
  min_repeat      1
#  suppress_repeat 1
#  uncomment to suppress unwanted repeats
  toggle_bit_mask 0x1000
  frequency    38000

      begin codes
          KEY_OK                   0x289E
          KEY_1                    0x28A2
          KEY_2                    0x28A4
          KEY_3                    0x28A7
      end codes

end remote

추가적으로 NEC RCU에서 키코드가 2바이트 이상의 값이 나오는 경우가 있는데, 이것은 첫 2바이트를 제외 데이터를 지우면 된다. 아니면 fprint_remote_signal() 함수를 살펴보도록 하자.

'개발일기 > 팁 & 테크' 카테고리의 다른 글

데몬에서 강제 프린트 방법  (0) 2018.08.09
GStreamer 1.0 개발환경 구성  (0) 2018.08.05
lirc - ir record 방법  (0) 2018.06.29
Linux Platform Debug 메시지 제거  (0) 2018.03.12
buildroot menuconfig 설정  (0) 2018.03.09
buildroot wget timeout 설정  (0) 2018.02.06