Este programa conduce el robot recto durante 2 segundos al valor de SPEED que hayas configurado — para que puedas ver cuánto recorre a diferentes valores de motorPower. Presiona B para ciclar entre los valores de SPEED sin volver a programar.
Muestra la estadística SPEED y la barra de potencia, luego conduce recto durante 2 segundos y se detiene.
Avanza SPEED de 1 → 2 → … → 20 → de vuelta a 1 sin volver a programar. Muestra el nuevo valor en el LED.
Corta ambos motores de inmediato durante una ejecución. Muestra X en el LED y limpia después de 500 ms.
let testStart = 0
let running = false
let currentPower = 0
let SPEED = 1
let TEST_DURATION_MS = 2000
TEST_DURATION_MS en 2000 y SPEED en 1 antes de descargar. Todo lo demás comienza en 0 y se calcula cuando presionas A.
let currentPower = 0
let SPEED = 0
let running = false
let testStart = 0
let TEST_DURATION_MS = 0
input.onButtonPressed(Button.A, function () {
currentPower = SPEED * 100 / 20
basic.showString("" + (SPEED))
basic.pause(800)
led.plotBarGraph(
currentPower,
100
)
basic.pause(800)
basic.clearScreen()
basic.pause(500)
running = true
testStart = input.runningTime()
CutebotPro.pwmCruiseControl(currentPower, currentPower)
while (running && input.runningTime() - testStart < TEST_DURATION_MS) {
CutebotPro.pwmCruiseControl(currentPower, currentPower)
}
CutebotPro.stopImmediately(CutebotProMotors.ALL)
running = false
basic.showLeds(`
# . . . #
. # . # .
. . # . .
. # . # .
# . . . #
`)
basic.pause(500)
basic.clearScreen()
})
currentPower a partir de tu estadística SPEED, muestra el número y luego la barra de potencia, luego conduce recto durante TEST_DURATION_MS milisegundos. El bucle while sigue verificando el tiempo transcurrido para que una pulsación A+B pueda salir antes. El patrón X en el LED confirma que la ejecución terminó.
let SPEED = 0
input.onButtonPressed(Button.B, function () {
if (SPEED >= 20) {
SPEED = 1
} else {
SPEED += 1
}
basic.showString("" + (SPEED))
basic.clearScreen()
})
let running = false
input.onButtonPressed(Button.AB, function () {
running = false
CutebotPro.stopImmediately(CutebotProMotors.ALL)
basic.showLeds(`
# . . . #
. # . # .
. . # . .
. # . # .
# . . . #
`)
basic.pause(500)
basic.clearScreen()
})
running = false para que el bucle del Botón A salga en su próxima verificación, luego corta ambos motores de inmediato. Úsalo si el robot se dirige a un lugar donde no debería.
El Botón B cambia SPEED en memoria sin tocar el programa grabado. Cada pulsación agrega 1 a SPEED. Cuando SPEED llega a 20, la siguiente pulsación lo devuelve a 1.
currentPower ya fue calculado cuando presionaste A.