Review: Ein Blick auf den Arduino Zero

Werkzeuge  –  0 Kommentare

Der Arduino gibt Entwicklern schon seit einiger Zeit die Option, Prozessrechner und "smarte" Prototypen zu erstellen, ohne dafür eigene Platinen basteln zu müssen. Die neue Generation erweitert die Möglichkeiten dank neuer Architektur.

Das Team hinter dem Arduino-Board setzte von Anfang an auf AVR-Prozessoren. Die Mikrocontroller-Architekur mag für Hochsprachen gut geeignet sein, kann allerdings mit ihren 8-Bit nicht mit modernen Prozessoren (etwa aus der ARM-Familie) mithalten.

Mit dem Zero Pro wagt Arduino einen Schritt in die Welt der Hochleistungsmikrocontroller. Aufgrund von Rechtsstreitigkeiten um die Marke ist unter dem Namen Arduino Zero eine technisch identische Variante erhältlich. Alle Zeros haben einen mit 48 MHz arbeitenden 32-Bit-Prozessor aus dem Hause Atmel, der zur Beschleunigung von speicherintensiven Tasks einen DMA-Controller (Direct Memory Access) mitbringt.

Zero oder Zero Pro?

Die Arduino-Entwickler und der Hersteller der Boards liefern sich im Moment ein hartes Gefecht um die Namensrechte des Arduino. Für Entwickler ist das insofern von Relevanz, als es drei Varianten des Zero-Boards gibt. Arduino.org (Hersteller) bieten neben dem M0/Zero Pro einen Zero an, dem der EDBG-Chip und der zweite USB-Port fehlt. Bei Arduino.cc (Entwickler) läuft der M0/Zero Pro unter dem Namen Zero, eine Light-Version gibt es hier nicht. Der Preis unterscheidet sich von Anbieter zu Anbieter etwas, ist allerdings für Entwickler- und Herstellerversion um die 45 Euro angesiedelt.

Im Bereich der integrierten Entwicklungsumgebungen sind beim Zero keine Unterschiede zu beachten: Ein Arduino.org-Prozessrechner funktioniert im Moment auch mit der IDE von cc und umgekehrt. Für die Beispiele im Artikel kam die IDE von Arduino.org zum Einsatz.

Im Bereich des Arbeitsspeichers, der bisher als Schwachpunkt der AVR-Architektur auffiel, hat sich einiges verbessert. Programme können auf 32 KByte RAM zugreifen und bis zu 256 KByte Flash-Speicher nutzen. Allerdings realisiert der neue Prozessor den Electrically Erasable Programmable Read-Only Memory (EEPROM) durch Emulation in Flash-Zellen. Daraus ergibt sich eine etwas langsamere Reaktionsgeschwindigkeit und erhöhte Abnutzung – wer pro Transaktion nur wenige Bits ändert, bekommt es mit der von SSDs bekannten Write Amplification zu tun.

Um die folgenden Schritte nachvollziehen zu können, ist ein Rechner mit Windows 8 und mindestens Version 1.7.4 der Arduino-IDE nötig. Für das Debugging kommt Atmel Studio und ein ergänzendes Plug-in des Unternehmens Visual Micro zum Einsatz. Hinweise zur Installation folgen an entsprechender Stelle.

Signale wandeln

Arduinos sind seit jeher mit einem Analog-Digital-Wandler ausgestattet. Nutzer, die Signale in die andere Richtung umsetzen wollen, mussten bisher auf Pulsweitenmodulation zurückgreifen oder externe Hardware anschließen. Der Arduino Zero hingegen stellt am Port A0 einen DA-Wandler zur Verfügung, der mit 10-Bit-Präzesion arbeitet.

Um den Controller auszuprobieren, ist eine Messung gut geeignet. Dazu lässt sich das folgende Programm (im Arduino-Kontext Sketch genannt) verwenden:

void setup() {
analogWriteResolution(10);
}

void loop() {
analogWrite(A0,0);
analogWrite(A0,1024/2);
analogWrite(A0,1024;
analogWrite(A0,1024/2);
analogWrite(A0,0);

}

Beim Gebrauch ist darauf zu achten, dass der Controller vor dem ersten Einsatz durch das Aufrufen von analogWriteResolution über die zu verwendende Genauigkeit zu informieren ist. Das Übergeben von 10 weist die Firmware dazu an, mit 10 Bit zu arbeiten; das System teilt an analogWrite übergebene Werte entsprechend auf.

Ein zwischen Pin und Masse angeschlossener Oszillograph liefert in dem Fall das in Abbildung 1 gezeigte Schirmbild. Sechs Spannungsänderungen werden in 23 Mikrosekunden bewerkstelligt, was durchaus befriedigend ist. Eine höhere Performance dürfte sich durch handgeschriebenen Assemblercode bewerkstelligen lassen, der die diversen Prüfmechanismen des Arduino-Betriebssystems umgeht.

Um mit dem neuen Board vertraut zu werden, kann man sich an einigen Testmessungen versuchen (Abb. 1).