Skip to content

DIT112-V19/group-08

Repository files navigation

group-08

Content table

  1. Our Project
  2. Technical aspects
  3. Features
  4. Installation
  5. Manual
  6. Contributors



Our video demo: https://www.youtube.com/watch?v=Qo-2rCpGn8w

1. Our Project: Autonomous parking with Smartcar

What is our idea?

Our main idea for this project is a Smartcar that is capable of autonomous parking in an empty spot when given a command to do so. We are directing our focus on automatic parking functionality, but will also see if there is enough time for additional functionalities to be implemented, namely - making manual controls for the car, autonomous parking specialization (for different cases).

How are we going to do this?

Car will stay idle till it is interacted with. In order to relay the command to park, along with a few other commands (Bluetooth commands start moving, stop, LED light blinking during certain maneuvers, manual controls and parking feature), we are going to create UI for the car - a simple mobile app which uses bluetooth connection to communicate with the car. After receiving a command, Smartcar will change its movement accordingly to correspond to it. Smartcar at the same time will include obstacle avoidance capabilities to avoid collision while on autonomous movement (i.e. detecting obstacles in front of it, behind it, as well as on the car's right side in order to park without hitting anything).

Why?

Goal of this idea is to make the customer more comfortable and to increase efficiency in performing common everyday task with just a few buttons pressed on the smartphone. Autonomous parking aids safety purposes as well.
We want to reduce the amount of accidents the cars are involved in and increase its obstacle detection performance in order to avoid obstacles in a smarter way.

Product owners

  • Ilja Pavlov
  • M Nazeeh Alhosary

Customer

  • Dimitrios Platis



2. Technical aspects

Components we are going to use

  • Smartcar shield
  • Arduino Mega 2560 REV3
  • Gyroscope GY-50 L3G4200
  • 2x Speed encoders
  • Bluetooth Module HC-O6
  • 3x Ultrasonic Sensor HC-SR04
  • LED light

The Smartcar shield is the core of the car, all the components are mounted on the shield, including the Arduino Mega 2560 REV3 which is the "brain" of the Smartcar as the application that controls the car and all its connected components will run on this.
Three Ultrasonic Sensors HC-SR04 are mounted accordingly in front, to the right and on the back of the car and used to detect obstacles.
Moreover a Bluetooth Module HC-06 is also connected to the car to make the car communicate with the Android app- and two Speed encoders measure the distance travelled by the car (one for each side of the car).
Finally there are a LED light and a Gyroscope GY-50 L3G4200

Softwares used and Development environment

  • Arduino IDE
  • Android Studio

Arduino IDE has been used to develop and test the application that would run on the car.
Android Studio has been used to develop and test the application that would run on the android phone.



3. Features

Obstacle avoidance

The Smartcar is able to detect obstacles using the Ultrasonic Sensors mounted on the front, on the right side and on the back of the car.

Bluetooth connection

The Smartcar can be connected to an android phone. From the Android app it is possible to turn on/off the bluetooth of the phone, see a list of discovered devices in the nearby and toggle the discoverability of the phone.

Manual control

Through the Android app it is possible to manually control the Smartcar- the car is able to drive forward, backwards, forward turning left, forward turning right, backwards turning left and backwards turning right. The Smartcar is going to move as long as user is holding the button, as soon as the forward or backward button is released car stops.

Autonomous driving (Cruise control)

Through the Android app it is possible to activate the autonomous driving mode which will make the car drive until an obstacle is approached, then the car will turn right or left if there is an obstacle to the right side of the car too. Afterwards, the car will continue with the ride, until the user gives another command.

Automatic parallel parking

Through the Android app it is possible to start the parking manoeuvre that will park the car between two obstacles as the picture shows here.

LED light

A LED Light will blink to signal that the car is in motion. As soon as the car stops, a LED light will stop blinking and switch the state to stable ON. This feature works for all 3 modes (Manual control, Autonomous driving (Cruise control), Automatic parallel parking)



4. Installation

Here you can find the steps to follow in order to try the app.

Before starting you should clone our repository, if you have Git Bash open a terminal and type

git clone https://github.com/DIT112-V19/group-08.git

Otherwise download the repository from here.

Setup the Smartcar

  1. Download the latest version of Arduino IDE
  2. Install the Smartcar shield library
  3. Open the sketch Arduino_code/Arduino_code.ino
  4. Connect the SmartCar
  5. Compile the sketch and upload it to the SmartCar

Now it's time to install the Android app:

Setup the Android Phone

  1. Download the APK Project.apk on an Android phone
  2. Install the APK
  3. Find the application "Project" and open it



5. Manual

  1. Open the application, titled "Project"
  2. Tap on Bluetooth button
  3. Once Bluetooth is turned on, tap on connect to car
  4. There are 3 Operational Options: Cruise Control, Manual Control and Parking
  5. For cruise control, tap on it and the car will manoeuvre and avoid obstacles automatically
  6. For manual control, there are 4 directional controls and a speed adjustment slider
  7. [Manual Control]: Forward, Backward, Left and Right buttons moves the car accordingly when tapped (it is possible to hold pressed two adjacent buttons)
  8. [Manual Control]: Speed adjustment slider allows you to drag and slide the cursor to change the car speed
  9. For Parking, when tapped there is a button called "Park" which sends the car into a parallel parking mode



6. Contributors