Inspiration:

The inspiration is to give car sharing companies more insights on how exactly the car was driven. The motive behind it - is that more aggressive driving (besides endangering the surroundings), is harming the environment as well as wears the car out faster, causing money loss to the car sharer. Knowing how exactly the car was driven will allow the company to charge "reckless" drivers more while encouraging the rest to drive more carefully.

What it Does:

Use Arduino 101's 6-axis accelerometer/gyro + Machine Learning (Both internal RBF and external RNN) to figure out driving patterns and road quality. In addition it has a GPS module to track the location of bad road (bumps for example). Immediate insights can be accessed via BLE using the mobile App, in depth analysis is performed on the server side, and the insights can be seen through dashboard (for the project we used re:dash)

How we built it:

The core is Arduino 101's gyro/accel combined with CuriePME as real time classification module (it uses to analyze potentially harmful events, like sharp turns, hard braking, etc..) We added a GPS to enhance the abilities of the system, it's always useful knowing the exact location speed bumps, sharp turns, etc.

One of the future usecases - we can detect bad road conditions, and alert the maintenance services to fix them.

Both raw data and the PME analysed data are stored on SD card (2 separate files), which later are analyzed and plotted in dashboard.

Diagram

The mobile app provides a sneak peek on the data (think of advanced odometer).

Mobile App

Wiring Diagram

sketch

Challenges we ran into:

Grove LCD burned the day after we received it.

Wire.h wasn't working properly.

SoftwareSerial works slightly different on 101, caused us some problems reading the GPS data (that's why we came up with arduino 101 as proxy in the end)

Too much noise while training the models.

Accomplishments that we're proud of:

Used ML for something with real meaning.

Actually finished the "device" with the features we wanted.

What we learned:

That we can use even 128byte hardware ML.

Training data matters! (noisy/incomplete data can break the whole model)

What's next for car-n-sics:

There is a new car sharing service in Israel, ran by Tel Aviv municipality, we will approach them(as well as Israli's car2go branch) to integrate the blackbox in, and gather real data. Tel-Aviv car sharing.

Train the model on several cars, and check if we can come up with some unified model (now there is a need to retrain when cars are changed)

Enhance the App (currently it's very basic).

Share this project:

Updates