A wrapper for MATRIX HAL in Python
Project description
MATRIX-Lite-Py
MATRIX Lite Python is a library that allows users of varying skill levels to easily program their MATRIX Device.
Roadmap
- Leds
- Sensors
- IMU
- Humidity
- Pressure
- UV
- GPIO
- Microphones
- Hal Mics
- ALSA Mics (available through any ALSA wrapper)
Installation
Ensure you have a Raspberry Pi, attached with a MATRIX device, that's flashed with Raspbian.
1. Install MATRIX HAL
https://matrix-io.github.io/matrix-documentation/matrix-hal/getting-started/installation-package/
2. Install Python 3
To call your scripts with python 3, use
python3 YOUR_SCRIPT.py
sudo apt-get install python3-pip
3. Upgrade PIP
python3 -m pip install --upgrade pip
4. Install matrix-lite-py
python3 -m pip install --user matrix-lite
Usage
The matrix-lite package contains a matrix_lite
& _matrix_hal
Python module. _matrix_hal
is the direct HAL implementation. matrix_lite
contains small abstractions for _matrix_hal
.
Everloop
from matrix_lite import led
import time
# Get LED count
print('This device has ' + str(led.length) + ' Leds')
# A single string, object, or tuple will set all LEDs
# Below are different ways of expressing a color (number values are from 0-255)
led.set('blue')
led.set('#0000ff')
# Objects and tuples can utilize the white LED
led.set({'r':0, 'g':0, 'b':255, 'w':0 })
led.set((0,0,255,0))
# LEDs off
led.set('black')
led.set([])
led.set()
led.set({})
# Arrays set individual LEDs
led.set(['red', 'gold', 'purple', {}, 'black', '#6F41C1', 'blue', {'g':255}])
# Arrays can simulate motion
everloop = ['black'] * led.length
everloop[0] = {'b':100}
while True:
everloop.append(everloop.pop(0))
led.set(everloop)
time.sleep(0.050)
Sensors
from matrix_lite import sensors
import time
# Sensors will update with each .read() call
while True:
# Each .read() returns a dictionary
print(sensors.imu.read())
print(sensors.uv.read())
print(sensors.humidity.read())
print(sensors.pressure.read())
time.sleep(5/1000)
GPIO
from matrix_lite import gpio
# Read GPIO pin 0 (digital)
gpio.setFunction(0, 'DIGITAL')
gpio.setMode(0, 'input')
print('Pin 0 is: ' + str(gpio.getDigital(0)))
# Set GPIO pin 1 (digital)
gpio.setFunction(1, 'DIGITAL')
gpio.setMode(1, 'output')
gpio.setDigital(1, 'ON')
# Set GPIO pin 2 (PWM)
gpio.setFunction(2, 'PWM')
gpio.setMode(2, 'output')
gpio.setPWM({
"pin": 2,
"percentage": 25,
"frequency": 50, # min 36
})
# Set Servo Angle pin 3
gpio.setFunction(3, 'PWM')
gpio.setMode(3, 'output')
gpio.setServoAngle({
"pin": 3,
"angle": 90,
# min_pulse_ms (minimum pulse width for a PWM wave in milliseconds)
"min_pulse_ms": 0.8,
})
Building Locally For Development
Make sure you have MATRIX HAL & Python 3 installed.
If you want to contribute to matrix-lite-py, below are the steps to build locally. Each step should take place on your Raspberry Pi.
Download the repository
git clone https://github.com/matrix-io/matrix-lite-py
Compile and install the matrix_lite
python package with your changes
cd matrix-lite-py
sudo python3 -m pip install ./
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
Built Distributions
Hashes for matrix_lite-0.0.7-cp37-cp37m-linux_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34a4f526a120421638cbb4395ea26736f4b89354a032194ac1d1db62e6a89ea8 |
|
MD5 | 383749706ae296ed91c881252d29ca12 |
|
BLAKE2b-256 | 4bff9a72ccac639d3322fbee161558acf6c4cbd85978d2374cfe7303a8c1783d |
Hashes for matrix_lite-0.0.7-cp37-cp37m-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d353ec830b5ad3fcf923b209858b4fbfc134c41b872571f4ea79616a36c6f33 |
|
MD5 | 9ccc38512d59c9611fa1115eff2e9a22 |
|
BLAKE2b-256 | 135802e83c2a453de22ea27ce76f27203e9de681ffb7e2b5bd1ec1c10cb1249c |
Hashes for matrix_lite-0.0.7-cp35-cp35m-linux_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b7b8134c97d485954648f8eb1f6399bb18948a22615778d20f9224247e45e7f |
|
MD5 | b17f74a16682a6b01b250d5f427806a2 |
|
BLAKE2b-256 | 31ee86e2743937a81d6978a08dc1c4de076d00e86600bcd449860b8376c0db62 |
Hashes for matrix_lite-0.0.7-cp35-cp35m-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a42f91406da63b640dcb1b3d6d647f1dab975ecb4bf5c76293dc5f23aa955ca0 |
|
MD5 | 363d9cef65301dd477a2db53b0dbcf39 |
|
BLAKE2b-256 | cae5eb1e06a3c7ecb13ecc4eef4aeac398de53e5a7cc14f03768295b17a70bc7 |