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.post12.tar.gz (32.9 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.post12.tar.gz.

File metadata

File hashes

Hashes for python-ev3dev-0.2.1.post12.tar.gz
Algorithm Hash digest
SHA256 51eeb6f9ffc9eceb379d19a3c20603f6be4bc67782234c968f44059d0c579340
MD5 7c4a1478d30d296225ccedf960f12bb5
BLAKE2b-256 8298cd461669a9abe211a4605ceb95a9ac5b6a1676dbf13df6c44e3971100ff6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post12-py3.4-linux-armv6l.egg
Algorithm Hash digest
SHA256 aa5b7a4d343e5dfed60708c0e977f5242f8ea57af3e251cad0f5903031686ce2
MD5 03cc8dcf938b461c5f29cf63658611f1
BLAKE2b-256 c929200b3a9c64bd51406e7a7cb7d58be4d62346e25d2865c6cb4c0d01e22296

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post12-py3.4-linux-armv5tejl.egg
Algorithm Hash digest
SHA256 b75c3fc3206b25b2e4d5dc854e4bd11059ece380abb1b5a5bbf872fd374c34ba
MD5 b319ed997b4c3108065a7add8b903a05
BLAKE2b-256 9d4e819c8581af50c55c8c65543d17942be3f8c5bdf94102b8f80401744bdc14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post12-py2.7-linux-armv6l.egg
Algorithm Hash digest
SHA256 5ea5052d4ac50921a0a781e0f2df492c767e3f1df022e7d2fc90d05fe5ccd111
MD5 ddb3d9008532e7a12462bb0cec33d750
BLAKE2b-256 17be250b9bdb8df1a18482c8d5e14888daed1785cd2a47937963c78f1c172bfb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post12-py2.7-linux-armv5tejl.egg
Algorithm Hash digest
SHA256 59dbb5d116d7b6daf739a55321579fb25d3ae7e2c866dbc9c562853d4440ebcf
MD5 3b5546d15f7c07c739abf912968e01d7
BLAKE2b-256 b5e7f2843c827c2e71e0129e3cce66a84d40e907038fcfbaf4d7069b1ff77932

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