Returns the mean of all supplied values. One or more *values* can be
    specified. For example, to light a :class:`~gpiozero.PWMLED` as the average
    of several potentiometers connected to an :class:`~gpiozero.MCP3008` ADC::

        from gpiozero import MCP3008, PWMLED
        from gpiozero.tools import averaged
        from signal import pause

        pot1 = MCP3008(channel=0)
        pot2 = MCP3008(channel=1)
        pot3 = MCP3008(channel=2)
        led = PWMLED(4)

        led.source = averaged(pot1, pot2, pot3)

        pause()

def averaged(*values):
    """
    Returns the mean of all supplied values. One or more *values* can be
    specified. For example, to light a :class:`~gpiozero.PWMLED` as the average
    of several potentiometers connected to an :class:`~gpiozero.MCP3008` ADC::

        from gpiozero import MCP3008, PWMLED
        from gpiozero.tools import averaged
        from signal import pause

        pot1 = MCP3008(channel=0)
        pot2 = MCP3008(channel=1)
        pot3 = MCP3008(channel=2)
        led = PWMLED(4)

        led.source = averaged(pot1, pot2, pot3)

        pause()
    """
    values = [_normalize(v) for v in values]
    for v in zip(*values):
        yield mean(v)