Skip to main content

logo.png

AST-Monitor --- A wearable Raspberry Pi computer for cyclists

PyPI Version PyPI - Python Version PyPI - Downloads Fedora package AUR package GitHub license Check codestyle and test build Documentation Status

GitHub commit activity GitHub repo size GitHub contributors All Contributors

DOI DOI

💻 Graphical User Interface • ⚙️ Hardware • 🖥️ Software • 📦 Installation • 📢 Deployment • 🚀 Examples • 🔑 License • 📄 Cite us • 📖 Further read • 🔗 Related packages • 📝 References • 🫂 Contributors

Welcome to AST-Monitor: Revolutionizing Sport Training Sessions! 🏋️‍♂️ This repository aims to introduce a low-cost, and efficient embedded device that can transform the way you monitor cycling training sessions. Allow us to present AST-Monitor.

To begin, we invite you to explore the paper that introduces the capabilities of AST-Monitor. Dive into the future of artificial sports trainers by reading this paper. 📄💡

  • Free software: MIT license
  • Python versions: 3.8.x, 3.9.x, 3.10.x, 3.11.x, 3.12.x
  • Documentation: https://ast-monitor.readthedocs.io/en/latest
  • Tested OS: Windows, Ubuntu, Fedora, Alpine, Arch, macOS. However, that does not mean it does not work on others

💻 Graphical User Interface

Basic data: Power at Your Fingertips 💪

AST-GUI

The initial page of the AST-Monitor application presents essential parameters, providing real-time insights into an athlete's performance. Gain access to information such as the athlete's current speed and heart rate. After a training session, you'll also receive a comprehensive overview, including total distance covered, session duration, and total ascent conquered. 📱🚴‍♂️

Interactive map: Embark on a Visual Journey 🗺️🚀

AST-Map

As you navigate uncharted territories, this map reveals your precise location in real-time. And allows you to track your progress on the route in real time. 🌍🚴‍♂️🗺️

Interval training data: Unleash Your Inner Athlete 🏃‍♀️💪

AST-Intervals

Discover the duration of each phase, track your current heart rate, and marvel at the average heart rate achieved. But that's not all—brace yourself for the Digital Twin proposed heart rate and witness the thrilling difference between your current heart rate and the proposed target. Prepare to dominate your workouts with the AST-Monitor! 🏋️‍♀️

Interval training plan: Unleash the Potential 💯📝💥

AST-Trainings

Load up and embark on thrilling interval trainings that await you in the "AST-Monitor/development/trainings" folder. These trainings, meticulously crafted in the domain-specific language AST-TDL, are designed to take you to the next level. Once successfully loaded, witness the training plan come to life before your eyes. 🚀📋💥

⚙️ Hardware

Where Innovation Meets Performance ⚙️🔩💡

Prepare to be dazzled by the complete hardware setup featured in AST-Monitor.

AST-Monitor

Let's take a closer look at the components:

  • A platform with fixing straps that securely attach to your bicycle, ensuring a seamless training experience. 🚲🔒
  • The powerful Raspberry Pi 4 Model B micro-controller, powered by the dynamic Raspbian OS. 💻
  • A five-inch LCD touchscreen display, allowing the interaction with AST-Monitor during the training. ✨🖥️
  • Equipped with a USB ANT+ stick, AST-Monitor captures the heartbeat of your training, providing crucial data for your journey to greatness. 📡
  • Adafruit's Ultimate GPS HAT module joins the lineup, empowering you with location information and paving the way for GPS integration (coming soon!). 🌐🛰️

But that's not all:

A Serial Peripheral Interface (SPI) protocol ensures seamless communication between the Raspberry Pi and the GPS peripheral, guaranteeing accurate and timely data. The screen display, connected using a physically shortened HDMI cable, ensures a sleek and compact design that doesn't compromise performance.

During the testing phase, the AST-Monitor prototype was powered by Trust's 5 VDC power bank, providing unparalleled endurance. While the current prototype may be a bit bulky, rest assured, our team is hard at work, exploring sleeker and more discreet solutions. 💪💦

For those who crave a glimpse inside AST-Monitor:

AST-Monitor

Welcome to the next stage of sports training. Welcome to AST-Monitor—your ultimate companion on the road to victory! 🌟🏆🚀

🖥️ Software

Dependencies 📦🔗

List of dependencies:

Package Version Platform
PyQt6 ^5.15.6 All
matplotlib ^3.5.1 All
geopy ^2.2.0 All
openant ^1.2.0 All
pyqt-feedback-flow ^0.1.0 All
tcxreader ^0.4.1 All
sport-activities-features ^0.3.6 All

Additional note: adafruit-circuitpython-gps package must be installed in order to work with the GPS sensor:

$ pip install adafruit-circuitpython-gps

📦 Installation

Install AST-Monitor with pip:

$ pip install ast-monitor

In case you want to install directly from the source code, use:

$ git clone https://github.com/firefly-cpp/AST-Monitor.git
$ cd AST-Monitor
$ poetry build
$ python setup.py install

To install AST-Monitor on Fedora Linux, please use:

$ dnf install python3-ast-monitor

To install AST-Monitor on Alpine Linux, please use:

$ apk add py3-ast-monitor

To install AST-Monitor on Arch Linux, please use an AUR helper:

$ yay -Syyu python-ast-monitor

📢 Deployment

Our project was deployed on a Raspberry Pi device using Raspberry Pi OS.

The hardware configuration of AST-Monitor using Raspberry Pi OS is described in HARDWARE_CONFIGURATION.md.

🚀 Examples

Basic run

import os
import sys

from PyQt6 import QtWidgets

try:
    from ast_monitor.model import AST
except ModuleNotFoundError:
    sys.path.append('../')
    from ast_monitor.model import AST

# Paths to the files with heart rates and GPS data.
hr_data = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'sensor_data', 'hr.txt')
gps_data = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'sensor_data', 'gps.txt')
route_data = os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'development', 'routes', 'route.json')

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    window = AST(hr_data, gps_data, route_data)
    window.show()
    sys.exit(app.exec())

🔑 License

This package is distributed under the MIT License. This license can be found online at http://www.opensource.org/licenses/MIT.

Disclaimer

This framework is provided as-is, and there are no guarantees that it fits your purposes or that it is bug-free. Use it at your own risk!

📄 Cite us

Lukač, L., Fister Jr., I., Fister, I. "Digital Twin in Sport: From an Idea to Realization." Applied Sciences 12.24 (2022): 12741, DOI: 10.3390/app122412741.

📖 Further read

[1] Awesome Computational Intelligence in Sports

[1] sport-activities-features: A minimalistic toolbox for extracting features from sports activity files written in Python

[2] ast-tdl: Training Description Language for Artificial Sport Trainer

📝 References

Fister Jr, I., Fister, I., Iglesias, A., Galvez, A., Deb, S., & Fister, D. (2021). On deploying the Artificial Sport Trainer into practice. arXiv preprint arXiv:2109.13334.

Fister Jr, I., Salcedo-Sanz, S., Iglesias, A., Fister, D., Gálvez, A., & Fister, I. (2021). New Perspectives in the Development of the Artificial Sport Trainer. Applied Sciences, 11(23), 11452. DOI: 10.3390/app112311452

🫂 Contributors

Iztok Fister Jr.
Iztok Fister Jr.

🐛 📖 💻 🚧 🧑‍🏫 📦
luckyLukac
luckyLukac

🐛 📖 💻 🎨
Oromion
Oromion

📦
alenrajsp
alenrajsp

🖋 💻 🚧 🐛
Tatookie
Tatookie

📖 🐛
rhododendrom
rhododendrom

🎨
Sertonix
Sertonix

🐛
Tadej Lahovnik
Tadej Lahovnik

📖 💻 🐛

Metadata

Release files for ast_monitor 0.5.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ast_monitor 0.5.6
File Size Uploaded
ast_monitor-0.5.6.tar.gz 111.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ast_monitor 0.5.6
File Interpreter ABI Platform
ast_monitor-0.5.6-py3-none-any.whl Python 3 none any Details

Total release size: 234.4 kB

Release files / ast_monitor-0.5.6.tar.gz

Download URL ast_monitor-0.5.6.tar.gz
Size 111.7 kB
Tags Source
SHA-256 checksum
How to use checksums
540ea1ef5cb3dbcb8a21acfa2ee6cee7d8234979a3dd96f64c287616f79b2425
BLAKE2b-256 checksum
How to use checksums
43340e81b6e9e6f1801a0a9afdc2e8e42a8a5272ed7da6839edb14f884b75e77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.1 CPython/3.14.5 Linux/7.0.12-201.fc44.x86_64

Release files / ast_monitor-0.5.6-py3-none-any.whl

Download URL ast_monitor-0.5.6-py3-none-any.whl
Size 122.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60f617d24fcbe30da74248b0cc7e7161da99ab9f760e4003dca588ea5f59f01c
BLAKE2b-256 checksum
How to use checksums
117cacb4c59ed41a8381f92ff38f21dcf9141912c7596d42959713ff313581ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.3.1 CPython/3.14.5 Linux/7.0.12-201.fc44.x86_64

Release history Release notifications | RSS feed

This release

0.5.6 This release

2 release files

0.5.5

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page