Archiv für den Monat Mai 2019

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.

Maduino GPRS A6

Maduino GPRS A6 ist ein kostengünstiger Netzwerkknoten für das IoT. Der Hersteller
Makerfabs mit Sitz in Shenzhen, China hat auf dem Board einen Mikrocontroller ATmega 328, ein GRRS/GSM-Modul AI-Thinker A6, ein und ein integriertes Power-Management integriert.

Maduino GPRS A6

Das GRPS/GSM-Modul A6 unterstützt Quad-Band 850/900/1800/1900 MHz, das jedes GSM-Netzwerk abdeckt. In Verbindung mit einer SIM-Karte können Daten über GPRS übertragen werden. In meinem Post 2G für IoT Anwendungen hatte ich hierzu entsprechende Hinweise gegeben.

Das Modul kann über die Arduino IDE programmiert werden. Im Wiki sind Hinweise zur Inbetriebnahme und Programmierung enthalten. Hinweise zu einem Firmware Update sind hier zu finden.

Erfassen von Wetterdaten – gar nicht so einfach

Mit zahlreichen, heute angebotenen Sensoren zur Erfassung von Wetterdaten, wie Temperatur, relativer Luftfeuchte, Druck u.a.m. können mit etwas Elektronik sehr einfach Wetterdaten erfasst und im Internet bereit gestellt werden.Openweathermap.org bietet beispielsweise ein API an, mit dessen Hilfe diese Daten im Openweathermap Mapping sichtbar werden. Anforderungen an die Messstelle selbst habe ich auf deren Website nicht gefunden.

Temperatur Mapping

Das Temperatur Mapping in meinem Umfeld zeigt am 2.05.2019 bei bedecktem Wetter keine grösseren Abweichungen.

Mich hat das Verhalten der Openweathermap Messstation an meinem Wohnort im Vergleich zu lokalen Wettersensoren interessiert. Ich habe deshalb selbst einen Temperatursensor DS18B20 in einem von direkter Sonneneinstrahlung geschütztem Bereich installiert und vergleiche die beiden Messwerte. Bei großzügiger Betrachtung kann man sagen, dass beide Messwerte einen Offset von 2.5 ° aufweisen. Selbst wenn man diesen Offset eliminiert, gibt es über den Tagesverlauf unerfreuliche Abweichungen.

Da die Messwerte doch rechte Unterschiede auswiesen, habe ich ein weiteres Außenthermometer hinzugenommen, was allerdings in den Morgenstunden durch Sonneneinstrahlung keine brauchbaren Werte liefert. Das Außenthermometer sendet seine Daten nur zwischen 5:00 und 20:00, was für den Vergleich aber unerheblich sein sollte.

Die Grafik zeigt deutlich, dass ohne Sonnenbestrahlung die Ergebnisse der Openweathermap Wetterstation ausreichend gut repräsentiert werden.

Die Wahl der entsprechenden Messbedingungen entscheidet also erwartungsgemäß über das Ergebnis

Die Situation der im Internet zugänglichen Messstellen kann aber auch ganz anders aussehen. J. Kachelmann zeigt das in seinem Blog im Tagesanzeiger mit dem Titel „Das ideale Geschenk zur Konf“ und wirbt für die gute alte Wetterhütte, die immer noch nicht an Bedeutung verloren hat und für zuverlässige Messwerte die Grundlage schafft.