In this chapter we have covered the I2C protocol, which allows us to communicate with more complex peripherals. We have looked at the pin structure and how it works internally to address multiple components into the same bus.
Then we looked at the components of the Rainbow HAT that use I2C (alphanumeric display and temperature sensor) to realize that the meta driver layer is really thin. It is just hiding one parameter and the constructor. The complexity of handling these type of circuits is all about learning how each driver works.
We also looked at a few expansion boards: Analog to Digital Converter (ADC), PWM, and GPIO expanders. With all those, we can overcome the lack of analog inputs and outputs of the developer kits of Android Things.
Finally, we checked other type of sensors, including magnetometers, accelerometers, and gyroscopes, which are common in phones nowadays...