gobot.io/x/gobot/v2@v2.1.0/examples/edison_grove_buzzer.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  	"time"
    11  
    12  	"gobot.io/x/gobot/v2"
    13  	"gobot.io/x/gobot/v2/drivers/gpio"
    14  	"gobot.io/x/gobot/v2/platforms/intel-iot/edison"
    15  )
    16  
    17  func main() {
    18  	board := edison.NewAdaptor()
    19  	buzzer := gpio.NewBuzzerDriver(board, "3")
    20  
    21  	work := func() {
    22  		type note struct {
    23  			tone     float64
    24  			duration float64
    25  		}
    26  
    27  		song := []note{
    28  			{gpio.C4, gpio.Quarter},
    29  			{gpio.C4, gpio.Quarter},
    30  			{gpio.G4, gpio.Quarter},
    31  			{gpio.G4, gpio.Quarter},
    32  			{gpio.A4, gpio.Quarter},
    33  			{gpio.A4, gpio.Quarter},
    34  			{gpio.G4, gpio.Half},
    35  			{gpio.F4, gpio.Quarter},
    36  			{gpio.F4, gpio.Quarter},
    37  			{gpio.E4, gpio.Quarter},
    38  			{gpio.E4, gpio.Quarter},
    39  			{gpio.D4, gpio.Quarter},
    40  			{gpio.D4, gpio.Quarter},
    41  			{gpio.C4, gpio.Half},
    42  		}
    43  
    44  		for _, val := range song {
    45  			buzzer.Tone(val.tone, val.duration)
    46  			time.Sleep(10 * time.Millisecond)
    47  		}
    48  	}
    49  
    50  	robot := gobot.NewRobot("bot",
    51  		[]gobot.Connection{board},
    52  		[]gobot.Device{buzzer},
    53  		work,
    54  	)
    55  
    56  	robot.Start()
    57  }