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