View on GitHub

floid-pro

MakeCode Erweiterung für Floid Pro

FloidPro MakeCode-Erweiterung

Diese Erweiterung erlaubt die einfache Ansteuerung des FloidPro im Microsoft MakeCode Editor. Der Roboter lässt sich dabei auf 3 Level betreiben:


Struktur der Erweiterung

Die Funktionen sind in drei logische Bereiche entsprechend der Aufteilung des Roboters unterteilt:

🖥️ 1. Hauptsektion

Funktionen für die Initialisierung, das Display, die Bumper, die Beleuchtung und I2C.

Initialisierung

FloidPro hochfahren

Muss beim Start des Roboters ausgeführt werden, um alle Funktionen richtig ausführen zu können. Hierbei wird das Level gesetzt, auf dem das Programm laufen soll.

Core.init(Level.l1A)

Display

Text darstellen

Funktion zum Darstellen von Text auf dem Display. Die Position wird über Zeilen- und Spaltennummer angegeben.

Core.showOnLcd("Hallo Welt", 1, 1)

Zahl darstellen

Funktion zum Darstellen einer Zahl mit einer maximalen Zahl an Stellen. Die Position wird über Zeilen- und Spaltennummer angegeben.

Core.showNumber(15, 3, 1, 1)

Wahrheitswert darstellen

Funktion zum Darstellen eines Wahrheitswerts (“WAHR”/”FALSCH”). Die Position wird über Zeilen- und Spaltennummer angegeben.

Core.showboolean(false, 1, 1)

Sensordaten auf Display anzeigen

Funktion zum automatisierten Anzeigen aller Sensorwerte auf dem Display.

Core.showsensor()

Displayinhalt löschen

Funktion zum Löschen des gesamten Displayinhalts.

Core.clearLCD()
Beispiel

Schreibt “Hallo Welt” in die erste Zeile und die vierte Spalte. Schreibt eine 10 in die zweite Zeile und die erste Spalte. Löscht den Display Inhalt nach einer kurzen Pause.

Core.showOnLcd("Hallo Welt", 1, 4)
Core.showNumber(10, 3, 2, 1)
basic.pause(20)
Core.clearLCD()

Bumper

Bumper einzeln abfragen

Funktion gibt einen Wahrheitswert darüber aus, ob ein bestimmter Bumper gedrückt ist.

b_vr = Core.bumpersingle(BumperSensor.VR)

Bumper gesamt abfragen

Funktion zum Abfragen aller Bumper, indem sie den gesamten I2C-Wert als Dezimalzahl liefert.

b_all = Core.bumperall()
Beispiel

Solange keine Bumper gedrückt sind, wird der entsprechende Text auf dem Display angezeigt. Wird jedoch ein Bumper gedrückt, wird geprüft, ob der Bumper vorne rechts gedrückt ist und eine entsprechende Rückmeldung ausgegeben.

while (0 == Core.bumperall()) {
        Core.showOnLcd("Kein Bumper gedrückt", 1, 1)
    }
    Core.clearLCD()
    if (Core.bumpersingle(BumperSensor.VR)) {
        Core.showOnLcd("Bumper vorne rechts gedrückt", 1, 1)
    }

Beleuchtung

Blinker und Lampen gesamt schalten

Funktion zum einstellen der Zustände für alle Blinker und Lampen des FloidPro.

Core.beleuchtung(OnOff.On, OnOff.On, OnOff.On, OnOff.On, OnOff.On, OnOff.On, OnOff.On, OnOff.On)

Blinker/Lampe ein-/ausschalten

Funktion zum Ein- oder Ausschalten eines bestimmten Blinkers/ einer bestimmten Lampe.

Core.setlights(Light.BVL, OnOff.On)
Beispiel

Zunächst wird die gesamte Beleuchtung angeschaltet. Danach blinkt der Blinker vorne links vier mal.

Core.beleuchtung(OnOff.On,OnOff.On,OnOff.On,OnOff.On,OnOff.On,OnOff.On,OnOff.On,OnOff.On)
for (let index = 0; index < 4; index++) {
    Core.setlights(Light.BVL, OnOff.Off)
    basic.pause(500)
    Core.setlights(Light.BVL, OnOff.On)
    basic.pause(500)
}

I2C

Angeschlossene Controller abfragen

Funktion, welche ein Array der Adressen aller angeschlossenen I2C-Controllern zurückgibt.

i2c = Core.i2cpins()

Zahl über I2C senden

Funktion zum Senden einer Zahl an einen der angeschlossenen Controller.

Core.i2cwrite(128, Controller.LT)

Bestimmten Controller abfragen

Funktion zum bestimmen eines Wahrheitswerts darüber, ob ein Controller an der Adresse angeschlossen ist.

i2c = Core.testDevice_front(0)
Beispiel

Zeigt auf dem Display an, ob der Controller mit der Adresse 39 angeschlossen ist.

if (Core.testDevice_front(39)) {
    Core.showOnLcd("39 angeschlossen", 1, 1)
}


🚘 2. Frontsektion

Steuerung der Funktionen für Ultraschall, Linetracking und die RGB-LEDs

Ultraschall und RGB-LEDs

Ultraschallweiche stellen

Funktion zum Stellen der Ultraschallweiche, welche den gewüschten Ultraschallsensor verbindet.

Front.sonar_switch(USSensor.Rechts)

Distanzmessung

Funktion zum Auslösen der Distanzmessung mithilfe des verbundenen Sensors.

distanz = Front.sonar()
Beispiel

Die Distanzmessung wird mit den rechten Ultraschallsensor durchgeführt.

Front.sonar_switch(USSensor.Rechts)
let distanz = Front.sonar()

Linetracking

Abfragen eines Sensorwerts

Funktion liefert Wahrheitswert darüber, ob der eingestellte Sensor schwarzen Untergrund erkennt.

lt0 = Front.LineTracking(Linetracker.LT0)
Beispiel

Prüft, ob an einem der äußeren Linetrackingsensoren schwarzer Untergrund erkannt wird.

if (Front.LineTracking(Linetracker.LT0) || Front.LineTracking(Linetracker.LT3)) {
    Core.showOnLcd("Außen wurde Schwarz erkannt", 1, 1)
}

🏎️ 3. Antriebsektion

Funktionen zur Steuerung der Motoren und des Fahrverhaltens.


Installation

Diese Erweiterung kann über den folgenden GitHub-Link in MakeCode eingebunden werden:

https://github.com/ericschaetz/floid-pro

→ Öffne MakeCode, klicke auf „Erweiterungen” und gib den Link oben ein.


🛠 Kompatibilität


Metadaten (verwendet für Suche, Rendering)