Skip to content

Instantly share code, notes, and snippets.

@trennepohl
Created August 30, 2019 07:40
Show Gist options
  • Save trennepohl/abd5c4af06045bfe3b9cab552caa8bfe to your computer and use it in GitHub Desktop.
Save trennepohl/abd5c4af06045bfe3b9cab552caa8bfe to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"time"
"gobot.io/x/gobot"
"gobot.io/x/gobot/drivers/gpio"
"gobot.io/x/gobot/platforms/raspi"
)
func main() {
r := raspi.NewAdaptor()
trigPin := gpio.NewDirectPinDriver(r, "11")
echoPin := gpio.NewDirectPinDriver(r, "10")
led := gpio.NewLedDriver(r, "7")
work := func() {
gobot.Every(1*time.Second, func() {
// println("Starting probing ")
// led.Toggle()
trigPin.DigitalWrite(byte(0))
time.Sleep(2 * time.Microsecond)
trigPin.DigitalWrite(byte(1))
time.Sleep(10 * time.Microsecond)
trigPin.DigitalWrite(byte(0))
start := time.Now()
end := time.Now()
for {
val, err := echoPin.DigitalRead()
start = time.Now()
if err != nil {
println(err.Error())
break
}
if val == 0 {
continue
}
break
}
for {
val, err := echoPin.DigitalRead()
end = time.Now()
if err != nil {
println(err.Error())
break
}
if val == 1 {
continue
}
break
}
duration := end.Sub(start)
distance := duration.Seconds() * 3400
distance = distance / 2 //one way travel time
fmt.Printf("Duration : %v \n", distance)
})
}
robot := gobot.NewRobot("makeyBot",
[]gobot.Connection{r},
[]gobot.Device{trigPin, echoPin, led},
work,
)
robot.Start()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment