Transmissão#

Introdução#

O robô VEX V5 utiliza um sistema de transmissão para se deslocar e rodar. Um sistema de transmissão é composto por motores e rodas que trabalham em conjunto para movimentar o robô.

Um sistema de transmissão configurado pode utilizar um Sensor Inercial, Sensor GPS, Sensor Giroscópio ou nenhum sensor. Quando é utilizado um sensor, o sistema de transmissão utiliza-o para ajudar o robô a mover-se e a rodar com precisão. No início de cada projeto, o sistema de transmissão calibra o sensor automaticamente. Mantenha o robô imóvel durante a calibração para que se possa mover e rodar corretamente.

Existem várias formas de codificar o sistema de transmissão. Esta página utiliza drivetrain como exemplo de um nome do sistema de transmissão. Substitua-o pelo nome que configurou, conforme necessário.

Abaixo segue uma lista de todos os métodos de transmissão:

Ações — Mova e rode o robô.

  • drive — Move o robô para a frente ou para trás indefinidamente.

  • drive_for — Move o robô para a frente ou para trás uma distância específica.

  • turn — Vira o robô para a esquerda ou para a direita para sempre.

  • turn_for — Roda o robô para a esquerda ou para a direita de um número específico de graus.

  • turn_to_heading — Roda o robô para enfrentar uma direção específica de -359 a 359 graus. O robô irá rodar na direção mais curta para alcançar a direção alvo.

  • turn_to_rotation — Roda o robô para uma rotação específica.

  • stop — Interrompe o movimento do robô.

  • calibrate_drivetrain – Calibra o sensor configurado com o grupo motopropulsor.

Mutadores — Ajustam as definições da transmissão.

  • set_drive_velocity — Indica ao robô a que velocidade deve conduzir.

  • set_turn_velocity — Indica ao robô a velocidade a que deve virar.

  • set_stopping — Indica como o robô irá parar de se mover: travando, deslizando ou parando.

  • set_timeout — Define quantos segundos o robô tentará terminar um movimento.

  • set_heading — Altera a direção atual do robô para uma nova direção.

  • set_rotation — Altera a rotação atual do robô para uma nova rotação.

  • set_turn_threshold – Indica o quão perto o robô deve chegar de um ângulo alvo antes de uma curva ser completada.

  • set_turn_constant – Altera a intensidade com que o robô corrige as suas curvas.

  • set_turn_direction_reverse – Altera se o sentido de rotação do grupo motopropulsor inteligente é invertido.

Getters — Verifique o estado da transmissão.

  • is_done — Retorna se o robô terminou de se mover, como um valor booleano.

  • is_moving — Retorna se o robô se está a mover, como um valor booleano.

  • heading — Devolve a direção atual do robô de 0 a 359,99 graus.

  • rotation — Retorna a rotação atual do robô.

  • velocity — Devolve a velocidade de deslocação do robô.

  • current — Devolve a quantidade de corrente elétrica que o grupo motopropulsor está a utilizar.

  • power — Devolve a rapidez com que o grupo motopropulsor está a utilizar energia.

  • torque — Devolve a quantidade de binário que a transmissão está a utilizar.

  • efficiency — Devolve a eficiência com que o grupo motopropulsor está a utilizar energia.

  • temperature — Devolve a temperatura da transmissão.

  • get_timeout – Retorna a configuração de tempo limite atual.

Construtores – Criar e configurar manualmente o sistema de transmissão.

Ações#

drive#

A entrada drive com que o robô se mova para a frente ou para trás indefinidamente. O robô continuará a mover-se até receber outra ação, como virar-se ou parar. Para RPM ou graus por segundo, o limite é alterado pela relação de transmissão do sistema de acionamento.

Usage:
drivetrain.drive(direction, velocity, units)

Parâmetros

Descrição

direction

A direção em que o robô se move: FORWARD ou REVERSE.

velocity

Opcional. A velocidade de accionamento varia de 0% a 100% quando se utiliza PERCENT, de 0 a 600 rpm quando se utiliza RPMou de 0 a 3600 graus por segundo quando se utiliza VelocityUnits.DPSPode ser um número inteiro integer floatfloat. Se não for fornecida qualquer velocidade, o robô move-se à velocidade de acionamento atual.

units

Opcional. A unidade de velocidade: RPM (rotações por minuto, padrão), PERCENTou VelocityUnits.DPS (graus por segundo).

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

# Drive forward at 360 degrees per second
drivetrain.drive(FORWARD, 360.0, VelocityUnits.DPS)

drive_for#

O comando drive_for move o robô para a frente ou para trás por uma distância específica. O projeto aguardará até que o robô termine de se mover antes de executar a próxima linha de código. Para RPM ou graus por segundo, o limite é alterado pela relação de transmissão do sistema de tração.

Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)

Parâmetros

Descrição

direction

A direção em que o robô se move: FORWARD ou REVERSE.

distance

A distância percorrida pelo robô. Pode ser um número inteiro integer ou decimal (float).

units

Opcional. A unidade de distância: INCHES (padrão) ou MM (milímetros).

velocity

Opcional. A velocidade de accionamento varia de 0% a 100% quando se utiliza PERCENT, de 0 a 600 rpm quando se utiliza RPMou de 0 a 3600 graus por segundo quando se utiliza VelocityUnits.DPSPode ser um número inteiro integer floatfloat. Se não for fornecida qualquer velocidade, o robô move-se à velocidade de acionamento atual.

units_v

Opcional. A unidade de velocidade: RPM (rotações por minuto, padrão), PERCENTou VelocityUnits.DPS (graus por segundo).

wait

Opcional. wait=True (padrão) faz com que o projeto aguarde até que o robô termine de se mover antes de executar a próxima linha de código. wait=False faz com que a próxima linha de código seja executada imediatamente.

# Drive forwards and backwards
drivetrain.drive_for(FORWARD, 5)
wait(1, SECONDS)
drivetrain.drive_for(REVERSE, 5)

turn#

turn faz com que o robô gire para a esquerda ou para a direita indefinidamente. O robô continuará a rodar até receber outra ação, como conduzir ou parar. Para RPM ou graus por segundo, o limite é alterado pela relação de transmissão do sistema de tração.

Usage:
drivetrain.turn(direction, velocity, units)

Parâmetros

Descrição

direction

Direção para a qual o robô vira: LEFT ou RIGHT.

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units

Opcional. A unidade de velocidade: RPM (rotações por minuto, padrão), PERCENTou VelocityUnits.DPS (graus por segundo).

# Turn right, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.stop()

turn_for#

O comando turn_for roda o robô para a esquerda ou para a direita num número específico de graus. A rotação é relativa à posição atual do robô. O projeto aguardará até que o robô termine de rodar antes de executar a próxima linha de código. Para RPM ou graus por segundo, o limite é alterado pela relação de transmissão do sistema de tração.

Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)

Parâmetros

Descrição

direction

Direção para a qual o robô vira: LEFT ou RIGHT.

angle

O número de graus que o robô roda. Pode ser um número inteiro integer ou decimal (float).

units

Opcional. A unidade de rotação: DEGREES (padrão) ou TURNSUma volta equivale a 360 graus.

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

Opcional. A unidade de velocidade: RPM (rotações por minuto, padrão), PERCENTou VelocityUnits.DPS (graus por segundo).

wait

Opcional. wait=True (padrão) faz com que o projeto aguarde até que o robô termine de rodar antes de executar a próxima linha de código. wait=False faz com que a próxima linha de código seja executada imediatamente.

# Turn left, then turn around to the right
drivetrain.turn_for(LEFT, 90)
drivetrain.turn_for(RIGHT, 180)

turn_to_heading#

A direção é a direção para a qual o robô está virado, medida em graus. turn_to_heading roda o robô de modo a ficar virado para uma direção específica de -359 a 359 graus. O robô irá rodar na direção mais curta para alcançar a direção desejada.

A direção inicial do robô é de 0 graus.

O projeto aguardará até que o robô termine de rodar antes de executar a próxima linha de código.

Nota: Esta função só está disponível se o sistema de transmissão estiver configurado com um Sensor Inercial, Sensor GPS ou Sensor Giroscópio na janela Dispositivos.

Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)

Parâmetros

Descrição

angle

A direção para a qual o robô deve estar virado, em graus. Pode ser um número inteiro integer ou um número de ponto flutuante (float), de -359 a 359.

units

Opcional. Unidade de medida do cabeçalho: DEGREES (padrão).

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

Opcional. A unidade de velocidade: RPM (rotações por minuto, padrão), PERCENTou VelocityUnits.DPS (graus por segundo).

wait

Opcional. wait=True (padrão) faz com que o projeto aguarde até que o robô termine de rodar antes de executar a próxima linha de código. wait=False faz com que a próxima linha de código seja executada imediatamente.

# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)

# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)

turn_to_rotation#

turn_to_rotation roda o robô para uma rotação específica.

A rotação é o quanto o robô rodou, medida em graus. No início de um projeto, o valor de rotação é definido como 0 graus. A rotação também pode ser definida através do método set_rotation.

Os valores de rotação são absolutos. Isto significa que a direção da viragem depende da rotação atual do robô. Virar para a direita aumenta a rotação, e virar para a esquerda diminui a rotação.

Por exemplo, se o robô começar a 0 graus e rodar 720 graus, este irá virar para a direita duas vezes. Se depois rodar 360 graus, virará para a esquerda uma vez, porque 360 ​​é inferior a 720.

O projeto aguardará até que o robô termine de rodar antes de executar a próxima linha de código.

Nota: Este método só está disponível se o sistema de transmissão estiver configurado com um Sensor Inercial, Sensor GPS ou Sensor Giroscópio na janela Dispositivos.

Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)

Parâmetros

Descrição

angle

O valor de rotação, em graus ou voltas, para o qual o robô irá rodar. Pode ser um número inteiro integer ou decimal (float).

units

Opcional. A unidade de rotação: DEGREES (padrão) ou TURNSUma volta equivale a 360 graus.

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

Opcional. A unidade de velocidade: RPM (rotações por minuto, padrão), PERCENTou VelocityUnits.DPS (graus por segundo).

wait

Opcional. wait=True (padrão) faz com que o projeto aguarde até que o robô termine de rodar antes de executar a próxima linha de código. wait=False faz com que a próxima linha de código seja executada imediatamente.

# Turn left, then spin in a circle clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)

# Turn left then slowly spin in a circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)

stop#

stop interrompe o movimento do robô.

Usage:
drivetrain.stop(mode)

Parâmetros

Descrição

mode

Opcional. Como o robot irá parar: BRAKE (padrão), BRAKEou COAST

  • COAST — Pára imediatamente.
  • HOLD — Diminui a velocidade até parar.
  • HOLD — Pára imediatamente e mantém a posição das rodas.

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

calibrate_drivetrain#

calibrate_drivetrain é uma função integrada que calibra o Sensor Inercial, Sensor GPS ou Sensor Giroscópio configurado do grupo motopropulsor.

A calibração ajuda o sensor a medir o movimento corretamente. Mantenha o robô imóvel durante cerca de 2 segundos durante a calibração. Se o robô se mover durante este período, o sensor poderá não medir o movimento corretamente.

O projeto aguardará a conclusão da calibração antes de executar a linha de código seguinte.

Nota: Esta função só está disponível se o sistema de transmissão estiver configurado com um Sensor Inercial, Sensor GPS ou Sensor Giroscópio na janela Dispositivos.

Usage:
calibrate_drivetrain()

Parâmetros

Descrição

Esta função não tem parâmetros.

Mutantes#

set_drive_velocity#

O parâmetro set_drive_velocity ( set_drive_velocity define a velocidade de deslocação do robô. Uma percentagem mais elevada aumenta a velocidade de deslocação, enquanto uma percentagem mais baixa diminui. Para RPM ou graus por segundo, o limite é alterado pela relação de transmissão do sistema de tração.

Todos os projetos começam com o robô a deslocar-se a 50% da velocidade por defeito.

Nota: Uma velocidade mais elevada faz com que o robô se mova mais rapidamente, mas pode ser menos preciso. Uma velocidade mais baixa faz com que o robô se mova mais devagar, mas pode ser mais preciso.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Parâmetros

Descrição

velocity

A velocidade de condução varia de 0% a 100% quando se utiliza PERCENT, de 0 a 600 rpm quando se utiliza RPMou de 0 a 3600 graus por segundo quando se utiliza VelocityUnits.DPSPode ser um integer ou decimal (float).

units

Opcional. A unidade de velocidade: RPM (rotações por minuto, padrão), PERCENTou VelocityUnits.DPS (graus por segundo).

# Drive forward at the default velocity
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

set_turn_velocity#

O parâmetro set_turn_velocity ( set_turn_velocity define a velocidade de rotação do robô. Uma percentagem mais elevada faz com que o robô gire mais rápido, enquanto uma percentagem mais baixa o faz girar mais devagar. Para RPM ou graus por segundo, o limite é alterado pela relação de transmissão do sistema de propulsão.

Todos os projetos começam com o robô a rodar a 50% da velocidade por defeito.

Nota: Uma velocidade mais elevada faz com que o robô gire mais rápido, mas pode ser menos preciso. Uma velocidade mais baixa faz com que o robô gire mais devagar, mas pode ser mais preciso.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Parâmetros

Descrição

velocity

A velocidade de rotação varia de 0% a 100% quando se utiliza PERCENT, de 0 a 600 rpm quando se utiliza RPMou de 0 a 3600 graus por segundo quando se utiliza VelocityUnits.DPSPode ser um integer ou decimal (float).

units

Opcional. A unidade de velocidade: RPM (rotações por minuto, padrão), PERCENTou VelocityUnits.DPS (graus por segundo).

# Turn at the default velocity
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

set_stopping#

set_stopping define a forma como o robô irá parar de se mover: travando, deslizando ou parando.

Usage:
drivetrain.set_stopping(mode)

Parâmetros

Descrição

mode

Como o robot irá parar:

  • BRAKE — Pára imediatamente.
  • COAST — Diminui a velocidade até parar.
  • HOLD — Pára imediatamente e mantém a posição das rodas.

Caso este método não seja utilizado, o robô utilizará BRAKE ao parar.

set_timeout#

O parâmetro set_timeout set_timeout define quantos segundos o robô tentará completar um movimento. Se o robô não conseguir completar dentro deste tempo, interromperá a tentativa e passará para a linha de código seguinte. Isto evita que o robô fique preso num movimento.

Usage:
drivetrain.set_timeout(value, units)

Parâmetros

Descrição

value

O tempo que o robô pode tentar para completar um movimento. Pode ser um número inteiro positivo integer ou decimal (float).

units

Opcional. A unidade de tempo: MSEC (milissegundos, predefinição) ou SECONDS.

set_heading#

A direção é a direção para a qual o robô está virado, medida em graus. set_heading altera a direção atual do robô para um novo valor de direção.

Por exemplo, se o robô se virou para a direita, definir a direção para 0 graus faz com que essa posição virada para a direita se torne os novos 0 graus. De seguida, o robô pode rodar para outras posições com base nessa nova direção.

Nota: Este método só está disponível se o sistema de transmissão estiver configurado com um Sensor Inercial, Sensor GPS ou Sensor Giroscópio na janela Dispositivos.

Usage:
drivetrain.set_heading(heading, units)

Parâmetros

Descrição

heading

O valor de direção, em graus ou voltas, a definir para o robô. Pode ser um número inteiro integer ou decimal (float).

units

Opcional. A unidade de direção: DEGREES (padrão) ou TURNSUma volta equivale a 360 graus.

# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)

set_rotation#

A rotação indica o quanto o robô rodou, medida em graus. No início de um projeto, o valor de rotação é definido como 0 graus. O comando set_rotation altera a rotação actual do robô para um novo valor.

Por exemplo, se o robô tiver dado duas voltas completas para a direita, o seu valor de rotação será de 720 graus. Definir a rotação para 0 graus irá repor essa rotação de 720 para 0 graus. De seguida, o robô poderá rodar para rotações baseadas nesse novo valor.

Nota: Este método só está disponível se o sistema de transmissão estiver configurado com um Sensor Inercial, Sensor GPS ou Sensor Giroscópio na janela Dispositivos.

Usage:
drivetrain.set_rotation(rotation, units)

Parâmetros

Descrição

rotation

O valor de rotação, em graus ou voltas, a definir para o robô. Pode ser um número inteiro integer ou decimal (float).

units

Opcional. A unidade de rotação: DEGREES (padrão) ou TURNSUma volta equivale a 360 graus.

# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)

set_turn_threshold#

set_turn_threshold define a proximidade que o robô deve atingir a partir de um ângulo alvo antes de uma curva estar concluída.

Um limite mais baixo pode tornar as curvas mais precisas, mas o robô pode demorar mais tempo a completá-las. Um limite mais elevado pode fazer com que as curvas terminem mais cedo, mas podem ser menos precisas.

Nota: Este método só está disponível se o sistema de transmissão estiver configurado com um Sensor Inercial, Sensor GPS ou Sensor Giroscópio na janela Dispositivos.

Usage:
drivetrain.set_turn_threshold(value)

Parâmetros

Descrição

value

O limite de curva, em graus. Pode ser um número inteiro integer ou um número de ponto flutuante (float). O limite de curva padrão é de 1 grau.

set_turn_constant#

O parâmetro set_turn_constant altera a intensidade com que o robô corrige as suas curvas.

Um valor mais elevado faz com que o robô corrija as curvas com mais força. Um valor mais baixo faz com que o robô corrija as curvas de forma mais suave. O valor predefinido é 1,0.

Nota: Este método só está disponível se o sistema de transmissão estiver configurado com um Sensor Inercial, Sensor GPS ou Sensor Giroscópio na janela Dispositivos.

Usage:
drivetrain.set_turn_constant(value)

Parâmetros

Descrição

value

A constante de rotação. Pode ser um número decimal (float) de 0,1 a 4,0. O valor predefinido é 1,0.

set_turn_direction_reverse#

set_turn_direction_reverse altera se o sentido da curva do sistema de transmissão inteligente for invertido.

Isto pode ser utilizado se a transmissão rodar na direção oposta à esperada após ser configurada manualmente no código. Este método funciona da mesma forma que a definição do parâmetro reverse para True ao construir um SmartDrive.

Nota: Este método só está disponível se o sistema de transmissão estiver configurado com um Sensor Inercial, Sensor GPS ou Sensor Giroscópio na janela Dispositivos.

Usage:
drivetrain.set_turn_direction_reverse(value)

Parâmetros

Descrição

value

Se deve inverter o sentido de viragem do sistema de transmissão inteligente: True inverte o sentido de viragem; False utiliza o sentido de viragem padrão.

Getters#

is_done#

is_done devolve um valor booleano indicando se o robô terminou de se mover. Isto pode ser utilizado para controlar o tempo de outras ações com base no movimento do robô.

  • True — O robô terminou de se mover.

  • False — O robô ainda se está a mover.

Este método funciona em conjunto com os seguintes métodos Drivetrain que têm o parâmetro wait : drive_for, turn_for, turn_to_heading, e turn_to_rotation.

Usage:
drivetrain.is_done()

Parâmetros

Descrição

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

is_moving#

is_moving devolve um valor booleano indicando se o robô está em movimento. Isto pode ser utilizado para controlar o tempo de outras ações com base no movimento do robô.

  • True — O robô está em movimento.

  • False — O robô não se está a mover.

Utilização:

drivetrain.is_moving()

Parâmetros

Descrição

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

heading#

A direção indica o rumo para o qual o robô está virado, medida em graus. O comando heading devolve a direção atual do robô, variando de 0 a 359,99 graus.

A direção inicial do robô é de 0 graus.

Nota: Este método só está disponível se o sistema de transmissão estiver configurado com um Sensor Inercial, Sensor GPS ou Sensor Giroscópio na janela Dispositivos.

Usage:
drivetrain.heading(units)

Parâmetros

Descrição

units

Opcional. A unidade para devolver o rumo: DEGREES (padrão) ou TURNSUma volta equivale a 360 graus.

# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading())

rotation#

A rotação indica o quanto o robô rodou, medida em graus. No início de um projeto, o valor de rotação é definido como 0 graus. O comando rotation devolve a rotação atual do robô.

Virar para a direita aumenta a rotação, e virar para a esquerda diminui a rotação. Por exemplo, duas voltas completas para a direita resultarão numa rotação de 720 graus.

Nota: Este método só está disponível se o sistema de transmissão estiver configurado com um Sensor Inercial, Sensor GPS ou Sensor Giroscópio na janela Dispositivos.

Usage:
drivetrain.rotation(units)

Parâmetros

Descrição

units

Opcional. A unidade para voltar à rotação: DEGREES (padrão) ou TURNSUma volta equivale a 360 graus.

# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation())

velocity#

A velocidade velocity indica a velocidade de deslocação do robô.

It can return velocity as a percentage from -100% to 100%, in RPM, or in VelocityUnits.DPS (degrees per second). A positive value means the robot is driving forward. A negative value means the robot is driving in reverse.

Usage:
drivetrain.velocity(units)

Parâmetros

Descrição

units

Opcional. A unidade de velocidade: RPM (rotações por minuto, padrão), PERCENTou VelocityUnits.DPS (graus por segundo).

current#

current devolve a quantidade de corrente eléctrica que o sistema de transmissão está a utilizar, medida em amperes (ampères). A corrente é a quantidade de eletricidade que flui através do sistema de transmissão.

Um valor de corrente mais elevado significa que o sistema de transmissão está a consumir mais corrente elétrica. Isto pode acontecer quando o robô está a empurrar um objeto ou a tentar mover-se quando está preso.

Este pode ser utilizado para verificar se a transmissão está a apresentar dificuldades durante o movimento. Se a corrente permanecer elevada, a transmissão pode sobreaquecer ou utilizar a energia de forma menos eficiente.

Usage:
drivetrain.current(units)

Parâmetros

Descrição

units

Opcional. A unidade para retornar a corrente: CurrentUnits.AMP (amperes, padrão).

power#

A potência power indica a potência que o sistema de transmissão está a utilizar, medida em watts. A potência mostra a rapidez com que o sistema de transmissão está a consumir energia.

Um valor de potência mais elevado significa que o sistema de transmissão está a consumir energia mais rapidamente. Isto pode acontecer quando o robô está a empurrar um objeto ou a tentar mover-se quando está preso.

Este pode ser utilizado para comparar movimentos ou verificar se a transmissão está a apresentar dificuldades. Se a potência permanecer elevada, a transmissão pode sobreaquecer ou utilizar a energia de forma menos eficiente.

Usage:
drivetrain.power()

Parâmetros

Descrição

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

torque#

O binário indica a força que o sistema de transmissão consegue exercer força de tração ou empurrar enquanto as rodas giram.

torque devolve a quantidade de binário que a transmissão está a utilizar, medida em Newton-metros (Nm) ou polegadas-libras (InLb).

Um valor de binário mais elevado significa que o sistema de transmissão está a empurrar ou a puxar com mais força. Isto pode acontecer quando o robô está a empurrar contra um objeto ou a tentar mover-se quando está preso.

Isto pode ser utilizado para verificar se a transmissão está com dificuldades ou para comparar quanta força é necessária para diferentes movimentos.

Usage:
drivetrain.torque(units)

Parâmetros

Descrição

units

Opcional. A unidade para devolver o binário: TorqueUnits.NM (newton metros, standard) ou TorqueUnits.INLB (polegadas-libras).

efficiency#

A eficiência efficiency indica a eficiência com que o sistema de transmissão utiliza a energia, numa percentagem de 0% a 100%.

A eficiência indica quanta potência do sistema de transmissão está a ser utilizada para o movimento. Um valor de eficiência mais elevado significa que está a ser utilizada mais potência do sistema de transmissão para movimentar o robô. Um valor de eficiência mais baixo pode ocorrer quando o sistema de transmissão está a trabalhar muito, mas não se move muito, como quando o robô está preso ou a empurrar um objeto.

Isto pode ser utilizado para comparar movimentos ou verificar se a transmissão está a desperdiçar energia em vez de a utilizar para movimento.

Usage:
drivetrain.efficiency()

Parâmetros

Descrição

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

temperature#

A temperatura temperature temperatura selecionada.

A temperatura indica o quão aquecidos estão os motores da transmissão. Uma temperatura mais elevada significa que os motores estão a aquecer mais durante o funcionamento. Os motores devem permanecer abaixo dos 55°C para continuarem a funcionar com o máximo desempenho.

Se os motores aquecerem demasiado, reduzirão a corrente máxima para se protegerem. A 70°C, os motores deixarão de funcionar até arrefecerem.

Isto pode ser utilizado para verificar se a transmissão está a sobreaquecer durante movimentos repetidos, percursos longos ou quando está a empurrar contra um objeto.

Usage:
drivetrain.temperature(units)

Parâmetros

Descrição

units

Opcional. A unidade para voltar à temperatura: TemperatureUnits.CELSIUS (padrão) ou TemperatureUnits.FAHRENHEIT.

get_timeout#

get_timeout devolve o timeout actualmente definido em milissegundos.

Usage:
drivetrain.get_timeout()

Parâmetros

Descrição

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

Construtores#

Constructors are used to manually create DriveTrain and SmartDrive objects, which are necessary for configuring a drivetrain outside of VEXcode.

Pelo menos dois objetos Motor ou MotorGroup devem ser criados antes de criar um grupo motopropulsor.

DriveTrain#

DriveTrain cria um grupo motopropulsor sem um Sensor Inercial, Sensor GPS ou Sensor Giroscópio.

Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Parâmetro

Descrição

lm

O motor ou grupo motor esquerdo.

rm

O motor ou grupo motor direito.

wheelTravel

Opcional. Circunferência das rodas da transmissão. O valor predefinido é 300 milímetros.

trackWidth

Opcional. A largura entre as rodas esquerda e direita. O valor predefinido é 320 milímetros.

wheelBase

Opcional. Distância entre as rodas dianteiras e traseiras. O valor predefinido é 320 milímetros.

units

Opcional. A unidade para wheelTravel, trackWidthe wheelBase: MM (milímetros, standard), INCHESou DistanceUnits.CM (centímetros).

externalGearRatio

Opcional. A relação de transmissão utilizada para ajustar as distâncias de acionamento, caso sejam utilizadas engrenagens. Pode ser um número integer ou um número de ponto flutuante (float). O valor predefinido é 1,0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a drivetrain with default values
drivetrain = DriveTrain(left_motor, right_motor)

# Create the motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = DriveTrain(left_motor, right_motor, 319.19, 295, 40, MM, 1)

SmartDrive#

SmartDrive cria um grupo motopropulsor configurado com um Sensor Inercial, Sensor GPS ou Sensor Giroscópio.

Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Parâmetro

Descrição

lm

O motor ou grupo motor esquerdo.

rm

O motor ou grupo motor direito.

g

O Sensor Inercial, Sensor GPS ou Sensor Giroscópio utilizado pelo sistema de transmissão.

wheelTravel

Opcional. Circunferência das rodas da transmissão. O valor predefinido é 300 milímetros.

trackWidth

Opcional. A largura entre as rodas esquerda e direita. O valor predefinido é 320 milímetros.

wheelBase

Opcional. Distância entre as rodas dianteiras e traseiras. O valor predefinido é 320 milímetros.

units

Opcional. A unidade para wheelTravel, trackWidthe wheelBase: MM (milímetros, standard), INCHESou DistanceUnits.CM (centímetros).

externalGearRatio

Opcional. A relação de transmissão utilizada para ajustar as distâncias de acionamento, caso sejam utilizadas engrenagens. Pode ser um número integer ou um número de ponto flutuante (float). O valor predefinido é 1,0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)


# Create a drivetrain with default values
drivetrain = SmartDrive(left_motor, right_motor, gyro_a)

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = SmartDrive(left_motor, right_motor, gyro_a, 319.19, 295, 40, MM, 1)