October 26th, 2021—
BMWs are known for many things: performance, luxury, quality, and pedigree. But BMW drivers are only known for one thing: being inconsiderate to others on the road. That stereotype is exemplified by a complete lack of turn signal usage, according to Marc Radinovic. To solve this issue and repair the reputation of BMW drivers, he turned to Arduino to create a training device.
Radinovic attached this device to his own car, which he didn’t want to hack apart. So he avoided tapping into the CAN bus by utilizing an abundance of hardware. That hardware includes two Nano 33 BLE boards, an Uno WiFi Rev. 2, and a Raspberry Pi single-board computer. Each Nano 33 BLE has an integrated 9-axis IMU, which Radinovic uses to detect steering wheel movement and turn signal stalk movement.
Both Nano 33 BLE boards communicate with the Uno WiFi board, which connects to the Raspberry Pi via serial. If the steering wheel moves without the turn signal stalk moving, the Arduino Uno WiFi tells the Raspberry Pi to play an angry sound effect through the car’s stereo. That’s the negative reinforcement in the training regimen. The positive reinforcement comes from playing congratulatory sound effects when the driver uses their turn signal before turning the steering.