Skip to main content

Python API for controlling modular electronics, MODI+.

Project description

Description

Python API for controlling modular electronics, MODI+.

Features

PyMODI+ provides a control of modular electronics.

  • Platform agnostic control of modules through serial connection
  • Utilities of wireless connection with BLE (Bluetooth Low Engery)

Installation

When installing PyMODI+ package, we highly recommend you to use Anaconda to manage the distribution. With Anaconda, you can use an isolated virtual environment, solely for PyMODI+.

[Optional] Once you install Anaconda, then:

# Install new python environment for PyMODI+ package, choose python version >= 3.9
conda create --name pymodi_plus python=3.9

# After you properly install the python environment, activate it
conda activate pymodi_plus

# Ensure that your python version is compatible with PyMODI+
python --version

Install the latest PyMODI+ if you haven't installed it yet:

python -m pip install pymodi_plus --user --upgrade

Usage

Import modi_plus package and create MODIPlus object (we call it "bundle", a bundle of MODI+ modules).

# Import modi_plus package
import modi_plus

"""
Create MODIPlus object, make sure that you have connected your network module
to your machine while other modules are attached to the network module
"""
bundle = modi_plus.MODIPlus()

[Optional] Specify how you would like to establish the connection between your machine and the network module.

# 1. Serial connection (via USB), it's the default connection method
bundle = modi_plus.MODIPlus(connection_type="serialport")

# 2. BLE (Bluetooth Low Energy) connection, it's wireless! But it can be slow :(
bundle = modi_plus.MODIPlus(conn_type="ble", network_uuid="YOUR_NETWORK_MODULE_UUID")

List and create connected modules' object.

# List connected modules
print(bundle.modules)

# List connected leds
print(bundle.leds)

# Pick the first led object from the bundle
led = bundle.leds[0]

Let's blink the LED 5 times.

import time

for _ in range(5):
    # turn on for 0.5 second
    led.turn_on()
    time.sleep(0.5)

    # turn off for 0.5 second
    led.turn_off()
    time.sleep(0.5)

If you are still not sure how to use PyMODI, you can play PyMODI tutorial over REPL:

$ python -m modi_plus --tutorial

As well as an interactive usage examples:

$ python -m modi_plus --usage

Additional Usage

To diagnose MODI+ modules (helpful to find existing malfunctioning modules),

$ python -m modi_plus --inspect

To initialize MODI+ modules implicitly (set i flag to enable REPL mode),

$ python -im modi_plus --initialize

To see what other commands are available,

$ python -m modi_plus --help

History

0.0.1 (2022-11-15)

  • Release initial version of the package on in-house GitHub

0.0.2 (2022-11-18)

  • Feature
  1. Change python minimum version to 3.9

0.1.0 (2022-11-22)

  • Feature
  1. Add creation examples (brush, dodge)
  2. Add network, battery module functions
  3. Fix play_music function on speaker module
  4. Add preset resource on speaker and display module
  5. Add search module time and timeout exception

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

pymodi-plus-0.1.0.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

pymodi_plus-0.1.0-py2.py3-none-any.whl (1.5 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file pymodi-plus-0.1.0.tar.gz.

File metadata

  • Download URL: pymodi-plus-0.1.0.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for pymodi-plus-0.1.0.tar.gz
Algorithm Hash digest
SHA256 75aa919be2fed589ae16f26d949e3151aec7c408272ef36b7db1b48397f4e654
MD5 fc52216b694a343f6e816765dcfcd150
BLAKE2b-256 74d50e5401fc78477ce6c14085983a9ad23509b6114d91be18dacb81b4995098

See more details on using hashes here.

File details

Details for the file pymodi_plus-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pymodi_plus-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 376050a95a9bc5aaf3cdb1c24b2067395315f704f397f5fceeb1ee0f3de10f11
MD5 92b121469bcf03ef9e246d17d3071dc7
BLAKE2b-256 758a5a238547abe009b82262f8144d9b7e2e55329618a0ad34b37dfc80a843d1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page