This project is developed for the course "Introduction to Embedded Systems" (CSE 211s, Spring24) at the (FOE-ASU) CSE Dept.
The goal is to create a GPS tracking system that collects real-time positional coordinates from a microcontroller in motion and displays this trajectory on a map.
- Data Collection: Captures real-time GPS coordinates 📍.
- End Point Detection: Stops data collection based on distance (~100m), button press, or a predefined destination 🏁.
- LED Notification: Indicates when the destination point is reached 🔔.
- Data Transfer: Sends the collected data to a PC via UART when commanded ⬆️.
COTS/MCAL/GPIO
: Full GPIO driver implementation (initalization and control) for the TivaC TM4C123G microcontroller.COTS/MCAL/UART
: Full UART driver configuration (initalization and control) for the TivaC TM4C123G microcontroller.COTS/HAL/GPS
: GPS module driver configuration, parsing and proper reading.COTS/HAL/LED
: LED configuration and control.COTS/APP
: Application layer testing and implementing GPS-related functionality.First Milestone
: A checkpoint for the first milestone of the project.Test Programs
: Individual testing programs for each module.
Documentation
: A detailed documentation of the project, including the system architecture, hardware and software requirements, and the setup and operation instructions.Report
: A print-friendly version of the documentation, briefly summarizing and visually representing the project's layers, modules and results.COTS/HAL/LCD
: LCD driver configuration and control.COTS/HAL/GPS
: finetuned the GPS module driver configuration, parsing and proper reading.COTS/MCAL/SysTick
: SysTick driver configuration.COTS/MCAL/EEPROM
: EEPROM driver configuration and control.COTS/APP
: updated application layer testing and implementing GPS-related functionality.
Plotter
: A Python script that reads the GPS data from the microcontroller and plots the trajectory on a map.Final Program
: added the final version of the project, including all the drivers and the application layer.
- Microcontroller development board ( ARM® Cortex®-M4F Based MCU TM4C123G "TivaC" ) 🖥️
- GPS module 🛰️
- Personal computer (PC) 💻
- Connecting cables (USB, serial, etc.) 🔌
- C development environment (e.g., Keil) 💾
- PC-based application development environment (e.g., Python with Matplotlib or a mapping API) 📊
- Configure Interfaces: Setup UART interfaces for the GPS module and PC. Prepare digital output for built-in LED.
- Initialization: On power-on, the system should read GPS data and wait for a valid GPS fix 🛠️.
- Data Logging: Continuously log the GPS coordinates, updating the trajectory until the end conditions are met 📝.
- Data Visualization: Utilize PC-based software to draw and display the trajectory on a map 🗺️.
Feel free to fork this repository, make changes, and submit pull requests if you have improvements or new features to add 👍.
dizzydroid |
DopeBiscuit |
unauthorised-401 |
SeifT101 |
seifelwarwary |
Spafic |
Lucifer3224 |
MashaWaleed |
moazragab12 |
AshrafByte |
Check the License file for details.