Cars driving cars
A machine that combusts liquefied biological remains to deliver torque and speed to the human body beyond its natural capabilities should not be considered normal. Yet, the motorized vehicle is one of the most common objects in the world today. It is almost impossible to go an entire day without encountering a car of some kind. They are so commonplace that we barely notice them anymore. We’ve learned to ignore their presence and even filter out the noise from their engines. Yet they have had a massive impact on our society, from literally shaping our cities to enabling same-day delivery. Perhaps it is the ubiquity of the car that hides all its strangeness in plain sight.
The integration of microcontrollers and processors into vehicles has endowed them with decision-making capabilities. The engine has become a computing device driven by data from various sensors. The pedals have been turned into human interface devices that can be controlled beyond their mechanical functions. In the project Cars driving cars, vehicles are abstracted into a minimal ontology based on the data that is extracted from their onboard computers. In this way, the car is reduced to the distance it has traveled, the time that the engine has been running, its speed, and the position of the accelerator pedal. This project consists of a series of experiments that explore how car data can be used to drive generative graphics and electronic devices.
Most recent cars have an on-board diagnostics (OBD) port that allows data to be read from the car’s computer using standardized serial commands. The main purpose of the OBD is to use a scanner to determine the source of a failure. However, there are also low-cost USB and Bluetooth interfaces that can provide access to real-time data while driving. In this project, one of these scanners is connected to a Raspberry Pi Zero computer. It runs a script that sends data (rpm, trip duration, distance, speed, and accelerator pedal position) every second while the car is being driven. Internet access is provided by a mobile hotspot.
Data extraction is a process of defamiliarizing. It involves separating meaningful information from the noise and chaos of the tangible world in order to see it with fresh eyes. The mere act of measuring converts reality into a caricature that begs to be visualized. Cars driving cars assumes that form must follow data, and thus creates images of cars with simple geometry that has been parametrically defined by the information gathered while driving. The resulting childlike illustrations prompt reflection on everyday car use and the time spent in traffic. These graphics are created by a computer program every time the car is turned off. The program processes the data it receives and uses it in the following manner:
- Duration determines the height of the drawing.
- Distance determines the width of the middle section.
- Top speed determines the vertical angle.
- And the percentage of time that the car was stationary modifies the color of the drawing (where red is a car that was turned on but never moved).
It can be difficult to interpret a single image because the trip data and resulting shape are greatly simplified. However, when viewed as a collection, it becomes possible to identify driving habits, recurring trips, and even the driving conditions in the city. The car thus ceases to be a functional object and becomes a reflection of routines ranging from labor to social life and leisure.
The desire to compare how the graphics change over consecutive trips inspired the create of an interactive visualization. By interpolating the shape and color of each car with the next one, the subtle differences between the trips becomes visible, especially when one of the trips is interrupted by a stop in between. This browser-based application can be seen at: http://cars.trujillodiego.com
The accelerator pedal in a car can be thought of as one of the most popular and powerful interfaces in the world. Buses, ambulances, couriers, and even warfare are moved by a foot on a pedal. But by treating the pedal as a computational interface and transmitting its position, it can also drive electronic objects, including other (toy) cars.
The data being sent by the car can be received by a microcontroller in almost real time. An ESP32 development board connected via Wi-Fi converts the position of the real car’s accelerator pedal into pulse-width modulated (PWM) electrical signals. These can replace the controllers on an electrical toy racetrack. The throttle of the real car thus controls the speed of the toy car, allowing both cars to be driven at once. For a race, two separate vehicles can be connected to a transmitter, allowing those overwhelmed by work and responsibilities to automate their playtime and play as they commute.
The experiments presented here were only possible by thinking of the motor vehicle as a computational object, freeing it from its historical mechanical identity. Imagining the car in this way opens it up to the malleability characteristic of digital systems. The car as software allows it to be re-coded as an interface that represents more than just motion and encourages reflection on how driving fits into personal, social, and urban routines.
For the project's full code and how-to instructions visit https://github.com/dtpisanty/carsDrivingCars.