Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/todbot/circuitpython_ruhrohrotaryio
pretend to be 'rotaryio' for boards that need non-sequential pins
https://github.com/todbot/circuitpython_ruhrohrotaryio
circuitpython encoder incrementalencoder non-sequential pico raspberrypipico rotary rotaryio rp2040
Last synced: 5 days ago
JSON representation
pretend to be 'rotaryio' for boards that need non-sequential pins
- Host: GitHub
- URL: https://github.com/todbot/circuitpython_ruhrohrotaryio
- Owner: todbot
- License: mit
- Created: 2023-10-15T16:36:00.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-15T20:03:37.000Z (about 1 year ago)
- Last Synced: 2024-11-09T15:04:35.832Z (5 days ago)
- Topics: circuitpython, encoder, incrementalencoder, non-sequential, pico, raspberrypipico, rotary, rotaryio, rp2040
- Language: Python
- Homepage:
- Size: 35.2 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Introduction
============.. image:: https://readthedocs.org/projects/circuitpython-ruhrohrotaryio/badge/?version=latest
:target: https://circuitpython-ruhrohrotaryio.readthedocs.io/
:alt: Documentation Status.. image:: https://img.shields.io/discord/327254708534116352.svg
:target: https://adafru.it/discord
:alt: Discord.. image:: https://github.com/todbot/CircuitPython_RuhRohRotaryIO/workflows/Build%20CI/badge.svg
:target: https://github.com/todbot/CircuitPython_RuhRohRotaryIO/actions
:alt: Build Status.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
:alt: Code Style: BlackPretend to be ``rotaryio`` for boards that need non-sequential pins.
On RP2040-based boards like the Raspberry Pi Pico and QTPy RP2040,
if you try to use "`rotaryio `_"
on pins whose GPIO numbers are not sequential, you will get a
``RuntimeError: Pins must be sequential GPIO pins``.This package acts just like ``rotaryio`` but uses ``keypad`` and some logic to read a rotary encoder.
It is not as fast or efficient as ``rotaryio`` but it will work on RP2040 boards.Dependencies
=============
This driver depends on:* `Adafruit CircuitPython `_
Please ensure all dependencies are available on the CircuitPython filesystem.
This is easily achieved by downloading
`the Adafruit library and driver bundle `_
or individual libraries can be installed using
`circup `_.Installing to a Connected CircuitPython Device with Circup
==========================================================Make sure that you have ``circup`` installed in your Python environment.
Install it with the following command if necessary:.. code-block:: shell
pip3 install circup
With ``circup`` installed and your CircuitPython device connected use the
following command to install:.. code-block:: shell
circup install ruhrohrotaryio
Or the following command to update an existing version:
.. code-block:: shell
circup update
Installing from PyPI
=====================On supported GNU/Linux systems like the Raspberry Pi, you can install the driver locally `from
PyPI `_.
To install for current user:.. code-block:: shell
pip3 install circuitpython-ruhrohrotaryio
To install system-wide (this may be required in some cases):
.. code-block:: shell
sudo pip3 install circuitpython-ruhrohrotaryio
To install in a virtual environment in your current project:
.. code-block:: shell
mkdir project-name && cd project-name
python3 -m venv .venv
source .env/bin/activate
pip3 install circuitpython-ruhrohrotaryioUsage Example
=============.. code-block:: python
import os
import time
import board# works on both QTPY M0 and QTPY RP2040
if os.uname().machine.find("rp2040") > 0: # RP2040
from ruhrohrotaryio import IncrementalEncoder
else:
from rotaryio import IncrementalEncoderencoder = IncrementalEncoder( board.A3, board.A1 )
while True:
print(encoder.position)
time.sleep(0.1)Documentation
=============
API documentation for this library can be found on `Read the Docs `_.For information on building library documentation, please check out
`this guide `_.Contributing
============Contributions are welcome! Please read our `Code of Conduct
`_
before contributing to help this project stay welcoming.