This project is designed to support data collection and transmission using a RYLR998 LoRa radio module in a rocket system. The system is integrated with a Flask web application that allows real-time data visualization and control via a web interface. The RYLR998 module is responsible for sending and receiving data, and the Flask web app manages communication with the module and provides a visual display of the transmitted data.
- Data Collection - Collects sensor data from the LoRa module and sends it to the Flask server for visualization.
- Flask Web Interface - Allows users to initiate data collection and visualize data through WebGL.
- Socket Communication - Real-time communication between the Flask server and the front-end using Flask-SocketIO.
- Password Authentication - Ensures that data collection can only start with the correct password.
- WebGL Visualization - Displays the received data in real-time using WebGL on the front-end.
- LoRa Data Transmission - Encodes and sends quaternion data over the LoRa radio module.
- Quaternion Based Interpolation - Responsible for silky smooth rotational animations, massively improves framerate
- Livetime Visualization - Utilizes WebGL to visualize
The project is structured into the following key files:
altimeter.py: Manages altitude measurement and data processing for the LoRa module.camera.py: Handles video capture and logging from a Raspberry Pi camera module, supporting non-blocking video recording.recieve.py: Receives and decodes data from the LoRa module.quaternion.html: Abstracts quaternion mathematics for zeroing upon calibrationmetrics.py: Provides functions for processing telemetry data, including time delta and quaternion encoding/decoding.requirements.txt: Lists the Python dependencies required for the project.transmit.py: Encodes and transmits data to the LoRa module.index.html: The homepage of the web application for password authentication.visualize.html: Displays real-time visualizations of the transmitted data..env: Contains environment variables, including the hashed password for authentication.RPI02W.py: Manages interaction with the Raspberry Pi 2W for telemetry and sensor data collection.RP15.py: Runs the Flask server and handles socket communication for password validation and real-time data emission.
-
Clone this repository to your local machine:
git clone https://github.com/your-repo/javelin-jr.git
-
Install the necessary Python dependencies:
pip install -r requirements.txt
-
Set up the environment variables by creating a
.envfile in the root directory:hashedPassword=<your_hashed_password>
-
Ensure the RYLR998 LoRa module is connected and properly configured.
After installation and configuration, start collecting and logging flight data with the following command:
python RP102W.pyOnce the system is installed and configured, start the Flask application by running the following command:
python RP15.pyThe following individuals have contributed to this project's software:
- Matthew Tujague - Lead Software Engineer/Avionics Manager
- Victor Jimenez - Quaternion-based Interpolation Tech.
- Eric Zhang - Visualization Specialist
- Ryan Ramos - Visualization Specialist
- Amogh Karee - Flask Web Developer
- Matthew Tolocka - Software Optimization Specialist
- Nick C Volpe - Support Engineer
These are the current contributors to the project.
This project is licensed under the MIT License - see the LICENSE file for details.
