Python программы для ev3

Python language bindings for ev3dev¶

A Python3 library implementing an interface for ev3dev devices, letting you control motors, sensors, hardware buttons, LCD displays and more from Python code.

If you haven’t written code in Python before, you’ll need to learn the language before you can use this library.

Getting Started¶

This library runs on ev3dev. Before continuing, make sure that you have set up your EV3 or other ev3dev device as explained in the ev3dev Getting Started guide. Make sure that you have a kernel version that includes -10-ev3dev or higher (a larger number). You can check the kernel version by selecting “About” in Brickman and scrolling down to the “kernel version”. If you don’t have a compatible version, upgrade the kernel before continuing. Also note that if the ev3dev image you downloaded was created before September 2016, you probably don’t have the most recent version of this library installed: see Upgrading this Library to upgrade it.

Once you have booted ev3dev and connected to your EV3 (or Raspberry Pi / BeagleBone) via SSH, you should be ready to start using ev3dev with Python: this library is included out-of-the-box. If you want to go through some basic usage examples, check out the Usage Examples section to try out motors, sensors and LEDs. Then look at Writing Python Programs for Ev3dev to see how you can save your Python code to a file.

Make sure that you look at the User Resources section as well for links to documentation and larger examples.

Usage Examples¶

To run these minimal examples, run the Python3 interpreter from the terminal using the python3 command:

$ python3 Python 3.4.2 (default, Oct 8 2014, 14:47:30) [GCC 4.9.1] on linux Type "help", "copyright", "credits" or "license" for more information. >>>

The >>> characters are the default prompt for Python. In the examples below, we have removed these characters so it’s easier to cut and paste the code into your session.

Required: Import the library¶

If you are using an EV3 brick (which is the case for most users), add the following to the top of your file:

If you are using a BrickPi, use this line:

import ev3dev.brickpi as ev3 

Controlling the LEDs with a touch sensor¶

This code will turn the left LED red whenever the touch sensor is pressed, and back to green when it’s released. Plug a touch sensor into any sensor port and then paste in this code — you’ll need to hit Enter after pasting to complete the loop and start the program. Hit Ctrl-C to exit the loop.

ts = ev3.TouchSensor() while True: ev3.Leds.set_color(ev3.Leds.LEFT, (ev3.Leds.GREEN, ev3.Leds.RED)[ts.value()]) 

Running a motor¶

Now plug a motor into the A port and paste this code into the Python prompt. This little program will run the motor at 500 ticks per second, which on the EV3 “large” motors equates to around 1.4 rotations per second, for three seconds (3000 milliseconds).

m = ev3.LargeMotor('outA') m.run_timed(time_sp=3000, speed_sp=500) 

The units for speed_sp that you see above are in “tacho ticks” per second. On the large EV3 motor, these equate to one tick per degree, so this is 500 degress per second.

Читайте также:  Python threading exit all threads

Using text-to-speech¶

If you want to make your robot speak, you can use the Sound.speak method:

ev3.Sound.speak('Welcome to the E V 3 dev project!').wait() 

To quit the Python REPL, just type exit() or press Ctrl-D .

Make sure to check out the User Resources section for more detailed information on these features and many others.

Writing Python Programs for Ev3dev¶

Every Python program should have a few basic parts. Use this template to get started:

#!/usr/bin/env python3 from ev3dev.ev3 import * # TODO: Add code here 

The first two lines should be included in every Python program you write for ev3dev. The first allows you to run this program from Brickman, while the second imports this library.

When saving Python files, it is best to use the .py extension, e.g. my-file.py . To be able to run your Python code, your program must be executable. To mark a program as executable run chmod +x my-file.py . You can then run my-file.py via the Brickman File Browser or you can run it from the command line via $ ./my-file.py

User Resources¶

Library Documentation Class documentation for this library can be found on our Read the Docs page . You can always go there to get information on how you can use this library’s functionality. ev3python.com One of our community members, @ndward, has put together a great website with detailed guides on using this library which are targeted at beginners. If you are just getting started with programming, we highly recommend that you check it out at ev3python.com! Frequently-Asked Questions Experiencing an odd error or unsure of how to do something that seems simple? Check our our FAQ to see if there’s an existing answer. ev3dev.org ev3dev.org is a great resource for finding guides and tutorials on using ev3dev, straight from the maintainers. Support If you are having trouble using this library, please open an issue at our Issues tracker so that we can help you. When opening an issue, make sure to include as much information as possible about what you are trying to do and what you have tried. The issue template is in place to guide you through this process. Demo Robot Laurens Valk of robot-square has been kind enough to allow us to reference his excellent EXPLOR3R robot. Consider building the EXPLOR3R and running the demo programs referenced below to get familiar with what Python programs using this binding look like. Demo Code There are demo programs that you can run to get acquainted with this language binding. The programs are designed to work with the EXPLOR3R robot.

Читайте также:  Java class config file

Upgrading this Library¶

You can upgrade this library from the command line as follows. Make sure to type the password (the default is maker ) when prompted.

sudo apt-get update sudo apt-get install --only-upgrade python3-ev3dev

Developer Resources¶

Python Package Index The Python language has a package repository where you can find libraries that others have written, including the latest version of this package. The ev3dev Binding Specification Like all of the language bindings for ev3dev supported hardware, the Python binding follows the minimal API that must be provided per this document. The ev3dev-lang Project on GitHub The source repository for the generic API and the scripts to automatically generate the binding. Only developers of the ev3dev-lang-python binding would normally need to access this information.

Python 2.x and Python 3.x Compatibility¶

Some versions of the ev3dev distribution come with both Python 2.x and Python 3.x installed but this library is compatible only with Python 3.

As of the 2016-10-17 ev3dev image, the version of this library which is included runs on Python 3 and this is the only version that will be supported from here forward.

  • API reference
    • Motor classes
      • Tacho motor
      • Large EV3 Motor
      • Medium EV3 Motor
      • DC Motor
      • Servo Motor
      • Sensor
      • Special sensor classes
      • Remote Control
      • Beacon Seeker
      • Button
      • Leds
      • Power Supply
      • Sound
      • Screen
      • Lego Port
      • My script works when launched as python3 script.py but exits immediately or throws an error when launched from Brickman or as ./script.py

      Источник

      Saved searches

      Use saved searches to filter your results more quickly

      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

      License

      ev3dev/ev3dev-lang-python-demo

      This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

      Name already in use

      A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

      Sign In Required

      Please sign in to use Codespaces.

      Launching GitHub Desktop

      If nothing happens, download GitHub Desktop and try again.

      Launching GitHub Desktop

      If nothing happens, download GitHub Desktop and try again.

      Launching Xcode

      If nothing happens, download Xcode and try again.

      Launching Visual Studio Code

      Your codespace will open once ready.

      There was a problem preparing your codespace, please try again.

      Latest commit

      Git stats

      Files

      Failed to load latest commit information.

      README.md

      This folder contains several demo programs that you can use to help you in developing your own code. Brief descriptions of each demo are provided below; you can access the full source code and some more detailed information on each by opening the respective folders above.

      To install these on your EV3, use git to clone the ev3dev-lang-python-demo repository from github. Your EV3 will need Internet connectivty in order to clone the repository from github.

      $ sudo apt-get install git $ git clone https://github.com/ev3dev/ev3dev-lang-python-demo.git 

      There are two ways to run a program. You can run a program from the command line or from the brickman interface.

      Note that for both running from the command line and running from Brickman the program must be marked as an executable and the first line of the program must be #!/usr/bin/env python3 . To mark a program as executable run chmod +x PROGRAM_NAME.py . All of the demo programs are already marked as executable and already have #!/usr/bin/env python3 so you should be fine, we only mention it so you know to do these things when writing your own programs.

      To run one of the demo programs from the command line, cd to the directory and run the program via ./PROGRAM_NAME.py . Example:

      $ cd ~/ev3dev-lang-python-demo/robots/R3PTAR/ $ ./r3ptar.py 

      To run one of the demo programs from Brickman, select the program in the File Browser.

      Laurens Valk’s BALANC3R — This robot uses the gyro sensor to balance on two wheels. Use the IR remote to control BALANC3R

      • http://www.lego.com/en-us/mindstorms/build-a-robot/ev3d4
      • EV3D4RemoteControl — Use the IR remote to control EV3D4
      • EV3D4WebControl — Use a web interface to control EV3D4. There is a desktop version and a mobile version, both support touchscreen so you can drive via your smartphone. The web server will listen on port 8000 so go to http://x.x.x.x:8000/

      A basic example of Object Oriented programming where there is a base TRACK3R class with child classes for the various permutations of TRACK3R

      • http://www.lego.com/en-us/mindstorms/build-a-robot/track3r
      • TRACK3R.py
      • TRACK3RWithBallShooter
      • TRACK3RWithClaw
      • TRACK3RWithSpinner

      The LEGO Mindstorms EV3 Comparison project sports a few other robot programs in addition. Its comparison table also lists programs created for other platforms than ev3dev.

      Источник

Оцените статью