A python module to record video of overtaking events to allow vehicle type identification of OpenBikeSensor overtaking events.
Project description
obs-picamera
Documentation: https://gluap.github.io/obs-picamera
Source Code: https://github.com/gluap/obs-picamera
PyPI: https://pypi.org/project/obs-picamera/
A python module to record video of overtaking events to allow vehicle type identification for OpenBikeSensor overtaking events.
Building the device
This software should work with a Pi Zero W or Pi Zero 2 with raspberry pi camera independently from the case it's mounted in.
The idea is to run this on a raspberry pi zero case which can be somehow mounted on the bicycle. An example case for such a mounting with a list of components used can be found here, compiled STL files to match it are available with logos and without
Installation of obs-picamera
The software is meant to run on a raspberry pi zero. I suggest installing it with Raspberry Pi os. As prerequisites the following packages are required:
sudo apt install python-picamera2 python3-pip
The package can then be installed as usual via pip.
pip install --user obs-picamera # add --upgrade if you want to upgrade
Using obs-picamera
You can run the program by calling (pip install --user
has installed the binary in your ~/.local/bin/
)
obs_picamera
When it finds an OpenBikeSensor via bluetooth enabled, it will pair with it and whenever it receives an overtaking event
- Events for one OpenBikeSensor Track are stored in a directory with the track-id as the directory name.
- For each event a short
h264
video file is saved, the filename matching the system time of the OpenBikeSensor. - Next to the video file a
.json
file with the Data from the overtaking event is placed. Its content is self-explanatory. The distance already has the handlebar width deducted.
I suggest starting obs_picamera automatically at boot - for instance via crontab entry and switching the pi on while still in the home WIFI (which will enable it to pick up a sensible time). Or one may create a phone wifi for it to pick up the time and date
Development
- Clone this repository
- Requirements:
- Poetry
- Python 3.7+
- Create a virtual environment and install the dependencies
poetry install
- Activate the virtual environment
poetry shell
Testing
pytest
Documentation
The documentation is automatically generated from the content of the docs directory and from the docstrings of the public signatures of the source code. The documentation is updated and published as a Github project page automatically as part each release.
Releasing
Trigger the Draft release workflow (press Run workflow). This will update the changelog & version and create a GitHub release which is in Draft state.
Find the draft release from the GitHub releases and publish it. When a release is published, it'll trigger release workflow which creates PyPI release and deploys updated documentation.
Pre-commit
Pre-commit hooks run all the auto-formatters (e.g. black
, isort
), linters (e.g. mypy
, flake8
), and other quality
checks to make sure the changeset is in good shape before a commit/push happens.
You can install the hooks with (runs for each commit):
pre-commit install
Or if you want them to run only for each push:
pre-commit install -t pre-push
Or if you want e.g. want to run all checks manually for all files:
pre-commit run --all-files
This project was generated using the wolt-python-package-cookiecutter template.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for obs_picamera-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2bf029ed3e8575380e708d9728f7cadfda7276cd6e14a0498b55801af5a5a7e |
|
MD5 | 0d8f426b750efc4e9b0d5a85b8d72ba6 |
|
BLAKE2b-256 | 98348a30045605f2db4e189397df70213d0fec6f45bad77027b5fe986aed3ae5 |