Entwicklungstools

Arduino & Co.

8. Februar 2012, 11:43 Uhr | Von Dr. Claus Kühnel
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Arduino-kompatible 32-bit-Controller

Das Arduino-Konzept hat sich in kreativen Bereichen und beim Rapid-Prototyping sehr rasch etabliert. So ist es kein Wunder, dass schnell der Wunsch nach einer gesteigerten Performance des Mikrocontrollers laut wurde. Im Folgenden werden einige Boards vorgestellt, die bei gesteigerter Performance mehr oder weniger Arduino-kompatibel sind.

passend zum Thema

Maple-Board mit Cortex-M3
Bild 4. Maple-Board mit Cortex-M3.
© Leaflabs

Maple

Von der Fa. Leaflabs, einer Gruppe von MIT-Absolventen und -Studenten, wird u.a. das so genannte Maple Board angeboten (Bild 4). Hier handelt es sich um einen Arduino-kompatiblen Mikrocontroller auf Basis eines ARM Cortex-M3, der mit 72 MHz getaktet wird.

Die Maple-IDE ist praktisch identisch zur Arduino-IDE - im Sprachumfang gibt es nur kleine Abweichungen, so dass der Arduino-Programmierer kaum Schwierigkeiten beim Umstieg auf diese leistungsfähigere Hardware erwarten muss. Die Kompatibilität von Maple zu Arduino ist ausführlich hier beschrieben [6].

mbeduino
Bild 5. Von NXP kommt das Board mbeduino mit dem Cortex-M3.
© NXP

mbeduino

mbed bezeichnet ein ARM-Mikrocontroller-Modul von NXP mit USB-Anschluss im DIP-Formfaktor. Es wurde speziell zum Kennenlernen der ARM-Mikrocontroller und für das Rapid Prototyping entwickelt. Hauptmerkmale sind:

  • 0.1 DIP zur Kontaktierung in Lochrasterplatinen,
  • Stromversorgung über USB oder extern,
  • Programmierung als Flash-Laufwerk (USB Stick) durch Kopieren von Bin Files,
  • LEDs und Taster on-board, serielle Schnittstelle über USB.

Verfügbare Varianten sind mbed NXP LPC1768 mit einem ARM Cortex-M3 (96 MHz, 512 Kbyte Flash, 64 Kbyte RAM und einer Vielzahl von Interfaces wie Ethernet, USB Device und Host, CAN, SPI, I2C und weitere I/O) sowie die etwas ältere mbed NXP LPC2368 mit einem ARM7 (60 MHz, 512 Kbyte Flash, 32 Kbyte RAM und mit LPC1768 vergleichbaren Interfaces). Bild 5 zeigt einen mbed-Mikrocontroller auf einem mbeduino-Board.

Die Programmierung erfolgt in C/C++ über einen Online-Compiler von NXP oder die üblichen ARM-Entwicklungs-Tools. Software-seitig ist keine Kompatibilität zum Arduino gegeben. Detaillierte Informationen zur mbed-Hard- und -Software sind unter mbed.org zu finden.

Hardware-seitig wird die Kompatibilität zum Arduino über das mbed-Motherboard mbeduino erreicht. Dieses bietet Buchsenleisten für Arduino-Shields sowie USB-A, LAN RJ-45, SD oder microSD Card, CAN-Treiber MCP2551, Kontaktierungsmöglichkeiten für XBee oder XBee Pro und I2C-EEPROM, RTC-Backup und einen Anschluss zur Spannungsversorgung mit 6 bis 12 V (DC).

Xduino mit dem STM32
Bild 6. Das Xduino ist mit dem Cortex-M3 in Form eines STM32 bestückt.
© Xduino

Xduino

Xduino ist eine Arduino-kompatible Software-Plattform für ARM Cortex-M3. Unterstützt wird derzeit das in Bild 6 gezeigte ARM-Stamp-Board mit dem Cortex-M3 (STM32 F10ret6).

Die Arduino-Kompatibilität beschränkt sich allerdings darauf, dass mit Ausnahme der Funktion analog-Reference() die Syntax aller Arduino-Funktionen unterstützt wird. Die Nutzung der Arduino-Shields zur Erweiterung der Peripherie ist damit nicht gegeben.

Alle weiteren Details zum Xduino sind unter www.xduino.com zu finden.

chipKIT Uno32
Bild 7. Arduino mit Microchip-Controller: chipKIT Uno32.
© Digilent

chipKIT Uno32

Die chipKIT-Entwicklungsboards chipKIT Uno32 und chipKIT Max32 bieten einen PIC32MX320F128-Mikrocon-troller von Microchip und sind kompatibel zur existierenden Arduino-Hard- und -Software. Hauptmerkmale sind:

  • Pinkompatibilität zu vielen Arduino Shields, die mit 3,3-V-Pegeln arbeiten,
  • Arduino-Uno-Formfaktor,
  • 42 I/O Pins,
  • User-LED.

Weitere Details können der Website des Herstellers Digilent www.digilentinc.com entnommen werden. Zur Programmierung wurde die Arduino-IDE erweitert. Sie kann unter dieser URL für Windows, Linux und MacOS heruntergeladen und zur Arduino-IDE vergleichbar installiert werden. Neben den chipKIT-Boards können aus dieser MPIDE auch alle Arduino-Boards programmiert werden.

netduino
Bild 8. Arduino mit Microsoft-Software: netduino (AT91SAM7X512-CU).
© netduino

netduino

netduino bezeichnet eine Open-Source-Hardware-Plattform, die das .NET Micro Framework verwendet. Das netduino- Board verwendet einen ARM7 und ist hardware-seitig kompatibel zu Arduino, was die Verwendung der Shields ermöglicht. Zur Programmierung des Boards kann von netduino.com/downloads die folgende Software heruntergeladen und installiert werden:

  • Microsoft Visual C# Express 2010,
  • .NET Micro Framework SDK v4.1,
  • Netduino SDK v4.1.0 (32 bit) oder Netduino SDK v4.1.0 (64 bit).

Der C/C++-Programmierer erhält mit netduino eine Plattform, die ihm auf Basis der .NET-Technologie von Microsoft einen schnellen Einstieg in die Mikrocontroller-Programmierung ermöglicht. Unter Linux oder MacOS läuft die netduino-Umgebung nur in einer virtuellen Windows-Maschine oder mit Hilfe von Mono.

Ressourcen - viel hilft viel

Dass es sich bei den vorgestellten Boards angesichts einer ausgesprochen agilen Community nur um eine Momentaufnahme handeln kann, versteht sich von selbst. Zum Vergleich sind in Tabelle 3 die Ressourcen der betrachteten Mikrocontroller-Boards zusammengestellt:

Plattform
CPU Flash
RAM Clock
Kompatibilität zu Arduino
Arduino Uno ATmega328 32 Kbyte 2 Kbyte 16 MHz -
Maple STM32F103RB 128 Kbyte 20 Kbyte 72 MHz Board, Shield, Syntax, IDE
mbeduino LPC1768 512 Kbyte 64 Kbyte 96 MHz Shield-kompatibel über mbed motherboard
Xduino STM32F10x 512 Kbyte 64 Kbyte 72 MHz Syntax, (Hardware Stamp-like, no Shields)
netduino AT91SAM7X512 128 Kbyte 60 Kbyte 48 MHz Board, Shield (.NET Micro Framework)
Microchip PIC32MX320F128 128 Kbyte 16 Kbyte 80 MHz Board, Shield, Syntax, erweiterte IDE

Tabelle 3. Vergleich der Ressourcen von Arduino und mehr oder weniger kompatiblen Alternativen. mbeduino und Xduino können nur bedingt als Arduino-kompatibel angesehen werden.


mbed hat wegen seines Gesamtkonzepts auch unabhängig von der Arduino-Kompatibilität ein großes Potential, während beim Xduino die Hardware etwas hinterher hinkt. netduino kann hardware-seitig als Arduino-kompatibel gelten, allerdings wird software-seitig mit dem .NET Micro Framework ein anderer Weg beschritten.

Den Abschluss der Betrachtungen bildet ein Benchmark über die als Arduino-kompatibel zu betrachtenden Mikrocontroller. Die unterschiedliche Leistungsfähigkeit der betrachteten Mikrocontroller sollte sich in einer unterschiedlichen Rechen-Performance niederschlagen, weshalb das klassische „Sieb des Erastosthenes“ als Benchmark herangezogen wurde. Die betreffenden Listings sind auf der Website des Autors zu finden.

Die Resultate sind dort in Abbildung 13 bis 15 dokumentiert. Die Benchmark-Ergebnisse in Tabelle 4 zeigen, dass die Rechenleistung von Maple und chipKIT Uno 32 beträchtlich gesteigert werden konnte. Beide Arduino-kompatiblen Boards können immer dann zum Einsatz gelangen, wenn die Applikation eine höhere Performance als die des klassischen Arduinos erfordert.

Board CPU Clock Laufzeit Preis
Arduino 2009 ATmega 16 MHz 18267 ms 22 €
Maple STM32F103RB 72 MHz 5506 ms 38,95 € (44,95 $)
chipKIT Uno32 PIC32MX320F128 80 MHz 1489 ms 27,88 € (26,95 $)

Tabelle 4. Benchmarkdaten: Die Arduino-kompatiblen Cortex-M3-Boards sind erheblich leis-tungsfähiger als das Ursprungs-Arduino.


Unkomplizierte Prototyping-Plattform

Arduino und die leistungsstärkeren Entwicklungen Maple und chipKIT Uno32 bilden eine Klasse von Mikrocontroller-Boards, die sich durch leichte Peripherieanbindung und Vernetzungsmöglichkeiten auszeichnen. Das praktisch standardisierte Shield-Interface eröffnet den Zugriff auf ein stark wachsendes und zahlreiche Anwendungen abdeckendes Angebot von I/O-Baugruppen. Diese Shields vereinfachen Peripherie-Erweiterungen stark, da sie im Regelfall mit den erforderlichen Treibern und entsprechenden Programmbeispielen angeboten werden.

Der Aufbau von Baugruppen auf Arduino-Basis bleibt deshalb nicht nur Spezialisten vorbehalten, sondern kann mit viel stärkerem Blick auf die eigentliche Anwendung praktisch von nahezu jedem Interessierten vorgenommen werden.

Der Entschluss von Google, Android und Arduino zu koppeln, wird neue Anwendungen im Zusammenspiel von Mobilgeräten und Peripherie-Anbindung zeigen. Möglicherweise gehen Microsoft und Nokia mit Windows Phone und netduino einen ähnlichen Weg?


  1. Arduino & Co.
  2. Eigene Programmiersprache
  3. Arduino-kompatible 32-bit-Controller
  4. Literatur & Autor

Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!