/pymata-aio

This is the second generation PyMata client.

Primary LanguagePythonGNU Affero General Public License v3.0AGPL-3.0

logo

pymata_aio is a high performance, non-blocking, Python asyncio client for the Firmata Protocol that supports the complete StandardFirmata protocol.

Join the chat at https://gitter.im/MrYsLab/pymata-aio

Major features

  • Python 3.5+ compatible.
    • Implements PEP 492
    • Applications developed with version 1.x of pymata_aio are backward compatible without modification.
  • Implemented using the high efficiency Python asyncio library.
  • Choose From 3 Included APIs
    • pymata_core - a pure asyncio method call API.
    • pymata3 - a pymata_aio plugin implementing a method call API that acts as a proxy for pymata_core. It shields the user from the details of the asyncio library.
    • pymata_iot - a pymata_aio plugin API that implements Websocket server, and uses JSON messaging for application communication.
  • Implements 100% of the StandardFirmata Protocol (StandardFirmata 2.5.3).
  • Auto-detects Arduino COM ports.
  • FirmataPlus (enhanced StandaradFirmata sketch) included with distribution. It adds support for:
    • HC-SRO4 Ultrasonic Distance Sensors using a single pin.
    • Stepper Motors.
    • Piezo Tone Generation.
    • 2 Pin Rotary Encoder Support.
  • FirmataPlusRB (enhanced StandardFirmata sketch to control a SparkFun Redbot) is included with the distribution. It adds support for:
    • Piezo Tone Generation.
    • Wheel encoders.
    • RedBot Accelerometer.
    • Check out rbDashBoard for a web interface to the RedBot.
    • Check out rb4s, a Scratch Program to control the RedBot.
  • Ability to automatically capture and time-stamp user specified analog and digital transient input events on a per-pin basis.
  • All 3 APIs support callback as well as a polled interface.

Detailed package information can be found on the pymata_aio wiki.

Change log can be found here.

This project was developed with Pycharm logo