Library for programming microcontrollers in Go
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
samples
README.md
vspark.go

README.md

#Vspark

Vspark is a Go package that lets you write programs for [Spark devices] (https://www.spark.io/).

##Getting Started

Load the [Voodoospark firmware] (https://github.com/voodootikigod/voodoospark) onto your Spark device.

*For users familiar with [Spark-cli] (https://github.com/spark/spark-cli), voodoospark firmware is bundled and can be flashed through the CLI.

Set these environment variables on the host machine.

export SPARK_TOKEN="your spark token"
export SPARK_DEVICE_ID="your device id"

##Install

$ go get github.com/audreylim/vspark

##Use

blink-LED.go

func main() {
  err := vspark.PingSpark()
  if err != nil {
    log.Fatal(err)
  }
  err = vspark.PinMode("D7", "OUTPUT")
  if err != nil {
    fmt.Println(err)
  }

  for {
    writeErr := vspark.DigitalWrite("D7", 1)
    if writeErr != nil {
      fmt.Println(writeErr)
    }
    time.Sleep(1000 * time.Millisecond)

    writeErr = vspark.DigitalWrite("D7", 0)
    if writeErr != nil {
      fmt.Println(writeErr)
    }
    time.Sleep(1000 * time.Millisecond)
  }
}

##API

StaticIP and PingSpark()

If you know the IP address of the core and want to bypass the Spark Cloud, you can directly set the IP address. If the IP address is not set, PingSpark() will retrieve it from the Spark Cloud.

Example:

func main() {
  vspark.StaticIP = "your static IP address and port number"
  err := vspark.PingSpark()
  if err != nil {
    log.Fatal(err)
  }
}

PinMode(pin, mode)

Modes:

  • INPUT => DigitalRead (INPUT_PULLDOWN)
  • OUTPUT => DigitalWrite (OUTPUT)
  • ANALOG => AnalogRead (INPUT)
  • PWM => AnalogWrite (OUTPUT)
  • SERVO => ServoWrite (OUTPUT)

Example:

err := PinMode("D7", "OUTPUT")

DigitalWrite(pin, value)

Set 1 for maximum 3.3V voltage ("HIGH") or 0 to turn it off ("LOW").

Example:

err := PinMode("D7", "OUTPUT")
writeErr := DigitalWrite("D7", 1)

AnalogWrite(pin, value)

Available on D0, D1, A0, A1, A4, A5, A6, A7.

Set value from 0 to 255.

Example:

err := PinMode("A1", "PWM")
writeErr := AnalogWrite("A1", 100)

DigitalRead(pin)

Example:

err := PinMode("D1", "INPUT")
val, readErr := DigitalRead("D1")

AnalogRead(pin)

Example:

err := PinMode("A1", "ANALOG")
val, readErr := AnalogRead("A1")

ServoWrite(pin, deg)

Set deg between 0 to 180.

Available on D0, D1, A0, A1, A4, A5, A6, A7.

Example:

err := PinMode("D1", "SERVO")
servoErr := ServoWrite("D1", 180)

##LICENSE

MIT