Som#

Introdução#

O controlador de drone VEX AIR 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 disponíveis:

Ações - Reproduzir e Parar Sons

  • play — Reproduz um som integrado a partir de uma lista predefinida.

  • play_file — Reproduz um som carregado pelo utilizador.

  • play_note — Toca uma nota musical com a altura, oitava e duração especificadas.

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

Getters - Obter o estado dos sons

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

Ações#

play#

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

Utilização:

controller.sound.play(sound, volume)

Parâmetro

Descrição

sound

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

volume

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

Sons integrados

Reproduzir som

SUCCESS

FAULT

SENSING

DETECTED

OBSTACLE

LOOPING

COMPLETE

PAUSE

RESUME

SEND

RECEIVE

# Play the looping sound.
controller.sound.play(LOOPING)

# Play the looping sound at full volume.
controller.sound.play(LOOPING, 100)

# Play the looping sound. 
# Wait until the sound is finished before taking off.
controller.sound.play(LOOPING)
while controller.sound.is_active():
    wait(50, MSEC)
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()

play_file#

O comando play_file reproduz um som personalizado carregado pelo utilizador numa percentagem de volume especificada. Como este é um método que não requer espera, o drone reproduz o som personalizado e passa para o comando seguinte sem esperar que este termine.

Utilização:

controller.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 AIR.

volume

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

# Upload a sound file in VEXcode.
# Play the custom sound.
controller.sound.play_file(SOUND1)

# Upload a sound file in VEXcode.
# Play the custom sound at full volume.
controller.sound.play_file(SOUND1, 100)

# Play the custom sound sound. 
# Wait until the sound is finished before taking off.
controller.sound.play_file(SOUND1)
while controller.sound.is_active():
    wait(50, MSEC)
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()

play_note#

play_note toca uma nota específica durante uma duração específica. Como este é um método sem espera, o drone toca a nota específica e passa para o comando seguinte sem esperar que este termine.

Utilização:

controller.sound.play_note(note, duration, 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.

duration

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

volume

Opcional. O volume da nota, como um número inteiro de 0% a 100%. O predefinido é 50%.

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

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

# Play a short tune.
controller.sound.play_note("C5", 1000)
while controller.sound.is_active():
    wait(50, MSEC)
controller.sound.play_note("D5", 1000)
while controller.sound.is_active():
    wait(50, MSEC)
controller.sound.play_note("E5", 250)
while controller.sound.is_active():
    wait(50, MSEC)

stop#

stop interrompe o som que está a ser reproduzido.

Utilização:

controller.sound.stop()

Parâmetros

Descrição

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

# Upload a sound 10 seconds or greater in VEXcode.
# Stop the sound while it is playing.
controller.sound.play_file(SOUND1)
wait(6, SECONDS)
controller.sound.stop()

Getters#

is_active#

is_active devolve um valor booleano indicando se o drone está a reproduzir um som no momento.

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

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

Usage:
controller.sound.is_active()

Parâmetros

Descrição

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

# Display text once a sound starts playing
controller.sound.play(LOOPING)
while not controller.sound.is_active():
    wait(50, MSEC)
print("I hear the sound!")