gobot.io/x/gobot@v1.16.0/examples/joystick_ps4.go (about) 1 // +build example 2 // 3 // Do not build by default. 4 5 package main 6 7 import ( 8 "fmt" 9 10 "gobot.io/x/gobot" 11 "gobot.io/x/gobot/platforms/joystick" 12 ) 13 14 func main() { 15 joystickAdaptor := joystick.NewAdaptor() 16 stick := joystick.NewDriver(joystickAdaptor, joystick.Dualshock4) 17 18 work := func() { 19 stick.On(joystick.SquarePress, func(data interface{}) { 20 fmt.Println("square_press") 21 }) 22 stick.On(joystick.SquareRelease, func(data interface{}) { 23 fmt.Println("square_release") 24 }) 25 stick.On(joystick.TrianglePress, func(data interface{}) { 26 fmt.Println("triangle_press") 27 }) 28 stick.On(joystick.TriangleRelease, func(data interface{}) { 29 fmt.Println("triangle_release") 30 }) 31 stick.On(joystick.CirclePress, func(data interface{}) { 32 fmt.Println("circle_press") 33 }) 34 stick.On(joystick.CircleRelease, func(data interface{}) { 35 fmt.Println("circle_release") 36 }) 37 stick.On(joystick.XPress, func(data interface{}) { 38 fmt.Println("x_press") 39 }) 40 stick.On(joystick.XRelease, func(data interface{}) { 41 fmt.Println("x_release") 42 }) 43 stick.On(joystick.HomePress, func(data interface{}) { 44 fmt.Println("home_press") 45 }) 46 stick.On(joystick.HomeRelease, func(data interface{}) { 47 fmt.Println("home_release") 48 }) 49 stick.On(joystick.SharePress, func(data interface{}) { 50 fmt.Println("share_press") 51 }) 52 stick.On(joystick.ShareRelease, func(data interface{}) { 53 fmt.Println("share_release") 54 }) 55 stick.On(joystick.OptionsPress, func(data interface{}) { 56 fmt.Println("options_press") 57 }) 58 stick.On(joystick.OptionsRelease, func(data interface{}) { 59 fmt.Println("options_release") 60 }) 61 stick.On(joystick.L1Press, func(data interface{}) { 62 fmt.Println("l1_press") 63 }) 64 stick.On(joystick.L1Release, func(data interface{}) { 65 fmt.Println("l1_release") 66 }) 67 stick.On(joystick.L2Press, func(data interface{}) { 68 fmt.Println("l2_press") 69 }) 70 stick.On(joystick.L2Release, func(data interface{}) { 71 fmt.Println("l2_release") 72 }) 73 stick.On(joystick.R1Press, func(data interface{}) { 74 fmt.Println("r1_press") 75 }) 76 stick.On(joystick.R1Release, func(data interface{}) { 77 fmt.Println("r1_release") 78 }) 79 stick.On(joystick.R2Press, func(data interface{}) { 80 fmt.Println("r2_press") 81 }) 82 stick.On(joystick.R2Release, func(data interface{}) { 83 fmt.Println("r2_release") 84 }) 85 86 stick.On(joystick.UpPress, func(data interface{}) { 87 fmt.Println("up_press") 88 }) 89 stick.On(joystick.UpRelease, func(data interface{}) { 90 fmt.Println("up_release") 91 }) 92 stick.On(joystick.DownPress, func(data interface{}) { 93 fmt.Println("down_press") 94 }) 95 stick.On(joystick.DownRelease, func(data interface{}) { 96 fmt.Println("down_release") 97 }) 98 stick.On(joystick.RightPress, func(data interface{}) { 99 fmt.Println("right_press") 100 }) 101 stick.On(joystick.RightRelease, func(data interface{}) { 102 fmt.Println("right_release") 103 }) 104 stick.On(joystick.LeftPress, func(data interface{}) { 105 fmt.Println("left_press") 106 }) 107 stick.On(joystick.LeftRelease, func(data interface{}) { 108 fmt.Println("left_release") 109 }) 110 111 stick.On(joystick.LeftX, func(data interface{}) { 112 fmt.Println("left_x", data) 113 }) 114 stick.On(joystick.LeftY, func(data interface{}) { 115 fmt.Println("left_y", data) 116 }) 117 stick.On(joystick.RightX, func(data interface{}) { 118 fmt.Println("right_x", data) 119 }) 120 stick.On(joystick.RightY, func(data interface{}) { 121 fmt.Println("right_y", data) 122 }) 123 stick.On(joystick.L2, func(data interface{}) { 124 fmt.Println("L2", data) 125 }) 126 stick.On(joystick.R2, func(data interface{}) { 127 fmt.Println("R2", data) 128 }) 129 } 130 131 robot := gobot.NewRobot("joystickBot", 132 []gobot.Connection{joystickAdaptor}, 133 []gobot.Device{stick}, 134 work, 135 ) 136 137 robot.Start() 138 }