© ZinetroN/Shutterstock.com
PHP Magazin
Die Mikrocontrollersoftware low.js im produktiven Einsatz

low.js - die kleine Alternative

JavaScript am Mikrocontroller mag auf diensterfahrene Rüstungselektroniker ähnlich wirken wie der Versuch, den Teufel mit Weihwasser in Kontakt zu bringen. Die im letzten PHP Magazin durchgeführten Experimente mit der Espruino Runtime zeigten aber, dass ausreichend Rechenleistung alle Wunden heilt.

Tam Hanna


Wer Espruino erwähnt, darf low.js nicht vergessen. Es handelt sich dabei um eine andere JavaScript Runtime, die ausschließlich für den ESP32 vorgesehen ist. Er ist – insbesondere im Vergleich zu den von Espruino sonst unterstützten Controllern – eine durchaus leistungsstarke Plattform. Die in Deutschland ansässigen Entwickler entschieden sich deshalb für eine andere Herangehensweise. Anstatt den JavaScript-Code à la Espruino zur Laufzeit zu interpretieren, arbeitet low.js mit einer Bytecode-verarbeitenden Engine. Zudem implementiert das Team so weit wie möglich die in Node.js vorgesehene Ausführungsumgebung. Was das in der Praxis bedeutet und was es beim Experimentieren zu berücksichtigen gibt, klären wir in diesem Artikel.

Startbereit

Wie so gut wie alle anderen JavaScript-Arbeitsumgebungen lebt auch low.js in der allseitsbekannten Node.js-Ausführungsumgebung. Der Autor führt die folgenden Schritte auf einer mit Ubuntu 18.04 laufenden Workstation durch, auf der sich unter anderem die folgenden Versionen finden:

tamhan@TAMHAN18:~$ node -vv12.4.0tamhan@TAMHAN18:~$ npm -v6.9.0

Die Installation der Arbeitsumgebung beginnt durch das Herunterladen des LowSync-Pakets. Es handelt sich dabei um eine Art Make-Werkzeug für JavaScript, das das Herunterladen der Runtime und die Interaktion mit ESP32-Hardware professionalisiert:

tamhan@TAMHAN18:~$ sudo npm install --unsafe-perm -g lowsync

Die in der Einleitung besprochenen Designentscheidungen führen dazu, das low.js eine durchaus umfangreiche Mikrocontroller-Software darstellt. Der ESP32 wird zum Zeitpunkt der Drucklegung dieses Hefts in zwei Versionen angeboten: der kleinere WROOM und sein mit mehr Speicher ausgestatteter Kollege WROVER. Beachten Sie beim Kauf von ESP-32-Boards, die für low.js vorgesehen sind, unbedingt, dass das Modul auf dem passenden Chip basiert. Der zur Verfügung stehende Speicher lässt sich nach dem Kauf nämlich nicht – oder zumindest nicht mit für normale Labors vertretbarem Aufwand – nachrüsten.

Verbinden Sie Ihr Board jedenfalls im nächsten Schritt mit der Workstation und prüfen Sie anhand von dmesg, an welchem seriellen Port der Controller angedockt wurde. Wenn Sie nicht schon Arduinos oder andere serielle Geräte mit dem Linux-Rechner verbunden haben, handelt es sich hierbei meist um /dev/ttyUSB0:

tamhan@TAMHAN18:~$ dmesg | grep "tty"[74408.596653] usb 1-6.1: ch341-uart converter now attached to ttyUSB0

Im nächsten Schritt weisen wir LowSync dazu an, die diversen benötigten Ressourcen herunterzul...

PHP Magazin
Die Mikrocontrollersoftware low.js im produktiven Einsatz

low.js - die kleine Alternative

JavaScript am Mikrocontroller mag auf diensterfahrene Rüstungselektroniker ähnlich wirken wie der Versuch, den Teufel mit Weihwasser in Kontakt zu bringen. Die im letzten PHP Magazin durchgeführten Experimente mit der Espruino Runtime zeigten aber, dass ausreichend Rechenleistung alle Wunden heilt.

Tam Hanna


Wer Espruino erwähnt, darf low.js nicht vergessen. Es handelt sich dabei um eine andere JavaScript Runtime, die ausschließlich für den ESP32 vorgesehen ist. Er ist – insbesondere im Vergleich zu den von Espruino sonst unterstützten Controllern – eine durchaus leistungsstarke Plattform. Die in Deutschland ansässigen Entwickler entschieden sich deshalb für eine andere Herangehensweise. Anstatt den JavaScript-Code à la Espruino zur Laufzeit zu interpretieren, arbeitet low.js mit einer Bytecode-verarbeitenden Engine. Zudem implementiert das Team so weit wie möglich die in Node.js vorgesehene Ausführungsumgebung. Was das in der Praxis bedeutet und was es beim Experimentieren zu berücksichtigen gibt, klären wir in diesem Artikel.

Startbereit

Wie so gut wie alle anderen JavaScript-Arbeitsumgebungen lebt auch low.js in der allseitsbekannten Node.js-Ausführungsumgebung. Der Autor führt die folgenden Schritte auf einer mit Ubuntu 18.04 laufenden Workstation durch, auf der sich unter anderem die folgenden Versionen finden:

tamhan@TAMHAN18:~$ node -vv12.4.0tamhan@TAMHAN18:~$ npm -v6.9.0

Die Installation der Arbeitsumgebung beginnt durch das Herunterladen des LowSync-Pakets. Es handelt sich dabei um eine Art Make-Werkzeug für JavaScript, das das Herunterladen der Runtime und die Interaktion mit ESP32-Hardware professionalisiert:

tamhan@TAMHAN18:~$ sudo npm install --unsafe-perm -g lowsync

Die in der Einleitung besprochenen Designentscheidungen führen dazu, das low.js eine durchaus umfangreiche Mikrocontroller-Software darstellt. Der ESP32 wird zum Zeitpunkt der Drucklegung dieses Hefts in zwei Versionen angeboten: der kleinere WROOM und sein mit mehr Speicher ausgestatteter Kollege WROVER. Beachten Sie beim Kauf von ESP-32-Boards, die für low.js vorgesehen sind, unbedingt, dass das Modul auf dem passenden Chip basiert. Der zur Verfügung stehende Speicher lässt sich nach dem Kauf nämlich nicht – oder zumindest nicht mit für normale Labors vertretbarem Aufwand – nachrüsten.

Verbinden Sie Ihr Board jedenfalls im nächsten Schritt mit der Workstation und prüfen Sie anhand von dmesg, an welchem seriellen Port der Controller angedockt wurde. Wenn Sie nicht schon Arduinos oder andere serielle Geräte mit dem Linux-Rechner verbunden haben, handelt es sich hierbei meist um /dev/ttyUSB0:

tamhan@TAMHAN18:~$ dmesg | grep "tty"[74408.596653] usb 1-6.1: ch341-uart converter now attached to ttyUSB0

Im nächsten Schritt weisen wir LowSync dazu an, die diversen benötigten Ressourcen herunterzul...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang