The first of these is the Ambient Light module.
Luminosity (brightness) and irradiance (light energy) sensors are a tricky thing. The human perception of light varies by color wavelength, lighting type, etc. Fluorescent light has a different balance of visible and IR light than incandescent light, daylight, etc.
Typical light sensors such as photocells and those found in most cellphones measure light as a combination of both visible and IR light. This "broadband" measurement is a bit rough, and the results can vary dramatically between different types of light sources. In addition these analog sensors often output a fairly non-linear analog voltage.
Some of the nicer light sensor ICs use circuitry to approximate the human luminosity response curve (the way we perceive brightness). They're tuned to either outdoor light or indoor light (since we humans perceive those two differently). There are different light sensors for many different applications, tuned for environments where a gadget might be used.
Netduino Go projects will be used indoors, outdoors, and in all types of light. So when designing the new Ambient Light module, we decided that we wanted the "Swiss Army of Light Sensors" so we could boil all this down to an accurate Luminosity (brightness) value.
Late last month we ordered the first 5,000 ambient light sensor ICs for the new module. They will start to arrive in about eight weeks, and hopefully we'll be able to get lots of Ambient Light sensor modules into stockings for the holidays
Ambient Light Sensor IC:
The Ambient Light module driver provides a simple primary function:
double AmbientLight.GetLuminosity();The digital sensor IC itself has two photodiodes. One is broadband (visible + IR) and the other is IR-only. We combine both of these together into a single analog value regardless of lighting type. The general idea is that we subtract the IR-only measurement from the combined "visible + IR" measurement...and then convert that into the human-perceived luminosity value.
The sensor IC has a 16-bit ADC and it provides interrupts when light levels change significantly. There are a lot of advanced features and some cool hackability here.
We tested quite a few ambient light sensors before deciding on this one...and we're really excited about the potential applications.
We'll start layout on this module later this month, and I'll share more details as we finish layout files, receive the first samples, ship them to resellers, etc. We should put them into production late next month.