Purpose and Scope

AmI Bumpy is a system composed of a central database server, an android application, an accelerometer, a servomotor and an Arduino Yun platform. As soon as a user passes on a bumpy road, the Arduino platform, directly mounted on the motorbike, will immediately send to the smartphone, through the HC-06 Bluetooth module, abrupt changes in acceleration measured by the accelerometer. The application will intelligently convert real data into a fixed index, representing an area that can be critical (1) or not (0). If the road is classified as “critical” its name (acquired via GPS) and dangerousness index will be registered into the central server database.

In this way, future users will be warned about the incoming danger. Furthermore, the system will ask the driver if he desires a decrease in the aggressiveness and power of the motorbike. In case of positive answer, a small servomotor mounted on the throttle body and connected to the Arduino platform will narrow the motion of the throttle body in order to hinder the fuel flux and therefore decrease the reactivity and power of the vehicle, making it easier to be controlled in unsafe conditions.

AmI Bumpy Features

N Description Priority
0 Collect data using an accelerometer 1
1 Warns you when approaching a dangerous area 1
2 Limits motorbike acceleration in proximity of bumpy roads 1
3 Shares data collected by different users to guarantee better coverage and reliability 1
4 Communicate with the user's phone through an Android application 1
5 It communicates with the user through vocal messages 2
6 Provides information collected to authorities through a dedicated website 2
7 Sorts provided data according to the need 3
8 Provides user feedback about a road 3

SYSTEM ARCHITECTURE

Figure 1

HARDWARE ARCHITECTURE

Figure 2


  • Computational Nodes

    1. ANDROID SMARTPHONE: "MOBILE"
      It runs an android application able to receive data via bluetooth interaction with the HC-06 module mounted on Arduino Yun, as well as keeping the server database updated after each user interaction with a bumpy road.

    2. ARDUINO YUN: "DISTRIBUTED"
      Connected to the Bluetooth module HC-06 and to an accelerometer, Arduino Yun constantly sends data produced by the accelerometer to the Android app after a given time cycle.

    3. RASPBERRY PI: "CENTRAL"
      It hosts a central web server with a database storing information about a road in the format "Road_Name danger_index number_of_measurements".


  • Devices

    1. HC-06 BLUETOOTH MODULE
      Location: attached on Arduino Yun breadboard, directly situated on the motorbike. The HC-06 Bluetooth module is responsible of sending data to the Android app.

    2. ACCELEROMETER
      Location: attached on Arduino Yun breadboard, directly situated on the motorbike. The accelerometer constantly measures acceleration variations due to the different nature of each road the user is driving on.

    3. SERVOMOTOR
      Location: on the motorbike throttle body, connected to Arduino Yun. The servomotor narrows the motion of the throttle body in order to hinder the flux of fuel and therefore decrease the reactivity and power of the vehicle, in proximity of endangered roads.


  • User Interface Devices

    1. ANDROID SMARTPHONE
      The Android smartphone also represents a user interface device thanks to its mp3 audio player & speech to text conversion features, which allow the user to decide whether is needed or not to activate the servomotor in presence of an area judged as unsafe by the system, thanks to the experience of other users who already passed on that road before.






SOFTWARE ARCHITECTURE

  • Android App

    • On smartphone
    • Functionalities:
      • Communication with Arduino Yun for data sharing;
      • Communication with web server to check presence of a road in the database;
      • Audio player & SpeechToText in order to ask a user to reduce the power of the motorbike by means of the servomotor;
      • Reasoning algorithm based on the number of user measurements in order to update a road’s danger index;
      • GPS: localize roads to be stored into the database;

  • Database

    • On Raspberry Pi Web Server
    • Functionalities:
      • Retrieving all the roads;
      • Retrieving a specific road;
      • Inserting a new road;
      • Updating a road's danger index, which depends on the number of measurements done by each user on that specific road;
      • Deleting a specific road;

  • Authorities website

    • On Raspberry Pi Web Server
    • Functionality:
      • Making authorities aware of roads to be repaired;





NETWORK ARCHITECTURE

  • The Android smartphone communicates with Arduino Yun thanks to bluetooth connection, while Wi-Fi/4G will be used to allow interaction between the smartphone and the Web server.
  • The Bluetooth module HC-06, the accelerometer and the servomotor are connected as in Figure 2 above, where the whole platform is powered by a battery.

HARDWARE AND SOFTWARE COMPONENTS

Components
Android Smartphone
Arduino Yun microcontroller
HC-06 Bluetooth module
GY521/MPU-6050 accelerometer
MG996R servomotor
Raspberry Pi 3 B
GPS API: OpenStreetMap Nominatim
Android in-built SpeechToText
Android in-built mp3 player
Android OS: API >= 15
Flask web application
Database: mariadb version 15.1

Open Issues

    How to integrate the system within the car?
    Simulator or actual car?
    model to be used in order to infer the road conditions from chassis vertical acceleration
    Weight contribution?
    Is it annoying?
    Do we neet speedometer?
  • Speech to text feature?
  • Full road or dangerous area surrounding?