GPIO 접속 LCD(Razz Pi 3)의 화면 반전과 캘리브레이션
6468 단어 Raspberrypi3gpio터치스크린
소개
Raspberry Pi 3 Model B에 GPIO 연결의 3.5인치 터치스크린 480*320을 연결했습니다.
이것은 HDMI 단자를 사용하지 않고, 외관이 간단하고 좋을 것 같습니다.
본 자료는 GPIO 접속 터치스크린의 화면 반전, 캘리브레이션 등에 대해 기재합니다.
OS는 Raspbian Stretch입니다.
화면 반전(:rotate=270)
전원 케이블 단자를 케이스 상단으로 하기 위해 화면을 반전합니다.
다음과 같이 「:rotate=270」을 추기해, reboot 합니다.
/boot/config.txt에 추가dtoverlay=tft35a:rotate=270
다음 설정에서는 화면 반전하지 않았습니다.
lcd_rotate=2
display_rotate=2
display_hdmi_rotate=2
참고 정보 htps: //비츠 t. jp / 아 p ぃ カ チ オン / ふぃ ぇ s / 2215 / 0295 / 6474 / r 피 _ 카세 _35 인 ch_lcd_ 셋 p. pdf
입력 반전(Transformation Matrix)
터치 펜과 커서의 움직임을 정합시키기 위해서, 다음의 마지막으로 Transformation Matrix를 설정하고 있습니다.
$ DISPLAY=:0.0 xinput list
? Virtual core pointer id=2 [master pointer (3)]
? ? Virtual core XTEST pointer id=4 [slave pointer (2)]
? ? ADS7846 Touchscreen id=6 [slave pointer (2)]
? Virtual core keyboard id=3 [master keyboard (2)]
? Virtual core XTEST keyboard id=5 [slave keyboard (3)]
$ DISPLAY=:0.0 xinput list-props 6
Device 'ADS7846 Touchscreen':
Device Enabled (116): 1
Coordinate Transformation Matrix (117): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix (248): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (249): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available (250): 1, 0
libinput Send Events Mode Enabled (251): 0, 0
libinput Send Events Mode Enabled Default (252): 0, 0
Device Node (253): "/dev/input/event2"
Device Product ID (254): 0, 0
$ xinput set-prop 'ADS7846 Touchscreen' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1
참고 정보 htps // 푸 b. s ぁ b ぅ. tk/메모/다 y3857. HTML
입력 캘리브레이션(Calibration Matrix)
터치 위치와 커서를 맞추기 위해 다음의 순서로 캘리브레이션합니다.
(1) 「DISPLAY=:0.0 xinput_calibrator -v」
를 사용자 pi로 실행합니다. 지정된 4점을 클릭하면 다음과 같이 좌표가 표준 출력으로 출력됩니다.
DEBUG: Adding click 0 (X=78, Y=54)
DEBUG: Adding click 1 (X=407, Y=53)
DEBUG: Adding click 2 (X=83, Y=268)
DEBUG: Adding click 3 (X=407, Y=267)
(2) 4개의 파라미터를 다음 식으로 계산합니다.
a = (screen_width * 6/8)/(click_3_X - click_0_X)
c = ((screen_width/8) - (a * click_0_X))/screen_width
e = (screen_height * 6/8)/(click_3_Y - click_0_Y)
f = ((screen_height/8) - (e * click_0_Y))/screen_height
각각 다음 값이 되었습니다.
1.094224924
-0.05281155015
1.126760563
-0.06514084507
(3) Calibration Matrix 설정
위의 매개 변수를 사용하여 다음과 같이 Calibration Matrix를 설정합니다.
xinput set-prop "ADS7846 Touchscreen""libinput Calibration Matrix"a, 0.0, c, 0.0, e, f, 0.0, 0.0, 1.0
실제 명령은 다음과 같습니다.
DISPLAY=:0.0 xinput set-prop "ADS7846 Touchscreen" "libinput Calibration Matrix" 1.094224924, 0.0, -0.05281155015, 0.0, 1.126760563, -0.06514084507, 0.0, 0.0, 1.0
(4) 캘리브레이션이 되어 있는 것을, 화면 클릭해 확인합니다.
참고 정보 htps : // 우우키. 아 rch ㅃ x. rg / 어서 x. php / ta lk : kab 라칭 g_ To chsc Reen # 빈 t_b Rea ks_ 펜 t_ kab 등 r
입력 반전 및 입력 교정 고정
rotate_touch_screen.sh를 새롭게 작성해, 동작 확인한 2개의 xinput 커멘드를 기술합니다.
다음과 같이 화면이 시작될 때 자동으로 실행됩니다.
/home/pi/.config/lxsession/LXDE-pi/autostart 추가@/home/pi/.config/lxsession/LXDE-pi/rotate_touch_screen.sh
기타
최종 Transformation Matrix 및 Calibration Matrix
$ DISPLAY=:0.0 xinput list-props 6
Device 'ADS7846 Touchscreen':
Device Enabled (116): 1
Coordinate Transformation Matrix (117): 0.000000, 1.000000, 0.000000, -1.000000, 0.000000, 1.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix (248): 1.094225, 0.000000, -0.052812, 0.000000, 1.126761, -0.065141, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (249): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available (250): 1, 0
libinput Send Events Mode Enabled (251): 0, 0
libinput Send Events Mode Enabled Default (252): 0, 0
Device Node (253): "/dev/input/event0"
Device Product ID (254): 0, 0
세로 놓을 때의 파라미터
dtoverlay=tft35a:rotate=0
DISPLAY=:0 xinput set-prop 'ADS7846 Touchscreen' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
stretch의 Xorg의 기본 input 드라이버는 libinput (jessie는 evdev)
폰트 도입 sudo apt-get install fonts-noto
소프트웨어 키보드 도입 sudo apt-get install matchbox-keyboard
화면 상단의 왼쪽 끝 메뉴에서 Accessories/Keyboard로 시작할 수 있습니다.
Reference
이 문제에 관하여(GPIO 접속 LCD(Razz Pi 3)의 화면 반전과 캘리브레이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tshimizu8/items/4363a581c330c464f25b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
전원 케이블 단자를 케이스 상단으로 하기 위해 화면을 반전합니다.
다음과 같이 「:rotate=270」을 추기해, reboot 합니다.
/boot/config.txt에 추가
dtoverlay=tft35a:rotate=270
다음 설정에서는 화면 반전하지 않았습니다.
lcd_rotate=2
display_rotate=2
display_hdmi_rotate=2
참고 정보 htps: //비츠 t. jp / 아 p ぃ カ チ オン / ふぃ ぇ s / 2215 / 0295 / 6474 / r 피 _ 카세 _35 인 ch_lcd_ 셋 p. pdf
입력 반전(Transformation Matrix)
터치 펜과 커서의 움직임을 정합시키기 위해서, 다음의 마지막으로 Transformation Matrix를 설정하고 있습니다.
$ DISPLAY=:0.0 xinput list
? Virtual core pointer id=2 [master pointer (3)]
? ? Virtual core XTEST pointer id=4 [slave pointer (2)]
? ? ADS7846 Touchscreen id=6 [slave pointer (2)]
? Virtual core keyboard id=3 [master keyboard (2)]
? Virtual core XTEST keyboard id=5 [slave keyboard (3)]
$ DISPLAY=:0.0 xinput list-props 6
Device 'ADS7846 Touchscreen':
Device Enabled (116): 1
Coordinate Transformation Matrix (117): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix (248): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (249): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available (250): 1, 0
libinput Send Events Mode Enabled (251): 0, 0
libinput Send Events Mode Enabled Default (252): 0, 0
Device Node (253): "/dev/input/event2"
Device Product ID (254): 0, 0
$ xinput set-prop 'ADS7846 Touchscreen' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1
참고 정보 htps // 푸 b. s ぁ b ぅ. tk/메모/다 y3857. HTML
입력 캘리브레이션(Calibration Matrix)
터치 위치와 커서를 맞추기 위해 다음의 순서로 캘리브레이션합니다.
(1) 「DISPLAY=:0.0 xinput_calibrator -v」
를 사용자 pi로 실행합니다. 지정된 4점을 클릭하면 다음과 같이 좌표가 표준 출력으로 출력됩니다.
DEBUG: Adding click 0 (X=78, Y=54)
DEBUG: Adding click 1 (X=407, Y=53)
DEBUG: Adding click 2 (X=83, Y=268)
DEBUG: Adding click 3 (X=407, Y=267)
(2) 4개의 파라미터를 다음 식으로 계산합니다.
a = (screen_width * 6/8)/(click_3_X - click_0_X)
c = ((screen_width/8) - (a * click_0_X))/screen_width
e = (screen_height * 6/8)/(click_3_Y - click_0_Y)
f = ((screen_height/8) - (e * click_0_Y))/screen_height
각각 다음 값이 되었습니다.
1.094224924
-0.05281155015
1.126760563
-0.06514084507
(3) Calibration Matrix 설정
위의 매개 변수를 사용하여 다음과 같이 Calibration Matrix를 설정합니다.
xinput set-prop "ADS7846 Touchscreen""libinput Calibration Matrix"a, 0.0, c, 0.0, e, f, 0.0, 0.0, 1.0
실제 명령은 다음과 같습니다.
DISPLAY=:0.0 xinput set-prop "ADS7846 Touchscreen" "libinput Calibration Matrix" 1.094224924, 0.0, -0.05281155015, 0.0, 1.126760563, -0.06514084507, 0.0, 0.0, 1.0
(4) 캘리브레이션이 되어 있는 것을, 화면 클릭해 확인합니다.
참고 정보 htps : // 우우키. 아 rch ㅃ x. rg / 어서 x. php / ta lk : kab 라칭 g_ To chsc Reen # 빈 t_b Rea ks_ 펜 t_ kab 등 r
입력 반전 및 입력 교정 고정
rotate_touch_screen.sh를 새롭게 작성해, 동작 확인한 2개의 xinput 커멘드를 기술합니다.
다음과 같이 화면이 시작될 때 자동으로 실행됩니다.
/home/pi/.config/lxsession/LXDE-pi/autostart 추가@/home/pi/.config/lxsession/LXDE-pi/rotate_touch_screen.sh
기타
최종 Transformation Matrix 및 Calibration Matrix
$ DISPLAY=:0.0 xinput list-props 6
Device 'ADS7846 Touchscreen':
Device Enabled (116): 1
Coordinate Transformation Matrix (117): 0.000000, 1.000000, 0.000000, -1.000000, 0.000000, 1.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix (248): 1.094225, 0.000000, -0.052812, 0.000000, 1.126761, -0.065141, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (249): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available (250): 1, 0
libinput Send Events Mode Enabled (251): 0, 0
libinput Send Events Mode Enabled Default (252): 0, 0
Device Node (253): "/dev/input/event0"
Device Product ID (254): 0, 0
세로 놓을 때의 파라미터
dtoverlay=tft35a:rotate=0
DISPLAY=:0 xinput set-prop 'ADS7846 Touchscreen' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
stretch의 Xorg의 기본 input 드라이버는 libinput (jessie는 evdev)
폰트 도입 sudo apt-get install fonts-noto
소프트웨어 키보드 도입 sudo apt-get install matchbox-keyboard
화면 상단의 왼쪽 끝 메뉴에서 Accessories/Keyboard로 시작할 수 있습니다.
Reference
이 문제에 관하여(GPIO 접속 LCD(Razz Pi 3)의 화면 반전과 캘리브레이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tshimizu8/items/4363a581c330c464f25b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ DISPLAY=:0.0 xinput list
? Virtual core pointer id=2 [master pointer (3)]
? ? Virtual core XTEST pointer id=4 [slave pointer (2)]
? ? ADS7846 Touchscreen id=6 [slave pointer (2)]
? Virtual core keyboard id=3 [master keyboard (2)]
? Virtual core XTEST keyboard id=5 [slave keyboard (3)]
$ DISPLAY=:0.0 xinput list-props 6
Device 'ADS7846 Touchscreen':
Device Enabled (116): 1
Coordinate Transformation Matrix (117): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix (248): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (249): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available (250): 1, 0
libinput Send Events Mode Enabled (251): 0, 0
libinput Send Events Mode Enabled Default (252): 0, 0
Device Node (253): "/dev/input/event2"
Device Product ID (254): 0, 0
$ xinput set-prop 'ADS7846 Touchscreen' 'Coordinate Transformation Matrix' 0 -1 1 1 0 0 0 0 1
터치 위치와 커서를 맞추기 위해 다음의 순서로 캘리브레이션합니다.
(1) 「DISPLAY=:0.0 xinput_calibrator -v」
를 사용자 pi로 실행합니다. 지정된 4점을 클릭하면 다음과 같이 좌표가 표준 출력으로 출력됩니다.
DEBUG: Adding click 0 (X=78, Y=54)
DEBUG: Adding click 1 (X=407, Y=53)
DEBUG: Adding click 2 (X=83, Y=268)
DEBUG: Adding click 3 (X=407, Y=267)
(2) 4개의 파라미터를 다음 식으로 계산합니다.
a = (screen_width * 6/8)/(click_3_X - click_0_X)
c = ((screen_width/8) - (a * click_0_X))/screen_width
e = (screen_height * 6/8)/(click_3_Y - click_0_Y)
f = ((screen_height/8) - (e * click_0_Y))/screen_height
각각 다음 값이 되었습니다.
1.094224924
-0.05281155015
1.126760563
-0.06514084507
(3) Calibration Matrix 설정
위의 매개 변수를 사용하여 다음과 같이 Calibration Matrix를 설정합니다.
xinput set-prop "ADS7846 Touchscreen""libinput Calibration Matrix"a, 0.0, c, 0.0, e, f, 0.0, 0.0, 1.0
실제 명령은 다음과 같습니다.
DISPLAY=:0.0 xinput set-prop "ADS7846 Touchscreen" "libinput Calibration Matrix" 1.094224924, 0.0, -0.05281155015, 0.0, 1.126760563, -0.06514084507, 0.0, 0.0, 1.0
(4) 캘리브레이션이 되어 있는 것을, 화면 클릭해 확인합니다.
참고 정보 htps : // 우우키. 아 rch ㅃ x. rg / 어서 x. php / ta lk : kab 라칭 g_ To chsc Reen # 빈 t_b Rea ks_ 펜 t_ kab 등 r
입력 반전 및 입력 교정 고정
rotate_touch_screen.sh를 새롭게 작성해, 동작 확인한 2개의 xinput 커멘드를 기술합니다.
다음과 같이 화면이 시작될 때 자동으로 실행됩니다.
/home/pi/.config/lxsession/LXDE-pi/autostart 추가@/home/pi/.config/lxsession/LXDE-pi/rotate_touch_screen.sh
기타
최종 Transformation Matrix 및 Calibration Matrix
$ DISPLAY=:0.0 xinput list-props 6
Device 'ADS7846 Touchscreen':
Device Enabled (116): 1
Coordinate Transformation Matrix (117): 0.000000, 1.000000, 0.000000, -1.000000, 0.000000, 1.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix (248): 1.094225, 0.000000, -0.052812, 0.000000, 1.126761, -0.065141, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (249): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available (250): 1, 0
libinput Send Events Mode Enabled (251): 0, 0
libinput Send Events Mode Enabled Default (252): 0, 0
Device Node (253): "/dev/input/event0"
Device Product ID (254): 0, 0
세로 놓을 때의 파라미터
dtoverlay=tft35a:rotate=0
DISPLAY=:0 xinput set-prop 'ADS7846 Touchscreen' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
stretch의 Xorg의 기본 input 드라이버는 libinput (jessie는 evdev)
폰트 도입 sudo apt-get install fonts-noto
소프트웨어 키보드 도입 sudo apt-get install matchbox-keyboard
화면 상단의 왼쪽 끝 메뉴에서 Accessories/Keyboard로 시작할 수 있습니다.
Reference
이 문제에 관하여(GPIO 접속 LCD(Razz Pi 3)의 화면 반전과 캘리브레이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tshimizu8/items/4363a581c330c464f25b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@/home/pi/.config/lxsession/LXDE-pi/rotate_touch_screen.sh
최종 Transformation Matrix 및 Calibration Matrix
$ DISPLAY=:0.0 xinput list-props 6
Device 'ADS7846 Touchscreen':
Device Enabled (116): 1
Coordinate Transformation Matrix (117): 0.000000, 1.000000, 0.000000, -1.000000, 0.000000, 1.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix (248): 1.094225, 0.000000, -0.052812, 0.000000, 1.126761, -0.065141, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (249): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available (250): 1, 0
libinput Send Events Mode Enabled (251): 0, 0
libinput Send Events Mode Enabled Default (252): 0, 0
Device Node (253): "/dev/input/event0"
Device Product ID (254): 0, 0
세로 놓을 때의 파라미터
dtoverlay=tft35a:rotate=0
DISPLAY=:0 xinput set-prop 'ADS7846 Touchscreen' 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1
stretch의 Xorg의 기본 input 드라이버는 libinput (jessie는 evdev)
폰트 도입 sudo apt-get install fonts-noto
소프트웨어 키보드 도입 sudo apt-get install matchbox-keyboard
화면 상단의 왼쪽 끝 메뉴에서 Accessories/Keyboard로 시작할 수 있습니다.
Reference
이 문제에 관하여(GPIO 접속 LCD(Razz Pi 3)의 화면 반전과 캘리브레이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tshimizu8/items/4363a581c330c464f25b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)