2025-02-04 03:51:58 -05:00
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
2025-02-04 06:57:48 -05:00
"authorship_tag": "ABX9TyO00Xm/6WwCJ8/dPgpB1Juf",
2025-02-04 03:51:58 -05:00
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/Orrm23/DeepSeek-Coder/blob/main/athelete_speed_dashboard5.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
2025-02-04 06:57:48 -05:00
"execution_count": 6,
2025-02-04 03:51:58 -05:00
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
2025-02-04 06:57:48 -05:00
"height": 614
2025-02-04 03:51:58 -05:00
},
"id": "G2vIOdeGG43G",
2025-02-04 06:57:48 -05:00
"outputId": "689ccdcc-3ca2-4b1f-e21d-702aa480ff99"
2025-02-04 03:51:58 -05:00
},
"outputs": [
{
2025-02-04 06:57:48 -05:00
"output_type": "stream",
"name": "stdout",
"text": [
"Analysis complete.\n"
]
2025-02-04 03:51:58 -05:00
}
],
"source": [
2025-02-04 06:57:48 -05:00
"# prompt: create visual dashboard for speed,power,mean velocity,horsepower persecond analysis using rpm for atheletes speed analysis device where we calculate athelets speed through revolution per minute through absolute encoder sensor live.the dashboard should be more visual and should use 2d modeling for graphs of all above parameter and clearity in all above graphs ploted.also build an python application for the same .write backend effective and correctly matching front end parameter\n",
2025-02-04 03:51:58 -05:00
"\n",
2025-02-04 04:03:17 -05:00
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
2025-02-04 03:51:58 -05:00
"import time\n",
"import random\n",
2025-02-04 06:57:48 -05:00
"import pandas as pd\n",
"from IPython.display import clear_output\n",
"\n",
"class AthleteAnalyzer:\n",
" def __init__(self):\n",
" self.rpm_data = []\n",
" self.time_data = []\n",
" self.power_data = []\n",
" self.speed_data = []\n",
" self.mean_velocity_data = []\n",
" self.horsepower_per_second_data = []\n",
" self.start_time = time.time()\n",
"\n",
" def calculate_speed(self, rpm, radius=0.3): # Radius in meters (adjust as needed)\n",
" # Calculate linear speed (m/s) from RPM and radius\n",
" circumference = 2 * np.pi * radius\n",
" speed_mps = (rpm / 60) * circumference\n",
" return speed_mps\n",
"\n",
" def calculate_power(self, rpm, torque=10): # Torque in Nm (adjust as needed)\n",
" # Calculate power (watts) from RPM and torque\n",
" power_watts = (rpm * 2 * np.pi * torque) / 60\n",
" return power_watts\n",
"\n",
" def calculate_mean_velocity(self,speed_data):\n",
" if len(speed_data)==0:\n",
" return 0\n",
" mean_velocity = sum(speed_data) / len(speed_data)\n",
" return mean_velocity\n",
"\n",
" def calculate_horsepower_per_second(self,power_data):\n",
" if len(power_data)==0:\n",
" return 0\n",
"\n",
" horsepower_per_second = (power_data[-1] * 0.001341)\n",
" return horsepower_per_second\n",
"\n",
" def update_data(self, rpm):\n",
" current_time = time.time() - self.start_time\n",
" self.time_data.append(current_time)\n",
" self.rpm_data.append(rpm)\n",
"\n",
" speed = self.calculate_speed(rpm)\n",
" self.speed_data.append(speed)\n",
"\n",
" power = self.calculate_power(rpm)\n",
" self.power_data.append(power)\n",
"\n",
" mean_velocity=self.calculate_mean_velocity(self.speed_data)\n",
" self.mean_velocity_data.append(mean_velocity)\n",
"\n",
" horsepower_per_second=self.calculate_horsepower_per_second(self.power_data)\n",
" self.horsepower_per_second_data.append(horsepower_per_second)\n",
"\n",
" def create_dashboard(self):\n",
"\n",
" # Create figure and axes\n",
" fig, axs = plt.subplots(3, 2, figsize=(18, 12))\n",
"\n",
" # RPM Graph\n",
" axs[0, 0].plot(self.time_data, self.rpm_data, label=\"RPM\", color=\"blue\")\n",
" axs[0, 0].set_xlabel(\"Time (s)\")\n",
" axs[0, 0].set_ylabel(\"RPM\")\n",
" axs[0, 0].set_title(\"RPM Over Time\")\n",
" axs[0, 0].grid(True)\n",
"\n",
" # Speed Graph\n",
" axs[0, 1].plot(self.time_data, self.speed_data, label=\"Speed (m/s)\", color=\"green\")\n",
" axs[0, 1].set_xlabel(\"Time (s)\")\n",
" axs[0, 1].set_ylabel(\"Speed (m/s)\")\n",
" axs[0, 1].set_title(\"Speed Over Time\")\n",
" axs[0, 1].grid(True)\n",
"\n",
" # Power Graph\n",
" axs[1, 0].plot(self.time_data, self.power_data, label=\"Power (watts)\", color=\"red\")\n",
" axs[1, 0].set_xlabel(\"Time (s)\")\n",
" axs[1, 0].set_ylabel(\"Power (watts)\")\n",
" axs[1, 0].set_title(\"Power Over Time\")\n",
" axs[1, 0].grid(True)\n",
"\n",
" #Mean Velocity Graph\n",
" axs[1, 1].plot(self.time_data, self.mean_velocity_data, label=\"Mean Velocity\", color=\"orange\")\n",
" axs[1, 1].set_xlabel(\"Time (s)\")\n",
" axs[1, 1].set_ylabel(\"Mean Velocity\")\n",
" axs[1, 1].set_title(\"Mean Velocity Over Time\")\n",
" axs[1, 1].grid(True)\n",
"\n",
" #Horse power per second Graph\n",
" axs[2, 0].plot(self.time_data, self.horsepower_per_second_data, label=\"Horse Power Per Second\", color=\"purple\")\n",
" axs[2, 0].set_xlabel(\"Time (s)\")\n",
" axs[2, 0].set_ylabel(\"Horsepower/s\")\n",
" axs[2, 0].set_title(\"Horse Power per Second Over Time\")\n",
" axs[2, 0].grid(True)\n",
"\n",
" fig.delaxes(axs[2,1])\n",
"\n",
" plt.tight_layout()\n",
" plt.show()\n",
"\n",
" def run_analysis(self, duration=30, update_interval=1):\n",
" end_time = time.time() + duration\n",
" while time.time() < end_time:\n",
" # Simulate RPM data from sensor (replace with actual sensor reading)\n",
" rpm = random.randint(50, 150)\n",
" self.update_data(rpm)\n",
" self.create_dashboard()\n",
"\n",
" # Clear the output and update the dashboard\n",
" clear_output(wait=True)\n",
"\n",
" time.sleep(update_interval)\n",
" print(\"Analysis complete.\")\n",
"\n",
"if __name__ == \"__main__\":\n",
" analyzer = AthleteAnalyzer()\n",
" analyzer.run_analysis()\n",
"\n"
2025-02-04 03:51:58 -05:00
]
}
]
}