DIT112-V20 / group-05

MIT License
1 stars 0 forks source link

What?

A system that allows the user to select a destination which will prompt an automatic car to travel to that destination. Alternatively, the user can manually steer the car remotely via an application. The system will also evaluate and visualize the data during the trip.

Why?

To optimize the way the user chooses a certain route to get to a destination.
To provide the most secure driving experience for the user, automated and precise maneuver around obstacles.
To provide live data keeping the user updated about the trip.

How?

We have an android application that the users can use to control a smart car.
The car acts as a web server that allows the application to communicate/control the car.
The car uses an HC-SR04 Ultrasonic sensor to detect obstacles.
Whilst in automatic mode, the car will stop before an obstacle and an LED attached to the vehicle will light up.
The car starts in automatic mode and travels towards a chosen destination. If prompted, the car will switch over to manual mode to let the user control the car through the application.
The user could either wait for the obstacle to move or switch to manual mode and maneuver around the obstacle.

Software and hardware architecture;

The three main components of the system are; the car, a web server, and the application. The web server is responsible for the communication and sending data between the car and the application.
The hardware used for the smart car includes;
1x Arduino Smart car attached with an ESP32 microcontroller
1x HC-SR04 Ultrasonic sensor
1x Breadboard
8x AA batteries
Wires
The code for the car is written with the Arduino IDE which is based on C++. It uses the Smart car shield library for the vehicle itself and the WebServer library for the webserver.
The application is written using Android Studio with Kotlin as the chosen language.

Get started!

Download the repository: https://github.com/DIT112-V20/group-05