Programming Experience Toolkit (PXT)     

           
Elektronik-Labor   Projekte   Microbit 

 


Am Micro:bit wird intensiv gearbeitet. Die alte Seite  microbit.co.uk ist jetzt auf microbit.org umgezogen. Und dort findet man neben den schon bekannten Umgebungen einen neuen Editor: Microsoft Programming Experience Toolkit (PXT) in der Beta-Version. Der Block-Editor ist hier mit JavaScript verbunden. Dass es eine Beata-Version ist, sieht man noch an vielen kleinen Details, z.B. an der eigenwilligen Mischung deutscher und englischer Begriffe.

Aber PXT hat etwas, was ich bei den Blocks vermisst hatte: Eine serielle Schnittstelle über USB. Mit serial write number und serial write line ist das ganz einfach. In diesem Fall sollte ein Analogwert an den PC geschickt werden. Das Programm lässt sich in dieser Form derzeit anscheinend noch nicht auf dem eigenen PC speichern. Aber das Hexfile kann man sich aufheben.



Die Messwerte kommen dann tatsächlich wie gewünscht an einem Terminal auf dem PC an. Die Default-Übertragungsgeschwindigkeit ist 115200 Baud. Alles perfekt.



Das Programm kann jederzeit in JavaSript umgewandelt werden. In dieser Form kann man den Text kopieren und als Textfile abspeichern. Eine Variable wird durch die zusätzliche Zeile let U = 0 am Anfang deklariert. Die Schreibweise für eine Endlosschleife mit ihren vielen Klammern und Schnickschnack  basic.forever(() => { ...  })    ist gewöhnungsbedürftig, macht aber keinen Stress, weil sie automatisch erzeugt wird.

let U = 0
basic.forever(() => {
    U = pins.analogReadPin(AnalogPin.P1)
    // basic.showNumber(U)
    serial.writeNumber(U)
    serial.writeLine("")
    basic.pause(1000)
})

Eine Besonderheit in PCT ist, dass jetzt auch der Weg zurück in die Block-Form erlaubt ist. Und Änderungen am Quelltext werden korrekt umgesetzt. In der Script-Form sieht man, dass  basic.showNumber(U) auskommentiert ist. Der Befehl stand ursprünglich mal als Bock im Programm und wurde dann im Script auskommentiert. Daraufhin war er als Block verschwinden. Nun kann ich die Auskommentierung entfernen und vielleicht noch den Eingangskanal auf P2 ändern:

let U = 0
basic.forever(() => {
    U = pins.analogReadPin(AnalogPin.P2)
    basic.showNumber(U)
    serial.writeNumber(U)
    serial.writeLine("")
    basic.pause(1000)
})

Dann alles zurückwandeln, und schon sind die Änderungen auch in den Blocks sichtbar.



Bei der Gelegenheit wurde dann auch für ein Bock für die Deklaration der Variablen U vorangestellt. Die Formulierung "Ändere U auf 0" finde ich sehr kreativ. Kann aber durchaus sein, dass sich das noch mal ändert. In JavaScript kann man übrigens auch eigene Funktionen bilden. Aber dann es ist vorbei mit der Rückwärts-Kompatibilität. Die Übersetzung in Blocks ist dann nicht mehr möglich.



Ein Highlight ist die Peer-to-Peer Funkverbindung zwischen zwei oder mehr Microbits. Dabei wird die Bluetooth-Hardware verwendet, nicht aber das Bluetooth-Protokoll. So etwas gab es bisher schon in JavaScript, nun aber auch in den Blocks. Eine feine Sache, wenn man mal Messwerte oder Steuerdaten drahtlos übertragen will.



Elektronik-Labor   Projekte   Microbit