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.1.post14.tar.gz (35.4 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.1.post14.tar.gz.

File metadata

File hashes

Hashes for python-ev3dev-0.2.1.post14.tar.gz
Algorithm Hash digest
SHA256 17dcc639aee6414afbbfac800deb064a49c13a4b45726677f341939f4d81d5d5
MD5 678303809f2a218ce329107d401f48cd
BLAKE2b-256 43e94320ce24f213f672af7b116123f9ad6754e76d7af1008bf6cab526285add

See more details on using hashes here.

File details

Details for the file python_ev3dev-0.2.1.post14-py3.4-linux-armv5tejl.egg.

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post14-py3.4-linux-armv5tejl.egg
Algorithm Hash digest
SHA256 6183fdef43b9f0fb5face10392aae90f27f1f2a2e61e8f2989a1667bda623c15
MD5 3d0332f805e4b95b1831df847c882295
BLAKE2b-256 277df08d1a3759b32eee33f5e2f8dded6a025963e697d216494db1c9fe65eb76

See more details on using hashes here.

File details

Details for the file python_ev3dev-0.2.1.post14-py2.7-linux-armv6l.egg.

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post14-py2.7-linux-armv6l.egg
Algorithm Hash digest
SHA256 2ece34bc267ea1689ffeb1d9cf5ccb71ab0b5d90a0c8d7ad4ecd77a4423bcc77
MD5 30758238ef4fa42503ce9149f6b554eb
BLAKE2b-256 85137ab4d78d01eb406b93f09626c22d0026b5b663227fd1a883f29cee6f51f3

See more details on using hashes here.

File details

Details for the file python_ev3dev-0.2.1.post14-py2.7-linux-armv5tejl.egg.

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post14-py2.7-linux-armv5tejl.egg
Algorithm Hash digest
SHA256 195c96ad43027fe0e69023ad8ad98f0d84236578ffc2e1ad29c1fc25eb6b78b8
MD5 0c9350021e2bf93ba2fd2252552329b4
BLAKE2b-256 c43c1a68ae32cf37d61e846f9a07b4a1ec0505510b9224dc9461d56c5b37797b

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