Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/martinohanlon/pico-rgbkeypad
A Python class for controlling the Pimoroni RGB Keypad for Raspberry Pi Pico
https://github.com/martinohanlon/pico-rgbkeypad
Last synced: about 2 months ago
JSON representation
A Python class for controlling the Pimoroni RGB Keypad for Raspberry Pi Pico
- Host: GitHub
- URL: https://github.com/martinohanlon/pico-rgbkeypad
- Owner: martinohanlon
- License: mit
- Created: 2021-02-21T10:33:41.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-01-09T14:55:10.000Z (almost 3 years ago)
- Last Synced: 2024-08-05T00:07:09.893Z (4 months ago)
- Language: Python
- Size: 27.3 KB
- Stars: 64
- Watchers: 5
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-micropython - pico-rgbkeypad - A Python class for controlling the Pimoroni RGB Keypad for Raspberry Pi Pico. (Libraries / IO)
README
# rgbkeypad
A Python class for controlling the [Pimoroni RGB Keypad](https://shop.pimoroni.com/products/pico-rgb-keypad-base) for the [Raspberry Pi Pico](https://www.raspberrypi.org/documentation/pico/getting-started/).
Compatible with MicroPython and CircuitPython.
```python
keypad = RGBKeypad()# make all the keys red
keypad.color = (255, 0, 0)# turn a key blue when pressed
while True:
for key in keypad.keys:
if key.is_pressed():
key.color = (0, 0, 255)
```![pimoroni rgb keypad](https://cdn.shopify.com/s/files/1/0174/1800/products/pico-addons-2_1024x1024.jpg?v=1611177905)
# Status
Beta - version 0.2
## Install
There are a few options for installing `pico rgbkeypad`:
1. Copy the [rbgkeypad.py code](https://github.com/martinohanlon/pico-rgbkeypad/blob/main/rgbkeypad/rgbkeypad.py) into the top of your program.
2. Copy the [rgbkeypad folder](https://github.com/martinohanlon/pico-rgbkeypad/blob/main/rgbkeypad) to the lib folder on your pico (useful if you are using CircuitPython).
3. Install the [pico-rgbkeypad package from PyPi](https://pypi.org/project/pico-rbgkeypad) using `upip` or the [Manage Packages tool](https://github.com/thonny/thonny/wiki/InstallingPackages) in [Thonny](https://thonny.org/).
## Usage
Here you will find some typical use cases and examples for using `rgbkeypad`. See the [API](API.md) documentation for more information.
Import the `RGBKeypad` class from the `rgbkeypad` module.
> Note - you do not need to import the module if you copied the `rgbkeypad.py` code directly into your program.
```python
from rgbkeypad import RGBKeypad
```Create a keypad object.
```python
keypad = RGBKeypad()
```### Display
The color of all the keys can be changed by setting the key pad's `color` property to a tuple of (red, green, blue) values between `0` and `255`.
```python
# red
keypad.color = (255, 0, 0)# green
keypad.color = (0, 255, 0)# blue
keypad.color = (0, 0, 255)# white
keypad.color = (255, 255, 255)# yellow
keypad.color = (255, 255, 0)# purple
keypad.color = (128, 0, 128)
```The brightness can be changed by setting the `brightness` property to a value between `0` and `1`. Where `1` is full brightness and `0` is off. By default the brightness is set to `0.5`.
```python
keypad.brightness = 1
```The keypad can be cleared (turned off) using the `clear()` method.
```python
keypad.clear()
```Individual keys can be referenced using their x,y position e.g. [0,0]
```python
key1 = keypad[0, 0]
```Individual key's color and brightness can be set using the `color` and `brightness` properties.
```python
# red
key1.color = (255, 0, 0)# full brightness
key1.brightness = 1
```An individual key can also be cleared using the `clear()` method.
```python
key1.clear()
```### Press
The status of the key can be retrieved using the `is_pressed()` method of an individual key.
```python
key1 = keypad[0, 0]
pressed = key1.is_pressed()
```Use a loop to continuously check the status of a key.
```python
while True:
if key1.is_pressed():
print("key 1 pressed")
```To check the status of all the keys, loop through the keypad's `keys` property, check each individually.
```python
while True:
for key in keypad.keys:
if key.is_pressed():
print("key", key.x, key.y, "pressed)
```Alternatively a list of all the keys pressed status can be obtained using the key pad's `get_keys_pressed()` method.
```python
keys_pressed = keypad.get_keys_pressed()
print(keys_pressed)
```## Deploy
These are instructions for how to deploy the `pico-rgbkeypad` to [PyPI](https://pypi.org/project/pico-rbgkeypad)
1. Install pre-requisites
~~~bash
pip3 install setuptools twine
~~~2. Increment version number in `setup.py`, `README.md` and `CHANGELOG.MD`
3. Build for deployment
~~~bash
python setup.py sdist
~~~3. Deploy to PyPI
~~~bash
twine upload dist/* --skip-existing
~~~