Examining Google AIY Voice Bonnet LED and Pins
The default demo for a Google AIY Voice kit turns a Raspberry Pi Zero in a cardboard box into a Google Voice Assistant. I wasn't terribly interested in that at full price, but at clearance discount they were interesting enough to purchase. I had fun looking over its "Voice Bonnet" audio accessory board to verify it is easy to re-purpose to sound-based projects of my own choosing. Once that primary goal was complete, I looked at some of the auxiliary features on that accessory board to see what's going on.
First up is aiy.board
which interfaces with the big plastic button. It looks like the kind of button found on an arcade console and I would expect it to be durable for many cycles. The source file has all the code dealing with the messy realities of dealing with a physical button, including logic to handle debouncing.
Next is aiy.leds
. When assembling that button, I noticed it had more pins than strictly necessary for a button and it turns out the button also incorporates a RGB LED array. While aiy.board
has code to deal with that LED array, comments indicate there's a better API available elsewhere for the RGB LED in the aiy.leds
source file. Indeed there appears to be better support for lighting effects like blinking, pulsing, and color blending.
Finally aiy.pins
allows access to the GPIO pins exposed by Voice Bonnet. I had originally thought these were passed through from the Raspberry Pi GPIO bins, but further reading indicates I was wrong. These pins are controlled by the SAM D microcontroller on board the bonnet, and aiy.pins
expose them for use in a way compatible with Raspberry Pi's gpiozero library.
This looks like a pretty decent set of auxiliary functionality available on the Voice Bonnet, certainly enough to handle some simple projects without pulling in additional hardware. Also, the RGB button and auxiliary pins are apparently shared between the Voice and Vision bonnets so common code can drive both. This may prove useful somewhere down the line.