Biblioteca para controle e gerenciamento de motores lineares
Abra o terminal, e na pasta do script, rode:
npm i @libs-scripts-mep/motor-control
Abra o terminal, e na pasta do script, rode:
npm uninstall @libs-scripts-mep/motor-control
Abra o terminal, e na pasta do script, rode:
npm update @libs-scripts-mep/motor-control
- Robustez ao configurar os motores:
- Permite configurar o nome, as saídas e os tempos de cada motor;
- Impede a criação de motores com o meso nome ou saídas do MBI.
- Cada motor configurado é uma instância da classe
LinearMotor
:- Segurança ao movimentar os motores, um motor executa uma nova operação apenas depois de terminar a anterior;
- Cada motor gerencia seu próprio movimento, dentro das configurações de tempo atribuídas a ele.
- Métodos de recuo e avanço;
- Abstração e flexibilidade para executar as operações, tanto individualmente quanto de forma simultânea.
- Realize a importação:
import MotorManager from "../node_modules/@libs-scripts-mep/motor-control/motor-control.js"
import MbiControl from "../node_modules/@libs-scripts-mep/mbi-control/mbi-control.js"
- Estabeleça a comunicação com o MBI:
await MbiControl.connect()
- Configure os motores:
MotorManager.addMotor(
"myMotor", // Nome do motor
0, // Saída do MBI que move o motor para frente
1, // Saída do MBI que move o motor para trás
{ // Objeto opcional com tempos
totalCourse: 2750, // Tempo que o motor precisa para movimentar o curso completo
zeroPosition: 500, // O quanto o motor vai recuar após avançar completamente, setando assim a posição zero. Utiliza este tempo para avançar a partir dela e retornar para ela.
extraTime: 0 // Tempo adicional para o motor avançar a partir da posição zero
}
)
- Movimente os motores conforme a necessidade:
// Avança os motores informados pelo tempo especificado
await MotorManager.forward(
["myMotor1", "myMotor2"], // Motores para movimentar
1000 // Tempo opcional de avanço
)
// Recua os motores informados pelo tempo especificado
await MotorManager.backward(
["myMotor1", "myMotor2", "myMotor3"], // Motores para movimentar
1000 // Tempo opcional de recuo
)
// Avança os motores informados e depois recua, setando na posição zero
await MotorManager.setZeroPosition(
["myMotor1", "myMotor2", "myMotor3"] // Motores para ajustar
)
// Avança os motores informados a partir da posição zero, chegando ao final do curso
await MotorManager.forwardFromZero(
["myMotor1"] // Motores para avançar
)
// Recua os motores informados a partir do final do curso, retornando à posição zero
await MotorManager.backwardToZero(
["myMotor1"] // Motores para recuar
)
// Avança todos os motores durante o tempo especificado
await MotorManager.allForward(
1000 // Tempo de avanço
)
// Recua todos os motores durante o tempo especificado
await MotorManager.allBackward(
1000 // Tempo de recuo
)
// Seta todos os motores na posição zero
await MotorManager.allSetZeroPosition()
// Avança todos os motores a partir da posição zero
await MotorManager.allForwardFromZero()
// Recua todos os motores para a posição zero
await MotorManager.allBackwardToZero()