gobot.io/x/gobot@v1.16.0/examples/edison_grove_buzzer.go (about)

     1  // +build example
     2  //
     3  // Do not build by default.
     4  
     5  package main
     6  
     7  import (
     8  	"time"
     9  
    10  	"gobot.io/x/gobot"
    11  	"gobot.io/x/gobot/drivers/gpio"
    12  	"gobot.io/x/gobot/platforms/intel-iot/edison"
    13  )
    14  
    15  func main() {
    16  	board := edison.NewAdaptor()
    17  	buzzer := gpio.NewBuzzerDriver(board, "3")
    18  
    19  	work := func() {
    20  		type note struct {
    21  			tone     float64
    22  			duration float64
    23  		}
    24  
    25  		song := []note{
    26  			{gpio.C4, gpio.Quarter},
    27  			{gpio.C4, gpio.Quarter},
    28  			{gpio.G4, gpio.Quarter},
    29  			{gpio.G4, gpio.Quarter},
    30  			{gpio.A4, gpio.Quarter},
    31  			{gpio.A4, gpio.Quarter},
    32  			{gpio.G4, gpio.Half},
    33  			{gpio.F4, gpio.Quarter},
    34  			{gpio.F4, gpio.Quarter},
    35  			{gpio.E4, gpio.Quarter},
    36  			{gpio.E4, gpio.Quarter},
    37  			{gpio.D4, gpio.Quarter},
    38  			{gpio.D4, gpio.Quarter},
    39  			{gpio.C4, gpio.Half},
    40  		}
    41  
    42  		for _, val := range song {
    43  			buzzer.Tone(val.tone, val.duration)
    44  			time.Sleep(10 * time.Millisecond)
    45  		}
    46  	}
    47  
    48  	robot := gobot.NewRobot("bot",
    49  		[]gobot.Connection{board},
    50  		[]gobot.Device{buzzer},
    51  		work,
    52  	)
    53  
    54  	robot.Start()
    55  }