Our project consists of three main components:
- TM4C123GH6PM microcontroller
- Ublox NEO-6m GPS Module
- Trajectory Plotter web python based app
- serial watchdog with esp-32 to monitor the operations and easily debug code.
- flask web server to update the location.
- shortest path algorithm (A*) along with some other algorithms and structures.
- lcd to print current latitude and longitude beside the accumulated traveled distance.
-
sensor fusion algorithm with IMU (gyro, accel, magnetometer) to compensate the considerable gps error, also it is a must in high speed scenarios like driving a car. The best and easy-to-implement algorithm is Extended Kalman filter.
-
implementing RTOS, the simplest algorithm is Round-Robin, which will prove beneficial in multi-sensor setup
-
implementing interrupt.
-
adding simple voice commands to direct the user towards the destination
-
correction methods for the distance function
Names | id |
---|---|
Mahmoud Mohamed Mahmoud Ahmed | 2001261 |
Kareem Amr Mohamed Soliman | 2001033 |
Mahmoud Mohamed Ali Soliman | 2001866 |
Mohamed Ahmed Samir Amin | 2001876 |
Mohamed Yaser Elsaid | 2001226 |
Yousef Mohamed Ibrahim Mohamed | 2001496 |
Mohamed Mahmoud Rezk | 2002114 |
Abdalrahman Esaam Mohamed Elemam Elemam | 1900771 |
pins | GPIO pins |
---|---|
VDD | Vbus |
GND | GND |
TX | PE4 *** uart5_rx *** |
RX | PE5 *** uart5_tx *** |
pins | GPIO pins |
---|---|
VDD | Vbus |
GND | GND |
V0 | POT |
RS | PB0 |
RW | PB1 |
E | PB2 |
D4 | PB4 |
D5 | PB5 |
D6 | PB6 |
D7 | PB7 |
- When the tiva lunch it first wait for the gps to receieve sentances displaying loading
- when it starts working we use
SW1 ---> set the current location as the end point SW2 ---> set the current location as the start point
LINUX platforms
-
First, download the tivaware (either the full SDK version or TM4c123gxl) from here, this step requires TI account.
-
Clone the project to your local machine
git clone https://github.com/mohamedrezk122/tivac-based-map-router
-
Follow this tutorial on how to setup lm4tools( for flashing binaries to the board), and tivaware.
-
Open terminal in project directory and execute the following commands
mkdir build
cmake ..
make
sudo make flash