====== Maqueen Fernsteuerung ======
Programme
* Fernbedienung: https://makecode.microbit.org/_956WUaKY8gwH
* Fahrzeug: https://makecode.microbit.org/_Vtx7hbR0mMpq
Bedienung
* Button A: Beschleunigt Vorwärts
* Button B: Beschleunigt Rückwärts
* Button A+B: Stoppt
* Steuerung: Micro:bit wie ein Steuerrad halten und nach links oder rechts drehen.
===== Code =====
Fernbedienung
let right = 0
let left = 0
let steer = 0
let speed = 0
radio.setGroup(1)
let acceleration = 5
basic.forever(function () {
if (input.buttonIsPressed(Button.AB)) {
speed = 0
} else if (input.buttonIsPressed(Button.A)) {
speed = speed + acceleration
speed = Math.min(speed, 255)
} else if (input.buttonIsPressed(Button.B)) {
speed = speed - acceleration
speed = Math.max(speed, -255)
}
steer = input.acceleration(Dimension.X)
steer = Math.floor(steer / 4)
if (steer < 0) {
steer = Math.max(-256, steer)
left = Math.floor(speed * (128 + steer) / 256)
right = speed
} else {
steer = Math.min(256, steer)
left = speed
right = Math.floor(speed * (128 - steer) / 256)
}
radio.sendValue("left", left)
radio.sendValue("rigth", right)
})
Fahrzeug
radio.onReceivedValue(function (name, value) {
if (name == "left") {
left = value
} else {
right = value
}
})
let right = 0
let left = 0
radio.setGroup(1)
basic.showIcon(IconNames.Angry)
basic.forever(function () {
if (left == 0 && right == 0) {
maqueen.motorStop(maqueen.Motors.All)
} else {
if (left >= 0) {
maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CW, left)
} else {
maqueen.motorRun(maqueen.Motors.M1, maqueen.Dir.CCW, 0 - left)
}
if (right >= 0) {
maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CW, right)
} else {
maqueen.motorRun(maqueen.Motors.M2, maqueen.Dir.CCW, 0 - right)
}
}
})