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.post23.tar.gz (37.1 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.post23.tar.gz.

File metadata

File hashes

Hashes for python-ev3dev-0.2.1.post23.tar.gz
Algorithm Hash digest
SHA256 66f278093fa40f1b737b312342bcd1c769192987ec259811f4b213652aef54c5
MD5 03e8dd2736f9128b502251a275cfd305
BLAKE2b-256 fcdd792fd4989ec52e15675564aa4c691e48f0f387f3a764fdf4b8edc9d51ec4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post23-py3.4-linux-armv6l.egg
Algorithm Hash digest
SHA256 1d5c0e14153e76da42d5c74cf95bfec9d881b662b487b37c0ed3f49c67eb5a96
MD5 bf49ec7db96383a218b9a444ae08cfd9
BLAKE2b-256 d2aad59b3741e9bb0e520b0ec4733483b82177b7a3fd01b110a282e67ea3dfaa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post23-py3.4-linux-armv5tejl.egg
Algorithm Hash digest
SHA256 12b57348004f49e0120d9aaeebbc651931b29d36db005c2e0fd431bbc2c16fd0
MD5 91db625b42c198ce07ab6014a0c7b681
BLAKE2b-256 3e0ab8ad3a0d8dcab0e93f96e0b0c493e3a5674206153f5520691336272d9863

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post23-py2.7-linux-armv6l.egg
Algorithm Hash digest
SHA256 a03df00790dfc95f2a8a998054e43a2386c08e643ba4deef773f49bd929ec0a5
MD5 bc07432efa856eae725dcf35c8630cb8
BLAKE2b-256 bda85bd4096a121420f49c239f4558e22d7b46bb22a456d2fa1c10f3c31d3819

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post23-py2.7-linux-armv5tejl.egg
Algorithm Hash digest
SHA256 6045f4f7d2a11268032b9d7eb9fb9165752d097de0157208fb51edec263d6f92
MD5 6ea5b3f087a3bfe7397aa36742fb53c2
BLAKE2b-256 04534e4fcb6dda8dae7891291ce4ad0102547895d7181001411cb7173dc1e47d

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