diff --git a/examples/sprkplus_collision.go b/examples/sprkplus_collision.go new file mode 100644 index 00000000..fc707a4b --- /dev/null +++ b/examples/sprkplus_collision.go @@ -0,0 +1,46 @@ +// +build example +// +// Do not build by default. + +/* + How to run + Pass the Bluetooth address or name as the first param: + + go run examples/bb8-collision.go BB-1234 + + NOTE: sudo is required to use BLE in Linux +*/ + +package main + +import ( + "fmt" + "os" + + "gobot.io/x/gobot" + "gobot.io/x/gobot/platforms/ble" + "gobot.io/x/gobot/platforms/sphero/sprkplus" +) + +func main() { + bleAdaptor := ble.NewClientAdaptor(os.Args[1]) + ball := sprkplus.NewDriver(bleAdaptor) + + work := func() { + ball.On("collision", func(data interface{}) { + fmt.Printf("collision detected = %+v \n", data) + ball.SetRGB(255, 0, 0) + }) + + ball.SetRGB(0, 255, 0) + ball.Roll(80, 0) + } + + robot := gobot.NewRobot("sprkplus", + []gobot.Connection{bleAdaptor}, + []gobot.Device{ball}, + work, + ) + + robot.Start() +} diff --git a/platforms/sphero/bb8/bb8_packets.go b/platforms/sphero/bb8/bb8_packets.go new file mode 100644 index 00000000..0dac0624 --- /dev/null +++ b/platforms/sphero/bb8/bb8_packets.go @@ -0,0 +1,15 @@ +package bb8 + +import "gobot.io/x/gobot/platforms/sphero" + +// DefaultCollisionConfig returns a CollisionConfig with sensible collision defaults +func DefaultCollisionConfig() sphero.CollisionConfig { + return sphero.CollisionConfig{ + Method: 0x01, + Xt: 0x20, + Yt: 0x20, + Xs: 0x20, + Ys: 0x20, + Dead: 0x01, + } +} diff --git a/platforms/sphero/sprkplus/sprkplus_packets.go b/platforms/sphero/sprkplus/sprkplus_packets.go new file mode 100644 index 00000000..e5e1c3b7 --- /dev/null +++ b/platforms/sphero/sprkplus/sprkplus_packets.go @@ -0,0 +1,15 @@ +package sprkplus + +import "gobot.io/x/gobot/platforms/sphero" + +// DefaultCollisionConfig returns a CollisionConfig with sensible collision defaults +func DefaultCollisionConfig() sphero.CollisionConfig { + return sphero.CollisionConfig{ + Method: 0x01, + Xt: 0x20, + Yt: 0x20, + Xs: 0x20, + Ys: 0x20, + Dead: 0x01, + } +}