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 Stretch.
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.4-cp37-cp37m-linux_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5215ebbed61ed1a8844042ae0e699a087c0717dffdb720e85fc8926e2ed4a6a |
|
MD5 | 8e4e4facfbc976076c2666b8086fdcff |
|
BLAKE2b-256 | 13601737a9d1c7508c818d0dc90487db3d40410ff581d9624e700d8765d6dec8 |
Hashes for matrix_lite-0.0.4-cp37-cp37m-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f94e6c6f3a605f85dac31f13cdc6affb76e5f6a1f30d71c12ac589c55878caf |
|
MD5 | d0bec488ce69810882b6397e5ebac367 |
|
BLAKE2b-256 | b9600ce2a6d467f74596057f9dbc015a47244017aeb448114ed58308cf6aa913 |
Hashes for matrix_lite-0.0.4-cp35-cp35m-linux_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e36db65cc43305796fb3c890b056d4be1af270398355fcdb2180671597143e2c |
|
MD5 | 87e242979425569bb22d51ef1706ff60 |
|
BLAKE2b-256 | e70d7678d1096397e938234ee602ebbac80326798358721b6949ae85ffc08b59 |
Hashes for matrix_lite-0.0.4-cp35-cp35m-linux_armv6l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af7344a45c8e1dbd9ddd547ccd9be7ec6e44f971fa29fc8380804082cb7e2de0 |
|
MD5 | fde479be303cfa5a49ef840809ace3c9 |
|
BLAKE2b-256 | 7c283d7a5119b0ae42aee5ef07edab508a36a96eb52c31adf67e2402cb7037ad |