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:
parent
deb7770af7
commit
8f9695f8ef
@ -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"
|
||||
|
8
Makefile
8
Makefile
@ -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
|
||||
|
30
README.md
30
README.md
@ -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
26
doc.go
@ -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.
|
||||
|
@ -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{}) {
|
||||
...
|
||||
```
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -29,5 +29,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -36,5 +36,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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 {
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -45,5 +45,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -43,5 +43,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -66,5 +66,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -48,5 +48,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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 {
|
@ -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 {
|
@ -61,5 +61,7 @@ func main() {
|
||||
master.AddRobot(bot)
|
||||
}
|
||||
|
||||
master.Start()
|
||||
if err := master.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -79,5 +79,7 @@ func main() {
|
||||
master.AddRobot(bot)
|
||||
}
|
||||
|
||||
master.Start()
|
||||
if err := master.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -34,5 +34,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -37,5 +37,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -33,5 +33,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -55,5 +55,7 @@ func main() {
|
||||
master.AddRobot(bot)
|
||||
}
|
||||
|
||||
master.Start()
|
||||
if err := master.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -32,5 +32,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -33,5 +33,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -43,5 +43,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -36,5 +36,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -38,5 +38,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -27,5 +27,7 @@ func main() {
|
||||
|
||||
master.AddRobot(robot)
|
||||
|
||||
master.Start()
|
||||
if err := master.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -72,8 +72,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
err = robot.Start()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -35,8 +35,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
err := robot.Start()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -83,8 +83,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
err = robot.Start()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -53,8 +53,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
err := robot.Start()
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -36,5 +36,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -31,5 +31,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -37,5 +37,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -28,5 +28,7 @@ func main() {
|
||||
},
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -41,5 +41,7 @@ func main() {
|
||||
work,
|
||||
)
|
||||
|
||||
robot.Start()
|
||||
if err := robot.Start(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user