From fd22d4ed6abbf234995039085031dd6069786159 Mon Sep 17 00:00:00 2001 From: jet tsang zeon-git Date: Wed, 5 Aug 2020 15:40:16 +0800 Subject: Add set-position example. Signed-off-by: jet tsang zeon-git --- example/set-position/set-position.go | 54 ++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 example/set-position/set-position.go 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) + } +} -- cgit v1.2.3