Skip to content

MashaWaleed/GPS-System-TIVAC-CSE211

Repository files navigation

GPS Tracking System 📡🌍

📜 Project Description

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.

🌟 Features

  • 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 ⬆️.

🏁 First Milestone

  • 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.

🚀 Latest Version

  • 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.

    Driver Updates

    • 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.

    Code Updates

    • 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.

⚙ Hardware Requirements

  • Microcontroller development board ( ARM® Cortex®-M4F Based MCU TM4C123G "TivaC" ) 🖥️
  • GPS module 🛰️
  • Personal computer (PC) 💻
  • Connecting cables (USB, serial, etc.) 🔌

👨‍💻 Software Requirements

  • C development environment (e.g., Keil) 💾
  • PC-based application development environment (e.g., Python with Matplotlib or a mapping API) 📊

🛠 Setup and Operation

  1. Configure Interfaces: Setup UART interfaces for the GPS module and PC. Prepare digital output for built-in LED.
  2. Initialization: On power-on, the system should read GPS data and wait for a valid GPS fix 🛠️.
  3. Data Logging: Continuously log the GPS coordinates, updating the trajectory until the end conditions are met 📝.
  4. Data Visualization: Utilize PC-based software to draw and display the trajectory on a map 🗺️.

🤝 Contributing

Feel free to fork this repository, make changes, and submit pull requests if you have improvements or new features to add 👍.

✨ Team Members ✨

📜 License

Check the License file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published