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
- 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. - 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. - 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
- 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.
- 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. - 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
- 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
- Speech to text feature?
- Full road or dangerous area surrounding?