hybridgroup / gobot

Golang framework for robotics, drones, and the Internet of Things (IoT)
https://gobot.io
Other
8.89k stars 1.04k forks source link

Stepper driver DRV8825 #1079

Open Juan1ll0 opened 6 months ago

Juan1ll0 commented 6 months ago

Hi friends,

Is it posible to use DRV8825 stepper driver with gobot?

Thank you, very much.

Juan1ll0 commented 6 months ago

YES, I answer myself. I'm happy that is something quite simple. I will try to write a Gobot driver for DRV8825 stepper controller. This is a sample code, that works for me on a RPI4 (If it doesn't work play with time on gobot.Every sentence):

package main

import (
    "time"
    "gobot.io/x/gobot/v2"
    "gobot.io/x/gobot/v2/platforms/raspi"
)

func main() {
    r := raspi.NewAdaptor()

    work := func() {
        // Direction Pin (DRV8825 DIR)
        r.DigitalWrite("37", 1)

        step := true
        gobot.Every(1*time.Millisecond, func() {
            if step {
                               // Step pin (DRV8825 STP)
                r.DigitalWrite("35", 1)
                step = false
            } else {
                r.DigitalWrite("35", 0)
                step = true
            }
        })

        return
    }

    robot := gobot.NewRobot("stepperBot",
        []gobot.Connection{r},
        []gobot.Device{},
        work,
    )

    robot.Start()
}