Som#

Introdução#

O robô de programação VEX AIM permite aos utilizadores reproduzir sons integrados, ficheiros de áudio personalizados e notas musicais. Também inclui controlos para interromper os sons e detetar se o áudio está a ser reproduzido.

Segue-se uma lista de todos os métodos:

Ações — Reproduzir ou parar sons.

  • play — Reproduz um efeito sonoro integrado.

  • play_file — Reproduz um som personalizado carregado pelo utilizador.

  • play_note — Toca uma nota musical durante uma duração definida.

  • stop — Interrompe qualquer som que esteja a ser reproduzido no momento.

Getter — Verificar o estado do som.

  • is_active — Retorna se um som está a ser reproduzido no momento.

Ações#

play#

play reproduz um dos sons integrados do robô numa percentagem de volume especificada. Como este é um método sem espera, o robô reproduz o som integrado e passa para o comando seguinte sem esperar que este termine.

Utilização:

robot.sound.play(sound, volume)

Parâmetro

Descrição

sound

Uma das opções de som integradas listadas abaixo.

volume

Opcional. O volume do som, num número inteiro de 0% a 100%. O predefinido é 50%.

Sons integrados

Reproduzir som

ACT_ANGRY

ACT_EXCITED

ACT_HAPPY

ACT_SAD

ACT_SILLY

BLINKER

BRAKES

CHEER

CHIRP

COMPLETE

CRASH

DETECTED

DOORBELL

FAIL

FLOURISH

HUAH

LOOPING

MOVE_FORWARD

MOVE_REVERSE

OBSTACLE

PAUSE

PICKUP

RECEIVE

RESUME

SENSING

SEND

SPARKLE

TADA

TURN_LEFT

TURN_RIGHT

# Play cheer
robot.sound.play(CHEER)

# Play cheer at full volume
robot.sound.play(CHEER, 100)

# Wait until sound is finished to move
robot.sound.play(ACT_HAPPY)
while robot.sound.is_active():
    wait(50, MSEC)
robot.turn_to(180)

play_file#

O comando play_file reproduz um som personalizado enviado pelo utilizador. Como este é um método sem espera, o robô reproduz o som personalizado e passa para o comando seguinte sem esperar que este termine.

Utilização:

robot.sound.play_file(file, volume)

Parâmetro

Descrição

file

Um dos ficheiros de som personalizados enviados pelo utilizador, de SOUND1 a SOUND10O número do som corresponde ao número apresentado no painel de controlo do AIM.

volume

Opcional. O volume do som, num número inteiro de 0% a 100%. O predefinido é 50%.

# Play an uploaded sound
robot.sound.play_file(SOUND1)

# Play an uploaded sound at full volume
robot.sound.play_file(SOUND1, 100)

# Wait until sound is finished to move
robot.sound.play_file(SOUND1)
while robot.sound.is_active():
    wait(50, MSEC)
robot.turn_to(180)

play_note#

play_note reproduz uma nota específica durante uma duração específica em milissegundos. Como este é um método sem espera, o robô toca na nota específica e passa para o comando seguinte sem esperar que este termine.

Utilização:

robot.sound.play_note(note, length, volume)

Parâmetro

Descrição

note

A altura musical a tocar, escrita como uma sequência de notas (ex.: C5, A#6). As notas válidas são A até G (com a opção # para sustenidos) nas oitavas de 5 a 8.

length

A duração da nota, expressa como um número inteiro em milissegundos.

volume

Opcional. O volume do som, num número inteiro de 0% a 100%. O predefinido é 50%.

# Play C5 for 2 seconds
robot.sound.play_note("C5", 2000)

# Play C5 for 2 seconds at full volume
robot.sound.play_note("C5", 2000, 100)

# Wait until note is finished to move
robot.sound.play_note("C6", 1000)
while robot.sound.is_active():
    wait(50, MSEC)
robot.turn_to(180)

stop#

stop interrompe o som que está a ser reproduzido.

Utilização:

robot.sound.stop()

Parâmetros

Descrição

Este método não tem parâmetros.

# Cut a sound off after 1 second
robot.sound.play(ACT_SILLY)
wait(1, SECONDS)
robot.sound.stop()

Getters#

is_active#

is_active devolve um valor booleano indicando se um som está a ser reproduzido no momento.

  • True — Um som está a ser reproduzido no momento

  • False — Não está a ser reproduzido nenhum som

Utilização:

robot.sound.is_active()

Parâmetros

Descrição

Este método não tem parâmetros.

# Play tada after cheer finishes
robot.sound.play(CHEER)   
while robot.sound.is_active():
    wait(10, MSEC)
robot.sound.play(TADA)