Speak to your car with Google Assistant - almost like K.I.T.T. from Knight Rider
Wouldn’t it be cool if you could speak to your car and give it commands? We remember our childhood in the last millennium where Michael Knight (David Hasselhoff) and his intelligent Pontiac Trans Am named K.I.T.T. solved crime together.
Did you know? K.I.T.T. is short for Knight Industries Two Thousand
While we may not be able to have a meaningful conversation with our car just yet, it’s now a possibility to talk to your car and give it commands to execute. We are here giving a short introduction to how this can be accomplished using the AutoPi.io system and Google Assistant. With the Google Assistant, it will be like a K.I.T.T. voice software for your car, and thus the commands you give your vehicle once executed can feel like you are in Knight Rider.
Here's a demonstration of how you can talk to your car:
What is AutoPi?
AutoPi is a small device that plugs into the OBD-II port of your car.
Once connected, the AutoPi device will automatically start working. It has 4G/LTE connectivity, so it is always connected to the Internet. It also comes with a lot of other features, one is continuous GPS tracking.
It comes with an online dashboard, that you can login to from any device. From here you can setup your system and do real-time tracking of your vehicle telematics.
What is Google Assistant?
Google Assistant is Google’s version of Siri (Apple) and Alexa (Amazon). It lets you interact with your device, through voice commands and has typically been used together with Android devices where it comes integrated. More technically, the “Assistants” works by processing the speech recorded on the device and translate them into something understandable by a machine and this can thereby be parsed and an action can be taken. A typical use case is:
- You: “OK Google. How is the weather in New York?”
- Assistant: “It’s 10 degrees and raining”
How to use Google Assistant and AutoPi together?
As a new thing, Google recently released their Google Assistant SDK, with a Python based SDK. This SDK lets you integrate the Google Assistant with the AutoPi Dongle, and give you the possibility to setup a system where you are able to give commands to your car.
When Google introduced the Google Assistant SDK with a Python version, they must have thought of AutoPi, because the two things goes together perfectly.
AutoPi Core (the software running on the AutoPi Dongle) is built using Python. With the AutoPi dashboard it is possible to write custom Python code modules and upload them directly to the AutoPi Dongle. It is easy to program your AutoPi directly from the web interface and thereby set it up to integrate with Google Assistant.
The AutoPi Dongle comes with a built in speaker and a connection to your car (or should we call it K.I.T.T.?) using the OBD-II connector. The OBD-II connector lets the AutoPi communicate with the embedded computer systems in your car. The only device you would need to add is a microphone. But as the AutoPi has USB ports for external devices, so a mic is easily added.
The main focus would be to setup the software on the device and that's where the Google Assistant SDK is able to help us. With it you can parse audio recordings from your device, and turn them into actions. In short this is how it works:
- Speak a command using the USB microphone
- Send the recorded action to Google for parsing
- The device initiates the action, based on the result from Google
The flow between the systems is:
- User speaks a command.
- The K.I.T.T. Python application records and sends the spoken command to Google using the Assistant SDK.
- Google Cloud Platform translates the recorded speech into a text string.
- The text string is returned to the K.I.T.T. Python application, using the SDK.
- The K.I.T.T. Python application parses the text string and initiates the action found from the string, in this case the OBD subsystem.
- The OBD subsystem routine is triggered and it sends a command on the CAN bus through the OBD port. The command is to roll down the window.
- The window in the car is rolled down.
- The speaker subsystem routine is triggered. It sends the text to be spoken to Google to translate it into a sound file.
- Google returns the sound file.
- Speaker subsystem plays the sound file to the user.
- Great Success!
AutoPi was mentioned at the Google I/O 2017 conference in San Francisco:
Let us know what you would like to have your car do and how you think this could be possible using the AutoPi and Google Assistant. Join the discussion below.
Other blog posts for further reading
Raspberry Pi Dongle: How to Read and Reset Fault Codes From Your Vehicle
The AutoPi IoT platform is much more than your regular OBD-II dongle. But that doesn’t mean that it isn’t able to perform all of the same things a regular OBD-II dongle does (plus much more). One of the common things you would do is to read out details about fault codes in your vehicle. In this blog we will go over the details on how this is done with the AutoPi and how you can combine fault codes with triggers to make automatic alerts.
Saving your car interior on a hot day - Making a cabin overheating protection system using AutoPi
Studies show that on a hot summer day the temperature inside your vehicle will rise dramatically within just 10 minutes after you parked. HeatKill.org reports that with an outside temperature of 27 C (80 F), the inside temperature could rise to as high as 37 C (99 F) after just 10 minutes. The inside of your car becomes an oven roasting your interior. The sun will permanently damage the color and look of everything it touches, thereby degrading the value of your car.
Switching from Raspberry Compute to Raspberry Zero
During the design phase of the AutoPi, it was decided to use the Raspberry Compute Module. The Raspberry Compute Module is small, versatile and expandable in a lot of ways, which suited the AutoPi project perfect. All the pinouts from the Broadcom BCM2835 processor is available through the SODIMM DDR2 interface on the Compute Module. This gave us a lot of possibilities during the design phase of the AutoPi and therefore the Compute module was an obvious choice for us as a main processor.