반응형

 

 

 

 

 

 

USB 웹캠을 하나 주워 왔는데 동작이 잘돼서 라즈베리파이에 달아주기로 했습니다.

 

웹캠 제품은 Logitech Orbit/Sphere AF입니다. 

 

uvcdynctrl 를 통해서 webcam에 Pan/Tilt를 조정할 예정입니다. 

 

 

0. uvcdynctrl 설치

sudo apt-get install uvcdynctrl 

 

 

1. uvdynctrl 도움말

uvcdynctrl -h

 

 

 

2. uvdynctrl 사용 가능한 장치 리스트 확인

uvcdynctrl -c

 

 

 

2. uvdynctrl 컨트롤

Controls that work

# uvcdynctrl -s "Pan/tilt Reset" -- 1
# uvcdynctrl -s "Pan/tilt Reset" -- 2
# uvcdynctrl -s "Pan/tilt Reset" -- 3

# uvcdynctrl -s "Pan (relative)" -- -700
$ uvcdynctrl -s "Pan (relative)" -- 700

# uvcdynctrl -s "Tilt (relative)" -- -500
# uvcdynctrl -s "Tilt (relative)" -- 500

# uvcdynctrl -s "Brightness" -- 1
# uvcdynctrl -s "Brightness" -- 255

# uvcdynctrl -s "Contrast" -- 1
# uvcdynctrl -s "Contrast" -- 255

# uvcdynctrl -s "Saturation" -- 1
# uvcdynctrl -s "Saturation" -- 255

# uvcdynctrl -s "Gain" -- 1
# uvcdynctrl -s "Gain" -- 255

# uvcdynctrl -s "Backlight Compensation" -- 0
# uvcdynctrl -s "Backlight Compensation" -- 1
# uvcdynctrl -s "Backlight Compensation" -- 2


# uvcdynctrl -s "Power Line Frequency" -- 0
# uvcdynctrl -s "Power Line Frequency" -- 1
# uvcdynctrl -s "Power Line Frequency" -- 2

# uvcdynctrl -s "White Balance Temperature" -- x

# uvcdynctrl -s "LED1 Mode" -- 0 LED off
# uvcdynctrl -s "LED1 Mode" -- 1 LED on
# uvcdynctrl -s "LED1 Mode" -- 2 LED blinking
# uvcdynctrl -s "LED1 Mode" -- 3 LED on

# 장치가 여러개 잡혀있을 때 명시적으로 지정
# uvcdynctrl ( --device=video0 ) -s "Pan/tilt Reset" -- 1

 

 

3. uvdynctrl 문제

 

a. uvdynctrl이 오래된 라이브러리이고, 더 이상 업데이트가 안됨.

b. tilt는 되지만, pan이 명령이 없음. 저 같은 경우는 추가해주었기 때문에 'pan (relative)'가 있습니다.

 

명령 추가해줍니다.

sudo vim /usr/share/uvcdynctrl/data/046d/logitech.xml

문자열 찾기 : V4L2_CID_PAN_RELATIVE

2008년도에 Pan 관련해서 업데이트를 했다고 합니다. 

 

문자열 찾기 : V4L2_CID_TILT_RELATIVE

 

저 같은 경우는 노란색으로 부분 ID 쪽에 공백으로 돼있었습니다. 

 

V4L2_CID_PAN_RELATIVE 추가해주면 됩니다. 

 

추가가 되었으면, 

uvcdynctrl --import=/usr/share/uvcdynctrl/data/046d/logitech.xml

 

혹시 모르니 재부팅도 해줍니다.

sudo reboot

 

 

 

4. 그래도 안 될 경우 

 

docs.ros.org/en/jade/api/tuw_uvc/html/dynctrl-logitech_8h.html#a193f86e1414943187cb3c847358c0275

 

tuw_uvc: dynctrl-logitech.h File Reference

Go to the source code of this file. Define Documentation Value: { \ 0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, \ 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x56 \ } Definition at line 36 of file dynctrl-logitech.h. Value: { \ 0x82, 0x06, 0x61, 0x63, 0x

docs.ros.org

혹시 모르니, 위 URL에 맞춰 value 값을 바꿉니다.

 

V4L2_CID_PAN_RELATIVE = 0x009A0904 
V4L2_CID_PAN_RESET = 0x009A0906
V4L2_CID_TILT_RELATIVE = 0x009A0905 
V4L2_CID_TILT_RESET = 0x009A0907

 

 

728x90
반응형

+ Recent posts