65 lines
1.4 KiB
Markdown
65 lines
1.4 KiB
Markdown
# Cruise Control
|
|
|
|
Learn how to set and adjust motor speeds.
|
|
|
|
## Activity 1
|
|
|
|
Increase motor speed when touch sensor `1` is pressed.
|
|
|
|
```blocks
|
|
let speed = 0;
|
|
sensors.touch1.onEvent(ButtonEvent.Pressed, function () {
|
|
if (speed < 100)
|
|
speed = speed + 10;
|
|
motors.largeBC.run(speed);
|
|
})
|
|
```
|
|
|
|
## Activity 2
|
|
|
|
Add a "reduce" motor speed action when touch sensor `2` is pressed.
|
|
|
|
```blocks
|
|
let speed = 0;
|
|
sensors.touch1.onEvent(ButtonEvent.Pressed, function () {
|
|
if (speed < 100)
|
|
speed = speed + 10;
|
|
motors.largeBC.run(speed);
|
|
})
|
|
sensors.touch2.onEvent(ButtonEvent.Pressed, function () {
|
|
if (speed > -100)
|
|
speed = speed - 10;
|
|
motors.largeBC.run(speed);
|
|
})
|
|
```
|
|
|
|
## Activity 3
|
|
|
|
Refactor your code by moving the speed increase and speed decrease code into ``||functions:accelerate||`` and ``||functions:decelerate||`` functions. Run the motors at the new speed in an ``||functions:update||`` function.
|
|
|
|
```blocks
|
|
let speed = 0
|
|
function decelerate() {
|
|
if (speed > -100) {
|
|
speed = speed - 10
|
|
}
|
|
}
|
|
function accelerate() {
|
|
if (speed < 100) {
|
|
speed = speed + 10
|
|
}
|
|
}
|
|
function update() {
|
|
brick.clearScreen()
|
|
brick.showString("speed: " + speed, 1)
|
|
motors.largeBC.run(speed)
|
|
}
|
|
sensors.touch2.onEvent(ButtonEvent.Pressed, function () {
|
|
accelerate()
|
|
update()
|
|
})
|
|
sensors.touch1.onEvent(ButtonEvent.Pressed, function () {
|
|
decelerate()
|
|
update()
|
|
})
|
|
``` |