JoyStick

2024. 6. 21. 12:04Jetson

 

✅ JoyStick

  • 1) 다이렉트 연결 제어
  • 2) 무선으로 연결 제어
# jstest -> 찾을 수 없다 오류?
# 조이스틱 관련 라이브러리 설치하기!
# sudo apt-get install joystick
# js0에서 발생하는 이벤트를 사용자가 접근할 수 있도록 파이썬 라이브러리 설치
# sudo apt-get intsall python3-evdev
sudo apt-get install python3-evdev

import evdev

print(evdev.list_devices())

path = '/dev/input/event2'

device = evdev.InputDevice(path)
device

from evdev import ecodes
for event in device.read_loop():
    if event.type == ecodes.EV_KEY:
        if event.value == 1:
            print(event)
            if event.code == 288 : 
                print("💫1 버튼 클릭💫")      
            elif event.code == 289 : 
                print("💫2 버튼 클릭💫")                
            elif event.code == 290 :   
                print("💫3 버튼 클릭💫")  
            elif event.code == 291 : 
                print("💫4 버튼 클릭💫")        
            elif event.code == 292 :   
                print("💫L1 버튼 클릭💫")    
            elif event.code == 293 :
                print("💫R1 버튼 클릭💫")      
            elif event.code == 294 :
                print("💫L2 버튼 클릭💫")     
            elif event.code == 295 :
                print("💫R2 버튼 클릭💫")                    
            elif event.code == 296 :
                print("💫Select 버튼 클릭💫")      
            elif event.code == 297 :
                print("💫Start 버튼 클릭💫") 
            elif event.code == 298 :
                print("💫왼쪽 조이스틱 클릭💫")    
            elif event.code == 299 :
                print("💫오른쪽 조이스틱 클릭💫")

import custom
import head

from evdev import ecodes, categorize

for event in device.read_loop():
    
    if event.type == ecodes.EV_KEY: # 디지털 신호
        
        if event.value == 1: # 버튼 1 or 0 신호
            
            print(event)
            
            if event.code == 288 : 
                print("💫1 버튼 클릭💫") 
            elif event.code == 289 : 
                print("💫2 버튼 클릭💫")                
            elif event.code == 290 :   
                print("💫3 버튼 클릭💫")  
            elif event.code == 291 : 
                print("💫4 버튼 클릭💫")        
            elif event.code == 292 :   
                print("💫L1 버튼 클릭💫")    
            elif event.code == 293 :
                print("💫R1 버튼 클릭💫")      
            elif event.code == 294 :
                print("💫L2 버튼 클릭💫")     
            elif event.code == 295 :
                print("💫R2 버튼 클릭💫")                    
            elif event.code == 296 :
                print("💫Select 버튼 클릭💫")
                head.center()
            elif event.code == 297 :
                print("💫Start 버튼 클릭💫")
                custom.stop()
            elif event.code == 298 :
                print("💫왼쪽 조이스틱 클릭💫")    
            elif event.code == 299 :
                print("💫오른쪽 조이스틱 클릭💫")
                
    elif event.type == ecodes.EV_ABS : # 아날로그 신호
        
        absolute = categorize(event) # import categorize
        code = ecodes.bytype[absolute.event.type][absolute.event.code]
        value = absolute.event.value
        
        # print(code) # ABS_Z, ABS_X, ABS_RX, ABS_RZ, ABS_Y
        
        if code == "ABS_Y" :
            if value == 0 :
                print("💫왼쪽 조이스틱 UP💫")
                head.tilt_up()
            elif value == 255 :
                print("💫왼쪽 조이스틱 DOWN💫")
                head.tilt_down()
        elif code == "ABS_X" :
            if value == 0 :
                print("💫왼쪽 조이스틱 LEFT💫")
                head.pan_left()
            if value == 255 :
                print("💫왼쪽 조이스틱 RIGHT💫")
                head.pan_right()
        elif code == "ABS_RZ" :
            if value == 0 :
                print("💫오른쪽 조이스틱 UP💫")
                custom.forward()
            elif value == 255 :
                print("💫오른쪽 조이스틱 DOWN💫")
                custom.backward()
        elif code == "ABS_RX" :
            if value == 0 :
                print("💫오른쪽 조이스틱 LEFT💫")
                custom.left()
            elif value == 255 :
                print("💫오른쪽 조이스틱 RIGHT💫")
                custom.right()

 

'Jetson' 카테고리의 다른 글

Data collection  (0) 2024.06.27
Wireless_Joystick  (0) 2024.06.24
Face Tracking  (1) 2024.06.21
Cat Detection  (0) 2024.06.20
FaceDetection  (0) 2024.06.20