Archiv der Kategorie: Maker

Seeeduino XIAO

Seeeduino XIAO ist das kleinste Arduino-kompatible Board in der Seeeduino-Familie. Basis des XIAO ist ein Microchip-SAMD21 (ARM Cortex-M0+ CPU (SAMD21G18)). Der Controller weist 256 KB Flash Memory und 32 KB RAM auf und wird mit 48 MHz getaktet.

Aus dem Pinout des Seeeduino XIAO ist die Ausstattung des kleinen Boards mit Schnittstellen ersichtlich. Durch den mit 48 MHz getakteten Cortex-M0+ weist das kleine Board eine gute Performance auf. Der Dhrystone Benchmark liefert einen Wert von 41589 Dhrystone/sec und das VAX MIPS Rating beträgt 23.67. Für raumsparende Aufbauten und Wearables ist das Board sehr geeignet, wenn auch die On-Board LEDs und die Stromaufnahme von ca. 350 uA im Sleep Mode weniger optimal sind.

Pinout Seeeduino XIAO
Dhrystone Benchmark Resultate Seeeduino XIAO

Weiterführende Informationen: http://wiki.seeedstudio.com/Seeeduino-XIAO/

Massgeschneidert für IoT Anwendungen

Espressif’s ESP32 ist aus IoT Anwendungen kaum noch wegzudenken. Geringe Stromaufnahme, eine leistungsfähige CPU und WiFi- bzw. BLE-Connectivity sind der Schlüssel für den Erfolg in diesem Bereich.

Eine Vielzahl dieser Anwendungen setzt das ESP-WROOM-32x-Modul von Espressiff ein.

Die ESP32-WROVER Serie besticht durch einige Modifikationen der ESP32-WROOM-32x-Module, die unter anderem ein zusätzliches 8-MB-SPI-PSRAM (Pseudo Static RAM) enthalten.

Das zusätzliche PSRAM kann für Geräte mit einem Display sehr nützlich sein. Wenn der Grafiktreiber einen Framebuffer verwendet, können so mehr Farben unterstützt werden.

Für das maschinelle Lernen bietet TensorFlow Lite alle Tools, die Sie zum Konvertieren und Ausführen von TensorFlow-Modellen auf Mobil-, Embedded- und IoT-Geräten benötigen. Genügend Speicher sollte aber vorhanden sein und den kann ein ESP32-Wrover nun bieten (siehe Tabelle).

Zu Tensorflow Lite auf dem ESP32 finden Sie weitere Informationen unter https://towardsdatascience.com/tensorflow-meet-the-esp32-3ac36d7f32c7

ModuleChipFlash, MBPSRAM, MBAnt.Dimensions, mm
ESP32-WROOM-32ESP32-D0WDQ64MIFA18 × 25.5 × 3.1
ESP32-WROOM-32DESP32-D0WD4, 8, or 16MIFA18 × 25.5 × 3.1
ESP32-WROOM-32UESP32-D0WD4, 8, or 16U.FL18 × 19.2 × 3.1
ESP32-SOLO-1ESP32-S0WD4MIFA18 × 25.5 × 3.1
ESP32-WROVER (PCB)ESP32-D0WDQ648MIFA18 × 31.4 × 3.3
ESP32-WROVER (IPEX)ESP32-D0WDQ648U.FL18 × 31.4 × 3.3
ESP32-WROVER-BESP32-D0WD4, 8, or 168MIFA18 × 31.4 × 3.3
ESP32-WROVER-IBESP32-D0WD4, 8, or 168U.FL18 × 31.4 × 3.3
Key characteristics of ESP32 Modules (https://docs.espressif.com/projects/esp-idf/en/latest/hw-reference/modules-and-boards.html)

Aus Fernost werden mittlerweile unterschiedlich ausgestattet Module mit ESP32-WROVER-B angeboten.

Ein gerade für IoT-Anwendungen optimal angepasstes Board wird mit dem ESP32 ePulse Dev Board von der Schweizer Firma Thingpulse angeboten.

Das Board ist für geringen Stromverbrauch und einen breiten Eingangsspannungsbereich optimiert. Weitere technische Aspekte finden Sie im Beitrag Designing the ESP32 Dev Board I always wanted.

Der VIN-Pin akzeptiert Spannungen zwischen 3.3 V und 12 V DC. Wenn sich das Board im Tiefschlaf befindet, verbraucht es nur zwischen 25 uA (bei 3.3 V) und 35 uA (bei 12 V). Die meisten ESP32-Boards verbrauchen etwa 100 – 130 uA.

Thingpulse bietet das Board für $ 16.90 an https://thingpulse.com/product/epulse-thingpulse-esp32-devboard/. Early Birds bekommen es noch für $ 12.70.

M5StickC Devices

Der M5StickC hat einen internen LiPo-Akku mit einer Kapazität von 80 mAh, der dem mobilen Einsatz dann doch gewisse Grenzen setzt. Bei meinen Experimenten zur Messung der Wassertemperatur hatte ich das zu berücksichtigen.

Kurz vor dem Jahresende 2019 kam Post aus Shenzen mit dem 18650C HAT, einem Batterieteil für den M5SticKC mit integriertem wiederaufladbaren LiPo-Akku 18650 mit einer Kapazität von 2000 mAh.

Das Batterieteil ist mit den Steckern der HAT-Serie ausgestattet, mit denen eine zuverlässige Verbindung zum M5StickC hergestellt werden kann. Die Unterseite ist mit einer USB-Ladeschnittstelle ausgestattet. Der USB-C-Anschluss des Batterieteils wird nur als Ladeschnittstelle verwendet und hat keine UART-Funktion. Auf der Rückseite des Batterieteils befinden sich zahlreiche Befestigungslöcher, die eine einfache Befestigung des gesamten Devices ermöglicht.

Handheld-Thermometer

Ich habe mit dem ENV Hat und dem M5StickC ein Handheld-Thermometer aufgebaut.

Über den BMP280 im ENV Hat werden Temperatur, relative Luftfeuchte und barometrischer Druck gemessen und im Sekundentakt auf dem M5StickC Display zur Anzeige gebracht.

Ich werde die Laufzeit einer Batterieladung in der Folge testen und hier berichten.

Überwachungsmassnahmen für den Batteriezustand sind nicht implementiert.

M5Stack Prototyping Platform

Im Blogbeitrag Rapid Prototyping mit M5Stack hatte ich die M5Stack Family als interessante Prototyping Platform vorgestellt.

Dieser Beitrag zeigt an Hand einer einfachen Wetterstation als Beispiel einer nahezu beliebigen IoT-Anwendung, wie mit M5Stack Komponenten schnell ein ansehnlicher Prototyp erstellt werden kann

Mit einem M5Stack Basic Core und einer ENV Unit zur Erfassung von Temperatur, rel. Luftfeuchte und Luftdruck sowie einem SIM800L Module zum Versenden der Daten über GPRS hat man schnell eine abgesetzte Wetterstation aufgebaut, die auch ohne WLAN Zugang autonom funktionieren kann.

Der M5Stack Core besitzt in seinem Unterteil nur einen 150 mAh. Will man die Akkuleistung, beispielsweise zur Pufferung, erhöhen, dann kann ein M5GO/FIRE Battery Bottom Charging Base als Unterteil eingesetzt werden.

M5Stack Basic Core

Die ENV Unit ist ein Umgebungssensor, der zur Messung von Temperatur, relativer Luftfeuchtigkeit und Luftdruck verwendet werden kann. Intern werden die Sensoren DHT12 und BMP280 verwendet.

Der DHT12 ist eine Weiterentwicklung des bekannten DHT11 Sensors, der nun präziser und mit einer I2C-Schnittstelle ausgestattet ist. Der BMP280 ist ein barometrischer Drucksensor, der speziell für mobile Anwendungen entwickelt wurde.

Kontaktiert wird die ENV Unit über den an der linken Seite des M5Stack Basic Core angeordneten Grove-PortA (i2C).

ENV Unit with Temperature Humidity Pressure Sensor (DHT12+BMP280)

SIM800L ist ein Mobiltelefonmodul auf Basis des SIM800L GSM / GPRS-Modul von SIMCOM,

GSM Module SIM800L with MIC & Headphone Jack

Mit diesen drei Komponenten wird die Wetterstation aufgebaut. Die Kosten der ansprechenden Anordnung belaufen sich dabei auf:

KomponentePreis
M5Stack Basic Core$ 27.95
ENV Unit$ 3.39
GSM Module SIM800L with MIC & Headphone Jack $ 9.95
Summe$ 41.29

Die folgenden Bilder zeigen den Ablauf vom Programmstart bis zum Abschluss der Übertragung des Temperaturmesswertes, der hier für die Evaluierung ausreichend erschient.

Initialisierung nach Programmstart
Messwerte erfasst – Versenden zum Thingspeak Server
Messwerte versendet

Der Quelltext für das Programm M5Stack_DHT12_Thingspeak ist auf Github unter https://github.com/ckuehnel/M5Stack/tree/master/M5Stack/M5Stack_DHT12_Thingspeak abgelegt. Anpassungen auf weitere Parameter und andere Displayausgaben können nach dem Download leicht vorgenommen werden. Programmiert wurde mit der Arduino IDE v1.8.9.

Das Ergebnis der abendlichen Abkühlung ist im folgenden Bild zu sehen.

Temperaturverlauf 6.08.2019 abends

Ein Wort noch zur Stromversorgung. Der SIM800L ist bekannt dafür, dass er in Spitzen bis zu 2 A Stromaufnahme verzeichnet. Die Spannungsversorgung kann beim M5Stack aber vernünftig nur über den USB-Anschluss erfolgen. Dadurch ist der zur Verfügung stehende Strom limitiert.

Ich habe einen D-Link DUB-H4 USB-Hub verwendet, der vier Downstream-USB-Anschlüsse Typ A (Buchse) inklusive Schnellladeanschluss besitzt und durch ein externes Netzteil gespeist wird.

Der fürs iPad u.a. stromhungrige Verbraucher gedachte Schnellladeanschluss dient hier zur Stromversorgung und die sporadischen Brown Out-Resets des ESP32 sind Vergangenheit.

bpi:bit – Mehr Power im micro:bit Universum

In meinem Beitrag Mikrocontroller nicht nur für die Schule! (Design & Elektronik 01/2018, MF40-44) hatte ich BBC micro:bit und Calliope mini, beides für die Grundschul-Ausbildung konzipierte Mikrocontroller-Boards, vorgestellt und deren Erweiterungsmöglichkeiten betrachtet.

Befördert durch den Edge-Connector des BBC micro:bit werden mittlerweile zunehmend Peripherieerweiterungen für den BBC micro:bit angeboten, die diesen Controller auch für Maker interessant machen.

Einen Überblick über vorhandene Erweiterungen kann man sich beispielsweise bei Reichelt oder den folgenden Adressen holen:

Durch den im BBC micro:bit eingesetzten Mikrocontroller nRF51822 gerät man aber auch schnell an Grenzen. Will man beispielsweise seinen BBC micro:bit über WiFi vernetzen, dann ist dafür bereits ein Zusatzmodul erforderlich. Auch vom Speicherausbau her sind Grenzen gesetzt, die den Wunsch nach einem Mikrocontroller mit mehr Performance aufkommen lassen.

Mit dem bpi:bit des Banana-Pi Herstellers SinoVoip gibt es einen solchen Mikrocontroller auf Basis eines ESP32. Warum bei heise der bpi:bit als kuriose Kopie abgetan wird, ist für mich nur schwer nachvollziehbar. Die nachfolgende Tabelle zeigt die Merkmale von bpi:bit und micro:bit im Vergleich.

Wer bislang seinen BBC micro:bit bereits mit MicroPython oder der Arduino IDE programmiert hat, bekommt mit dem bpi:bit eine leistungsstarken Controller incl. WiFi für seine micro:bit Umgebung.

Nutzt man alle WS2812, dann kommt man um eine Fremdspeisung des Moduls nicht umhin, denn der Strombedarf übersteigt das, was ein USB-Anschluss zur Verfügung stellt.

Modulbpi:birmmicro:bit
CPUESP32 nRF51822
RAM520 KB256 KB
ROM448 KBN/A
Flash512 KB16 KB
WiFi 802,11 b/g/n/e/ich N/A
Bluetooth BT4.2 BR/EDR und BLE BLE
Sensoren2 Fototransistoren,
Thermistor,
MPU-2950
LED-Matrix,
On-Chip Temperatursensor,
LSM303GR
SummerSummerN/A
LEDs 25 Neopixel-LEDs (WS2812 ) 25 rote LEDs
GPIOEdge-Connector (Goldfinger)Edge-Connector (Goldfinger)
Tasten2 programmierbare Tasten 2 programmierbare Tasten
USBmicro-USB (UART)micro-USB
Software Webduino, Arduino,
MicroPython, Scratch X
Microsoft MakeCode, Arduino
MicroPython, Scratch X
Grösse5 x 5 cm5 x 4 cm

HiFive1 Rev. B

Vor wenigen Tagen war nun das über Mouser bestellte und von CrowdSupply gelieferte HiFive1 Rev. B Board im Postkasten.

HiFive1 Rev. B

Das HiFive1 Rev, B Board weist die folgenden Features auf:

  • MCU – SiFive Freedom E310-G0002 32-Bit RV32IMAC processor @ bis zu 320+ MHz (1.61 DMIPS/MHz)
  • Storage – 32 MBit SPI Flash
  • Connectivity – ESP32-SOLO-1 WiFi & Bluetooth module
  • I/Os (19 x Digital I/O Pins, 19 x external Interrupt Pins, 1 x external Wakeup Pin, 9 x PWM Pins, 1/3 SPI Controllers/HW CS Pins)
  • I/O Voltages –  3.3 V
  • USB – 1 x micro USB Port für Power, Programming und Debugging (via Segger J-Link)
  • Power Supply – 5 V via USB oder 7 – 12V via DC Jack; Operating Voltage: 3.3 V und 1.8 V
  • Dimensions – 68 mm x 51 mm
  • Gewicht– 22 g

Zur Programmierung kann das Freedom-E SDK herangezogen werden, was allerdings einen Linux-Rechner erfordert. ‌Alle Informationen hierzu sind unter https://github.com/sifive/freedom-e-sdk​ zu finden.

Die beim HiFive1 vorhanden Unterstützung der Arduino IDE wurde nicht weitergeführt.

Das Eclipse-basierte, wesentlich komplexere Freedom Studio läuft auch auf Windows.

Eine erste Idee von der Performance des HiFive1 Rev. B bekommt man über den Dhrystone Benchmark.

Resultat Dhrystone Benchmark (Out of the Box) (Das Ergebnis ist noch falsch – Bild wird ersetzt)

Mit diesem Ergebnis liegt der HiFive1 Rev. B in der Nähe von Cortex-M3/M4/A5.

MCUDIPS/MHz
HiFive1 Rev. B1.6
Cortex-M31.24
Cortex-M41.25
Cortex-A51.6

Quelle: https://brtchip.com/wp-content/uploads/Support/Documentation/Application_Notes/ICs/MCU/AN_304-FT900-Microcontroller-Benchmark.pdf

Rapid Prototyping mit M5Stack

Wem es bislang an Baugruppen mit einem vernünftigen Gehäuse für die Entwicklung seiner Prototypen gemangelt hat, dem wird mit M5Stack Komponenten eine ansprechende Lösung angeboten.

Hier sind aus dem Angebot von M5Stack zwei Core Module:

Generell weisen beide Core Module einen ESP32 als Controller auf.

Die M5Stack Komponenten werden von zahlreichen Lieferanten angeboten und sind nicht nur bei Bezug aus Fernost sehr preiswert.

KomponenteAliexpress
M5Stack CoreUS$ 27.60
M5StickCUS$ 9.90
ENV UnitUS$ 3.20

Ich habe mit dem M5StickC erste Versuche unternommen, um seine Eignung für ein portables Messgerät zu testen. Der M5StickC ist mit einem 80 mAh LiPo-Akku ausgerüstet, was keine großen Akkulaufzeit erwarten lässt.

Der M5StickC ist mit einem Power System Management Chip AXP192 ausgestattet, der ein USB-kompatibles Ladegerät, DC-DC-Wandler, Low-Dropout-Linearregler, Spannungs- /Strom- /Temperaturüberwachung und Multi-Kanal 12-Bit ADC aufweist. Die Überwachung des Ladezustand des LiPo-Akkus kann über diesen Chip erfolgen.

Der ESP32 weist zwei I2C-Busse auf. Über den ersten werden die internen Chips AXP32 (0x34), BM8563 (0x51) und SH200Q (0x6C) angesteuert. Der zweite I2C-Bus ist am GROVE-Connector verfügbar.

Für einen ersten Test schließe ich eine ENV Unit über den GROVE-Connector an. Dieses Modul beinhaltet einen DHT12 (0x5C) und einem BMP280 (0x76) Sensor und erfasst damit Temperatur, relative Luftfeuchte und barometrischen Druck.

Das Programmbeispiel M5StickC_ENV.ino erfüllt zwei Aufgaben:

  1. Erfassen von Temperatur, relativer Luftfeuchte und barometrischem Druck über die angeschlossene ENV Unit.
  2. Erfassen von Batteriespannung und Ladestrom für den LiPo-Akku

Das Programmbeispiel ist auf Github abgelegt.

Ausgehend von einem voll aufgeladenen LiPo-Akku habe ich die USB-Verbindung getrennt und das angegebene Programmbeispiel batterie-betrieben laufen lassen. Es hat sich folgender Entladevorgang gezeigt.

Nach reichlich 60 Minuten war die Kapazität des Akkus erschöpft und das System schaltete sich ab. Die folgenden Bilder demonstrieren diesen Vorgang.

Beginn mit voll aufgeladenem LiPo-Akku
Entladung nach 10 Minuten
Erneutes Aufladen des LiPo-Akkus

Es soll an dieser Stelle noch ausdrücklich darauf hingewiesen werden, dass für den Betrieb hier keine WiFi-Verbindung genutzt wurde. Eine WiFi-Verbindung erhöht den Stromverbrauch deutlich, so dass wesentlich geringere Laufzeiten erwartet werden müssen.