aboutsummaryrefslogtreecommitdiff
path: root/car/elegoo/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'car/elegoo/main.go')
-rw-r--r--car/elegoo/main.go143
1 files changed, 0 insertions, 143 deletions
diff --git a/car/elegoo/main.go b/car/elegoo/main.go
deleted file mode 100644
index 7e5f6e3..0000000
--- a/car/elegoo/main.go
+++ /dev/null
@@ -1,143 +0,0 @@
-package main
-
-//go:generate sh -c "protoc --go_out=. --nanopb_out=.. *.proto"
-
-import (
- "bufio"
- "io"
- "log"
-
- "github.com/dim13/cobs"
- "github.com/golang/protobuf/proto"
- "github.com/tarm/serial"
-)
-
-func Write(w io.Writer, pb proto.Message) error {
- buf := new(proto.Buffer)
- err := buf.EncodeMessage(pb)
- if err != nil {
- return err
- }
- block := cobs.Encode(buf.Bytes())
- _, err = w.Write(block)
- return err
-}
-
-func Read(buf *bufio.Reader, pb proto.Message) error {
- block, err := buf.ReadBytes(0)
- if err != nil {
- return err
- }
- block = cobs.Decode(block)
- return proto.NewBuffer(block).DecodeMessage(pb)
-}
-
-// /dev/cu.Elegoo-DevB
-// /dev/cu.usbmodem1421
-// /dev/cu.usbmodem1411
-
-func Reader(r io.Reader) chan *Events {
- c := make(chan *Events)
- buf := bufio.NewReader(r)
- go func() {
- for {
- evt := &Events{}
- if err := Read(buf, evt); err != nil {
- if err == io.ErrUnexpectedEOF {
- continue
- }
- log.Println("ERR", err)
- return
- }
- c <- evt
- }
- }()
- return c
-}
-
-func Writer(w io.Writer) chan *Command {
- c := make(chan *Command)
- go func() {
- for cmd := range c {
- log.Println("send", cmd)
- Write(w, cmd)
- }
- }()
- return c
-}
-
-func main() {
- c := &serial.Config{
- //Name: "/dev/tty.usbmodem1421",
- //Name: "/dev/tty.usbmodem1411",
- Name: "/dev/tty.Elegoo-DevB",
- Baud: 57600,
- }
- s, err := serial.OpenPort(c)
- if err != nil {
- log.Fatal(err)
- }
- defer s.Close()
-
- w := Writer(s)
-
- w <- &Command{Direction: 80}
-
- for e := range Reader(s) {
- log.Println("event", e)
- if e.SensorC || e.Distance < 20 {
- w <- &Command{Stop: true}
- }
- }
-
- /* log.Println("send -45")
- time.Sleep(3 * time.Second)
- Write(s, &Command{Direction: 5})
-
- log.Println("send +45")
- time.Sleep(3 * time.Second)
- Write(s, &Command{Direction: 175})
-
- log.Println("send +0")
- time.Sleep(3 * time.Second)
- Write(s, &Command{Direction: 90})
- */
-
- /* log.Println("send motor")
- Write(s, &Command{SpeedL: 200, SpeedR: 200, StopAfter: 1000})
- time.Sleep(time.Second)
-
- log.Println("send motor turn")
- time.Sleep(time.Second)
- Write(s, &Command{SpeedL: -250, SpeedR: 250, StopAfter: 500})
-
- log.Println("send motor turn")
- time.Sleep(time.Second)
- Write(s, &Command{SpeedL: 250, SpeedR: -250, StopAfter: 500})
- */
-
- /* MOTOR
- cmd.SpeedL = 200
- cmd.SpeedR = 0
- cmd.Stop = false
- Write(s, cmd)
- time.Sleep(3 * time.Second)
-
- cmd.SpeedL = 0
- cmd.SpeedR = 0
- cmd.Stop = true
- Write(s, cmd)
- time.Sleep(3 * time.Second)
-
- cmd.SpeedL = 0
- cmd.SpeedR = 200
- cmd.Stop = false
- Write(s, cmd)
- time.Sleep(3 * time.Second)
-
- cmd.SpeedL = 0
- cmd.SpeedR = 0
- cmd.Stop = true
- Write(s, cmd)
- */
-}