Tutorial: Einstieg
Tutorial: Einstieg
„p5micro“ ist eine Entwicklungsumgebung, zunächst einmal gedacht für Arduino & Co. Funktionsbeschreibungen beziehen sich deshalb immer darauf.
Die Software ist eine Anwendung für einen Webbrowser. Neue Javascript-Versionen sollten funktionieren. Ein Mindeststandard muss natürlich eingehalten werden, der zu Beginn der Entwicklungszeiten vor Jahren aktuell war. „p5micro“ benötigt einen Webbrowser, der DOM Level 3 unterstützt und Javascript 1.8.5 (ECMA Script V5).
Sobald „p5micro“ auf einem nodeMCU (ESP8266) installiert ist, kann es von dort aus in jedem moderneren Webbrowser unter jedem beliebigen Betriebssystem aufgerufen werden. Dazu gibt es eine Firmware, die auf einem ESP8266, mittels Arduino-Programmierumgebung, installiert wird. Es wäre ausreichend, die Software für die Browseranwendung nur im Speicher des ESP8266 abzulegen. Das ist aber nicht zu empfehlen, weil Daten auch immer wieder gespeichert werden müssen und irgendwann mit einem Ausfall des Flashspeichers zu rechnen ist, der nicht unendlich oft beschrieben werden kann. Besser geeignet ist eine SD-Karte. Aufgrund der größeren Menge Speicherzellen erhöht sich die Datensicherheit bezüglich Ausfällen des Speichermediums. Die Firmware ist deshalb so gestaltet, dass sie mit SD-Karte arbeitet.
Programmierung
Als Grundlage für „p5micro“ dient eine Benutzeroberfläche, in die verschiedene Funktionen nachträglich eingebaut werden können. Unter der Benutzeroberfläche arbeitet eine flexible Software (Interpreter), welche Programmierarbeiten für die Oberfläche vereinfacht und auf eine höhere Ebene hebt. Dadurch ist sie auch für Programmiereinsteiger geeignet. Die in Javascript gehaltene zugrundeliegende Scriptsprache für die Webanwendung ist für die Programmierung nicht zugänglich. Die Befehle der Programmiererweiterung in Form eines Interpreters ist auf bestimmte Ergebnisse und auf interne Datenverarbeitung ausgerichtet, entsprechend existieren teils sehr mächtige Befehle, die vor allem die Datensuche und Auswertung sehr vereinfachen, aber auch das Verbinden von Daten.
Zum Programmieren existieren zwei Level. Der erste Level befindet sich beim Programmieren mit einem Texteditor und Einbinden der Skripte durch den Programmierer. Der zweite, einfachere Level ist über die Benutzeroberfläche selbst zugängig. Es können mit der Benutzeroberfläche selbst Programme erstellt werden, welche die Funktion der Oberfläche erweitern oder verändern. Die Benutzeroberfläche ist einfach gehalten und soll eine Art unbeschriebenes Blatt darstellen. Zugleich ist sie in der Handhabung ganz und gar als Werkzeug konzipiert. Sie bietet auch Platz für Erweiterungen. Für die Fehlersuche ist eine Ausgabe für den integrierten Debugger bereits in die Oberfläche eingebettet und kann in jedem Script gesondert oder allgemein aktiviert werden. Damit wird die schrittweise Programmverfolgung und Einsicht aller verwendeten Variablen möglich. Der Debugger ist unverzichtbares Hilfsmittel zur effektiven Fehlersuche. Falls der Funktionsumfang der Scriptsprache nicht ausreicht, können zusätzlich Javascript-Fragmente eingebunden werden.
Firmware für Arduino & Co
Um die Programmierung mit der Arduino-IDE zu vereinfachen, wurde für die Benutzeroberfläche eine erste Erweiterung erstellt. Diese Erweiterung wird zusätzlich installiert und es kann Programmcode (für z. B. ATmega328P, Arduino) zusammengestellt werden. Grundlage dafür sind Codeschnipsel, die in der Benutzeroberfläche von „p5micro“ eingebunden und dort verwaltet werden. Die Benutzeroberfläche assistiert dann bei der Zusammenstellung des eigenen Programms in C++ und kompatibel für Arduino-IDE. Grundgedanke ist hier die Erstellung einer Firmware für Projekte, die dann auf diese Weise einfach gewartet und erweitert werden kann.
Eigene Benutzerschnittstelle
Damit ein Projekt komfortabel wird, ist eine Anbindung über das einheimische WLAN eine gute Idee. Ein ESP8266 ist dafür ausreichend geeignet, der in Projekte eingebunden werden kann. Was dann nur noch fehlt, ist das Erstellen einer Benutzerschnittstelle, wie immer sie aussehen soll. Dafür kann ein schmaler Webserver verwendet werden. Um euch dabei zu unterstützen, wurde eine weitere Erweiterung erstellt. Damit lassen sich zum Beispiel Buttons, Eingabefelder, Schieberegler und Auswahlfelder in einer Form platzieren und gestalten. Die Elemente werden mit eurer Software verknüpft, um Einstellungen vorzunehmen, Werte abzufragen und anderes.
Automatisierungsabläufe
Sobald Projekte größere Umfänge annehmen, stellt sich die Frage nach der Verwaltung und Verknüpfung der Funktionen zu einem Programmablauf. Programmierarbeit ist aufwendig. Programmcode muss immer wieder kompiliert und auf das jeweilige Gerät übertragen werden. Wenn Programmcode strukturiert wird, kann es sinnvoll sein, den eigentlichen Programmablauf (der sich eventuell auch noch ereignisabhängig ändern soll), nicht fest zu integrieren, sondern von außen programmierbar zu machen. Das Konzept „p5micro“ unterstützt einen solchen Ansatz, indem es die Erstellung und Wartung einer Firmware über die Benutzeroberfläche handhabbar macht.
Die zusätzliche Erweiterung „microBatch“ zur Benutzeroberfläche und das Hinzufügen des zugehörigen Bytecode-Interpreters ermöglicht die zukünftige Programmierung nach Fertigstellung der Firmware. Das Konzept verfolgt den Ansatz, Mini-Programmblöcke zu verwenden, da nur begrenzter Speicher in Mikrocontrollern zur Verfügung steht. Das Verfahren dahinter ermöglicht es, zahlreiche Programmcodes für Steuerungsaufgaben zu hinterlegen. Je nach Ereignisgenerierung können dutzende Bytecodes zusammen kommen, die entweder in einem internen Flashspeicher abgelegt werden oder auf einer SD-Karte, wo mehrere Megabyte dieser Programmdaten Platz finden können.
Tutorial Aufbau „p5micro“ - Server
Wer Lust bekommen hat, mehr zu erfahren, für den ist dieses Tutorial bestimmt. Station für Station, Schritt für Schritt führt es durch den Aufbau eines eigenen Servers mit „p5micro“ - Programmierumgebung. Am Ende einer jeden Station steht ein Link zum nächsten Abschnitt. Im Forum sind diese Abschnitte des Tutorials als Themen untergliedert, stehen aber nicht unbedingt in der richtigen Reihenfolge. Der nächste Teil beschäftigt sich mit der Server Hardware. Klicke hier, um weitergeleitet zu werden!
Die Software ist eine Anwendung für einen Webbrowser. Neue Javascript-Versionen sollten funktionieren. Ein Mindeststandard muss natürlich eingehalten werden, der zu Beginn der Entwicklungszeiten vor Jahren aktuell war. „p5micro“ benötigt einen Webbrowser, der DOM Level 3 unterstützt und Javascript 1.8.5 (ECMA Script V5).
Sobald „p5micro“ auf einem nodeMCU (ESP8266) installiert ist, kann es von dort aus in jedem moderneren Webbrowser unter jedem beliebigen Betriebssystem aufgerufen werden. Dazu gibt es eine Firmware, die auf einem ESP8266, mittels Arduino-Programmierumgebung, installiert wird. Es wäre ausreichend, die Software für die Browseranwendung nur im Speicher des ESP8266 abzulegen. Das ist aber nicht zu empfehlen, weil Daten auch immer wieder gespeichert werden müssen und irgendwann mit einem Ausfall des Flashspeichers zu rechnen ist, der nicht unendlich oft beschrieben werden kann. Besser geeignet ist eine SD-Karte. Aufgrund der größeren Menge Speicherzellen erhöht sich die Datensicherheit bezüglich Ausfällen des Speichermediums. Die Firmware ist deshalb so gestaltet, dass sie mit SD-Karte arbeitet.
Programmierung
Als Grundlage für „p5micro“ dient eine Benutzeroberfläche, in die verschiedene Funktionen nachträglich eingebaut werden können. Unter der Benutzeroberfläche arbeitet eine flexible Software (Interpreter), welche Programmierarbeiten für die Oberfläche vereinfacht und auf eine höhere Ebene hebt. Dadurch ist sie auch für Programmiereinsteiger geeignet. Die in Javascript gehaltene zugrundeliegende Scriptsprache für die Webanwendung ist für die Programmierung nicht zugänglich. Die Befehle der Programmiererweiterung in Form eines Interpreters ist auf bestimmte Ergebnisse und auf interne Datenverarbeitung ausgerichtet, entsprechend existieren teils sehr mächtige Befehle, die vor allem die Datensuche und Auswertung sehr vereinfachen, aber auch das Verbinden von Daten.
Zum Programmieren existieren zwei Level. Der erste Level befindet sich beim Programmieren mit einem Texteditor und Einbinden der Skripte durch den Programmierer. Der zweite, einfachere Level ist über die Benutzeroberfläche selbst zugängig. Es können mit der Benutzeroberfläche selbst Programme erstellt werden, welche die Funktion der Oberfläche erweitern oder verändern. Die Benutzeroberfläche ist einfach gehalten und soll eine Art unbeschriebenes Blatt darstellen. Zugleich ist sie in der Handhabung ganz und gar als Werkzeug konzipiert. Sie bietet auch Platz für Erweiterungen. Für die Fehlersuche ist eine Ausgabe für den integrierten Debugger bereits in die Oberfläche eingebettet und kann in jedem Script gesondert oder allgemein aktiviert werden. Damit wird die schrittweise Programmverfolgung und Einsicht aller verwendeten Variablen möglich. Der Debugger ist unverzichtbares Hilfsmittel zur effektiven Fehlersuche. Falls der Funktionsumfang der Scriptsprache nicht ausreicht, können zusätzlich Javascript-Fragmente eingebunden werden.
Firmware für Arduino & Co
Um die Programmierung mit der Arduino-IDE zu vereinfachen, wurde für die Benutzeroberfläche eine erste Erweiterung erstellt. Diese Erweiterung wird zusätzlich installiert und es kann Programmcode (für z. B. ATmega328P, Arduino) zusammengestellt werden. Grundlage dafür sind Codeschnipsel, die in der Benutzeroberfläche von „p5micro“ eingebunden und dort verwaltet werden. Die Benutzeroberfläche assistiert dann bei der Zusammenstellung des eigenen Programms in C++ und kompatibel für Arduino-IDE. Grundgedanke ist hier die Erstellung einer Firmware für Projekte, die dann auf diese Weise einfach gewartet und erweitert werden kann.
Eigene Benutzerschnittstelle
Damit ein Projekt komfortabel wird, ist eine Anbindung über das einheimische WLAN eine gute Idee. Ein ESP8266 ist dafür ausreichend geeignet, der in Projekte eingebunden werden kann. Was dann nur noch fehlt, ist das Erstellen einer Benutzerschnittstelle, wie immer sie aussehen soll. Dafür kann ein schmaler Webserver verwendet werden. Um euch dabei zu unterstützen, wurde eine weitere Erweiterung erstellt. Damit lassen sich zum Beispiel Buttons, Eingabefelder, Schieberegler und Auswahlfelder in einer Form platzieren und gestalten. Die Elemente werden mit eurer Software verknüpft, um Einstellungen vorzunehmen, Werte abzufragen und anderes.
Automatisierungsabläufe
Sobald Projekte größere Umfänge annehmen, stellt sich die Frage nach der Verwaltung und Verknüpfung der Funktionen zu einem Programmablauf. Programmierarbeit ist aufwendig. Programmcode muss immer wieder kompiliert und auf das jeweilige Gerät übertragen werden. Wenn Programmcode strukturiert wird, kann es sinnvoll sein, den eigentlichen Programmablauf (der sich eventuell auch noch ereignisabhängig ändern soll), nicht fest zu integrieren, sondern von außen programmierbar zu machen. Das Konzept „p5micro“ unterstützt einen solchen Ansatz, indem es die Erstellung und Wartung einer Firmware über die Benutzeroberfläche handhabbar macht.
Die zusätzliche Erweiterung „microBatch“ zur Benutzeroberfläche und das Hinzufügen des zugehörigen Bytecode-Interpreters ermöglicht die zukünftige Programmierung nach Fertigstellung der Firmware. Das Konzept verfolgt den Ansatz, Mini-Programmblöcke zu verwenden, da nur begrenzter Speicher in Mikrocontrollern zur Verfügung steht. Das Verfahren dahinter ermöglicht es, zahlreiche Programmcodes für Steuerungsaufgaben zu hinterlegen. Je nach Ereignisgenerierung können dutzende Bytecodes zusammen kommen, die entweder in einem internen Flashspeicher abgelegt werden oder auf einer SD-Karte, wo mehrere Megabyte dieser Programmdaten Platz finden können.
Tutorial Aufbau „p5micro“ - Server
Wer Lust bekommen hat, mehr zu erfahren, für den ist dieses Tutorial bestimmt. Station für Station, Schritt für Schritt führt es durch den Aufbau eines eigenen Servers mit „p5micro“ - Programmierumgebung. Am Ende einer jeden Station steht ein Link zum nächsten Abschnitt. Im Forum sind diese Abschnitte des Tutorials als Themen untergliedert, stehen aber nicht unbedingt in der richtigen Reihenfolge. Der nächste Teil beschäftigt sich mit der Server Hardware. Klicke hier, um weitergeleitet zu werden!