Skip to main content

A python module to record video of overtaking events to allow vehicle type identification of OpenBikeSensor overtaking events.

Project description

obs-picamera

PyPI PyPI - Python Version PyPI - License Coookiecutter - Wolt


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

obs_picamera-0.2.0.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

obs_picamera-0.2.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file obs_picamera-0.2.0.tar.gz.

File metadata

  • Download URL: obs_picamera-0.2.0.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.9 Linux/5.15.0-1031-azure

File hashes

Hashes for obs_picamera-0.2.0.tar.gz
Algorithm Hash digest
SHA256 85e06023cb41304df42a536288ec90c0971fb4277216c9aa68f6cff5c7e8bf2a
MD5 c2ccc3184f4dafbad44caf49e333a2ac
BLAKE2b-256 70b95c299d0112e97bb0b1182ecc46e774f27bc4d9aed8bafe311a41e23189a9

See more details on using hashes here.

File details

Details for the file obs_picamera-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: obs_picamera-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.9 Linux/5.15.0-1031-azure

File hashes

Hashes for obs_picamera-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a2bf029ed3e8575380e708d9728f7cadfda7276cd6e14a0498b55801af5a5a7e
MD5 0d8f426b750efc4e9b0d5a85b8d72ba6
BLAKE2b-256 98348a30045605f2db4e189397df70213d0fec6f45bad77027b5fe986aed3ae5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page