summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jet tsang zeon-git <zeon-git@jettsang.com> 2020-08-05 15:40:16 +0800
committerGravatar jet tsang zeon-git <zeon-git@jettsang.com> 2020-08-05 15:40:16 +0800
commitfd22d4ed6abbf234995039085031dd6069786159 (patch)
treeb73fbc1c159d0b106baddb00775f824ed172bb66
parentimplementation instructions for lx servo (diff)
downloadlobot-fd22d4ed6abbf234995039085031dd6069786159.tar.gz
lobot-fd22d4ed6abbf234995039085031dd6069786159.tar.bz2
lobot-fd22d4ed6abbf234995039085031dd6069786159.zip
Add set-position example.
Signed-off-by: jet tsang zeon-git <zeon-git@jettsang.com>
-rw-r--r--example/set-position/set-position.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/example/set-position/set-position.go b/example/set-position/set-position.go
new file mode 100644
index 0000000..a0b2f47
--- /dev/null
+++ b/example/set-position/set-position.go
@@ -0,0 +1,54 @@
+package main
+
+import (
+ "flag"
+ "fmt"
+ "log"
+ "os"
+
+ "git.jettsang.com/drivers/lobot/network"
+ "git.jettsang.com/drivers/lobot/servo"
+ "git.jettsang.com/drivers/lobot/servo/lx"
+ "github.com/jacobsa/go-serial/serial"
+)
+
+var (
+ portName = flag.String("port", "/dev/tty.usbserial-A9ITPZVR", "the serial port path")
+ servoID = flag.Int("id", 1, "the ID of the servo to move")
+ position = flag.Int("position", 512, "the goal position to set")
+ debug = flag.Bool("debug", false, "show serial traffic")
+)
+
+func main() {
+ flag.Parse()
+
+ options := serial.OpenOptions{
+ PortName: *portName,
+ BaudRate: 115200,
+ DataBits: 8,
+ StopBits: 1,
+ MinimumReadSize: 0,
+ InterCharacterTimeout: 100,
+ }
+
+ serial, err := serial.Open(options)
+ if err != nil {
+ fmt.Printf("open error: %s\n", err)
+ os.Exit(1)
+ }
+
+ network := network.New(serial)
+ if *debug {
+ network.Logger = log.New(os.Stderr, "", log.LstdFlags)
+ }
+
+ network.Flush()
+
+ var servo *servo.Servo
+ servo, err = lx.New(network, *servoID)
+ err = servo.MoveTimeWrite(uint16(*position), 500)
+ if err != nil {
+ fmt.Printf("move error: %s\n", err)
+ os.Exit(1)
+ }
+}