1
0
mirror of https://github.com/hybridgroup/gobot.git synced 2025-04-24 13:48:49 +08:00

examples: fix missing checks of return values (#1060)

This commit is contained in:
Thomas Kohler 2024-02-11 15:34:50 +01:00 committed by szampardi
parent deb7770af7
commit 8f9695f8ef
309 changed files with 2915 additions and 1294 deletions

View File

@ -59,6 +59,22 @@ jobs:
SOME=$(grep -L 'digispark' $(grep -L 'gocv' ${ALL}))
for e in ${SOME} ; do go vet "${e}" ; done
"fmt_check_examples":
docker:
- image: golangci/golangci-lint:v1.55.2
steps:
- checkout
- run:
name: Debug linter version
command: golangci-lint --version
- run:
# digispark needs libusb, opencv needs opencv
name: Check examples for linter issues (except digispark, opencv)
command: |
ALL=$(grep -l -r --include "*.go" 'build example' ./)
SOME=$(grep -L 'digispark' $(grep -L 'gocv' ${ALL}))
for e in ${SOME} ; do golangci-lint run "${e}" --build-tags example --disable forcetypeassert --disable noctx ; done
workflows:
version: 2
build:
@ -66,3 +82,4 @@ workflows:
- "test_core_and_drivers_with_coverage"
- "test_platforms"
- "check_examples"
- "fmt_check_examples"

View File

@ -5,7 +5,7 @@ EXAMPLES_NO_GOCV := $(shell grep -L 'gocv' $(ALL_EXAMPLES))
# used examples
EXAMPLES := $(EXAMPLES_NO_GOCV)
.PHONY: test test_race test_cover robeaux version_check fmt_check fmt_fix examples examples_check $(EXAMPLES)
.PHONY: test test_race test_cover robeaux version_check fmt_check fmt_fix examples examples_check examples_fmt_fix $(EXAMPLES)
# opencv platform currently skipped to prevent install of preconditions
including_except := $(shell go list ./... | grep -v platforms/opencv)
@ -65,9 +65,15 @@ examples: $(EXAMPLES)
examples_check:
$(MAKE) CHECK=ON examples
examples_fmt_fix:
$(MAKE) CHECK=FMT examples
$(EXAMPLES):
ifeq ($(CHECK),ON)
go vet ./$@
else ifeq ($(CHECK),FMT)
gofumpt -l -w ./$@
golangci-lint run ./$@ --fix --build-tags example --disable forcetypeassert --disable noctx
else
go build -o /tmp/gobot_examples/$@ ./$@
endif

View File

@ -77,7 +77,9 @@ func main() {
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -87,7 +89,9 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}
```
@ -121,7 +125,9 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}
```
@ -141,13 +147,19 @@ import (
func main() {
e := edison.NewAdaptor()
e.Connect()
if err := e.Connect(); err != nil {
fmt.Println(err)
}
led := gpio.NewLedDriver(e, "13")
led.Start()
if err := led.Start(); err != nil {
fmt.Println(err)
}
for {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
time.Sleep(1000 * time.Millisecond)
}
}
@ -179,7 +191,7 @@ func NewSwarmBot(port string) *gobot.Robot {
work := func() {
spheroDriver.Stop()
spheroDriver.On(sphero.CollisionEvent, func(data interface{}) {
_ = spheroDriver.On(sphero.CollisionEvent, func(data interface{}) {
fmt.Println("Collision Detected!")
})
@ -218,7 +230,9 @@ func main() {
master.AddRobot(NewSwarmBot(port))
}
master.Start()
if err := master.Start(); err != nil {
panic(err)
}
}
```

26
doc.go
View File

@ -27,7 +27,9 @@ Here is a "Classic Gobot" program that blinks an LED using an Arduino:
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -37,7 +39,9 @@ Here is a "Classic Gobot" program that blinks an LED using an Arduino:
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}
# Metal Gobot
@ -55,13 +59,19 @@ pure idiomatic Golang code. For example:
func main() {
e := edison.NewAdaptor()
e.Connect()
if err := e.Connect(); err != nil {
fmt.Println(err)
}
led := gpio.NewLedDriver(e, "13")
led.Start()
if err := led.Start(); err != nil {
fmt.Println(err)
}
for {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
time.Sleep(1000 * time.Millisecond)
}
}
@ -90,7 +100,7 @@ Finally, you can use Master Gobot to add the complete Gobot API or control swarm
work := func() {
spheroDriver.Stop()
spheroDriver.On(sphero.CollisionEvent, func(data interface{}) {
_ = spheroDriver.On(sphero.CollisionEvent, func(data interface{}) {
fmt.Println("Collision Detected!")
})
@ -129,7 +139,9 @@ Finally, you can use Master Gobot to add the complete Gobot API or control swarm
master.AddRobot(NewSwarmBot(port))
}
master.Start()
if err := master.Start(); err != nil {
panic(err)
}
}
Copyright (c) 2013-2018 The Hybrid Group. Licensed under the Apache 2.0 license.

View File

@ -94,7 +94,7 @@ import(
adaptor := sphero.NewAdaptor("/dev/rfcomm0")
spheroDriver := sphero.NewSpheroDriver(adaptor)
...
spheroDriver.On(sphero.Collision, func(data interface{}) {
_ = spheroDriver.On(sphero.Collision, func(data interface{}) {
...
// new
@ -109,7 +109,7 @@ import(
adaptor := serialport.NewAdaptor("/dev/rfcomm0")
spheroDriver := serial.NewSpheroDriver(adaptor)
...
spheroDriver.On(sphero.CollisionEvent, func(data interface{}) {
_ = spheroDriver.On(sphero.CollisionEvent, func(data interface{}) {
...
```

View File

@ -18,7 +18,7 @@ func main() {
drone := ardrone.NewDriver(ardroneAdaptor)
work := func() {
drone.On(ardrone.Flying, func(data interface{}) {
_ = drone.On(ardrone.Flying, func(data interface{}) {
gobot.After(3*time.Second, func() {
drone.Land()
})
@ -32,5 +32,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -41,7 +41,7 @@ func main() {
window.WaitKey(1)
}
})
drone.On(ardrone.Flying, func(data interface{}) {
_ = drone.On(ardrone.Flying, func(data interface{}) {
gobot.After(1*time.Second, func() { drone.Up(0.2) })
gobot.After(2*time.Second, func() { drone.Hover() })
gobot.After(5*time.Second, func() {
@ -83,5 +83,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -37,34 +37,34 @@ func main() {
rightY.Store(float64(0.0))
work := func() {
stick.On(joystick.SquarePress, func(data interface{}) {
_ = stick.On(joystick.SquarePress, func(data interface{}) {
drone.TakeOff()
})
stick.On(joystick.TrianglePress, func(data interface{}) {
_ = stick.On(joystick.TrianglePress, func(data interface{}) {
drone.Hover()
})
stick.On(joystick.XPress, func(data interface{}) {
_ = stick.On(joystick.XPress, func(data interface{}) {
drone.Land()
})
stick.On(joystick.LeftX, func(data interface{}) {
_ = stick.On(joystick.LeftX, func(data interface{}) {
val := float64(data.(int16))
leftX.Store(val)
})
stick.On(joystick.LeftY, func(data interface{}) {
_ = stick.On(joystick.LeftY, func(data interface{}) {
val := float64(data.(int16))
leftY.Store(val)
})
stick.On(joystick.RightX, func(data interface{}) {
_ = stick.On(joystick.RightX, func(data interface{}) {
val := float64(data.(int16))
rightX.Store(val)
})
stick.On(joystick.RightY, func(data interface{}) {
_ = stick.On(joystick.RightY, func(data interface{}) {
val := float64(data.(int16))
rightY.Store(val)
})
@ -120,7 +120,9 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}
func getLeftStick() pair {

View File

@ -29,5 +29,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -42,7 +42,9 @@ func main() {
})
gbot.AddRobot(r)
gbot.Start()
if err := gbot.Start(); err != nil {
fmt.Println(err)
}
}
var _ gobot.Adaptor = (*loopbackAdaptor)(nil)

View File

@ -7,6 +7,8 @@
package main
import (
"fmt"
"gobot.io/x/gobot/v2/drivers/gpio"
"gobot.io/x/gobot/v2/platforms/beaglebone"
)
@ -17,11 +19,15 @@ func main() {
gpioPin := gpio.NewDirectPinDriver(beagleboneAdaptor, "P9_12")
// Initialize the internal representation of the pinout
beagleboneAdaptor.Connect()
if err := beagleboneAdaptor.Connect(); err != nil {
fmt.Println(err)
}
// Cast to byte because we are returning an int from a function
// and not passing in an int literal.
gpioPin.DigitalWrite(byte(myStateFunction()))
if err := gpioPin.DigitalWrite(byte(myStateFunction())); err != nil {
fmt.Println(err)
}
}
// myStateFunction determines what the GPIO state should be

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -20,7 +21,9 @@ func main() {
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -30,5 +33,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -20,7 +21,9 @@ func main() {
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -30,5 +33,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -24,8 +24,13 @@ func main() {
r := byte(gobot.Rand(255))
g := byte(gobot.Rand(255))
b := byte(gobot.Rand(255))
blinkm.Rgb(r, g, b)
color, _ := blinkm.Color()
if err := blinkm.Rgb(r, g, b); err != nil {
fmt.Println(err)
}
color, err := blinkm.Color()
if err != nil {
fmt.Println(err)
}
fmt.Println("color", color)
})
}
@ -36,5 +41,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -19,11 +19,11 @@ func main() {
button := gpio.NewButtonDriver(beagleboneAdaptor, "P8_09")
work := func() {
button.On(gpio.ButtonPush, func(data interface{}) {
_ = button.On(gpio.ButtonPush, func(data interface{}) {
fmt.Println("button pressed")
})
button.On(gpio.ButtonRelease, func(data interface{}) {
_ = button.On(gpio.ButtonRelease, func(data interface{}) {
fmt.Println("button released")
})
}
@ -34,5 +34,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -23,9 +24,13 @@ func main() {
gobot.Every(500*time.Millisecond, func() {
val, _ := button.DigitalRead()
if val == 1 {
led.DigitalWrite(1)
if err := led.DigitalWrite(1); err != nil {
fmt.Println(err)
}
} else {
led.DigitalWrite(0)
if err := led.DigitalWrite(0); err != nil {
fmt.Println(err)
}
}
})
}
@ -36,5 +41,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -36,5 +36,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -23,7 +24,9 @@ func main() {
fadeAmount := uint8(5)
gobot.Every(100*time.Millisecond, func() {
led.Brightness(brightness)
if err := led.Brightness(brightness); err != nil {
fmt.Println(err)
}
brightness = brightness + fadeAmount
if brightness == 0 || brightness == 255 {
fadeAmount = -fadeAmount
@ -37,5 +40,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -22,13 +22,15 @@ func main() {
led := gpio.NewLedDriver(beagleboneAdaptor, "P9_14")
work := func() {
sensor.On(sensor.Event("data"), func(data interface{}) {
_ = sensor.On(sensor.Event("data"), func(data interface{}) {
brightness := uint8(
gobot.ToScale(gobot.FromScale(float64(data.(int)), 0, 1024), 0, 255),
)
fmt.Println("sensor", data)
fmt.Println("brightness", brightness)
led.Brightness(brightness)
if err := led.Brightness(brightness); err != nil {
fmt.Println(err)
}
})
}
@ -38,5 +40,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -23,7 +23,9 @@ func main() {
gobot.Every(1*time.Second, func() {
i := uint8(gobot.Rand(180))
fmt.Println("Turning", i)
servo.Move(i)
if err := servo.Move(i); err != nil {
fmt.Println(err)
}
})
}
@ -33,5 +35,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -18,13 +19,17 @@ func main() {
drone := bebop.NewDriver(bebopAdaptor)
work := func() {
drone.On(bebop.Flying, func(data interface{}) {
_ = drone.On(bebop.Flying, func(data interface{}) {
gobot.After(10*time.Second, func() {
drone.Land()
if err := drone.Land(); err != nil {
fmt.Println(err)
}
})
})
drone.HullProtection(true)
if err := drone.HullProtection(true); err != nil {
fmt.Println(err)
}
drone.TakeOff()
}
@ -34,5 +39,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"sync/atomic"
"time"
@ -39,44 +40,54 @@ func main() {
recording := false
stick.On(joystick.CirclePress, func(data interface{}) {
_ = stick.On(joystick.CirclePress, func(data interface{}) {
if recording {
drone.StopRecording()
if err := drone.StopRecording(); err != nil {
fmt.Println(err)
}
} else {
drone.StartRecording()
if err := drone.StartRecording(); err != nil {
fmt.Println(err)
}
}
recording = !recording
})
stick.On(joystick.SquarePress, func(data interface{}) {
drone.HullProtection(true)
_ = stick.On(joystick.SquarePress, func(data interface{}) {
if err := drone.HullProtection(true); err != nil {
fmt.Println(err)
}
drone.TakeOff()
})
stick.On(joystick.TrianglePress, func(data interface{}) {
drone.Stop()
_ = stick.On(joystick.TrianglePress, func(data interface{}) {
if err := drone.Stop(); err != nil {
fmt.Println(err)
}
})
stick.On(joystick.XPress, func(data interface{}) {
drone.Land()
_ = stick.On(joystick.XPress, func(data interface{}) {
if err := drone.Land(); err != nil {
fmt.Println(err)
}
})
stick.On(joystick.LeftX, func(data interface{}) {
_ = stick.On(joystick.LeftX, func(data interface{}) {
val := float64(data.(int16))
leftX.Store(val)
})
stick.On(joystick.LeftY, func(data interface{}) {
_ = stick.On(joystick.LeftY, func(data interface{}) {
val := float64(data.(int16))
leftY.Store(val)
})
stick.On(joystick.RightX, func(data interface{}) {
_ = stick.On(joystick.RightX, func(data interface{}) {
val := float64(data.(int16))
rightX.Store(val)
})
stick.On(joystick.RightY, func(data interface{}) {
_ = stick.On(joystick.RightY, func(data interface{}) {
val := float64(data.(int16))
rightY.Store(val)
})
@ -86,20 +97,32 @@ func main() {
switch {
case leftStick.y < -10:
drone.Forward(bebop.ValidatePitch(leftStick.y, offset))
if err := drone.Forward(bebop.ValidatePitch(leftStick.y, offset)); err != nil {
fmt.Println(err)
}
case leftStick.y > 10:
drone.Backward(bebop.ValidatePitch(leftStick.y, offset))
if err := drone.Backward(bebop.ValidatePitch(leftStick.y, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Forward(0)
if err := drone.Forward(0); err != nil {
fmt.Println(err)
}
}
switch {
case leftStick.x > 10:
drone.Right(bebop.ValidatePitch(leftStick.x, offset))
if err := drone.Right(bebop.ValidatePitch(leftStick.x, offset)); err != nil {
fmt.Println(err)
}
case leftStick.x < -10:
drone.Left(bebop.ValidatePitch(leftStick.x, offset))
if err := drone.Left(bebop.ValidatePitch(leftStick.x, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Right(0)
if err := drone.Right(0); err != nil {
fmt.Println(err)
}
}
})
@ -107,20 +130,32 @@ func main() {
rightStick := getRightStick()
switch {
case rightStick.y < -10:
drone.Up(bebop.ValidatePitch(rightStick.y, offset))
if err := drone.Up(bebop.ValidatePitch(rightStick.y, offset)); err != nil {
fmt.Println(err)
}
case rightStick.y > 10:
drone.Down(bebop.ValidatePitch(rightStick.y, offset))
if err := drone.Down(bebop.ValidatePitch(rightStick.y, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Up(0)
if err := drone.Up(0); err != nil {
fmt.Println(err)
}
}
switch {
case rightStick.x > 20:
drone.Clockwise(bebop.ValidatePitch(rightStick.x, offset))
if err := drone.Clockwise(bebop.ValidatePitch(rightStick.x, offset)); err != nil {
fmt.Println(err)
}
case rightStick.x < -20:
drone.CounterClockwise(bebop.ValidatePitch(rightStick.x, offset))
if err := drone.CounterClockwise(bebop.ValidatePitch(rightStick.x, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Clockwise(0)
if err := drone.Clockwise(0); err != nil {
fmt.Println(err)
}
}
})
}
@ -131,7 +166,9 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}
func getLeftStick() pair {

View File

@ -48,23 +48,21 @@ var leftX, leftY, rightX, rightY atomic.Value
const offset = 32767.0
func ffmpeg() (stdin io.WriteCloser, stderr io.ReadCloser, err error) {
func ffmpeg() (io.WriteCloser, io.ReadCloser, error) {
ffmpeg := exec.Command("ffmpeg", "-i", "pipe:0", "http://localhost:8090/bebop.ffm")
stderr, err = ffmpeg.StderrPipe()
stderr, err := ffmpeg.StderrPipe()
if err != nil {
return
return nil, stderr, err
}
stdin, err = ffmpeg.StdinPipe()
stdin, err := ffmpeg.StdinPipe()
if err != nil {
return
return stdin, stderr, err
}
if err = ffmpeg.Start(); err != nil {
return
if err := ffmpeg.Start(); err != nil {
return stdin, stderr, err
}
go func() {
@ -90,7 +88,9 @@ func main() {
drone := bebop.NewDriver(bebopAdaptor)
work := func() {
drone.VideoEnable(true)
if err := drone.VideoEnable(true); err != nil {
fmt.Println(err)
}
video, _, _ := ffmpeg()
go func() {
@ -109,41 +109,51 @@ func main() {
recording := false
stick.On(joystick.CirclePress, func(data interface{}) {
_ = stick.On(joystick.CirclePress, func(data interface{}) {
if recording {
drone.StopRecording()
if err := drone.StopRecording(); err != nil {
fmt.Println(err)
}
} else {
drone.StartRecording()
if err := drone.StartRecording(); err != nil {
fmt.Println(err)
}
}
recording = !recording
})
stick.On(joystick.SquarePress, func(data interface{}) {
drone.HullProtection(true)
_ = stick.On(joystick.SquarePress, func(data interface{}) {
if err := drone.HullProtection(true); err != nil {
fmt.Println(err)
}
drone.TakeOff()
})
stick.On(joystick.TrianglePress, func(data interface{}) {
drone.Stop()
_ = stick.On(joystick.TrianglePress, func(data interface{}) {
if err := drone.Stop(); err != nil {
fmt.Println(err)
}
})
stick.On(joystick.XPress, func(data interface{}) {
drone.Land()
_ = stick.On(joystick.XPress, func(data interface{}) {
if err := drone.Land(); err != nil {
fmt.Println(err)
}
})
stick.On(joystick.LeftX, func(data interface{}) {
_ = stick.On(joystick.LeftX, func(data interface{}) {
val := float64(data.(int16))
leftX.Store(val)
})
stick.On(joystick.LeftY, func(data interface{}) {
_ = stick.On(joystick.LeftY, func(data interface{}) {
val := float64(data.(int16))
leftY.Store(val)
})
stick.On(joystick.RightX, func(data interface{}) {
_ = stick.On(joystick.RightX, func(data interface{}) {
val := float64(data.(int16))
rightX.Store(val)
})
stick.On(joystick.RightY, func(data interface{}) {
_ = stick.On(joystick.RightY, func(data interface{}) {
val := float64(data.(int16))
rightY.Store(val)
})
@ -153,20 +163,32 @@ func main() {
switch {
case leftStick.y < -10:
drone.Forward(bebop.ValidatePitch(leftStick.y, offset))
if err := drone.Forward(bebop.ValidatePitch(leftStick.y, offset)); err != nil {
fmt.Println(err)
}
case leftStick.y > 10:
drone.Backward(bebop.ValidatePitch(leftStick.y, offset))
if err := drone.Backward(bebop.ValidatePitch(leftStick.y, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Forward(0)
if err := drone.Forward(0); err != nil {
fmt.Println(err)
}
}
switch {
case leftStick.x > 10:
drone.Right(bebop.ValidatePitch(leftStick.x, offset))
if err := drone.Right(bebop.ValidatePitch(leftStick.x, offset)); err != nil {
fmt.Println(err)
}
case leftStick.x < -10:
drone.Left(bebop.ValidatePitch(leftStick.x, offset))
if err := drone.Left(bebop.ValidatePitch(leftStick.x, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Right(0)
if err := drone.Right(0); err != nil {
fmt.Println(err)
}
}
})
@ -174,20 +196,32 @@ func main() {
rightStick := getRightStick()
switch {
case rightStick.y < -10:
drone.Up(bebop.ValidatePitch(rightStick.y, offset))
if err := drone.Up(bebop.ValidatePitch(rightStick.y, offset)); err != nil {
fmt.Println(err)
}
case rightStick.y > 10:
drone.Down(bebop.ValidatePitch(rightStick.y, offset))
if err := drone.Down(bebop.ValidatePitch(rightStick.y, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Up(0)
if err := drone.Up(0); err != nil {
fmt.Println(err)
}
}
switch {
case rightStick.x > 20:
drone.Clockwise(bebop.ValidatePitch(rightStick.x, offset))
if err := drone.Clockwise(bebop.ValidatePitch(rightStick.x, offset)); err != nil {
fmt.Println(err)
}
case rightStick.x < -20:
drone.CounterClockwise(bebop.ValidatePitch(rightStick.x, offset))
if err := drone.CounterClockwise(bebop.ValidatePitch(rightStick.x, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Clockwise(0)
if err := drone.Clockwise(0); err != nil {
fmt.Println(err)
}
}
})
}
@ -198,7 +232,9 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}
func getLeftStick() pair {

View File

@ -23,6 +23,8 @@ http://localhost:8090/bebop.mjpeg in a web browser.
package main
import (
"fmt"
"gobot.io/x/gobot/v2"
"gobot.io/x/gobot/v2/platforms/parrot/bebop"
)
@ -32,7 +34,9 @@ func main() {
drone := bebop.NewDriver(bebopAdaptor)
work := func() {
drone.VideoEnable(true)
if err := drone.VideoEnable(true); err != nil {
fmt.Println(err)
}
}
robot := gobot.NewRobot("drone",
@ -41,5 +45,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -45,5 +45,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -29,7 +29,7 @@ func main() {
bb := sphero.NewBB8Driver(bleAdaptor)
work := func() {
bb.On("collision", func(data interface{}) {
_ = bb.On("collision", func(data interface{}) {
fmt.Printf("collision detected = %+v \n", data)
bb.SetRGB(255, 0, 0)
})
@ -44,5 +44,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -43,5 +43,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -66,5 +66,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -16,6 +16,7 @@
package main
import (
"fmt"
"os"
"time"
@ -30,7 +31,9 @@ func main() {
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -40,5 +43,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -16,6 +16,7 @@
package main
import (
"fmt"
"log"
"os"
"time"
@ -33,26 +34,34 @@ func main() {
imu := curie.NewIMUDriver(firmataAdaptor)
work := func() {
imu.On("Accelerometer", func(data interface{}) {
_ = imu.On("Accelerometer", func(data interface{}) {
log.Println("Accelerometer", data)
})
imu.On("Gyroscope", func(data interface{}) {
_ = imu.On("Gyroscope", func(data interface{}) {
log.Println("Gyroscope", data)
})
imu.On("Temperature", func(data interface{}) {
_ = imu.On("Temperature", func(data interface{}) {
log.Println("Temperature", data)
})
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
gobot.Every(100*time.Millisecond, func() {
imu.ReadAccelerometer()
imu.ReadGyroscope()
imu.ReadTemperature()
if err := imu.ReadAccelerometer(); err != nil {
fmt.Println(err)
}
if err := imu.ReadGyroscope(); err != nil {
fmt.Println(err)
}
if err := imu.ReadTemperature(); err != nil {
fmt.Println(err)
}
})
}
@ -62,5 +71,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -48,5 +48,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -40,7 +40,7 @@ func main() {
ubit := microbit.NewAccelerometerDriver(bleAdaptor)
work := func() {
ubit.On(microbit.AccelerometerEvent, func(data interface{}) {
_ = ubit.On(microbit.AccelerometerEvent, func(data interface{}) {
fmt.Println("Accelerometer", data)
})
}
@ -51,5 +51,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -30,6 +30,7 @@
package main
import (
"fmt"
"os"
"time"
@ -47,7 +48,9 @@ func main() {
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -57,5 +60,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -38,11 +38,11 @@ func main() {
ubit := microbit.NewButtonDriver(bleAdaptor)
work := func() {
ubit.On(microbit.ButtonAEvent, func(data interface{}) {
_ = ubit.On(microbit.ButtonAEvent, func(data interface{}) {
fmt.Println("button A", data)
})
ubit.On(microbit.ButtonBEvent, func(data interface{}) {
_ = ubit.On(microbit.ButtonBEvent, func(data interface{}) {
fmt.Println("button B", data)
})
}
@ -53,5 +53,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -27,6 +27,7 @@
package main
import (
"fmt"
"os"
"gobot.io/x/gobot/v2"
@ -40,22 +41,30 @@ func main() {
leds := microbit.NewLEDDriver(bleAdaptor)
work := func() {
buttons.On(microbit.ButtonAEvent, func(data interface{}) {
_ = buttons.On(microbit.ButtonAEvent, func(data interface{}) {
if data.([]byte)[0] == 1 {
leds.UpLeftArrow()
if err := leds.UpLeftArrow(); err != nil {
fmt.Println(err)
}
return
}
leds.Blank()
if err := leds.Blank(); err != nil {
fmt.Println(err)
}
})
buttons.On(microbit.ButtonBEvent, func(data interface{}) {
_ = buttons.On(microbit.ButtonBEvent, func(data interface{}) {
if data.([]byte)[0] == 1 {
leds.UpRightArrow()
if err := leds.UpRightArrow(); err != nil {
fmt.Println(err)
}
return
}
leds.Blank()
if err := leds.Blank(); err != nil {
fmt.Println(err)
}
})
}
@ -65,5 +74,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -31,6 +31,7 @@
package main
import (
"fmt"
"os"
"gobot.io/x/gobot/v2"
@ -47,11 +48,15 @@ func main() {
led := gpio.NewLedDriver(ubit, "1")
work := func() {
button.On(gpio.ButtonPush, func(data interface{}) {
led.On()
_ = button.On(gpio.ButtonPush, func(data interface{}) {
if err := led.On(); err != nil {
fmt.Println(err)
}
})
button.On(gpio.ButtonRelease, func(data interface{}) {
led.Off()
_ = button.On(gpio.ButtonRelease, func(data interface{}) {
if err := led.Off(); err != nil {
fmt.Println(err)
}
})
}
@ -61,5 +66,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -27,6 +27,7 @@
package main
import (
"fmt"
"os"
"time"
@ -40,12 +41,18 @@ func main() {
ubit := microbit.NewLEDDriver(bleAdaptor)
work := func() {
ubit.Blank()
if err := ubit.Blank(); err != nil {
fmt.Println(err)
}
gobot.After(1*time.Second, func() {
ubit.WriteText("Hello")
if err := ubit.WriteText("Hello"); err != nil {
fmt.Println(err)
}
})
gobot.After(7*time.Second, func() {
ubit.Smile()
if err := ubit.Smile(); err != nil {
fmt.Println(err)
}
})
}
@ -55,5 +62,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -40,7 +40,7 @@ func main() {
ubit := microbit.NewMagnetometerDriver(bleAdaptor)
work := func() {
ubit.On(microbit.MagnetometerEvent, func(data interface{}) {
_ = ubit.On(microbit.MagnetometerEvent, func(data interface{}) {
fmt.Println("Magnetometer", data)
})
}
@ -51,5 +51,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -40,7 +40,7 @@ func main() {
ubit := microbit.NewTemperatureDriver(bleAdaptor)
work := func() {
ubit.On(microbit.TemperatureEvent, func(data interface{}) {
_ = ubit.On(microbit.TemperatureEvent, func(data interface{}) {
fmt.Println("Temperature", data)
})
}
@ -51,5 +51,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -16,6 +16,7 @@
package main
import (
"fmt"
"os"
"time"
@ -29,10 +30,14 @@ func main() {
drone := parrot.NewMinidroneDriver(bleAdaptor)
work := func() {
drone.TakeOff()
if err := drone.TakeOff(); err != nil {
fmt.Println(err)
}
gobot.After(5*time.Second, func() {
drone.Land()
if err := drone.Land(); err != nil {
fmt.Println(err)
}
})
}
@ -42,5 +47,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -30,35 +30,39 @@ func main() {
drone := parrot.NewMinidroneDriver(bleAdaptor)
work := func() {
drone.On(parrot.BatteryEvent, func(data interface{}) {
_ = drone.On(parrot.BatteryEvent, func(data interface{}) {
fmt.Printf("battery: %d\n", data)
})
drone.On(parrot.FlightStatusEvent, func(data interface{}) {
_ = drone.On(parrot.FlightStatusEvent, func(data interface{}) {
fmt.Printf("flight status: %d\n", data)
})
drone.On(parrot.TakeoffEvent, func(data interface{}) {
_ = drone.On(parrot.TakeoffEvent, func(data interface{}) {
fmt.Println("taking off...")
})
drone.On(parrot.HoveringEvent, func(data interface{}) {
_ = drone.On(parrot.HoveringEvent, func(data interface{}) {
fmt.Println("hovering!")
gobot.After(5*time.Second, func() {
drone.Land()
if err := drone.Land(); err != nil {
fmt.Println(err)
}
})
})
drone.On(parrot.LandingEvent, func(data interface{}) {
_ = drone.On(parrot.LandingEvent, func(data interface{}) {
fmt.Println("landing...")
})
drone.On(parrot.LandedEvent, func(data interface{}) {
_ = drone.On(parrot.LandedEvent, func(data interface{}) {
fmt.Println("landed.")
})
time.Sleep(1000 * time.Millisecond)
drone.TakeOff()
if err := drone.TakeOff(); err != nil {
fmt.Println(err)
}
}
robot := gobot.NewRobot("minidrone",
@ -67,5 +71,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -23,6 +23,7 @@
package main
import (
"fmt"
"os"
"sync/atomic"
"time"
@ -59,51 +60,65 @@ func main() {
clawOpen := false
stick.On(joystick.CirclePress, func(data interface{}) {
_ = stick.On(joystick.CirclePress, func(data interface{}) {
if clawOpen {
drone.ClawControl(0, parrot.ClawClosed)
if err := drone.ClawControl(0, parrot.ClawClosed); err != nil {
fmt.Println(err)
}
clawOpen = false
} else {
drone.ClawControl(0, parrot.ClawOpen)
if err := drone.ClawControl(0, parrot.ClawOpen); err != nil {
fmt.Println(err)
}
clawOpen = true
}
})
stick.On(joystick.R2Press, func(data interface{}) {
_ = stick.On(joystick.R2Press, func(data interface{}) {
if clawOpen {
drone.ClawControl(0, parrot.ClawClosed)
if err := drone.ClawControl(0, parrot.ClawClosed); err != nil {
fmt.Println(err)
}
clawOpen = false
} else {
drone.ClawControl(0, parrot.ClawOpen)
if err := drone.ClawControl(0, parrot.ClawOpen); err != nil {
fmt.Println(err)
}
clawOpen = true
}
})
stick.On(joystick.TrianglePress, func(data interface{}) {
drone.HullProtection(true)
drone.TakeOff()
_ = stick.On(joystick.TrianglePress, func(data interface{}) {
if err := drone.HullProtection(true); err != nil {
fmt.Println(err)
}
if err := drone.TakeOff(); err != nil {
fmt.Println(err)
}
})
stick.On(joystick.XPress, func(data interface{}) {
drone.Land()
_ = stick.On(joystick.XPress, func(data interface{}) {
if err := drone.Land(); err != nil {
fmt.Println(err)
}
})
stick.On(joystick.LeftX, func(data interface{}) {
_ = stick.On(joystick.LeftX, func(data interface{}) {
val := float64(data.(int16))
leftX.Store(val)
})
stick.On(joystick.LeftY, func(data interface{}) {
_ = stick.On(joystick.LeftY, func(data interface{}) {
val := float64(data.(int16))
leftY.Store(val)
})
stick.On(joystick.RightX, func(data interface{}) {
_ = stick.On(joystick.RightX, func(data interface{}) {
val := float64(data.(int16))
rightX.Store(val)
})
stick.On(joystick.RightY, func(data interface{}) {
_ = stick.On(joystick.RightY, func(data interface{}) {
val := float64(data.(int16))
rightY.Store(val)
})
@ -113,20 +128,32 @@ func main() {
switch {
case rightStick.y < -10:
drone.Forward(parrot.ValidatePitch(rightStick.y, offset))
if err := drone.Forward(parrot.ValidatePitch(rightStick.y, offset)); err != nil {
fmt.Println(err)
}
case rightStick.y > 10:
drone.Backward(parrot.ValidatePitch(rightStick.y, offset))
if err := drone.Backward(parrot.ValidatePitch(rightStick.y, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Forward(0)
if err := drone.Forward(0); err != nil {
fmt.Println(err)
}
}
switch {
case rightStick.x > 10:
drone.Right(parrot.ValidatePitch(rightStick.x, offset))
if err := drone.Right(parrot.ValidatePitch(rightStick.x, offset)); err != nil {
fmt.Println(err)
}
case rightStick.x < -10:
drone.Left(parrot.ValidatePitch(rightStick.x, offset))
if err := drone.Left(parrot.ValidatePitch(rightStick.x, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Right(0)
if err := drone.Right(0); err != nil {
fmt.Println(err)
}
}
})
@ -134,20 +161,32 @@ func main() {
leftStick := getLeftStick()
switch {
case leftStick.y < -10:
drone.Up(parrot.ValidatePitch(leftStick.y, offset))
if err := drone.Up(parrot.ValidatePitch(leftStick.y, offset)); err != nil {
fmt.Println(err)
}
case leftStick.y > 10:
drone.Down(parrot.ValidatePitch(leftStick.y, offset))
if err := drone.Down(parrot.ValidatePitch(leftStick.y, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Up(0)
if err := drone.Up(0); err != nil {
fmt.Println(err)
}
}
switch {
case leftStick.x > 20:
drone.Clockwise(parrot.ValidatePitch(leftStick.x, offset))
if err := drone.Clockwise(parrot.ValidatePitch(leftStick.x, offset)); err != nil {
fmt.Println(err)
}
case leftStick.x < -20:
drone.CounterClockwise(parrot.ValidatePitch(leftStick.x, offset))
if err := drone.CounterClockwise(parrot.ValidatePitch(leftStick.x, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Clockwise(0)
if err := drone.Clockwise(0); err != nil {
fmt.Println(err)
}
}
})
}
@ -158,7 +197,9 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}
func getLeftStick() pair {

View File

@ -23,6 +23,7 @@
package main
import (
"fmt"
"os"
"sync/atomic"
"time"
@ -57,44 +58,56 @@ func main() {
recording := false
stick.On(joystick.CirclePress, func(data interface{}) {
_ = stick.On(joystick.CirclePress, func(data interface{}) {
if recording {
drone.StopRecording()
if err := drone.StopRecording(); err != nil {
fmt.Println(err)
}
} else {
drone.StartRecording()
if err := drone.StartRecording(); err != nil {
fmt.Println(err)
}
}
recording = !recording
})
stick.On(joystick.SquarePress, func(data interface{}) {
drone.Stop()
_ = stick.On(joystick.SquarePress, func(data interface{}) {
if err := drone.Stop(); err != nil {
fmt.Println(err)
}
})
stick.On(joystick.TrianglePress, func(data interface{}) {
drone.HullProtection(true)
drone.TakeOff()
_ = stick.On(joystick.TrianglePress, func(data interface{}) {
if err := drone.HullProtection(true); err != nil {
fmt.Println(err)
}
if err := drone.TakeOff(); err != nil {
fmt.Println(err)
}
})
stick.On(joystick.XPress, func(data interface{}) {
drone.Land()
_ = stick.On(joystick.XPress, func(data interface{}) {
if err := drone.Land(); err != nil {
fmt.Println(err)
}
})
stick.On(joystick.LeftX, func(data interface{}) {
_ = stick.On(joystick.LeftX, func(data interface{}) {
val := float64(data.(int16))
leftX.Store(val)
})
stick.On(joystick.LeftY, func(data interface{}) {
_ = stick.On(joystick.LeftY, func(data interface{}) {
val := float64(data.(int16))
leftY.Store(val)
})
stick.On(joystick.RightX, func(data interface{}) {
_ = stick.On(joystick.RightX, func(data interface{}) {
val := float64(data.(int16))
rightX.Store(val)
})
stick.On(joystick.RightY, func(data interface{}) {
_ = stick.On(joystick.RightY, func(data interface{}) {
val := float64(data.(int16))
rightY.Store(val)
})
@ -104,20 +117,32 @@ func main() {
switch {
case rightStick.y < -10:
drone.Forward(parrot.ValidatePitch(rightStick.y, offset))
if err := drone.Forward(parrot.ValidatePitch(rightStick.y, offset)); err != nil {
fmt.Println(err)
}
case rightStick.y > 10:
drone.Backward(parrot.ValidatePitch(rightStick.y, offset))
if err := drone.Backward(parrot.ValidatePitch(rightStick.y, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Forward(0)
if err := drone.Forward(0); err != nil {
fmt.Println(err)
}
}
switch {
case rightStick.x > 10:
drone.Right(parrot.ValidatePitch(rightStick.x, offset))
if err := drone.Right(parrot.ValidatePitch(rightStick.x, offset)); err != nil {
fmt.Println(err)
}
case rightStick.x < -10:
drone.Left(parrot.ValidatePitch(rightStick.x, offset))
if err := drone.Left(parrot.ValidatePitch(rightStick.x, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Right(0)
if err := drone.Right(0); err != nil {
fmt.Println(err)
}
}
})
@ -125,20 +150,32 @@ func main() {
leftStick := getLeftStick()
switch {
case leftStick.y < -10:
drone.Up(parrot.ValidatePitch(leftStick.y, offset))
if err := drone.Up(parrot.ValidatePitch(leftStick.y, offset)); err != nil {
fmt.Println(err)
}
case leftStick.y > 10:
drone.Down(parrot.ValidatePitch(leftStick.y, offset))
if err := drone.Down(parrot.ValidatePitch(leftStick.y, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Up(0)
if err := drone.Up(0); err != nil {
fmt.Println(err)
}
}
switch {
case leftStick.x > 20:
drone.Clockwise(parrot.ValidatePitch(leftStick.x, offset))
if err := drone.Clockwise(parrot.ValidatePitch(leftStick.x, offset)); err != nil {
fmt.Println(err)
}
case leftStick.x < -20:
drone.CounterClockwise(parrot.ValidatePitch(leftStick.x, offset))
if err := drone.CounterClockwise(parrot.ValidatePitch(leftStick.x, offset)); err != nil {
fmt.Println(err)
}
default:
drone.Clockwise(0)
if err := drone.Clockwise(0); err != nil {
fmt.Println(err)
}
}
})
}
@ -149,7 +186,9 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}
func getLeftStick() pair {

View File

@ -61,5 +61,7 @@ func main() {
master.AddRobot(bot)
}
master.Start()
if err := master.Start(); err != nil {
panic(err)
}
}

View File

@ -79,5 +79,7 @@ func main() {
master.AddRobot(bot)
}
master.Start()
if err := master.Start(); err != nil {
panic(err)
}
}

View File

@ -34,5 +34,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -37,5 +37,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -33,5 +33,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -33,7 +33,7 @@ func main() {
work := func() {
ollie.SetRGB(255, 0, 255)
mqttAdaptor.On("sensores/dial", func(msg mqtt.Message) {
_ = mqttAdaptor.On("sensors/dial", func(msg mqtt.Message) {
val, _ := strconv.Atoi(string(msg.Payload()))
if val > 2000 {
@ -47,28 +47,28 @@ func main() {
ollie.SetRGB(255, 0, 0)
})
mqttAdaptor.On("rover/frente", func(msg mqtt.Message) {
_ = mqttAdaptor.On("rover/frente", func(msg mqtt.Message) {
ollie.Roll(40, FRENTE)
gobot.After(1*time.Second, func() {
ollie.Stop()
})
})
mqttAdaptor.On("rover/derecha", func(msg mqtt.Message) {
_ = mqttAdaptor.On("rover/derecha", func(msg mqtt.Message) {
ollie.Roll(40, DERECHA)
gobot.After(1*time.Second, func() {
ollie.Stop()
})
})
mqttAdaptor.On("rover/atras", func(msg mqtt.Message) {
_ = mqttAdaptor.On("rover/atras", func(msg mqtt.Message) {
ollie.Roll(40, ATRAS)
gobot.After(1*time.Second, func() {
ollie.Stop()
})
})
mqttAdaptor.On("rover/izquierda", func(msg mqtt.Message) {
_ = mqttAdaptor.On("rover/izquierda", func(msg mqtt.Message) {
ollie.Roll(40, IZQUIERDA)
gobot.After(1*time.Second, func() {
ollie.Stop()
@ -82,5 +82,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -55,5 +55,7 @@ func main() {
master.AddRobot(bot)
}
master.Start()
if err := master.Start(); err != nil {
panic(err)
}
}

View File

@ -32,5 +32,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -33,5 +33,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -43,5 +43,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -29,7 +29,7 @@ func main() {
ball := sphero.NewSPRKPlusDriver(bleAdaptor)
work := func() {
ball.On("collision", func(data interface{}) {
_ = ball.On("collision", func(data interface{}) {
fmt.Printf("collision detected = %+v \n", data)
ball.SetRGB(255, 0, 0)
})
@ -44,5 +44,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -20,7 +21,9 @@ func main() {
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -30,5 +33,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -24,8 +24,13 @@ func main() {
r := byte(gobot.Rand(255))
g := byte(gobot.Rand(255))
b := byte(gobot.Rand(255))
blinkm.Rgb(r, g, b)
color, _ := blinkm.Color()
if err := blinkm.Rgb(r, g, b); err != nil {
fmt.Println(err)
}
color, err := blinkm.Color()
if err != nil {
fmt.Println(err)
}
fmt.Println("color", color)
})
}
@ -36,5 +41,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -19,11 +19,11 @@ func main() {
button := gpio.NewButtonDriver(chipAdaptor, "XIO-P0")
work := func() {
button.On(gpio.ButtonPush, func(data interface{}) {
_ = button.On(gpio.ButtonPush, func(data interface{}) {
fmt.Println("button pressed")
})
button.On(gpio.ButtonRelease, func(data interface{}) {
_ = button.On(gpio.ButtonRelease, func(data interface{}) {
fmt.Println("button released")
})
}
@ -34,5 +34,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,8 @@
package main
import (
"fmt"
"gobot.io/x/gobot/v2"
"gobot.io/x/gobot/v2/drivers/gpio"
"gobot.io/x/gobot/v2/platforms/chip"
@ -18,12 +20,16 @@ func main() {
led := gpio.NewLedDriver(chipAdaptor, "XIO-P7")
work := func() {
button.On(gpio.ButtonPush, func(data interface{}) {
led.On()
_ = button.On(gpio.ButtonPush, func(data interface{}) {
if err := led.On(); err != nil {
fmt.Println(err)
}
})
button.On(gpio.ButtonRelease, func(data interface{}) {
led.Off()
_ = button.On(gpio.ButtonRelease, func(data interface{}) {
if err := led.Off(); err != nil {
fmt.Println(err)
}
})
}
@ -33,5 +39,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -21,8 +22,12 @@ func main() {
work := func() {
gobot.Every(3*time.Second, func() {
pause := haptic.GetPauseWaveform(50)
haptic.SetSequence([]byte{1, pause, 1, pause, 1})
haptic.Go()
if err := haptic.SetSequence([]byte{1, pause, 1, pause, 1}); err != nil {
fmt.Println(err)
}
if err := haptic.Go(); err != nil {
fmt.Println(err)
}
})
}
@ -32,5 +37,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -36,5 +36,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -19,26 +20,47 @@ func main() {
screen := i2c.NewGroveLcdDriver(board)
work := func() {
screen.Write("hello")
if err := screen.Write("hello"); err != nil {
fmt.Println(err)
}
screen.SetRGB(255, 0, 0)
if err := screen.SetRGB(255, 0, 0); err != nil {
fmt.Println(err)
}
gobot.After(5*time.Second, func() {
screen.Clear()
screen.Home()
screen.SetRGB(0, 255, 0)
if err := screen.Clear(); err != nil {
fmt.Println(err)
}
if err := screen.Home(); err != nil {
fmt.Println(err)
}
if err := screen.SetRGB(0, 255, 0); err != nil {
fmt.Println(err)
}
// set a custom character in the first position
screen.SetCustomChar(0, i2c.CustomLCDChars["smiley"])
if err := screen.SetCustomChar(0, i2c.CustomLCDChars["smiley"]); err != nil {
fmt.Println(err)
}
// add the custom character at the end of the string
screen.Write("goodbye\nhave a nice day " + string(byte(0)))
if err := screen.Write("goodbye\nhave a nice day " + string(byte(0))); err != nil {
fmt.Println(err)
}
gobot.Every(500*time.Millisecond, func() {
screen.Scroll(false)
if err := screen.Scroll(false); err != nil {
fmt.Println(err)
}
})
})
screen.Home()
if err := screen.Home(); err != nil {
fmt.Println(err)
}
time.Sleep(1 * time.Second)
screen.SetRGB(0, 0, 255)
if err := screen.SetRGB(0, 0, 255); err != nil {
fmt.Println(err)
}
}
robot := gobot.NewRobot("screenBot",
@ -47,5 +69,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -21,7 +21,9 @@ func main() {
work := func() {
gobot.Every(100*time.Millisecond, func() {
mpu6050.GetData()
if err := mpu6050.GetData(); err != nil {
fmt.Println(err)
}
fmt.Println("Accelerometer", mpu6050.Accelerometer)
fmt.Println("Gyroscope", mpu6050.Gyroscope)
@ -35,5 +37,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -38,5 +38,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -19,18 +19,18 @@ func main() {
wiichuck := i2c.NewWiichuckDriver(chipAdaptor)
work := func() {
wiichuck.On(wiichuck.Event("joystick"), func(data interface{}) {
_ = wiichuck.On(wiichuck.Event("joystick"), func(data interface{}) {
fmt.Println("joystick", data)
})
wiichuck.On(wiichuck.Event("c"), func(data interface{}) {
_ = wiichuck.On(wiichuck.Event("c"), func(data interface{}) {
fmt.Println("c")
})
wiichuck.On(wiichuck.Event("z"), func(data interface{}) {
_ = wiichuck.On(wiichuck.Event("z"), func(data interface{}) {
fmt.Println("z")
})
wiichuck.On(wiichuck.Event("error"), func(data interface{}) {
_ = wiichuck.On(wiichuck.Event("error"), func(data interface{}) {
fmt.Println("Wiichuck error:", data)
})
}
@ -41,5 +41,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -27,5 +27,7 @@ func main() {
master.AddRobot(robot)
master.Start()
if err := master.Start(); err != nil {
panic(err)
}
}

View File

@ -21,7 +21,9 @@ func main() {
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -31,8 +33,7 @@ func main() {
work,
)
err := robot.Start()
if err != nil {
fmt.Println(err)
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -24,8 +24,13 @@ func main() {
r := byte(gobot.Rand(255))
g := byte(gobot.Rand(255))
b := byte(gobot.Rand(255))
blinkm.Rgb(r, g, b)
color, _ := blinkm.Color()
if err := blinkm.Rgb(r, g, b); err != nil {
fmt.Println(err)
}
color, err := blinkm.Color()
if err != nil {
fmt.Println(err)
}
fmt.Println("color", color)
})
}
@ -36,8 +41,7 @@ func main() {
work,
)
err := robot.Start()
if err != nil {
fmt.Println(err)
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -72,8 +72,7 @@ func main() {
work,
)
err = robot.Start()
if err != nil {
fmt.Println(err)
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -23,7 +24,9 @@ func main() {
fadeAmount := uint8(15)
gobot.Every(100*time.Millisecond, func() {
led.Brightness(brightness)
if err := led.Brightness(brightness); err != nil {
fmt.Println(err)
}
brightness = brightness + fadeAmount
if brightness == 0 || brightness == 255 {
fadeAmount = -fadeAmount
@ -37,5 +40,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -35,8 +35,7 @@ func main() {
work,
)
err := robot.Start()
if err != nil {
fmt.Println(err)
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -83,8 +83,7 @@ func main() {
work,
)
err = robot.Start()
if err != nil {
fmt.Println(err)
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -23,7 +23,9 @@ func main() {
gobot.Every(1*time.Second, func() {
i := uint8(gobot.Rand(180))
fmt.Println("Turning", i)
servo.Move(i)
if err := servo.Move(i); err != nil {
fmt.Println(err)
}
})
}
@ -33,5 +35,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -19,11 +19,11 @@ func main() {
button := gpio.NewButtonDriver(dragonAdaptor, "GPIO_A")
work := func() {
button.On(gpio.ButtonPush, func(data interface{}) {
_ = button.On(gpio.ButtonPush, func(data interface{}) {
fmt.Println("button pressed")
})
button.On(gpio.ButtonRelease, func(data interface{}) {
_ = button.On(gpio.ButtonRelease, func(data interface{}) {
fmt.Println("button released")
})
}
@ -34,5 +34,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -22,7 +23,9 @@ func main() {
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -32,5 +35,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2/drivers/gpio"
@ -19,13 +20,19 @@ import (
// golang library to interact with sensors and other devices.
func main() {
e := edison.NewAdaptor()
e.Connect()
if err := e.Connect(); err != nil {
fmt.Println(err)
}
led := gpio.NewLedDriver(e, "13")
led.Start()
if err := led.Start(); err != nil {
fmt.Println(err)
}
for {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
time.Sleep(1000 * time.Millisecond)
}
}

View File

@ -24,8 +24,13 @@ func main() {
r := byte(gobot.Rand(255))
g := byte(gobot.Rand(255))
b := byte(gobot.Rand(255))
blinkm.Rgb(r, g, b)
color, _ := blinkm.Color()
if err := blinkm.Rgb(r, g, b); err != nil {
fmt.Println(err)
}
color, err := blinkm.Color()
if err != nil {
fmt.Println(err)
}
fmt.Println("color", color)
})
}
@ -36,5 +41,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -53,8 +53,7 @@ func main() {
work,
)
err := robot.Start()
if err != nil {
fmt.Println(err)
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,8 @@
package main
import (
"fmt"
"gobot.io/x/gobot/v2"
"gobot.io/x/gobot/v2/drivers/gpio"
"gobot.io/x/gobot/v2/platforms/intel-iot/edison"
@ -19,11 +21,15 @@ func main() {
led := gpio.NewLedDriver(e, "13")
work := func() {
button.On(gpio.ButtonPush, func(data interface{}) {
led.On()
_ = button.On(gpio.ButtonPush, func(data interface{}) {
if err := led.On(); err != nil {
fmt.Println(err)
}
})
button.On(gpio.ButtonRelease, func(data interface{}) {
led.Off()
_ = button.On(gpio.ButtonRelease, func(data interface{}) {
if err := led.Off(); err != nil {
fmt.Println(err)
}
})
}
@ -33,5 +39,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,8 @@
package main
import (
"fmt"
"gobot.io/x/gobot/v2"
"gobot.io/x/gobot/v2/drivers/gpio"
"gobot.io/x/gobot/v2/platforms/intel-iot/edison"
@ -19,11 +21,15 @@ func main() {
led := gpio.NewLedDriver(e, "4")
work := func() {
button.On(gpio.ButtonPush, func(data interface{}) {
led.On()
_ = button.On(gpio.ButtonPush, func(data interface{}) {
if err := led.On(); err != nil {
fmt.Println(err)
}
})
button.On(gpio.ButtonRelease, func(data interface{}) {
led.Off()
_ = button.On(gpio.ButtonRelease, func(data interface{}) {
if err := led.Off(); err != nil {
fmt.Println(err)
}
})
}
@ -33,5 +39,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,11 +7,12 @@
package main
import (
"fmt"
"gobot.io/x/gobot/v2"
"gobot.io/x/gobot/v2/api"
"gobot.io/x/gobot/v2/drivers/gpio"
"gobot.io/x/gobot/v2/platforms/intel-iot/edison"
"gobot.io/x/gobot/v2/api"
)
func main() {
@ -24,11 +25,15 @@ func main() {
led := gpio.NewLedDriver(e, "4")
work := func() {
button.On(gpio.ButtonPush, func(data interface{}) {
led.On()
_ = button.On(gpio.ButtonPush, func(data interface{}) {
if err := led.On(); err != nil {
fmt.Println(err)
}
})
button.On(gpio.ButtonRelease, func(data interface{}) {
led.Off()
_ = button.On(gpio.ButtonRelease, func(data interface{}) {
if err := led.Off(); err != nil {
fmt.Println(err)
}
})
}
@ -40,5 +45,7 @@ func main() {
master.AddRobot(robot)
master.Start()
if err := master.Start(); err != nil {
panic(err)
}
}

View File

@ -36,5 +36,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -20,7 +21,9 @@ func main() {
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -30,5 +33,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -19,11 +19,11 @@ func main() {
button := gpio.NewButtonDriver(e, "2")
work := func() {
button.On(gpio.ButtonPush, func(data interface{}) {
_ = button.On(gpio.ButtonPush, func(data interface{}) {
fmt.Println("On!")
})
button.On(gpio.ButtonRelease, func(data interface{}) {
_ = button.On(gpio.ButtonRelease, func(data interface{}) {
fmt.Println("Off!")
})
}
@ -34,5 +34,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -42,7 +43,9 @@ func main() {
}
for _, val := range song {
buzzer.Tone(val.tone, val.duration)
if err := buzzer.Tone(val.tone, val.duration); err != nil {
fmt.Println(err)
}
time.Sleep(10 * time.Millisecond)
}
}
@ -53,5 +56,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -19,26 +20,46 @@ func main() {
screen := i2c.NewGroveLcdDriver(board)
work := func() {
screen.Write("hello")
if err := screen.Write("hello"); err != nil {
fmt.Println(err)
}
screen.SetRGB(255, 0, 0)
if err := screen.SetRGB(255, 0, 0); err != nil {
fmt.Println(err)
}
gobot.After(5*time.Second, func() {
screen.Clear()
screen.Home()
screen.SetRGB(0, 255, 0)
if err := screen.Clear(); err != nil {
fmt.Println(err)
}
if err := screen.Home(); err != nil {
fmt.Println(err)
}
if err := screen.SetRGB(0, 255, 0); err != nil {
fmt.Println(err)
}
// set a custom character in the first position
screen.SetCustomChar(0, i2c.CustomLCDChars["smiley"])
if err := screen.SetCustomChar(0, i2c.CustomLCDChars["smiley"]); err != nil {
fmt.Println(err)
}
// add the custom character at the end of the string
screen.Write("goodbye\nhave a nice day " + string(byte(0)))
if err := screen.Write("goodbye\nhave a nice day " + string(byte(0))); err != nil {
fmt.Println(err)
}
gobot.Every(500*time.Millisecond, func() {
screen.Scroll(false)
if err := screen.Scroll(false); err != nil {
fmt.Println(err)
}
})
})
screen.Home()
if err := screen.Home(); err != nil {
fmt.Println(err)
}
time.Sleep(1 * time.Second)
screen.SetRGB(0, 0, 255)
if err := screen.SetRGB(0, 0, 255); err != nil {
fmt.Println(err)
}
}
robot := gobot.NewRobot("screenBot",
@ -47,5 +68,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -20,7 +21,9 @@ func main() {
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -30,5 +33,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -20,7 +20,7 @@ func main() {
sensor := aio.NewGroveLightSensorDriver(board, "0", aio.WithSensorCyclicRead(500*time.Millisecond))
work := func() {
sensor.On(sensor.Event("data"), func(data interface{}) {
_ = sensor.On(sensor.Event("data"), func(data interface{}) {
fmt.Println("sensor", data)
})
}
@ -31,5 +31,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -20,7 +20,7 @@ func main() {
sensor := aio.NewGrovePiezoVibrationSensorDriver(board, "0", aio.WithSensorCyclicRead(500*time.Millisecond))
work := func() {
sensor.On(aio.Vibration, func(data interface{}) {
_ = sensor.On(aio.Vibration, func(data interface{}) {
fmt.Println("got one!")
})
}
@ -31,5 +31,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -20,7 +20,7 @@ func main() {
sensor := aio.NewGroveRotaryDriver(board, "0", aio.WithSensorCyclicRead(500*time.Millisecond))
work := func() {
sensor.On(aio.Data, func(data interface{}) {
_ = sensor.On(aio.Data, func(data interface{}) {
fmt.Println("sensor", data)
})
}
@ -31,5 +31,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -20,7 +20,7 @@ func main() {
sensor := aio.NewGroveSoundSensorDriver(board, "0", aio.WithSensorCyclicRead(500*time.Millisecond))
work := func() {
sensor.On(aio.Data, func(data interface{}) {
_ = sensor.On(aio.Data, func(data interface{}) {
fmt.Println("sensor", data)
})
}
@ -31,5 +31,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -31,5 +31,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -19,11 +19,11 @@ func main() {
touch := gpio.NewButtonDriver(e, "2")
work := func() {
touch.On(gpio.ButtonPush, func(data interface{}) {
_ = touch.On(gpio.ButtonPush, func(data interface{}) {
fmt.Println("On!")
})
touch.On(gpio.ButtonRelease, func(data interface{}) {
_ = touch.On(gpio.ButtonRelease, func(data interface{}) {
fmt.Println("Off!")
})
}
@ -34,5 +34,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -23,7 +24,9 @@ func main() {
fadeAmount := uint8(15)
gobot.Every(100*time.Millisecond, func() {
led.Brightness(brightness)
if err := led.Brightness(brightness); err != nil {
fmt.Println(err)
}
brightness = brightness + fadeAmount
if brightness == 0 || brightness == 255 {
fadeAmount = -fadeAmount
@ -37,5 +40,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -22,13 +22,15 @@ func main() {
led := gpio.NewLedDriver(e, "3")
work := func() {
sensor.On(aio.Data, func(data interface{}) {
_ = sensor.On(aio.Data, func(data interface{}) {
brightness := uint8(
gobot.ToScale(gobot.FromScale(float64(data.(int)), 0, 4096), 0, 255),
)
fmt.Println("sensor", data)
fmt.Println("brightness", brightness)
led.Brightness(brightness)
if err := led.Brightness(brightness); err != nil {
fmt.Println(err)
}
})
}
@ -38,5 +40,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -37,5 +37,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -7,6 +7,7 @@
package main
import (
"fmt"
"time"
"gobot.io/x/gobot/v2"
@ -23,7 +24,9 @@ func main() {
r := uint8(gobot.Rand(255))
g := uint8(gobot.Rand(255))
b := uint8(gobot.Rand(255))
led.SetRGB(r, g, b)
if err := led.SetRGB(r, g, b); err != nil {
fmt.Println(err)
}
})
}
@ -33,5 +36,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -28,5 +28,7 @@ func main() {
},
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -41,5 +41,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -14,6 +14,7 @@
package main
import (
"fmt"
"os"
"time"
@ -38,7 +39,9 @@ func main() {
aip1640.Clear()
gobot.Every(600*time.Millisecond, func() {
aip1640.DrawMatrix(smiles[s])
aip1640.Display()
if err := aip1640.Display(); err != nil {
fmt.Println(err)
}
s++
if s > 2 {
s = 0
@ -52,5 +55,7 @@ func main() {
work,
)
robot.Start()
if err := robot.Start(); err != nil {
panic(err)
}
}

View File

@ -29,7 +29,9 @@ func main() {
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
})
}
@ -39,8 +41,7 @@ func main() {
work,
)
err := robot.Start()
if err != nil {
fmt.Println(err)
if err := robot.Start(); err != nil {
panic(err)
}
}

Some files were not shown because too many files have changed in this diff Show More