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