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
Using a Raspberry Pi Zero as an IoT platform for your car
Internet of Things (IoT) is a popular buzzword in the tech/gadget community. The concept is that all the devices in our everyday life can be online/connected to the Internet 24/7, and thereby help to improve and make our lives more efficient. This includes our light bulbs, kitchen appliances, TVs, alarm and heating systems etc. All our "things" should be able to communicate with each other and be controlled from everywhere in order to achieve a more efficient and convenient world for us to live in.
What is AutoPi and What Does It Do?
Get a short introduction to how AutoPi works and what it does for you. We will cover some of the technical details but also give a brief overview of the use case scenarios for this IoT device, like theft detection and remote safety monitoring. Get a felling of the AutoPi IoT platform and hardware dongle.
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.