gobot.io/x/gobot/v2@v2.1.0/platforms/firmata/client/examples/blink.go (about)

     1  //go:build example
     2  // +build example
     3  
     4  //
     5  // Do not build by default.
     6  
     7  package main
     8  
     9  import (
    10  	"fmt"
    11  	"time"
    12  
    13  	"go.bug.st/serial"
    14  	"gobot.io/x/gobot/v2/platforms/firmata/client"
    15  )
    16  
    17  func main() {
    18  	sp, err := serial.Open("/dev/ttyACM0", &serial.Mode{BaudRate: 57600})
    19  	if err != nil {
    20  		panic(err)
    21  	}
    22  
    23  	board := client.New()
    24  
    25  	fmt.Println("connecting.....")
    26  	err = board.Connect(sp)
    27  	defer board.Disconnect()
    28  
    29  	if err != nil {
    30  		panic(err)
    31  	}
    32  
    33  	fmt.Println("firmware name:", board.FirmwareName)
    34  	fmt.Println("firmata version:", board.ProtocolVersion)
    35  
    36  	pin := 13
    37  	if err = board.SetPinMode(pin, client.Output); err != nil {
    38  		panic(err)
    39  	}
    40  
    41  	level := 0
    42  
    43  	for {
    44  		level ^= 1
    45  		if err := board.DigitalWrite(pin, level); err != nil {
    46  			panic(err)
    47  		}
    48  		fmt.Println("level:", level)
    49  		time.Sleep(500 * time.Millisecond)
    50  	}
    51  }