actfw's components for Raspberry Pi. actfw is a framework for Actcast Application written in Python.
sudo apt-get update
sudo apt-get install -y python3-pip python3-pil
pip3 install actfw-raspberrypi
See actfw-core for basic usage.
actfw-raspberrypi provides:
actfw_raspberrypi.capture.PiCameraCapture
: Generate CSI camera capture imageactfw_raspberrypi.Display
: Display using PiCamera Overlayactfw_raspberrypi.vc4.Display
: Display using VideoCore IVactfw_raspberrypi.vc4.Window
: Double buffered window
example/hello
: The most simple application example- Use HDMI display as 640x480 area
- Capture 320x240 RGB image from CSI camera
- Draw "Hello, Actcast!" text
- Display it as 640x480 image (with x2 scaling)
- Notice message for each frame
- Support application setting
- Support application heartbeat
- Support "Take Photo" command
- Depends: python3-picamera fonts-dejavu-core
example/grayscale
: Next level application example- Use HDMI display as 640x480 area
- Capture 320x240 RGB image from CSI camera
- Convert it to grayscale
- Display it as 640x480 image (with x2 scaling)
- Notice message for each frame
- Support application setting
- Support application heartbeat
- Support "Take Photo" command
- Depends: python3-picamera
example/parallel_grayscale
: Paralell processing application example- Use HDMI display as 640x480 area
- Capture 320x240 RGB image from CSI camera
- Convert it to grayscale
- There exists 2 converter task
- Round-robin task scheduling
- Display it as 640x480 image (with x2 scaling)
- Notice message for each frame
- Show which converter processes image
- Support application setting
- Support application heartbeat
- Support "Take Photo" command
- Depends: python3-picamera
example/uvccamera
: UVC camera capture examplepicamera
is unnecessary- Use HDMI display center 640x480 area
- Capture 320x240 RGB image from UVC camera
- Convert it to grayscale
- Display it as 640x480 image (with x2 scaling)
- Notice grayscale pixel data histogram
- Support application setting
- Support application heartbeat
- Support "Take Photo" command
- Depends: libv4l-0 libv4lconvert0
pip3 install poetry
poetry install
poetry run nose2 -v
On a Raspberry Pi connected to HDMI display:
poetry run python example/hello
CI will automatically do. Follow the following branch/tag rules.
- Make changes for next version in
master
branch (via pull-requests). - Make a PR that updates version in
pyproject.toml
and merge it tomaster
branch. - Create GitHub release from
master
branch's HEAD.- Draft a new release.
- Create new tag named
release-<New version>
(e.g.release-1.4.0
) fromChoose a tag
pull down menu. - Write title and description.
- Publish release.
- Then CI will build/upload package to PyPI & API doc to GitHub Pages.