Endlich ist es so weit und mein lange ersehntes Espruino Board ist da. Nachdem ich im letzten Jahr das Kickstarter Projekt mit dem Namen Espruino unterstützt habe ist es nun so weit und ich halte 5 Boards und 5 Bluetooth Chips in der Hand.
Bei dem Espruino Board handelt es sich um ein quelloffenes JavaScript Board. D.H. ein Mikrocontroller -Board, das man per JavaScript programmieren kann.
Jetzt mal im Ernst. Ist das nicht der Hammer?
Das Espruino Board ist also ein weiterer Vertreter der Gattung Mini-Computer wie auch der Raspberry –Pi, das IOIO-Board oder das Arduino Board. Dabei haben alle einen unterschiedlichen Anwendungsbereich.
Der Raspberry Pi ist z.B. ein vollständiger PC mit Betriebssystem, HDMI Anschuss und vielem mehr. Er ist sehr flexibel einsetzbar, aber auch verhältnismäßig groß und hat von den genannten Boards den größten Strom-Verbrauch.
Das IOIO Board ist vor allem ein IO Interface das per Bluetooth oder USB an einen PC oder ein Android Gerät angeschlossen werden muss. Das IOIO Board kann also nicht autonom agieren und ist immer auf ein Host in Form eines PCs oder Android Handys angewiesen.
Das Arduino Board richtet sich vor allem an Bastler und es gibt unzählige Anwendungen. Es ist klein und hat einen geringen Stromverbrauch. Allerdings ist die Programmierung etwas umständlich auch wenn die Entwicklungsumgebung kostenlos ist und es unzählige Beispiele im Netz gibt.
Das Espruino Board ist am ehesten vergleichbar mit dem Arduino. Es kann über den PC programmiert werden und eigenständig Code ausführen. Es hat einen unglaublich kleinen Strom-Verbrauch und ist nur 5,4cm x 4,1cm groß. Auf dem Board ist ein STM32 ARM-Cortex-M3 Prozessor mit 72 MHz aufgelötet, der über 256 KByte Flash-Speicher und 48 KByte RAM verfügt. Zusätzlich steht noch ein Sockel für SD Karten zur Verfügung. Für die Kommunikation mit anderen Komponenten steht eine USB Schnittstelle zur Verfügung und auf der Rückseite ist schon ein spezieller Bereich für die einfache Anbindung eines Bluetooth-Moduls (HC-05)zur Verfügung.
Zur Nutzung von Sensoren, Schaltern, Motoren und anderen IO-Geräten stehen 44 GPIO-Anschlüsse zur Verfügung.
- 26x PWM
- 16x ADC
- 3x USART
- 2x SPI
- 2x I2C
- 2x DAC
Eine spezielle Entwicklungsumgebung sowie das Hochladen von Binärcode sind bei dem Espruino Board nicht notwendig. Ein einfaches Terminal reicht schon aus um das Espruino Board programmieren zu können. Als Programmiersprache kommt JavaScript zum Einsatz. Eine sehr weit verbreitete Programmiersprache, die bisher vor allem im Web-Umfeld ihren Siegeszug im Browser feiern konnte. Dass es nun möglich ist, einen Mikrocontroller per JavaScript zu programmieren haben wir Gordon Williams zu verdanken, der diese geniale Idee umgesetzt hat.
Mit dem Board und der quelloffenen Software ist es Gordon Williams gelungen, den Einstieg in die Welt der Mikrocontroller deutlich zu vereinfachen und eine Basis für individuelle Projekte aus der Umfeld „Das Internet der Dinge“ zu produzieren.
Das Setup
Beim ersten Verbinden des Espruino Boards mit dem PC wird unter Windows ein COM-Port Treiber installiert, über den das Board später angesprochen werden kann. In meinem Fall hat es nur wenige Sekunden gedauert und schon war das Board 100% einsatzbereit.
Dank der Tatsache, dass sich das Board über USB mit Strom versorgt, benötige ich zum Start nicht einmal eine Batterie oder einen Akku. Einfach per USB an den Computer anschließen und fertig.
Die Entwicklungsumgebung
Da ich von Eclipse und Co. Viel zu verwöhnt bin um mit einem Terminal zu programmieren, habe ich mir die kostenlose Espruino IDE installiert, die das Programmieren noch mal deutlich vereinfacht und es möglich macht, dass schon nach 5 Minuten die erste kleine Anwendung auf dem Mikrocontroller ausgeführt wird.
Die Espruino IDE kann aus dem Google Chrome Store (https://chrome.google.com/webstore/detail/espruino-web-ide/bleoifhkdalbjfbobjackfdifdneehpo) kostenlos herunter geladen werden. Nach dem Download wird die Google Chrome App direkt aus dem Browser heraus gestartet. Diese Lösung ist so genial wie einfach und funktioniert bei mir problemlos.
Nach dem Start erscheint das Fenster mit der Entwicklungsoberfläche. Links ist das Terminal und auf der rechten Seite die eigentliche Entwicklungsumgebung. Oben links wählt man den COM Port und verbindet sich mit dem Mikrocontroller-Board und kann direkt starten.
Nach dem das Board nun verbunden ist, kann man auf der linken Seite einfach drauf los tippen. Der JavaScript Code der hier eingegeben wird, wird sofort auf dem STM32 ARM-Cortex-M3 Prozessor ausgeführt. Es muss nichts kompiliert werden. Die Firmware interpretiert den Code direkt.
Tippt man z.B. 1+1, wird das Ergebnis =2 ausgegeben. Damit ist der Windows Taschenrechner schon mal arbeitslos geworden. Aber da geht natürlich noch viel mehr.
Tippt man z.B. digitalWrite(LED1, 1) wird die LED1, die sich rechts über dem Prozessor befindet eingeschaltet.
Wichtig: Es ist unbedingt auf Groß/ und Klein-Schreibung zu achten. Wie in dem Screenshot zu sehen ist, wird der Befehl digitalwrite(LED1,1) nicht ausgeführt.
Nachdem der erste Test erfolgreich durchgeführt wurde, kann man nun mal das erste Beispiel auf der rechten Seite der IDE ausführen. Das Beispiel führt in einem Intervall von 0,5 Sekunden eine kleine Funktion aus, die LED1 und LED2 unterschiedlich ein und aus schaltet.
Das originale Beispiel ist etwas einfacher. Ich habe es ergänzt um auch mal LED2 leuchten zu sehen.
So einfach kann es sein, einen Mikrocontroller zu programmieren. Vor ein paar Jahren noch brauchte man dafür ein Programmier-Board und spezielle Entwicklungsumgebungen, komisch wirkende Programmiersprachen und nach ca. 1000 Programmiervorgängen war denn der Flash Speicher wieder hin und ein weiterer Prozessor ist in den Müll gewandert.
Es geht noch einfacher
Wer jetzt schon nach dem Bestellen Button auf der Webseite http://www.espruino.com/ sucht, sei gewarnt, denn es geht noch einfacher. Neben der Möglichkeit JavaScript Code zu tippen kann man den Code im Designer auch einfach zusammenklicken.
Wer schon mal mit der Lego Mindstorms Entwicklungsumgebung gespielt hat, der weiß was ich meine. Mit Hilfe des Designers kann man mit wenigen Klicks das folgende Beispiel zusammenklicken und schon reagiert das Board auf einen Tastendruck.
Ich bin jedenfalls schon überzeugt von dem kleinen Wunderwerk der Technik und wenn ich so überlege, das mein erster Computer (Comodore VC20) wesentlich weniger Leistung gebracht hat als diese kleine Platine, dann bin ich sehr gespannt auf die nächsten 30 Jahre, denn mir fehlt jede Fantasie mir die Zukunft vorzustellen, wenn es mit der Geschwindigkeit weiter geht.
Als nächstes werde ich dann wohl mal das Bluetooth Modul auflöten. Leider ist mein SMD Lötkolben hin und ich muss noch ein paar Tage warten bis ich einen neuen bekomme.