Giroscópio#

Introdução#

O sensor giroscópico é um sensor de movimento que deteta a rotação em torno de um único eixo. Pode medir o quanto o robô rodou, permitindo rastrear a sua orientação e direção.

Esta página utiliza drivetrain_gyro como exemplo do nome do sensor giroscópio. Substitua-o pelo nome que configurou, se necessário.

Segue-se uma lista de todos os métodos disponíveis:

Ações — Calibre ou ajuste a direção e a rotação do sensor giroscópico.

  • calibrate — Calibra o sensor giroscópio para um seguimento estável da direção.

  • set_heading — Define a direção do sensor giroscópio para um valor especificado.

  • set_rotation — Define o valor de rotação do sensor giroscópio.

  • reset_heading — Define a direção do sensor giroscópio para 0.

  • reset_rotation — Define a rotação do sensor giroscópio para 0.

Receptores — Leia a direção, a rotação e o estado do sensor giroscópio.

  • heading — Retorna o cabeçalho actual.

  • rotation — Devolve a rotação cumulativa.

  • rate — Devolve a velocidade angular em torno do eixo x, y ou z.

  • is_calibrating — Retorna se o sensor giroscópio está a calibrar ou não.

  • installed — Retorna se um sensor giroscópio está ligado ao cérebro.

Callback — Executa o código quando o sensor giroscópio deteta movimento ou alteração.

  • changed — Regista uma função para chamar quando o sensor giroscópio detecta alteração.

Construtores — Inicialize e configure manualmente um sensor giroscópio.

  • Gyro — Cria um sensor giroscópio.

Ações#

calibrate#

O comando calibrate . Todas as linhas subsequentes aguardarão a conclusão da calibração antes de serem executadas. A calibração é um procedimento interno que mede e compensa o ruído e a deriva do sensor durante um período específico. Durante este período, o sensor giroscópio deve permanecer completamente imóvel (ou seja, sobre uma superfície estável, sem qualquer movimento externo). Qualquer movimento durante a calibração produzirá resultados imprecisos.

Usage:
calibrate()

Parâmetro

Descrição

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

# Start Gyro Sensor calibration
drivetrain_gyro.calibrate()
# Print after calibration
while drivetrain_gyro.is_calibrating():
    wait(0.1, SECONDS)
brain.screen.print("Done!")

set_heading#

set_heading define a direcção do sensor giroscópio para um valor específico.

Usage:
set_heading(value, units)

Parâmetros

Descrição

valor

O valor do cabeçalho a definir.

unidades

Opcional. A unidade utilizada para representar o novo rumo:

  • DEGREES (padrão)
  • TURNS
# Turn the robot around
drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)

set_rotation#

set_rotation define a rotação do sensor giroscópio para um valor específico.

Usage:
set_rotation(value, units)

Parâmetros

Descrição

value

O valor do cabeçalho a definir.

units

Opcional. A unidade utilizada para representar o novo valor de rotação:

  • DEGREES (padrão)
  • TURNS
# Turn the robot around
drivetrain_gyro.set_rotation(-180)
drivetrain.turn_to_rotation(0)

reset_heading#

reset_heading reinicia a direção do sensor giroscópio para 0.

Usage:
reset_heading()

Parâmetros

Descrição

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

# Turn the robot before and after resetting the heading
drivetrain.turn_to_heading(90, DEGREES)
wait(0.5,SECONDS)
drivetrain_gyro.reset_heading()
drivetrain.turn_to_heading(90, DEGREES)

reset_rotation#

reset_rotation reinicia a rotação do sensor giroscópio para 0.

Usage:
reset_rotation()

Parâmetros

Descrição

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

# Turn the robot before and after resetting the rotation
drivetrain.turn_to_rotation(-90, DEGREES)
wait(0.5,SECONDS)
drivetrain_gyro.reset_rotation()
drivetrain.turn_to_rotation(-90, DEGREES)

Getters#

heading#

heading devolve o rumo actual do sensor giroscópico.

Usage:
heading(units)

Parâmetros

Descrição

units

Opcional. A unidade utilizada para representar o rumo:

  • DEGREES (padrão)
  • TURNS
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.heading())

rotation#

rotation returns the current rotation of the Gyro Sensor.

Usage:
rotation(units)

Parâmetros

Descrição

units

Opcional. A unidade utilizada para representar a rotação:

  • DEGREES (padrão)
  • TURNS
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(drivetrain_gyro.rotation())

rate#

A taxa rate do sensor giroscópico nas unidades especificadas.

Usage:
rate(units)

Parâmetros

Descrição

units

Opcional. A unidade utilizada para representar a taxa giroscópica:

  • DPS (padrão)
  • RPM
  • PERCENT
# Display the rate of change of 
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(drivetrain_gyro.rate())
drivetrain.stop()

is_calibrating#

is_calibrating verifica se o sensor giroscópio está a ser calibrado no momento.

  • True — O sensor giroscópio está a calibrar.

  • False — O sensor giroscópio não está a calibrar.

Usage:
is_calibrating()

Parâmetro

Descrição

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

# Start Gyro Sensor calibration.
drivetrain_gyro.calibrate()
# Print after calibration
while drivetrain_gyro.is_calibrating():
    wait(0.1, SECONDS)
brain.screen.print("Done!")

installed#

O valor installed devolve um valor booleano indicando se o sensor giroscópio está ligado ao cérebro.

  • True — O sensor giroscópio está ligado ao cérebro.

  • False — O sensor giroscópio não está ligado ao cérebro.

Usage:
installed()

Parâmetros

Descrição

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

# Display a message if the Gyro Sensor is
# installed.
if drivetrain_gyro.installed():
    brain.screen.print("Installed!")

Ligar de volta#

changed#

changed regista uma função de retorno de chamada para quando a direção do sensor giroscópio muda.

Usage:
changed(callback, arg)

Parâmetros

Descrição

callback

A função de retorno de chamada a ser invocada quando a direção do sensor giroscópio muda.

arg

Opcional. Uma tupla de argumentos a serem passados ​​à função de callback.

def gyro_changed():
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)
    brain.screen.print("Heading: ")
    brain.screen.print(drivetrain_gyro.heading()) 
# Display the heading when the gyro detects a change
drivetrain.turn_for(RIGHT, 90, DEGREES, wait=False)
drivetrain_gyro.changed(gyro_changed)

Construtores#

Os construtores são utilizados para criar manualmente Gyro , que são necessários para configurar um sensor giroscópio fora do VEXcode.

Gyro#

Gyro cria um sensor giroscópio.

Usage:
Gyro(smartport)

Parâmetro

Descrição

smartport

A porta inteligente à qual o sensor giroscópio está ligado é representada por PORTx, onde x é o número da porta.

# Create the Brain
brain = Brain()
# When constructing Gyro Sensor "drivetrain_gyro" with a 
# SmartDrive "drivetrain"
drivetrain_gyro = Gyro(Ports.PORT1)
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, drivetrain_gyro, 200)

drivetrain_gyro.set_heading(180)
drivetrain.turn_to_heading(0)