Benutzer-Werkzeuge

Webseiten-Werkzeuge


p:piy:steuerung

Maqueen Fernsteuerung

Programme

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)
        }
    }
})
p/piy/steuerung.txt · Zuletzt geändert: 2025/05/18 11:28 von yves_pillonel