Transmissão#
Introdução#
O robô VEX IQ (2ª geração) 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 Giroscópio ligado, o Sensor Inercial integrado no Brain 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 cerca de 2 segundos durante a calibração, para que se possa mover e rodar corretamente.
Esta página utiliza drivetrain como exemplo de um nome de transmissão. Substitua-o pelo nome que configurou, se necessário.
Existem muitas formas de programar o sistema de transmissão. Abaixo está uma lista de todos os métodos de programação do sistema 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 velocidade de deslocação.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 durante quanto tempo 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.
Receptores — Verifiquem o estado de movimentação.
heading— Devolve a direção atual do robô de 0 a 359 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.is_moving— Retorna se o robô se está a mover, como um valor booleano.is_done— Retorna se o robô terminou de se mover, como um valor booleano.is_turning— Retorna se o robô está a virar, como um valor booleano.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.
Construtores — Criar e configurar manualmente o sistema de transmissão.
DriveTrain— Cria um grupo motopropulsor sem sensor giroscópio ou sensor inercial.SmartDrive— Cria um grupo motopropulsor com um sensor giroscópico ou sensor inercial.
Ações#
drive#
drive moves the robot forward or reverse forever. The robot will continue to move until it is given another action, like turning or stopping.
Usage:
drivetrain.drive(direction, velocity, units)
Parâmetros |
Descrição |
|---|---|
|
A direção em que o robô se move: |
|
Opcional. A velocidade de accionamento varia de 0% a 100% quando se utiliza |
|
Opcional. A unidade de velocidade: |
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Drive slowly in reverse then stop
drivetrain.drive(REVERSE, 20, PERCENT)
wait(2, SECONDS)
drivetrain.stop()
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.
Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)
Parâmetros |
Descrição |
|---|---|
|
A direção em que o robô se move: |
|
A distância percorrida pelo robô. Pode ser um número inteiro |
|
Opcional. A unidade de distância: |
|
Opcional. A velocidade de accionamento varia de 0% a 100% quando se utiliza |
|
Opcional. A unidade de velocidade: |
|
Opcional. |
# Drive forward and backward
drivetrain.drive_for(FORWARD, 10)
drivetrain.drive_for(REVERSE, 10)
# Quickly drive forward and backward
drivetrain.drive_for(FORWARD, 200, MM, 100, PERCENT)
drivetrain.drive_for(REVERSE, 200, MM, 100, PERCENT)
turn#
O comando turn o robô vire para a esquerda ou para a direita indefinidamente. O robô continuará a virar até receber outra ação, como conduzir ou parar.
Usage:
drivetrain.turn(direction, velocity, units)
Parâmetros |
Descrição |
|---|---|
|
Direção para a qual o robô vira: |
|
Optional. The velocity to turn with from 0% to 100% when using |
|
Opcional. A unidade de velocidade: |
# Turn right and left, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.turn(LEFT)
wait(2, SECONDS)
drivetrain.stop()
# Quickly turn right and left, then stop
drivetrain.turn(RIGHT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.turn(LEFT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.stop()
turn_for#
O comando turn_for roda o robô para a esquerda ou para a direita por um número específico de graus ou voltas. 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.
Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)
Parâmetros |
Descrição |
|---|---|
|
Direção para a qual o robô vira: |
|
O número de voltas do robô. Pode ser um número inteiro |
|
Opcional. A unidade de rotação: |
|
Optional. The velocity to turn with from 0% to 100% when using |
|
Opcional. A unidade de velocidade: |
|
Opcional. |
# Turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES)
# Quickly turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES, 100, PERCENT)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES, 100, PERCENT)
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.
Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)
Parâmetros |
Descrição |
|---|---|
|
A direção para a qual o robô deve estar virado, em graus. Pode ser um número inteiro |
|
Opcional. Unidade de medida do cabeçalho: |
|
Optional. The velocity to turn with from 0% to 100% when using |
|
Opcional. A unidade de velocidade: |
|
Opcional. |
# 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 ou voltas. 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.
Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)
Parâmetros |
Descrição |
|---|---|
|
O valor de rotação, em graus ou voltas, para o qual o robô irá rodar. Pode ser um número inteiro |
|
Opcional. A unidade de rotação: |
|
Optional. The velocity to turn with from 0% to 100% when using |
|
Opcional. A unidade de velocidade: |
|
Opcional. |
# 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 |
|---|---|
|
Opcional. Como o robot irá parar:
|
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# Drive forward and coast to a stop
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop(COAST)
calibrate_drivetrain#
calibrate_drivetrain é uma função integrada que calibra o sensor giroscópio ou o sensor inercial configurado com o sistema de transmissão.
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 não pode ser utilizada dentro do VS Code.
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 faz com que o robô se desloque mais rapidamente, enquanto uma percentagem mais baixa o faz deslocar-se mais lentamente.
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 |
|---|---|
|
A velocidade de condução varia de 0% a 100% quando se utiliza |
|
Opcional. A unidade de velocidade: |
# Drive forward at different velocities
# Default velocity
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
set_turn_velocity#
O parâmetro 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.
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 |
|---|---|
|
A velocidade de rotação varia de 0% a 100% quando se utiliza |
|
Opcional. A unidade de velocidade: |
# Turn at different velocities
# Default velocity
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 360)
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 |
|---|---|
|
Como o robot irá parar:
|
Caso este método não seja utilizado, o robô utilizará BRAKE ao parar.
set_timeout#
O parâmetro set_timeout define durante quanto tempo 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 |
|---|---|
|
O tempo que o robô pode tentar para completar um movimento. Pode ser um número inteiro positivo |
|
Opcional. A unidade de tempo: |
# Turn right after driving forward
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)
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.
Usage:
drivetrain.set_heading(heading, units)
Parâmetros |
Descrição |
|---|---|
|
O valor de direção, em graus ou voltas, a definir para o robô. Pode ser um número inteiro |
|
Opcional. A unidade de direção: |
# 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 ou voltas. 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.
Usage:
drivetrain.set_rotation(rotation, units)
Parâmetros |
Descrição |
|---|---|
|
O valor de rotação, em graus ou voltas, a definir para o robô. Pode ser um número inteiro |
|
Opcional. A unidade de rotação: |
# 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.
Usage:
drivetrain.set_turn_threshold(value)
Parâmetros |
Descrição |
|---|---|
|
O limite de curva, em graus. Pode ser um número inteiro |
# Set the turn threshold to 5 degrees
drivetrain.set_turn_threshold(5)
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.
Usage:
drivetrain.set_turn_constant(value)
Parâmetros |
Descrição |
|---|---|
|
A constante de rotação. Pode ser um número decimal ( |
# Increase the turn constant to 2.0
drivetrain.set_turn_constant(2.0)
Getters#
heading#
A direção indica para onde o robô está virado, medida em graus. O comando heading devolve a direção atual do robô, de 0 a 359 graus.
A direção inicial do robô é de 0 graus.
Usage:
drivetrain.heading(units)
Parâmetros |
Descrição |
|---|---|
|
Opcional. A unidade para devolver o rumo: |
# 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 ou voltas. 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.
Usage:
drivetrain.rotation(units)
Parâmetros |
Descrição |
|---|---|
|
Opcional. A unidade para voltar à rotação: |
# 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ô.
Pode voltar a velocidade em percentagem, de -100% a 100%, a RPM , de -127 rpm a 127 rpm, ou a VelocityUnits.DPS (graus por segundo). Um valor positivo significa que o robô se está a mover para a frente. Um valor negativo significa que o robô se está a mover para trás.
Usage:
drivetrain.velocity(units)
Parâmetros |
Descrição |
|---|---|
|
Opcional. A unidade para voltar à velocidade: |
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 |
|---|---|
|
Opcional. A unidade para retornar a corrente: |
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.
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_moving()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
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_turning#
is_turning devolve um valor booleano indicando se o robô está a rodar. Isto pode ser utilizado para controlar o tempo de outros comportamentos com base no movimento do robô.
True— O robô está a rodar.False— O robô não está a rodar.
Este método funciona em conjunto com os seguintes métodos Drivetrain que têm o parâmetro wait : turn_for, turn_to_heading e turn_to_rotation.
Usage:
drivetrain.is_turning()
Parâmetros |
Descrição |
|---|---|
Este método não tem parâmetros. |
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 |
|---|---|
|
Opcional. A unidade para devolver o binário: |
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 |
|---|---|
|
Opcional. A unidade para voltar à temperatura: |
Construtores#
Constructors are used to create DriveTrain and SmartDrive objects in code. This is useful when configuring a drivetrain without using the Devices window.
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 Giroscópico ou Sensor Inercial.
Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
Parâmetro |
Descrição |
|---|---|
|
O motor ou grupo motor esquerdo. |
|
O motor ou grupo motor direito. |
|
Opcional. Circunferência das rodas da transmissão. O valor predefinido é 300 milímetros. |
|
Opcional. A largura entre as rodas esquerda e direita. O valor predefinido é 320 milímetros. |
|
Opcional. Distância entre as rodas dianteiras e traseiras. O valor predefinido é 320 milímetros. |
|
Opcional. A unidade para |
|
Opcional. A relação de transmissão utilizada para ajustar as distâncias de acionamento, caso sejam utilizadas engrenagens. Pode ser um número |
# Create left and right drive motor objects
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT2, 1.0, True)
'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)
# Create two motor group objects for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)
right_motor_a = Motor(Ports.PORT3, 1.0, True)
right_motor_b = Motor(Ports.PORT4, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)
'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)
SmartDrive#
SmartDrive cria um grupo motopropulsor com um Sensor Giroscópico ou Sensor Inercial.
Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)
Parâmetro |
Descrição |
|---|---|
|
O motor ou grupo motor esquerdo. |
|
O motor ou grupo motor direito. |
|
O Sensor Giroscópico ou Sensor Inercial utilizado pelo grupo motopropulsor. |
|
Opcional. Circunferência das rodas da transmissão. O valor predefinido é 300 milímetros. |
|
Opcional. A largura entre as rodas esquerda e direita. O valor predefinido é 320 milímetros. |
|
Opcional. Distância entre as rodas dianteiras e traseiras. O valor predefinido é 320 milímetros. |
|
Opcional. A unidade para |
|
Opcional. A relação de transmissão utilizada para ajustar as distâncias de acionamento, caso sejam utilizadas engrenagens. Pode ser um número |
# Create the Inertial Sensor
brain_inertial = Inertial()
# Make left and right drive motors
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT6, 1.0, True)
# Create a SmartDrive object with wheelTravel 200
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)
Ao criar um sistema de transmissão inteligente com vários motores, é necessário criar os motores separadamente antes de os agrupar num grupo de motores.
# Create the Inertial Sensor
brain_inertial = Inertial()
# Create two motor groups for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)
right_motor_a = Motor(Ports.PORT5, 1.0, True)
right_motor_b = Motor(Ports.PORT6, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)
# Create a SmartDrive object with wheelTravel 200 mm
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)