Skip to main content

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.

Metadata

Release files for obs-picamera 0.2.0

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

Source distribution (sdist)

Source distribution for obs-picamera 0.2.0
File Size Uploaded
obs_picamera-0.2.0.tar.gz 14.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for obs-picamera 0.2.0
File Interpreter ABI Platform
obs_picamera-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 26.9 kB

Release files / obs_picamera-0.2.0.tar.gz

Download URL obs_picamera-0.2.0.tar.gz
Size 14.0 kB
Tags Source
SHA-256 checksum
How to use checksums
85e06023cb41304df42a536288ec90c0971fb4277216c9aa68f6cff5c7e8bf2a
BLAKE2b-256 checksum
How to use checksums
70b95c299d0112e97bb0b1182ecc46e774f27bc4d9aed8bafe311a41e23189a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.10.9 Linux/5.15.0-1031-azure

Release files / obs_picamera-0.2.0-py3-none-any.whl

Download URL obs_picamera-0.2.0-py3-none-any.whl
Size 12.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a2bf029ed3e8575380e708d9728f7cadfda7276cd6e14a0498b55801af5a5a7e
BLAKE2b-256 checksum
How to use checksums
98348a30045605f2db4e189397df70213d0fec6f45bad77027b5fe986aed3ae5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.3.2 CPython/3.10.9 Linux/5.15.0-1031-azure

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

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