gobot.io/x/gobot/v2@v2.1.0/examples/joystick_ps3.go (about) 1 //go:build example 2 // +build example 3 4 // 5 // Do not build by default. 6 7 package main 8 9 import ( 10 "fmt" 11 12 "gobot.io/x/gobot/v2" 13 "gobot.io/x/gobot/v2/platforms/joystick" 14 ) 15 16 func main() { 17 joystickAdaptor := joystick.NewAdaptor() 18 stick := joystick.NewDriver(joystickAdaptor, joystick.Dualshock3) 19 20 work := func() { 21 // buttons 22 stick.On(joystick.SquarePress, func(data interface{}) { 23 fmt.Println("square_press") 24 }) 25 stick.On(joystick.SquareRelease, func(data interface{}) { 26 fmt.Println("square_release") 27 }) 28 stick.On(joystick.TrianglePress, func(data interface{}) { 29 fmt.Println("triangle_press") 30 }) 31 stick.On(joystick.TriangleRelease, func(data interface{}) { 32 fmt.Println("triangle_release") 33 }) 34 stick.On(joystick.CirclePress, func(data interface{}) { 35 fmt.Println("circle_press") 36 }) 37 stick.On(joystick.CircleRelease, func(data interface{}) { 38 fmt.Println("circle_release") 39 }) 40 stick.On(joystick.XPress, func(data interface{}) { 41 fmt.Println("x_press") 42 }) 43 stick.On(joystick.XRelease, func(data interface{}) { 44 fmt.Println("x_release") 45 }) 46 stick.On(joystick.StartPress, func(data interface{}) { 47 fmt.Println("start_press") 48 }) 49 stick.On(joystick.StartRelease, func(data interface{}) { 50 fmt.Println("start_release") 51 }) 52 stick.On(joystick.SelectPress, func(data interface{}) { 53 fmt.Println("select_press") 54 }) 55 stick.On(joystick.SelectRelease, func(data interface{}) { 56 fmt.Println("select_release") 57 }) 58 stick.On(joystick.HomePress, func(data interface{}) { 59 fmt.Println("home_press") 60 }) 61 stick.On(joystick.HomeRelease, func(data interface{}) { 62 fmt.Println("home_release") 63 }) 64 stick.On(joystick.RightPress, func(data interface{}) { 65 fmt.Println("right_press") 66 }) 67 stick.On(joystick.LeftPress, func(data interface{}) { 68 fmt.Println("left_press") 69 }) 70 stick.On(joystick.UpPress, func(data interface{}) { 71 fmt.Println("up_press") 72 }) 73 stick.On(joystick.DownPress, func(data interface{}) { 74 fmt.Println("down_press") 75 }) 76 77 // joysticks 78 stick.On(joystick.LeftX, func(data interface{}) { 79 fmt.Println("left_x", data) 80 }) 81 stick.On(joystick.LeftY, func(data interface{}) { 82 fmt.Println("left_y", data) 83 }) 84 stick.On(joystick.RightX, func(data interface{}) { 85 fmt.Println("right_x", data) 86 }) 87 stick.On(joystick.RightY, func(data interface{}) { 88 fmt.Println("right_y", data) 89 }) 90 91 // triggers 92 stick.On(joystick.R1Press, func(data interface{}) { 93 fmt.Println("R1Press", data) 94 }) 95 stick.On(joystick.R2Press, func(data interface{}) { 96 fmt.Println("R2Press", data) 97 }) 98 stick.On(joystick.L1Press, func(data interface{}) { 99 fmt.Println("L1Press", data) 100 }) 101 stick.On(joystick.L2Press, func(data interface{}) { 102 fmt.Println("L2Press", data) 103 }) 104 } 105 106 robot := gobot.NewRobot("joystickBot", 107 []gobot.Connection{joystickAdaptor}, 108 []gobot.Device{stick}, 109 work, 110 ) 111 112 robot.Start() 113 }