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
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.
Carsharing: How to use your AutoPi for short term lease car sharing
Carsharing is a growing field within the car rental industry, and not just in the US, but also in places like in Denmark and several other countries. So, what is “Carsharing”? The concept of carsharing comes from the “sharing economy”, in which certain parts of the private sector is becoming more and easily accessible through sharing between private parties and with the help of a developing platform.
Discover hidden functions in your car (using CAN bus sniffing)
All modern vehicles today is controlled by multiple Electronic Control Units (ECU), which you can think of as small computers controlling all electrical components in your car. Using the OBD-II port and an AutoPi it is possible to communicate with the ECUs. One of the ECU’s is called the Engine Control Module (ECM). This is responsible for communication with a lot of subsystems, like transmission, power steering, windows and doors. These subsystems communicates on a network bus called Controller Area Network (CAN), by broadcasting messages on the bus.