Im Laufe der Zeit haben sich Arduino-Boards öfters weiterentwickelt, um den Bedürfnissen von Herstellern und Fachleuten nach hoher Leistung und Funktionalität in Anwendungen mit geringem Stromverbrauch und begrenztem Platzangebot nachzukommen.

Anforderung an tragbare Designs

Eck-Daten

Die Arduino-Entwicklerboards haben sich seit ihrer Einführung in Leistung, Größe und Features verändert. Aufgrund dessen eignen sich die Boards je nach Ausführung für ein breites Feld an Anwendungen. Mit dem Seeduino Xiao beispielsweise lassen sich kompakte tragbare Lösungen entwickeln, da das Board selbst nur wenige Zentimeter groß ist.

Viele Hobbybastler und Designer sind daran interessiert, physisch kleine Produkte für den Einsatz in räumlich beschränkten Umgebungen zu entwickeln, einschließlich Wearables. Dabei handelt es sich in der Regel um intelligente elektronische Systeme, die häufig auf einem Mikrocontroller in Verbindung mit einem Sensor und/oder einem Anzeigegerät basieren. In einigen Fällen dienen sie als Hightech-Schmuck, in anderen Fällen tragen die Nutzer sie nahe an und/oder auf der Hautoberfläche, wo sie Körperdaten wie Temperatur, Herzfrequenz und Pulsoxygenierung sowie Umweltdaten erfassen, analysieren und übertragen können. In einigen Fällen bieten sie dem Träger ein sofortiges Biofeedback.

Für solche Entwürfe verwenden viele Hobbyisten und Hersteller Arduino-Mikrocomputer-Entwicklungsboards. Dies gilt auch für eine wachsende Zahl professioneller Ingenieure, die diese Entwicklungsboards als Evaluierungs- und Prototyping-Plattformen nutzen können, um die Evaluierung von ICs, Sensoren und Peripheriegeräten zu beschleunigen und die Kosten zu senken.

Solche Benutzer beginnen typischerweise mit der A000073 Arduino Uno Rev3. Dieses Board basiert auf dem ATMEGA328P-AUR-Mikrocontroller von Atmel, (wurde von Microchip Technology übernommen). Der 5-V-Prozessor bietet 14 digitale Ein-/Ausgänge (E/A), von denen sechs die Fähigkeit zur Pulsweitenmodulation (PWM) bieten können, sowie sechs analoge Eingangspins, die sich bei Bedarf auch als digitale E/A verwenden lassen. Es unterstützt außerdem zwei externe Interrupts an den digitalen E/A-Pins 2 und 3 sowie je einen der Schnittstellen UART, SPI und I2C.

Neben der Beschränkung auf einen 8-Bit-Datenpfad und einen 16-MHz-Takt sowie der Tatsache, dass der Arduino Uno nur 32 kB Flash-Programmspeicher und 2 kB SRAM bietet, ist diese Entwicklungsplatine mit 68,6 x 53,4 mm (36,63 cm2) für viele Anwendungen zu groß.

Bild 1: Abbildung 1: Das Arduino Uno Rev3 Entwicklungsboard basiert auf dem 8-Bit ATmega328P Mikrocontroller, der mit 16 Megahertz (MHz) arbeitet. Die Grundfläche der Stiftleisten mit 14 digitalen E/A-Pins, 6 analogen Eingangspins und verschiedenen Strom-, Masse- und Referenzpins ist die Grundlage für ein riesiges Ökosystem von Tochterkarten, die als Shields bezeichnet werden.

Bild 1: Das Arduino Uno Rev3 Entwicklungsboard basiert auf dem 8-Bit ATmega328P Mikrocontroller, der mit 16 Megahertz (MHz) arbeitet. Die Grundfläche der Stiftleisten mit 14 digitalen E/A-Pins, 6 analogen Eingangspins und verschiedenen Strom-, Masse- und Referenzpins ist die Grundlage für ein riesiges Ökosystem von Tochterkarten, die als Shields bezeichnet werden. Arduino.cc

Eine Möglichkeit, den physischen Platzbedarf des Mikroprozessor-Entwicklungsboards zu reduzieren, ist der Wechsel zu einem ABX00028 Arduino Nano Every, der auf dem ATMEGA4809-MUR Mikrocontroller von Atmel basiert. Er verfügt über 50 Prozent mehr Programmspeicher als der Arduino Uno (48 kB) und die 3-fache Menge an SRAM (6 kB). Wie das Arduino Uno basiert auch das Arduino Nano Every auf einem 5-V-Prozessor, der 14 digitale E/A sowie sechs analoge Eingangspins bietet, die bei Bedarf auch als digitale E/A genutzt werden können. Wie der Uno bietet auch der Nano Every je eine UART-, SPI- und I2C-Schnittstelle. Im Gegensatz zum Uno, der nur zwei externe Interrupts unterstützt, lassen sich jedoch alle digitalen Pins des Nano Every als externe Interrupts verwenden.

Obwohl der Arduino Nano Every immer noch die Einschränkung eines 8-Bit-Datenbusses hat, verfügt er über einen schnelleren Takt (20 MHz) und mehr Speicher (48 kB Flash und 6 kB SRAM). Noch wichtiger für Projekte mit begrenzter Größe ist, dass das Arduino Nano Every nur 45 × 18 mm groß ist (8,1 cm2).

Eine weitere beliebte Alternative, die mit der integrierten Entwicklungsumgebung (IDE) des Arduino programmiert werden kann, ist die DEV-13736 Teensy 3.2 von Sparkfun Electronics. Wenn es um E/A geht, legt dieses 3,3-V-Entwicklungsboard mit 34 digitalen Pins, von denen 12 PWM unterstützen, sowie 21 hochauflösenden analogen Eingängen richtig los.

Bild 2: Der Arduino Nano Every ist eine Weiterentwicklung des traditionellen Arduino Nano, verfügt aber über einen wesentlich leistungsstärkeren Prozessor, den ATMEGA4809, der 50% mehr Programmspeicher als der Arduino Uno hat, und viel mehr Platz für Variablen, da das SRAM mit 6 KByte 3x größer ist.

Bild 2: Der Arduino Nano Every ist eine Weiterentwicklung des traditionellen Arduino Nano, verfügt aber über einen wesentlich leistungsstärkeren Prozessor, den ATMEGA4809, der 50 Prozent mehr Programmspeicher als der Arduino Uno hat, und viel mehr Platz für Variablen, da das SRAM mit 6 KByte dreimal größer ist. Arduino.cc

Der Teensy 3.2 wird von einem MK20DX256VMC7R-Kinetis-K20-Mikrocontroller von NXP gespeist. Der K20 verfügt über einen 32-Bit-ARM-Cortex-M4-Prozessorkern, der mit 72 MHz läuft und über einen 256 kB Flash-Speicher und 64 kB SRAM verfügt. Von besonderem Interesse für Projekte mit beschränkter Größe ist die Tatsache, dass das Teensy 3.2 mit 35 × 18 mm (6,3 cm2) nur etwa Dreiviertel der Größe des Arduino Nano Every benötigt.

Seeeduino Xiao

Auch wenn der Teensy 3.2 nur 6,3 cm2 beträgt, ist dies für viele Anwendungen immer noch zu groß. Die Lösung für diejenigen, die nach noch kleineren und leistungsfähigeren Plattformen suchen, liegt innerhalb des riesigen Arduino-Ökosystems. Eine relativ neue Option ist der Seeeduino Xiao von Seeed Technology, der 23,5 × 17,5 mm (4,11 cm2) misst.

Der Xiao wird von einem ATSAMD21G18A-MUT SAMD21G18 Mikrocontroller von Atmel gespeist. Dieser Mikrocontroller verfügt über einen 32-Bit-Arm-Cortex-M0+ Prozessorkern, der mit 48 MHz läuft und von einem 256 kB Flash-Speicher sowie einem 64 kB SRAM unterstützt wird.

Bild 3: Das Teensy 3.2  bietet Hobbyisten, Studenten und professionellen Ingenieuren eine kostengünstige 32-Bit-Arm-Cortex--M4-Plattform.

Bild 3: Das Teensy 3.2 bietet Hobbyisten, Studenten und professionellen Ingenieuren eine kostengünstige 32-Bit-Arm-Cortex–M4-Plattform. PRJC.com

Obwohl der Xiao nur 11 Datenpins zur Verfügung stellt, kann jeder dieser Pins als digitaler I/O oder als analoger Eingang verwendet werden. Zehn der Pins unterstützen PWM, und einer der Pins ist mit einem Digital-Analog-Wandler (DAC) ausgestattet, so dass er eine echte analoge Ausgangskapazität bietet. Zusätzlich unterstützt der Xiao je eine der Schnittstellen UART, SPI und I2C.

Einsatz und Verwendung des Seeeduino XIAO

Bild 4: Das derzeit kleinste Arduino-kompatible Mikrocontroller-Entwicklungsboard der Seeeduino-Familie, der Seeeduino XIAO, bietet Anwendern einen leistungsstarken 32-Bit-Arm Cortex-M0+-Prozessor mit 48 MHz.

Bild 4: Das derzeit kleinste Arduino-kompatible Mikrocontroller-Entwicklungsboard der Seeeduino-Familie, der Seeeduino XIAO, bietet Anwendern einen leistungsstarken 32-Bit-Arm Cortex-M0+-Prozessor mit 48 MHz. Seeed Studio

Im Allgemeinen ähnelt die Arbeit mit dem Seeeduino Xiao der jedes anderen Arduino oder Arduino-kompatiblen Entwicklungsboard, aber es gibt einige erwähnungswerte Tipps und Tricks.

Ein guter Ausgangspunkt ist es, sicherzustellen, dass Entwickler mit der aktuellsten Version der Arduino-IDE arbeiten. Im Wiki für den Seeeduino Xiao finden Entwickler weitere Hinweise, wie sich die Arduiono-DIE mit dem entsprechenden Board-Manager erweitern lässt. Viele Projekte mit dem Seeeduino Xiao beinhalten die Verwendung von dreifarbigen WS2818-basierten Neopixeln von Adafruit, wie etwa den 2970 Streifen mit 144 Neopixeln pro Meter. Ein potenzielles Problem besteht darin, dass herkömmliche Arduino-Entwicklungs-Boards zwar weiterhin mit älteren Versionen der Adafruit NeoPixel-Bibliothek arbeiten können, das Seeeduino Xiao jedoch immer die aktuelle Version benötigt.

Es kann auch sein, dass Neopixel empfindlich auf Über- und Unterschwingen ihrer Datenpins reagieren. Das Problem ist, dass die schnellen Flankenraten der Signale von heutigen Mikrocontrollern zu solchen Eigenschaften führen können. Die Lösung besteht darin, einen Reihenwiderstand so nah wie möglich am ersten Element in der Neopixel-Kette hinzuzufügen. Ein geeignetes Beispiel wäre ein Widerstand mit 5-%-Toleranz, 0,25 W, 390 Ω, etwa ein CF14JT390R-Kohleschichtwiderstand von Stackpole Electronics.

Ein weiteres Problem im Zusammenhang mit Neopixel ist, dass die digitalen 3,3-V-Ausgänge des Seeeduino Xiao möglicherweise nicht ausreichen, um die 5-V-Dateneingänge des Neopixel anzusteuern. Eine Lösung wäre die Verwendung einer BOB-12009 Breakout-Platine für Logikpegelwandler von Sparkfun.

Bild 5: Alle elf Datenpins können als digitale E/A (D0 bis D10) oder analoge Eingänge (A0 bis A10) fungieren. Darüber hinaus können A0 als echter Analogausgang, D4 und D5 als I2C-Schnittstelle, D6 und D7 als UART-Schnittstelle und D8, D9 und D10 als SPI-Schnittstelle verwendet werden.

Bild 5: Alle elf Datenpins können als digitale E/A (D0 bis D10) oder analoge Eingänge (A0 bis A10) fungieren. Darüber hinaus können A0 als echter Analogausgang, D4 und D5 als I2C-Schnittstelle, D6 und D7 als UART-Schnittstelle und D8, D9 und D10 als SPI-Schnittstelle verwendet werden. Seeed Studio

Alles, was für eine Neopixel-Anwendung notwendig ist, ist ein einziger unidirektionaler Kanal. Das Problem mit der BOB-12009 ist allerdings, dass sie vier bidirektionale Kanäle bietet, was sie zu einer relativ großen Lösung für ein Projekt mit beschränktem Platzangebot und zu einer relativ teuren Lösung für ein kostensensibles Projekt macht. Eine einfache Alternative ist die Verwendung einer einzelnen 1N4001-Diode von Comchip Technology.

Neopixel betrachten eine logische 1 als alles über 0,7 * VCC. In diesem Fall betrachtet Neopixel eine logische 1 als 0,7 * 5 = 3,5 V. Die Versorgung eines „Opfer“-Pixels über eine IN4001-Diode, die einen Vorwärtsspannungsabfall von 0,7 V aufweist, führt dazu, dass es mit einer VCC von 5 – 0,7 = 4,3 V versorgt wird, was bedeutet, dass es eine logische 1 als 0,7 * 4,3 = 3,01 V betrachtet. Dies wiederum bedeutet, dass ein 3,3-V-Signal vom Seeeduino XIAO mehr als fähig ist, das Opferpixel anzusteuern. In der Zwischenzeit ist der 4,3-V-Ausgang des Opferpixels mehr als ausreichend, um den Dateneingang zum nächsten Neopixel in der Kette zu treiben.

Fazit

Bild 6: Mit einem einzigen Pin am Seeeduino XIAO können Hunderte von dreifarbigen Neopixeln einzeln angesteuert werden, wie zum Beispiel die 144 Neopixel pro Meter schwarzer Streifen von Adafruit.

Bild 6: Mit einem einzigen Pin am Seeeduino XIAO können Hunderte von dreifarbigen Neopixeln einzeln angesteuert werden, wie zum Beispiel die 144 Neopixel pro Meter schwarzer Streifen von Adafruit. Adafruit.com

Die frühen Arduino-Entwicklungsboards, wie das 8-Bit oder das 16 MHz Arduino Uno, waren physisch groß und in Bezug auf Kapazität und Leistung begrenzt. Heute umfasst das Arduino-Ökosystem eine enorme Vielfalt an Boards, die eine große Bandbreite an Formen, Größen und Fähigkeiten umfassen.

Für Projekte mit begrenzter Größe, wie etwa Wearables, bietet der Seeeduino Xiao einen 32-Bit-Arm-Cortex-M0+-Prozessorkern mit 48 MHz, 256 kB Flash-Speicher und 64 kB SRAM. Es kommt auf einer 4,11 cm² großen Steckplatine und ist mit dem Arduino-Ökosystem kompatibel.