mirror of
https://github.com/hybridgroup/gobot.git
synced 2025-04-27 13:48:56 +08:00
51 lines
1.0 KiB
Go
51 lines
1.0 KiB
Go
![]() |
package main
|
||
|
|
||
|
import (
|
||
|
"log"
|
||
|
"time"
|
||
|
|
||
|
"github.com/hybridgroup/gobot"
|
||
|
"github.com/hybridgroup/gobot/platforms/i2c"
|
||
|
"github.com/hybridgroup/gobot/platforms/raspi"
|
||
|
)
|
||
|
|
||
|
func adafruitStepperMotorRunner(a *i2c.AdafruitMotorHatDriver, motor int) (err error) {
|
||
|
log.Printf("Stepper Motor Run Loop...\n")
|
||
|
// set the speed state:
|
||
|
speed := 30 // rpm
|
||
|
a.SetStepperMotorSpeed(motor, speed)
|
||
|
|
||
|
if err = a.Step(motor, 100, i2c.AdafruitForward, i2c.AdafruitSingle); err != nil {
|
||
|
log.Printf(err.Error())
|
||
|
return
|
||
|
}
|
||
|
if err = a.Step(motor, 100, i2c.AdafruitBackward, i2c.AdafruitSingle); err != nil {
|
||
|
log.Printf(err.Error())
|
||
|
return
|
||
|
}
|
||
|
return
|
||
|
}
|
||
|
func main() {
|
||
|
gbot := gobot.NewGobot()
|
||
|
r := raspi.NewRaspiAdaptor("raspi")
|
||
|
adaFruit := i2c.NewAdafruitMotorHatDriver(r, "adafruit")
|
||
|
|
||
|
work := func() {
|
||
|
gobot.Every(5*time.Second, func() {
|
||
|
|
||
|
motor := 0 // 0-based
|
||
|
adafruitStepperMotorRunner(adaFruit, motor)
|
||
|
})
|
||
|
}
|
||
|
|
||
|
robot := gobot.NewRobot("adaFruitBot",
|
||
|
[]gobot.Connection{r},
|
||
|
[]gobot.Device{adaFruit},
|
||
|
work,
|
||
|
)
|
||
|
|
||
|
gbot.AddRobot(robot)
|
||
|
|
||
|
gbot.Start()
|
||
|
}
|