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:
|
# 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 |
|---|---|
|
O valor do cabeçalho a definir. |
|
Opcional. A unidade utilizada para representar o novo valor de rotação:
|
# 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 |
|---|---|
|
Opcional. A unidade utilizada para representar o rumo:
|
# 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 |
|---|---|
|
Opcional. A unidade utilizada para representar a rotação:
|
# 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 |
|---|---|
|
Opcional. A unidade utilizada para representar a taxa giroscópica:
|
# 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 |
|---|---|
|
A função de retorno de chamada a ser invocada quando a direção do sensor giroscópio muda. |
|
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 |
|---|---|
|
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)