Program Lego Mindstorms EV3 using Python on ev3dev
What you need
You need a working ev3dev on your ev3 and have an ssh session. Please reference the ev3dev site to burn such system.
Current python-ev3 is developed on ev3-ev3dev-jessie-2015-05-20
Both python 2.7 and python 3.4 are supported
python-ev3 is tested on the ev3-dev in python2.7 and python3.4. I have no all lego devices, so if there's something wrong or not working, please file an issue or create a pull request. I'm quite happy to receive more devices code.
virtualenv
Current python-ev3 is not stable enough, virtualenv is recommend. Below examples are in virtualenv. However, python-ev3 should work in a native python environment.
Install the python-ev3 on EV3
Python 2.7
apt-get updateapt-get install virtualenv virtualenvwrapper python-setuptools python-smbus python-pilsource /etc/bash_completion.d/virtualenvwrappermkvirtualenv ev3_py27 --python=/usr/bin/python2.7 --system-site-packagesworkon ev3_py27easy_install -U python-ev3- type
deactiveto exit
Python 3.4
apt-get updateapt-get install virtualenv virtualenvwrapper python3-setuptools python3-smbus python3-pilsource /etc/bash_completion.d/virtualenvwrappermkvirtualenv ev3_py34 --python=/usr/bin/python3.4 --system-site-packagesworkon ev3_py34easy_install -U python-ev3- type
deactiveto exit
Example
(ev3_py27)root@ev3dev:~# python Python 2.7.8 (default, Jul 4 2014, 16:59:40) [GCC 4.9.0] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from ev3.lego import MediumMotor >>> d = MediumMotor() >>> d.reset() >>> d.run_forever(50, regulation_mode=False) >>> d.stop() >>> exit()
To exit the virtual env, type deactivate
More devices
Plese see test to know how to use other devices.
To create new sensor class please see How to create a new sensor class
Python3 vs Python2 performance
@fuzzycow found there's some performance problem when using Python3. Please see #22
Reference
- ev3-dev: http://www.ev3dev.org/