Hey Google! Call Box

by inclined-orbit in Circuits > Arduino

441 Views, 1 Favorites, 0 Comments

Hey Google! Call Box

Box-all.png

My elderly Grandmother was in a retirement home and we bought her a Google Home. We thought this would be great for her, especially dialing all her family. Unfortunately, sometimes her voice was not recognizable by google or she forgot to add "Hey Google". So I came up with device that all she had to do is push a button associated with a family member, and a pre-recorded message would play "Hey Google, Call Shelley!". We can place this right next to her chair and all she has to do is push the button and google would call them. I made another buttons to hang up - it says "OK Google, Stop". I also added one button for HELP - this one calls the front desk in case of an emergency. It works great.

The device was all housed in a 3-D printed enclosure, It is based on an Arduino and the AdaFruit Wave Shield. I also used an audio amp to drive a small speaker. Instead of having this always plugged in, I also added a rechargeable battery and charging circuit. Expecting only occasional use, this battery will last many days. All I have to do is plug in the USB charger (the charger card is next to the enclosure side and I left a hole for the charger) or if we wanted we could leave the USB plugged in all the time.

Supplies

  • Arduino Uno
  • Adafruit Wave Shield
  • AdaFruit Power Boost 500 charger
  • Velleman Audio Amp VMA408
  • 3.5 inch speaker
  • Lithium Ion Battery Pack - 3.7V 4400mAh (AdaFruit PRODUCT ID: 354)

Components

Box-inside.png
schematic.png

Arduino: The main code of the project resides here. It samples the pushbuttons, controls the Wav Shield and enables/disables the amplifier.

Adafruit Wave Shield: A shield that mounts on the Arduino UNO. It has an SD card that holds the wav files. It has an audio headphone jack output.

AdaFruit Power Boost 500 charger: Charger that has a jack for an USB charger and connects to a Lithium Ion Battery Pack - 3.7V 4400mAh

Velleman Audio Amp: Since the Wav Sheild only has a headphone output I needed an amplifier to drive a small speaker.

I added a few other components. One is an on/off stitch attached to the charge card. I also added a few LED's to indicate when the unit is on and if there is a low battery detected.

Code Walk-Through Part 1

code1.png

The Code is based on the example code provided by AdaFruit.

https://learn.adafruit.com/adafruit-wave-shield-au...

Play 6 button example:

https://learn.adafruit.com/adafruit-wave-shield-au...

I made a few small changes and I'll point those out as we go. The first portion of code loads the libraries, defines some objects and defines a pin used for enabling and disabling the external amplifier.

Code Walk-Through Part 2

code2.png

Next area is code for checking the SD card for errors.

Code Walk-Through Part 3

code3.png

The next steps sets up the serial port and diagnostic print, checks free RAM. We also added an additional step to define the output pin used for the amp control (D6). The next steps define the switch inputs and sets them as pullups. That way I can connect the buttons directly to the Arduino (through the shield).

Code Walk-Through Part 4

code4.png

This portion of code initializes the SD card to see if it responds, stops if it fails. You can use your serial monitor to see if you have any problems. I left alot of the comments so you can read up on this in the code or on the AdaFruit web page.

Code Walk-Through Part 5

code5.png

The next part of code is where we check the buttons and assign them to a particular WAV file.

Code Walk-Through Part 6

code6.png

This part of code samples the switches.

Code Walk-Through Part 7

code7.png

Now that we detected a button this next series of code plays the WAV file. The code prepares playing the WAV file and you'll see I enable the Amp at this point buy driving pin 6 high. I wanted to save as much battery as possible, plus I didn't want any noise coming from the amp when no sound is playing due to noise. Once the Amp is enables the code calls the playfile function.

Code Walk-Through Finish

code8.png

The last portion of code plays the function called playfile. Here is where the Wav file is played. Once completed it returns to the previous code and completes.

Code Files and 3-D Print Files

Upgrades & Second Thoughts

I made this mostly of parts I had on hand about 4 years ago. If I were to do this again, I would make a few improvements. The AdaFruit Wav Shield works perfectly well, but I might replace that with the AdaFruit FX sound boards:

https://www.adafruit.com/product/2217

They are completely stand-alone and it is possible to totally eliminate the Arduino. Some versions even have an audio amp integrated, There is also a module to mount to the board for a battery charger:

https://www.adafruit.com/product/2124

They do not use an SD card and the WAV files are directly loaded into the memory, some versions have expanded memory if needed. They have lots of pin inputs for multiple WAV files. Some versions even have an audio amp built in.

This would greatly simplify the circuit. I would probably add in LED push buttons with see-through bezels by adding a small Arduino to drive the LED's and maybe some bells and whistles.