Menü Schließen

Fernsteuerung I

Da Calliope minis über Bluetooth miteinander kommunizieren können, kann ein zweiter Controller als Fernsteuerung dienen: Einer steuert die Motoren, der zweite gibt die Befehle.

Blockcode für Sender und Empfänger

Zum Programmieren  muss in der mittleren Spalte des Editors jeweils unten auf „Fortgeschritten“ und „Erweiterungen“ geklickt und auf der sich öffnenden Seite das Feld „radio-broadcast“ angewählt werden, damit der Menüpunkt „Funk“ eingeblendet wird. Dort findet sich der Block „setze Funkgruppe auf 1“, unter „mehr“ der Block „setze Sendeleistung auf 7“. Beide Blöcke werden in das Steuermodul „beim Start“ eingebunden. Vergleiche dazu die Abbildung links. Ausgestattet mit diesem Code verbinden sich die beiden Controllerboards beim Einschalten selbsttätig miteinander.

Zusätzlicher Blockcode für den Sender

In Analogie zur Handsteuerung im Kapitel „Mobil mit Calliope“ sollen die Motoren über die Tasten „A“ und „B“  des Calliope mini gesteuert werden.

Die Programme, die das ermöglichen, finden sich in der Abbildung links (Sender) und rechts unten (Empfänger).

Beide Boards sind also mit den Programmteilen „beim Start“ und „dauerhaft“ zu programmieren. Sie liegen auf der Programmieroberfläche unverbunden nebeneinander.

Nach einer erfolgreichen Programmierung wird beim Sender-Modul durch Drücken der Taste A eine „0“ und durch Drücken der Taste B eine „2“, durch Loslassen der Taste A eine 1″, durch Loslassen der Taste B eine „3“ erzeugt.

Zusätzlicher Blockcode für den Empfänger

Beim Empfänger-Modul schaltet eine „0“ Motor A , eine „2“ Motor B an. Eine „1“ stoppt Motor A, eine „3“ Motor B.

Wenn beide Tasten gedrückt sind, laufen beiden Motoren und das Fahrzeug bewegt sich vorwärts. Das Loslassen einer Taste bewirkt beim Fahrzeug eine Richtungsänderung nach links oder rechts.

Im Folgekapitel sind weitere Steuerungsoptionen durch Einbinden des auf dem Calliope mini verbauten Lagesensors zu finden. Mit der passenden Programmierung kann das Fahrzeug durch Bewegen des Controllers um die Querachse beschleunigt und abgebremst werden. Durch Drehen um die Längsachse werden Kurvenfahrten möglich.

Rückwärtsfahren geht leider nicht, weil der Calliope mini das Umpolen von zwei Motoren nicht zulässt.

Hinweis

Der Makecode-Editor lässt sich auch mit Java-Code füttern. Dazu in der oberen Leiste auf „JavaScript“ klicken, den passenden Code aus der Tabelle hier unten kopieren und im Editor einfügen. Ein Klick auf „Blöcke“ generiert dann den Blockcode.

Achtung! Bei Verwendung des Codes unten muss im Editor die Zusatzfunktion „radio-broadcast“ (vgl. oben) angewählt sein, sonst kommt es zu einer Fehlermeldung.

enum RadioMessage {
    message1 = 49434
}
radio.setTransmitPower(7)
radio.setGroup(1)
basic.forever(function () {
    if (input.buttonIsPressed(Button.A)) {
        radio.sendNumber(0)
    } else {
        radio.sendNumber(1)
        if (input.buttonIsPressed(Button.B)) {
            radio.sendNumber(2)
        } else {
            radio.sendNumber(3)
        }
    }
})
enum RadioMessage {
    message1 = 49434
}
radio.setTransmitPower(7)
radio.setGroup(1)
radio.onReceivedNumber(function (receivedNumber) {
    if (receivedNumber == 0) {
        motors.dualMotorPower(Motor.A, 50)
    }
    if (receivedNumber == 1) {
        motors.dualMotorPower(Motor.A, 0)
    }
    if (receivedNumber == 2) {
        motors.dualMotorPower(Motor.B, 50)
    }
    if (receivedNumber == 3) {
        motors.dualMotorPower(Motor.B, 0)
    }
})
Linke Spalte Sender, rechte Empfänger

Folgekapitel (Fernsteuerung II) >>>