mirror of
https://github.com/pybricks/pybricks-api.git
synced 2026-07-27 19:57:02 +00:00
489 lines
12 KiB
ReStructuredText
489 lines
12 KiB
ReStructuredText
:mod:`media <pybricks.media>` -- Sounds and Images
|
|
==================================================
|
|
|
|
.. module:: pybricks.media
|
|
|
|
This module describes media such as sound and images that you can use in your
|
|
projects. Media are divided into submodules that indicate on which platform
|
|
they are available.
|
|
|
|
:mod:`media.ev3dev <pybricks.media.ev3dev>` -- Sounds and Images
|
|
---------------------------------------------------------------------
|
|
|
|
.. module:: pybricks.media.ev3dev
|
|
|
|
EV3 MicroPython is built on top of ev3dev, which comes with a variety of image
|
|
and sound files. You can access them using the classes below.
|
|
|
|
You can also use your own sound and image files by placing them in your project
|
|
folder.
|
|
|
|
Image Files
|
|
^^^^^^^^^^^
|
|
|
|
.. autoclass:: pybricks.media.ev3dev.ImageFile
|
|
:no-members:
|
|
|
|
.. toggle-header::
|
|
:header: **Information**
|
|
|
|
.. data:: ACCEPT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/accept.png
|
|
:width: 15 %
|
|
|
|
.. data:: BACKWARD
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/backward.png
|
|
:width: 15 %
|
|
|
|
.. data:: DECLINE
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/decline.png
|
|
:width: 15 %
|
|
|
|
.. data:: FORWARD
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/forward.png
|
|
:width: 15 %
|
|
|
|
.. data:: LEFT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/left.png
|
|
:width: 15 %
|
|
|
|
.. data:: NO_GO
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/no_go.png
|
|
:width: 15 %
|
|
|
|
.. data:: QUESTION_MARK
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/question_mark.png
|
|
:width: 15 %
|
|
|
|
.. data:: THUMBS_DOWN
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/thumbs_down.png
|
|
:width: 15 %
|
|
|
|
.. data:: RIGHT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/right.png
|
|
:width: 15 %
|
|
|
|
.. data:: STOP_1
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/stop_1.png
|
|
:width: 15 %
|
|
|
|
.. data:: STOP_2
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/stop_2.png
|
|
:width: 15 %
|
|
|
|
.. data:: THUMBS_DOWN
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/thumbs_up.png
|
|
:width: 15 %
|
|
|
|
.. data:: THUMBS_UP
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/thumbs_up.png
|
|
:width: 15 %
|
|
|
|
.. data:: WARNING
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/information/warning.png
|
|
:width: 15 %
|
|
|
|
.. toggle-header::
|
|
:header: **LEGO**
|
|
|
|
.. data:: EV3
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/lego/ev3.png
|
|
:width: 15 %
|
|
|
|
.. data:: EV3_ICON
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/lego/ev3_icon.png
|
|
:width: 15 %
|
|
|
|
.. toggle-header::
|
|
:header: **Objects**
|
|
|
|
.. data:: TARGET
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/objects/target.png
|
|
:width: 15 %
|
|
|
|
.. toggle-header::
|
|
:header: **Eyes**
|
|
|
|
.. data:: ANGRY
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/angry.png
|
|
:width: 15 %
|
|
|
|
.. data:: AWAKE
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/awake.png
|
|
:width: 15 %
|
|
|
|
.. data:: BOTTOM_LEFT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/bottom_left.png
|
|
:width: 15 %
|
|
|
|
|
|
.. data:: BOTTOM_RIGHT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/bottom_right.png
|
|
:width: 15 %
|
|
|
|
.. data:: CRAZY_1
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/crazy_1.png
|
|
:width: 15 %
|
|
|
|
.. data:: CRAZY_2
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/crazy_2.png
|
|
:width: 15 %
|
|
|
|
.. data:: DIZZY
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/dizzy.png
|
|
:width: 15 %
|
|
|
|
.. data:: DOWN
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/down.png
|
|
:width: 15 %
|
|
|
|
.. data:: EVIL
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/evil.png
|
|
:width: 15 %
|
|
|
|
.. data:: KNOCKED_OUT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/knocked_out.png
|
|
:width: 15 %
|
|
|
|
.. data:: MIDDLE_LEFT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/middle_left.png
|
|
:width: 15 %
|
|
|
|
.. data:: MIDDLE_RIGHT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/middle_right.png
|
|
:width: 15 %
|
|
|
|
.. data:: NEUTRAL
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/neutral.png
|
|
:width: 15 %
|
|
|
|
.. data:: PINCHED_LEFT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/pinched_left.png
|
|
:width: 15 %
|
|
|
|
.. data:: PINCHED_MIDDLE
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/pinched_middle.png
|
|
:width: 15 %
|
|
|
|
.. data:: PINCHED_RIGHT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/pinched_right.png
|
|
:width: 15 %
|
|
|
|
.. data:: SLEEPING
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/sleeping.png
|
|
:width: 15 %
|
|
|
|
.. data:: TIRED_LEFT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/tired_left.png
|
|
:width: 15 %
|
|
|
|
.. data:: TIRED_MIDDLE
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/tired_middle.png
|
|
:width: 15 %
|
|
|
|
.. data:: TIRED_RIGHT
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/tired_right.png
|
|
:width: 15 %
|
|
|
|
.. data:: UP
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/up.png
|
|
:width: 15 %
|
|
|
|
.. data:: WINKING
|
|
|
|
.. image:: ../../media/ev3dev-media/images/mono/eyes/winking.png
|
|
:width: 15 %
|
|
|
|
Sound Files
|
|
^^^^^^^^^^^
|
|
|
|
.. autoclass:: pybricks.media.ev3dev.SoundFile
|
|
:no-members:
|
|
|
|
.. toggle-header::
|
|
:header: **Expressions**
|
|
|
|
.. data:: BOING
|
|
.. data:: BOO
|
|
.. data:: CHEERING
|
|
.. data:: CRUNCHING
|
|
.. data:: CRYING
|
|
.. data:: FANFARE
|
|
.. data:: KUNG_FU
|
|
.. data:: LAUGHING_1
|
|
.. data:: LAUGHING_2
|
|
.. data:: MAGIC_WAND
|
|
.. data:: OUCH
|
|
.. data:: SHOUTING
|
|
.. data:: SMACK
|
|
.. data:: SNEEZING
|
|
.. data:: SNORING
|
|
.. data:: UH_OH
|
|
|
|
.. toggle-header::
|
|
:header: **Information**
|
|
|
|
.. data:: ACTIVATE
|
|
.. data:: ANALYZE
|
|
.. data:: BACKWARDS
|
|
.. data:: COLOR
|
|
.. data:: DETECTED
|
|
.. data:: DOWN
|
|
.. data:: ERROR
|
|
.. data:: ERROR_ALARM
|
|
.. data:: FLASHING
|
|
.. data:: FORWARD
|
|
.. data:: LEFT
|
|
.. data:: OBJECT
|
|
.. data:: RIGHT
|
|
.. data:: SEARCHING
|
|
.. data:: START
|
|
.. data:: STOP
|
|
.. data:: TOUCH
|
|
.. data:: TURN
|
|
.. data:: UP
|
|
|
|
.. toggle-header::
|
|
:header: **Communication**
|
|
|
|
.. data:: BRAVO
|
|
.. data:: EV3
|
|
.. data:: FANTASTIC
|
|
.. data:: GAME_OVER
|
|
.. data:: GO
|
|
.. data:: GOOD
|
|
.. data:: GOOD_JOB
|
|
.. data:: GOODBYE
|
|
.. data:: HELLO
|
|
.. data:: HI
|
|
.. data:: LEGO
|
|
.. data:: MINDSTORMS
|
|
.. data:: MORNING
|
|
.. data:: NO
|
|
.. data:: OKAY
|
|
.. data:: OKEY_DOKEY
|
|
.. data:: SORRY
|
|
.. data:: THANK_YOU
|
|
.. data:: YES
|
|
|
|
.. toggle-header::
|
|
:header: **Movement sounds**
|
|
|
|
.. data:: SPEED_DOWN
|
|
.. data:: SPEED_IDLE
|
|
.. data:: SPEED_UP
|
|
|
|
.. toggle-header::
|
|
:header: **Colors**
|
|
|
|
.. data:: BLACK
|
|
.. data:: BLUE
|
|
.. data:: BROWN
|
|
.. data:: GREEN
|
|
.. data:: RED
|
|
.. data:: WHITE
|
|
.. data:: YELLOW
|
|
|
|
.. toggle-header::
|
|
:header: **Mechanical**
|
|
|
|
.. data:: AIR_RELEASE
|
|
.. data:: AIRBRAKE
|
|
.. data:: BACKING_ALERT
|
|
.. data:: HORN_1
|
|
.. data:: HORN_2
|
|
.. data:: LASER
|
|
.. data:: MOTOR_IDLE
|
|
.. data:: MOTOR_START
|
|
.. data:: MOTOR_STOP
|
|
.. data:: RATCHET
|
|
.. data:: SONAR
|
|
.. data:: TICK_TACK
|
|
|
|
.. toggle-header::
|
|
:header: **Animal sounds**
|
|
|
|
.. data:: CAT_PURR
|
|
.. data:: DOG_BARK_1
|
|
.. data:: DOG_BARK_2
|
|
.. data:: DOG_GROWL
|
|
.. data:: DOG_SNIFF
|
|
.. data:: DOG_WHINE
|
|
.. data:: ELEPHANT_CALL
|
|
.. data:: INSECT_BUZZ_1
|
|
.. data:: INSECT_BUZZ_2
|
|
.. data:: INSECT_CHIRP
|
|
.. data:: SNAKE_HISS
|
|
.. data:: SNAKE_RATTLE
|
|
.. data:: T_REX_ROAR
|
|
|
|
.. toggle-header::
|
|
:header: **Numbers**
|
|
|
|
.. data:: ZERO
|
|
.. data:: ONE
|
|
.. data:: TWO
|
|
.. data:: THREE
|
|
.. data:: FOUR
|
|
.. data:: FIVE
|
|
.. data:: SIX
|
|
.. data:: SEVEN
|
|
.. data:: EIGHT
|
|
.. data:: NINE
|
|
.. data:: TEN
|
|
|
|
.. toggle-header::
|
|
:header: **System sounds**
|
|
|
|
.. data:: CLICK
|
|
.. data:: CONFIRM
|
|
.. data:: GENERAL_ALERT
|
|
.. data:: OVERPOWER
|
|
.. data:: READY
|
|
|
|
|
|
Fonts
|
|
^^^^^
|
|
|
|
.. autoclass:: pybricks.media.ev3dev.Font
|
|
:no-members:
|
|
|
|
.. autoattribute:: pybricks.media.ev3dev.Font.DEFAULT
|
|
:annotation: = Font('Lucida', 12)
|
|
|
|
.. autoattribute:: pybricks.media.ev3dev.Font.family
|
|
|
|
.. autoattribute:: pybricks.media.ev3dev.Font.style
|
|
|
|
.. autoattribute:: pybricks.media.ev3dev.Font.width
|
|
|
|
.. autoattribute:: pybricks.media.ev3dev.Font.height
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Font.text_width
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Font.text_height
|
|
|
|
|
|
.. tip:: Behind the scenes, Pybricks uses Fontconfig_ for fonts. The Fontconfig
|
|
command line tools can be used to explore available fonts in more
|
|
detail.
|
|
|
|
Example::
|
|
|
|
# List available font families.
|
|
fc-list :scalable=false:dpi=119 family
|
|
# Perform lookup similar to Font.DEFAULT
|
|
fc-match :scalable=false:dpi=119:family=Lucida:size=12
|
|
# Perform lookup similar to Font(size=24,lang=zh-cn)
|
|
fc-match :scalable=false:dpi=119:size=24:lang=zh-cn
|
|
|
|
Pybricks only allows the use of bitmap fonts (``scalable=false``)
|
|
and the screen on the EV3 has 119 pixels per inch (``dpi=119``).
|
|
|
|
.. _FontConfig: https://www.freedesktop.org/wiki/Software/fontconfig/
|
|
|
|
|
|
Image Manipulation
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
Instead of drawing directly on the EV3 screen, you can make and interact
|
|
with image files using the ``Image`` class given below.
|
|
|
|
.. |this image| replace:: this image
|
|
|
|
.. autoclass:: pybricks.media.ev3dev.Image
|
|
:no-members:
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.empty
|
|
|
|
.. rubric:: Drawing text
|
|
|
|
There are two ways to draw text on images. :meth:`draw_text` lets text be
|
|
placed precisely on the image or :meth:`print` can be used to automatically
|
|
print text on a new line.
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.draw_text
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.print
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.set_font
|
|
|
|
|
|
.. rubric:: Drawing images
|
|
|
|
A copy of another image can be drawn on an image. Also consider using
|
|
sub-images to copy part of an image.
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.draw_image
|
|
|
|
|
|
.. rubric:: Drawing shapes
|
|
|
|
These are the methods to draw basic shapes, including points, lines,
|
|
rectangles and circles.
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.draw_pixel
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.draw_line
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.draw_box
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.draw_circle
|
|
|
|
|
|
.. rubric:: Image properties
|
|
|
|
.. autoattribute:: pybricks.media.ev3dev.Image.width
|
|
|
|
.. autoattribute:: pybricks.media.ev3dev.Image.height
|
|
|
|
|
|
.. rubric:: Replacing the entire image
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.clear
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.load_image
|
|
|
|
|
|
.. rubric:: Saving the image
|
|
|
|
.. automethod:: pybricks.media.ev3dev.Image.save
|