Files
pybricks-api/pybricks/parameters.py
T
Laurens Valk 5639d02daf doc: add image and sound file enums
fixes #94

bricks/ev3dev: static sound and image file enums
2019-01-29 11:00:30 +01:00

559 lines
16 KiB
Python

"""Constant parameters/arguments for the Pybricks API."""
from enum import Enum
class Color(Enum):
"""Light or surface color.
.. data:: black
.. data:: blue
.. data:: green
.. data:: yellow
.. data:: red
.. data:: white
.. data:: brown
.. data:: orange
.. data:: purple
"""
black = 1
blue = 2
green = 3
yellow = 4
red = 5
white = 6
brown = 7
orange = 8
purple = 9
class Port(Enum):
"""Port on the EV3 Programmable Brick.
Motor ports:
.. data:: A
.. data:: B
.. data:: C
.. data:: D
Sensor ports:
.. data:: S1
.. data:: S2
.. data:: S3
.. data:: S4
"""
# Generic motor/sensor ports
A = ord('A')
B = ord('B')
C = ord('C')
D = ord('D')
# NXT/EV3 sensor ports
S1 = ord('1')
S2 = ord('2')
S3 = ord('3')
S4 = ord('4')
class Stop(Enum):
"""Action after the motor stops: coast, brake, or hold.
.. data:: coast
Let the motor move freely.
.. data:: brake
Passively resist small external forces.
.. data:: hold
Keep controlling the motor to hold it at the commanded angle. This is only available on motors with encoders.
The stop type defines the resistance to motion after coming to standstill:
+-----------+-------------+------------------------------------------+
|Parameter | Resistance | Physical meaning |
+===========+=============+==========================================+
|Stop.coast | low | Friction |
+-----------+-------------+------------------------------------------+
|Stop.brake | medium | Friction + Torque opposite to motion |
+-----------+-------------+------------------------------------------+
|Stop.hold | high | Friction + Torque to hold commanded angle|
+-----------+-------------+------------------------------------------+
"""
coast = 0
brake = 1
hold = 2
class Direction():
"""Rotational direction for positive speed values: clockwise or counterclockwise.
.. data:: clockwise
A positive speed value should make the motor move clockwise.
.. data:: counterclockwise
A positive speed value should make the motor move counterclockwise.
For all motors, this is defined when looking at the shaft, just like looking at a clock.
For NXT or EV3 motors, make sure to look at the motor with the red/orange shaft to the lower right.
+----------------------------+-------------------+-----------------+
| Parameter | Positive speed | Negative speed |
+============================+===================+=================+
| Direction.clockwise | clockwise | counterclockwise|
+----------------------------+-------------------+-----------------+
| Direction.counterclockwise | counterclockwise | clockwise |
+----------------------------+-------------------+-----------------+
::
Medium EV3 Motor:
counterclockwise clockwise
____ _____
/ \\
/ _____________ \\
/ / \ \\
| | _ | |
| | __| |__ | |
v | |__ o __| | v
| |_| |
| |
\______________/
Large EV3 motor:
________
/ \ ___ ___
_| \ / \\
| ----/------ \\
counterclockwise | __\__ | clockwise
\__________ v / \ v
-------| + |
\_____/
"""
clockwise = 0
counterclockwise = 1
class Button(Enum):
"""Buttons on a brick or remote:
.. data:: left_down
.. data:: down
.. data:: right_down
.. data:: left
.. data:: center
.. data:: right
.. data:: left_up
.. data:: up
.. data:: beacon
.. data:: right_up
+-----------+----------+-----------+
| | | |
| left_up |up/beacon | right_up |
| | | |
+-----------+----------+-----------+
| | | |
| left | center | right |
| | | |
+-----------+----------+-----------+
| | | |
| left_down | down | right_down|
| | | |
+-----------+----------+-----------+
"""
left_down = 1
down = 2
right_down = 3
left = 4
center = 5
right = 6
left_up = 7
up = 8
beacon = 8
right_up = 9
class Align():
"""Alignment of an image on the display.
.. data:: bottom_left
.. data:: bottom
.. data:: bottom_right
.. data:: left
.. data:: center
.. data:: right
.. data:: top_left
.. data:: top
.. data:: top_right
"""
bottom_left = 1
bottom = 2
bottom_right = 3
left = 4
center = 5
right = 6
top_left = 7
top = 8
top_right = 9
class Sound():
"""Paths to standard EV3 sounds.
Expressions
.. data:: shouting
.. data:: cheering
.. data:: crying
.. data:: ouch
.. data:: laughing_2
.. data:: sneezing
.. data:: smack
.. data:: boing
.. data:: boo
.. data:: uh_oh
.. data:: snoring
.. data:: kung_fu
.. data:: fanfare
.. data:: crunching
.. data:: magic_wand
.. data:: laughing_1
Information
.. data:: left
.. data:: backwards
.. data:: right
.. data:: object
.. data:: color
.. data:: flashing
.. data:: error
.. data:: error_alarm
.. data:: down
.. data:: forward
.. data:: activate
.. data:: searching
.. data:: touch
.. data:: up
.. data:: analyze
.. data:: stop
.. data:: detected
.. data:: turn
.. data:: start
Communication
.. data:: morning
.. data:: ev3
.. data:: go
.. data:: good_job
.. data:: okey_dokey
.. data:: good
.. data:: no
.. data:: thank_you
.. data:: yes
.. data:: game_over
.. data:: okay
.. data:: sorry
.. data:: bravo
.. data:: goodbye
.. data:: hi
.. data:: hello
.. data:: mindstorms
.. data:: lego
.. data:: fantastic
Movements
.. data:: speed_idle
.. data:: speed_down
.. data:: speed_up
Color
.. data:: brown
.. data:: green
.. data:: black
.. data:: white
.. data:: red
.. data:: blue
.. data:: yellow
Mechanical
.. data:: tick_tack
.. data:: horn_1
.. data:: backing_alert
.. data:: motor_idle
.. data:: air_release
.. data:: airbrake
.. data:: ratchet
.. data:: motor_stop
.. data:: horn_2
.. data:: laser
.. data:: sonar
.. data:: motor_start
Animals
.. data:: insect_buzz_2
.. data:: elephant_call
.. data:: snake_hiss
.. data:: dog_bark_2
.. data:: dog_whine
.. data:: insect_buzz_1
.. data:: dog_sniff
.. data:: t_rex_roar
.. data:: insect_chirp
.. data:: dog_growl
.. data:: snake_rattle
.. data:: dog_bark_1
.. data:: cat_purr
Numbers
.. data:: zero
.. data:: one
.. data:: two
.. data:: three
.. data:: four
.. data:: five
.. data:: six
.. data:: seven
.. data:: eight
.. data:: nine
.. data:: ten
System
.. data:: ready
.. data:: confirm
.. data:: general_alert
.. data:: click
.. data:: overpower
"""
_basepath = '/usr/share/sounds/ev3dev/'
shouting = _basepath + 'expressions/shouting.wav'
cheering = _basepath + 'expressions/cheering.wav'
crying = _basepath + 'expressions/crying.wav'
ouch = _basepath + 'expressions/ouch.wav'
laughing_2 = _basepath + 'expressions/laughing_2.wav'
sneezing = _basepath + 'expressions/sneezing.wav'
smack = _basepath + 'expressions/smack.wav'
boing = _basepath + 'expressions/boing.wav'
boo = _basepath + 'expressions/boo.wav'
uh_oh = _basepath + 'expressions/uh-oh.wav'
snoring = _basepath + 'expressions/snoring.wav'
kung_fu = _basepath + 'expressions/kung_fu.wav'
fanfare = _basepath + 'expressions/fanfare.wav'
crunching = _basepath + 'expressions/crunching.wav'
magic_wand = _basepath + 'expressions/magic_wand.wav'
laughing_1 = _basepath + 'expressions/laughing_1.wav'
left = _basepath + 'information/left.wav'
backwards = _basepath + 'information/backwards.wav'
right = _basepath + 'information/right.wav'
object = _basepath + 'information/object.wav'
color = _basepath + 'information/color.wav'
flashing = _basepath + 'information/flashing.wav'
error = _basepath + 'information/error.wav'
error_alarm = _basepath + 'information/error_alarm.wav'
down = _basepath + 'information/down.wav'
forward = _basepath + 'information/forward.wav'
activate = _basepath + 'information/activate.wav'
searching = _basepath + 'information/searching.wav'
touch = _basepath + 'information/touch.wav'
up = _basepath + 'information/up.wav'
analyze = _basepath + 'information/analyze.wav'
stop = _basepath + 'information/stop.wav'
detected = _basepath + 'information/detected.wav'
turn = _basepath + 'information/turn.wav'
start = _basepath + 'information/start.wav'
morning = _basepath + 'communication/morning.wav'
ev3 = _basepath + 'communication/ev3.wav'
go = _basepath + 'communication/go.wav'
good_job = _basepath + 'communication/good_job.wav'
okey_dokey = _basepath + 'communication/okey-dokey.wav'
good = _basepath + 'communication/good.wav'
no = _basepath + 'communication/no.wav'
thank_you = _basepath + 'communication/thank_you.wav'
yes = _basepath + 'communication/yes.wav'
game_over = _basepath + 'communication/game_over.wav'
okay = _basepath + 'communication/okay.wav'
sorry = _basepath + 'communication/sorry.wav'
bravo = _basepath + 'communication/bravo.wav'
goodbye = _basepath + 'communication/goodbye.wav'
hi = _basepath + 'communication/hi.wav'
hello = _basepath + 'communication/hello.wav'
mindstorms = _basepath + 'communication/mindstorms.wav'
lego = _basepath + 'communication/lego.wav'
fantastic = _basepath + 'communication/fantastic.wav'
speed_idle = _basepath + 'movements/speed_idle.wav'
speed_down = _basepath + 'movements/speed_down.wav'
speed_up = _basepath + 'movements/speed_up.wav'
brown = _basepath + 'colors/brown.wav'
green = _basepath + 'colors/green.wav'
black = _basepath + 'colors/black.wav'
white = _basepath + 'colors/white.wav'
red = _basepath + 'colors/red.wav'
blue = _basepath + 'colors/blue.wav'
yellow = _basepath + 'colors/yellow.wav'
tick_tack = _basepath + 'mechanical/tick_tack.wav'
horn_1 = _basepath + 'mechanical/horn_1.wav'
backing_alert = _basepath + 'mechanical/backing_alert.wav'
motor_idle = _basepath + 'mechanical/motor_idle.wav'
air_release = _basepath + 'mechanical/air_release.wav'
airbrake = _basepath + 'mechanical/airbrake.wav'
ratchet = _basepath + 'mechanical/ratchet.wav'
motor_stop = _basepath + 'mechanical/motor_stop.wav'
horn_2 = _basepath + 'mechanical/horn_2.wav'
laser = _basepath + 'mechanical/laser.wav'
sonar = _basepath + 'mechanical/sonar.wav'
motor_start = _basepath + 'mechanical/motor_start.wav'
insect_buzz_2 = _basepath + 'animals/insect_buzz_2.wav'
elephant_call = _basepath + 'animals/elephant_call.wav'
snake_hiss = _basepath + 'animals/snake_hiss.wav'
dog_bark_2 = _basepath + 'animals/dog_bark_2.wav'
dog_whine = _basepath + 'animals/dog_whine.wav'
insect_buzz_1 = _basepath + 'animals/insect_buzz_1.wav'
dog_sniff = _basepath + 'animals/dog_sniff.wav'
t_rex_roar = _basepath + 'animals/t-rex_roar.wav'
insect_chirp = _basepath + 'animals/insect_chirp.wav'
dog_growl = _basepath + 'animals/dog_growl.wav'
snake_rattle = _basepath + 'animals/snake_rattle.wav'
dog_bark_1 = _basepath + 'animals/dog_bark_1.wav'
cat_purr = _basepath + 'animals/cat_purr.wav'
eight = _basepath + 'numbers/eight.wav'
seven = _basepath + 'numbers/seven.wav'
six = _basepath + 'numbers/six.wav'
four = _basepath + 'numbers/four.wav'
ten = _basepath + 'numbers/ten.wav'
one = _basepath + 'numbers/one.wav'
two = _basepath + 'numbers/two.wav'
three = _basepath + 'numbers/three.wav'
zero = _basepath + 'numbers/zero.wav'
five = _basepath + 'numbers/five.wav'
nine = _basepath + 'numbers/nine.wav'
ready = _basepath + 'system/ready.wav'
confirm = _basepath + 'system/confirm.wav'
general_alert = _basepath + 'system/general_alert.wav'
click = _basepath + 'system/click.wav'
overpower = _basepath + 'system/overpower.wav'
class Image():
"""Paths to standard EV3 images.
Information
.. data:: right
.. data:: forward
.. data:: accept
.. data:: question_mark
.. data:: stop_1
.. data:: left
.. data:: decline
.. data:: thumbs_down
.. data:: backward
.. data:: no_go
.. data:: warning
.. data:: stop_2
.. data:: thumbs_up
LEGO
.. data:: ev3
.. data:: ev3_icon
Objects
.. data:: target
Eyes
.. data:: bottom_right
.. data:: bottom_left
.. data:: evil
.. data:: crazy_2
.. data:: knocked_out
.. data:: pinched_right
.. data:: winking
.. data:: dizzy
.. data:: down
.. data:: tired_middle
.. data:: middle_right
.. data:: sleeping
.. data:: middle_left
.. data:: tired_right
.. data:: pinched_left
.. data:: pinched_middle
.. data:: crazy_1
.. data:: neutral
.. data:: awake
.. data:: up
.. data:: tired_left
.. data:: angry
"""
_basepath = '/usr/share/images/ev3dev/mono/'
right = _basepath + 'information/right.png'
forward = _basepath + 'information/forward.png'
accept = _basepath + 'information/accept.png'
question_mark = _basepath + 'information/question_mark.png'
stop_1 = _basepath + 'information/stop_1.png'
left = _basepath + 'information/left.png'
decline = _basepath + 'information/decline.png'
thumbs_down = _basepath + 'information/thumbs_down.png'
backward = _basepath + 'information/backward.png'
no_go = _basepath + 'information/no_go.png'
warning = _basepath + 'information/warning.png'
stop_2 = _basepath + 'information/stop_2.png'
thumbs_up = _basepath + 'information/thumbs_up.png'
ev3 = _basepath + 'lego/ev3.png'
ev3_icon = _basepath + 'lego/ev3_icon.png'
target = _basepath + 'objects/target.png'
bottom_right = _basepath + 'eyes/bottom_right.png'
bottom_left = _basepath + 'eyes/bottom_left.png'
evil = _basepath + 'eyes/evil.png'
crazy_2 = _basepath + 'eyes/crazy_2.png'
knocked_out = _basepath + 'eyes/knocked_out.png'
pinched_right = _basepath + 'eyes/pinched_right.png'
winking = _basepath + 'eyes/winking.png'
dizzy = _basepath + 'eyes/dizzy.png'
down = _basepath + 'eyes/down.png'
tired_middle = _basepath + 'eyes/tired_middle.png'
middle_right = _basepath + 'eyes/middle_right.png'
sleeping = _basepath + 'eyes/sleeping.png'
middle_left = _basepath + 'eyes/middle_left.png'
tired_right = _basepath + 'eyes/tired_right.png'
pinched_left = _basepath + 'eyes/pinched_left.png'
pinched_middle = _basepath + 'eyes/pinched_middle.png'
crazy_1 = _basepath + 'eyes/crazy_1.png'
neutral = _basepath + 'eyes/neutral.png'
awake = _basepath + 'eyes/awake.png'
up = _basepath + 'eyes/up.png'
tired_left = _basepath + 'eyes/tired_left.png'
angry = _basepath + 'eyes/angry.png'