Skip to main content

Easy😆 and fast💨 MODI Python API package.

Project description


image image Documentation Status Build Status Coverage Status Language grade: Python Maintainability License

Description

Easy😆 and fast💨 MODI Python API package.

Features

PyMODI supports a control of modular electronics based on MODI modules developed by LUXROBO

  • Easy control of modules through serial connection on Windows, Linux, and MacOS
  • Direct CAN communication on raspberry pi and other platforms
  • Support on Python version >= 3.6
  • Utilities of firmware update and low-level debugging of the modules

UML Diagram

Build Status

master develop
Build Status Build Status

System Support

System 3.6 3.7 3.8
Linux Unit Test (Ubuntu) Unit Test (Ubuntu) Unit Test (Ubuntu)
Mac OS Unit Test (macOS) Unit Test (macOS) Unit Test (macOS)
Windows Unit Test (Windows) Unit Test (Windows) Unit Test (Windows)

Contribution Guidelines

We appreciate all contributions. If you are planning to report bugs, please do so at https://github.com/LUXROBO/pymodi/issues. Feel free to fork our repository to your local environment, and please send us feedback by filing an issue.

If you want to contribute to pymodi, be sure to review the contribution guidelines. This project adheres to pymodi's code of conduct. By participating, you are expected to uphold this code.

Contributor Covenant

Quickstart

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

pip install -U pymodi --user

You can also install PyMODI at develop branch with:

pip install git+https://github.com/LUXROBO/pymodi.git@develop --user --upgrade

Import modi package and create MODI instance:

import modi
bundle = modi.MODI()

List connected modules:

bundle.modules

List connected LED modules and pick the first one:

bundle.leds # List.
bundle.leds[0] # Pick.

Let's blink the LED's light 5 times:

import time

led = bundle.leds[0]

for _ in range(5):
    led.turn_on()
    time.sleep(1)
    led.turn_off()
    time.sleep(1)

If you are still not sure how to use PyMODI, you can play an interactive PyMODI tutorial by running a command of

$ python -m modi --tutorial

Moreover, we provide some usage and creation examples.

History

0.1.0 (2018-06-28)

  • First release on in-house GitLab

0.1.1 (2018-07-20)

  • Requirements fix
  • Packages' include path fix

0.1.2 (2018-07-23)

  • Python 3.4 support

0.2.0 (2018-07-25)

  • Speaker module support
  • Display module support

0.2.1 (2018-07-27)

  • Add speaker module's tune() and off() methods
  • Remove duplicated codes

0.3.0 (2018-07-28)

  • Support python 2.7
  • Speed up the performance

0.3.1 (2018-07-28)

  • Requirements fix

0.4.0 (2018-08-20)

  • Performance improvement
  • The first documentation complete

0.5.0 (2018-08-22)

  • Change the project name to pyMODI

0.5.1 (2018-11-07)

  • Fix #26 (No MODI network module connected) issue

0.5.2 (2019-10-11)

  • Can control a pair of motors of the motor module by torque(), speed(), angle()

0.6.0 (2019-10-18)

  • Performance improvement
  • Bug fixes

0.7.0 (2020-01-23)

  • Implement individual motor control
  • Implement set variable method in display
  • Implement test cases for each modi modules
  • Implement multiprocessing version of pymodi
  • Bug fixes

0.7.1 (2020-02-07)

  • Refactor file structures
  • Bug fixes

0.8.0 (2020-05-07)

  • Implement Can Message Handler
  • Implement Topology Manager
  • Improve connection reliability by separating communication functions
  • Bug fixes

0.9.0 (2020-07-07)

  • Implement Module Firmware Updater
  • Implement wireless connection via SPP
  • Implement MODI Priority Queue to increase response speed
  • Implement PyMODI tutor for teaching new-comers
  • Support multi MODI network modules given appropriate COM ports
  • Refactor getter/setter for each MODI module
  • Refactor motor module to use set_motor_channel internally
  • Update property values when setting properties
  • Add usage/creation example to the repository

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-1.0.0.tar.gz (1.5 MB view hashes)

Uploaded Source

Built Distribution

pymodi-1.0.0-py2.py3-none-any.whl (1.5 MB view hashes)

Uploaded Python 2 Python 3

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