Hallo und guten Tag.
Ich denke ich dokumentiere hier ein allgemeines
Problem mit dem Auslesen der Lichtsensoren.
Aktuell werden im Nepo- und Makecode-Editor
bei meinen Calliope-Minis(V:1.3; 3 getestet) bei einer
nur Lese-Schleife des Lichtsensors und der
Ausgabe der Werte auf dem Seriellen-USB-Port
immer wieder(ca. alle 7 Werte) Falsch-Werte
von 0 oder zumindest >=50 Nach-unten-Sprüngen
gelesen.
Das führt zu den miserablen Programmen:Lichtschranke,
,Alarmanlage oder Fahrradlicht.
Bei denen wundert man sich warum diese
jetzt grad ausgehen oder ähnliches.
Die Fehlerwerte(große sprunghafte Abweichungen in Richtung 0)
treten nicht auf wenn ich identische Programme
mit der Abbozza(cpp) Umgebung auf die gleichen
Geräte gespielt habe.
Im Folgenden Aufzeichnungen mit dem Serial-Plotter
Serial-Plotterdie das fehlerhafte Schwanken der Werte dokumentieren.
Im Anhang die Bilder und die Codes:
Nepo-hex:
NEPOprog-Lichtsensor-Serial.hex (475,7 KB)
Makecode-hex:
MakeCode-Lichtsensor-SendSerial.hex (646,0 KB)
Abbozza-hex:
abbozza-combined.hex (509,3 KB)
Der Code ist bei allen drei in etwa mit folgendem Makecode-Javascript
ausgedrückt:
let li = 0
let tli = ""
basic.forever(function () {
li = input.lightLevel()
tli = convertToText(li)
serial.writeLine(":" + tli + ";")
})
Das ganze geschieht auch bei 1000ms Warten!
Für mich der mit den Schülern mit Makecode
arbeitet ist das ein Problem!
Viele Grüße
Andreas Brusinsky
PS:
mit dem Microbit und folgendem Makecode:
basic.forever(function () {
serial.writeLine("" + convertToText(input.lightLevel()) + ";")
})
gibt es keine Licht-Probleme.
PSS:
etwas was ich bei Abbozza sehe aber bei Makecode
nicht erkennen kann ist das setzen des MODE.
int Abbozza::readLightLevel() {
int value, mode;
mode = display.getDisplayMode();
display.setDisplayMode(DISPLAY_MODE_BLACK_AND_WHITE_LIGHT_SENSE);
sleep(50);
value = display.readLightLevel();
display.setDisplayMode((DisplayMode) mode);
return value;
}
Es scheint so als wenn etwas beim Lichtsensor-Wert
mal ein oder auch mal 2 Byte auf 0 setzt/schreibt/löscht.