code: func NewButtonDriver(a DigitalReader, pin string, v ...time.Duration) *ButtonDriver {
  	b := &ButtonDriver{
  		name:         gobot.DefaultName("Button"),
  		connection:   a,
  		pin:          pin,
  		Active:       false,
  		DefaultState: 0,
  		Eventer:      gobot.NewEventer(),
  		interval:     10 * time.Millisecond,
  		halt:         make(chan bool),
  	}
  
  	if len(v) > 0 {
  		b.interval = v[0]
  	}
  
  	b.AddEvent(ButtonPush)
  	b.AddEvent(ButtonRelease)
  	b.AddEvent(Error)
  
  	return b
  }
docs: // NewButtonDriver returns a new ButtonDriver with a polling interval of
  // 10 Milliseconds given a DigitalReader and pin.
  //
  // Optionally accepts:
  //  time.Duration: Interval at which the ButtonDriver is polled for new information