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.post13.tar.gz (33.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.post13.tar.gz.

File metadata

File hashes

Hashes for python-ev3dev-0.2.1.post13.tar.gz
Algorithm Hash digest
SHA256 1ca32edd511c43d3d4156e5c121c2d3f7c08579c825d1d4df368f62c3c16203f
MD5 2020322bd63d654fe098cfb543ae0f4f
BLAKE2b-256 66902edcd360e51ce5095ee12992c6d56a1ad2c22d50312f95267647dfd67e46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post13-py3.4-linux-armv6l.egg
Algorithm Hash digest
SHA256 c81e9d5ffa0a0afbad155223d08280c948f44e66567474bab9ed526fefa0445b
MD5 bb9b257150fe150ba557309e8975efc9
BLAKE2b-256 63ad90f19c12fa664e92460004a0673330b05e14654bb62edbbe69c142c2b4c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post13-py3.4-linux-armv5tejl.egg
Algorithm Hash digest
SHA256 bdb80b5580c229b7742516c784010a0ea131a1556b45c4d57e28260fc2612913
MD5 b4b904d4533d0a3c1d8b9133e6440f2a
BLAKE2b-256 452113128119c3d62a54a4487c0181710c7699b482445f3512641b71aa901c38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post13-py2.7-linux-armv6l.egg
Algorithm Hash digest
SHA256 7246bdf1cc21ffcca7ee83ede98a5f91a91371bd8ad56307e58999ede3a2c040
MD5 45be5dc1114d4499b82769ded9eaa7a5
BLAKE2b-256 9ddcf426a9315fb0c71aa42a9035d10551e1984ad73a2590a4ec7ce93638f81d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for python_ev3dev-0.2.1.post13-py2.7-linux-armv5tejl.egg
Algorithm Hash digest
SHA256 a489dd90f36b0e9a74d72bd91ea4b98f33f1b5a2e8a499166fbb0084fc1aebe1
MD5 da2ecea0722c03a6e9143fc1ab2f4127
BLAKE2b-256 1d45f6291a24911805aab5537c2c1c109dbe144313f6477b0b30f5efe6140fda

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