Skip to main content

Python language bindings for ev3dev

Project description

Python language bindings for ev3dev
===================================

This is a python library implementing unified interface for ev3dev_ devices.
The source code is hosted at https://github.com/ddemidov/ev3dev-lang-python.

.. _ev3dev: http://ev3dev.org

Installation
------------

* Prerequisites:

.. code-block:: bash

apt-get install libboost-python1.55.0 python-setuptools python-pil

These should be enough to install and use the library on your ev3. If you want
to install it on your main computer (for example, to let your IDE of choice
know about the library), or compile the library from source, you will also need
to install `libboost-python1.55-dev`.

* Now, the actual module installation:

.. code-block:: bash

easy_install -U python-ev3dev

Same command will upgrade already installed package to the latest available
version.

Usage
-----

Take a look at the provided demos_. The autogenerated reference
documentation is hosted at http://ddemidov.github.io/ev3dev-lang-python.

.. _demos: https://github.com/ddemidov/ev3dev-lang-python/tree/master/demo

Here is a simple example of running a large EV3 motor connected to output port
`A` for three seconds:

.. code-block:: python

>>> import ev3dev
>>> m = ev3dev.large_motor('outA')
>>> m.connected
True
>>> m.run_timed(time_sp=3000, duty_cycle_sp=75)

Remote operation
^^^^^^^^^^^^^^^^

.. highlight:: bash

There are a couple of options for running python code remotely on the EV3
(aside from obvious choice of doing everything in ssh session).

First, you can install `IPython Notebook`_ with:

.. code-block:: bash

apt-get install ipython-notebook

and `access the notebook server`_ from your main computer. There is a `nice
post`_ by Laurens Valk showing this in action. Unfortunately, the IPython
process seems to be rather heavy for the limited EV3 resources, and the
experience tends to deteriorate with time.

The second option is using RPyC_ (Remote Python Call) library. It may be
installed with:

.. code-block:: bash

pip install rpyc


You need to install it both on the EV3 and on the remote host.
After that, once you launch RPyC server with `rpyc_classic.py` command on the
EV3, you can connect to the server from your main computer:

.. code-block:: python

>>> import rpyc
>>> c = rpyc.classic.connect("192.168.10.42")

The parameter to `connect()` function is the host name or the ip address of the
EV3. After the connection is made, you can import the `ev3dev` module
remotely:

.. code-block:: python

>>> ev3dev = c.modules.ev3dev
>>> m = ev3dev.large_motor('outA')
>>> m.connected
True
>>> m.run_timed(time_sp=3000, duty_cycle_sp=75)

Note that the code is the same as in the example above once you connect to
remote RPyC server, although its run from a different machine. This may be used
either for interactive developing, or to run resource-heavy programs.

.. _IPython Notebook: http://ipython.org
.. _access the notebook server: https://coderwall.com/p/ohk6cg/remote-access-to-ipython-notebooks-via-ssh
.. _nice post: http://robotsquare.com/2014/06/12/linux-ev3/
.. _RPyC: https://rpyc.readthedocs.org/en/latest/

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

python-ev3dev-0.2.2.post12.tar.gz (37.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file python-ev3dev-0.2.2.post12.tar.gz.

File metadata

File hashes

Hashes for python-ev3dev-0.2.2.post12.tar.gz
Algorithm Hash digest
SHA256 3e1db08ebd5c5c426767d54d6e32b4dd82ffbc929921bb444e735a73b31c291e
MD5 f24246fcf8b3a4a8bee5e29783ba259e
BLAKE2b-256 2877679105ab882f2f79b86749bdc3c5d88862870088e5b92d6b3452c23e297e

See more details on using hashes here.

File details

Details for the file python_ev3dev-0.2.2.post12-py3.4-linux-armv6l.egg.

File metadata

File hashes

Hashes for python_ev3dev-0.2.2.post12-py3.4-linux-armv6l.egg
Algorithm Hash digest
SHA256 e9b43e561e40971d9aed9b28ae73f75130440c9ff681e4fdaceec5a82e5b61f7
MD5 21f57b5d96e947e07a7c2a2cfabfe6fb
BLAKE2b-256 e8fd84179079331c2eca8ec977581cb785c72692f02b8311d8c4240a2a09fe0c

See more details on using hashes here.

File details

Details for the file python_ev3dev-0.2.2.post12-py3.4-linux-armv5tejl.egg.

File metadata

File hashes

Hashes for python_ev3dev-0.2.2.post12-py3.4-linux-armv5tejl.egg
Algorithm Hash digest
SHA256 f2da603265cf42f9e06263eda20bbe3a78529e39531034efd87d995755b0dae8
MD5 7908dd80fd02511fd573090f9927f612
BLAKE2b-256 f365322d74c3a09adae4993c1412c4ff941cc1962fdccb2cbaf1fea310883097

See more details on using hashes here.

File details

Details for the file python_ev3dev-0.2.2.post12-py2.7-linux-armv6l.egg.

File metadata

File hashes

Hashes for python_ev3dev-0.2.2.post12-py2.7-linux-armv6l.egg
Algorithm Hash digest
SHA256 08b4979d186e86a7630820eb3506378108256cf6091653cfe4092362fa733c60
MD5 7ffe9b940c87599b7f03ee75e9f1c3d2
BLAKE2b-256 0efc1f5ceb6cef61836586ff8b48672ad75f33de515716c823123aedb67f3805

See more details on using hashes here.

File details

Details for the file python_ev3dev-0.2.2.post12-py2.7-linux-armv5tejl.egg.

File metadata

File hashes

Hashes for python_ev3dev-0.2.2.post12-py2.7-linux-armv5tejl.egg
Algorithm Hash digest
SHA256 3a8d48e0dccf05443610fbaa52b507681b0f248df13c1cbc7a8279ea5ca5701c
MD5 4892aeeed43a749341175eb7a92b5597
BLAKE2b-256 3ec41acba15dd3fb34685512b0bbd6167f0473c68d48b457e4b3f90cf1bcd8c0

See more details on using hashes here.

Supported by

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