Archiv der Kategorie: Allgemein

Mut zu MINT

MINT steht als Synonym für Mathematik, Informatik, Naturwissenschaft und Technik. Die MINT-Fachbereiche bilden den zentralen wirtschaftlichen Innovationssektor. Die Digitalisierung ist im Kern die Grundlage für unser aller Zukunft.

In der IoT2-Werkstatt ist kürzlich das folgende Büchlein erschienen, wo die dortigen MINT-Aktivitäten sehr anschaulich beschrieben werden.

Das vorliegende Büchlein zeigt, wie MINT die Resilienz der Gesellschaft stärken kann. Als herausragende Anwendung hat sich dabei die auf dem Octopus-Mikrocontroller basierende IoT-CO2-Ampel erwiesen. Hunderte Schulen in Deutschland haben zu Beginn der Pandemie ihre Ampeln gemeinsam selbst gebaut. In tausenden Klassenräumen helfen sie seither beim nachhaltigen Lüften.

Im Blogbeitrag https://ckblog2016.net/2022/03/10/uberwachung-der-luftqualitat-in-innenraumen-uber-co2-etvoc-eco2-und-iaq/ hatte ich mich mit unterschiedlicher Sensorik zur Erfassung der Luftqualität befasst.

Angesichts weltweit weiter zu erwartender Infektionen gibt es aber erheblichen Nachholbedarf bei der Raumluftqualität. Da ist es schon etwas deutlich Anderes, ob ein gekaufter Sensor an der Wand hängt, oder ob ein selbstgebautes und durchschautes System an die MINT-Hintergründe der Lüftungsregeln erinnert.

Neben der Messung der Raumluftqualität sind im Büchlein Anwendungen zur Messung des Energieverbrauchs, zum Balkonkraftwerk (genehmigungsfreie Stecker-Solaranlage) und zur Messung des Starkregenpegels zu finden.

Das Büchlein kann als PDF von der URL https://www.umwelt-campus.de/fileadmin/Umwelt-Campus/IoT-Werkstatt/octopus/IoT_MINT_Making_Zukunft_Gestalten.pdf gratis heruntergeladen werden. Ich kann Ihnen das nur empfehlen!

Raspberry Pi 4 available?

If you look around for Raspberry Pi at the big online retailers today, the shelves are empty in many cases.

In places where there are few pieces on offer, the prices sometimes make you sit up and take notice.

RAKwireless can help here with its Raspberry Pi 4 kit.

Pi Hats for LoRaWAN, Cellular or PoE are available, as well as a 64 GB SD with Raspbian OS pre-installed.

Schaut man sich heute bei den grossen Online-Handlern nach Raspberry Pi um, dann sind in vielen Fällen die Regale leer.

An Stellen, wo wenige Stücke im Angebot sind, lassen mitunter die Preise aufhorchen.

RAKwireless kann hier mit seinem Raspberry Pi 4 Kit helfen.

Pi Hats für LoRaWAN, Cellular oder PoE sind verfügbar, sowie eine 64 GB SD mit vorinstalliertem Raspbian OS.


2022-11-30/CK

Longan Nano ADC & DAC

Der Longan Nano von Sipeed baut auf dem 32-Bit-RISC-V-Mikrocontroller GD32VF103CBT6 von GigaDevice auf und weist dadurch ein 12-Bit-ADC & DAC-Subsystem auf (2 x ADC, 2 x DAC).

Die Angaben im Datenblatt des GD32VF103CBT6 beschränken sich auf Kennwerte der DACs, die als „(1) Based on characterization, not tested in production“ gekennzeichnet sind. Für den ADC fehlen diese Daten ganz.

SymbolParameterConditionsValue (max.)
DNL(1)Differential non-linearity errorDAC in 12-bit mode±3 LSB
INL(1)Integral non-linearityDAC in 12-bit mode±4 LSB
Offset(1)Offset errorDAC in 12-bit mode±12 LSB
GE(1)Gain errorDAC in 12-bit mode±0.5 %
DAC Charakteristik – Auszug GD32VF103 Datasheet

Grund genug die Charakterestik des ADC & DAC-Subsystem etwas genauer zu betrachten. Die Vorgehensweise ist vergleichbar zum Test beim ESP32 (https://ckblog2016.net/2018/03/03/esp32-adc-dac/).

Vom DAC0 (PA4) wird eine analoge Ausgangsspannung bereitgestellt, die dann vom ADC0 (PA3) gemessen und zur Anzeige gebracht wird. Es genügt also eine Verbindung der beiden Anschlüsse PA3 und PA4 am Longan Nano.

Longan Nano

Mit einfachen Messmittel gestaltet sich eine Aussage über die Genauigkeit des DAC nicht ganz einfach, wie das folgende Bild zeigt.

Longan Nano DAC-Charakteristik

Aufgetragen ist die Abweichung der gemessenen Ausgangsspannung von der Idealkennlinie. Bei einem Spannungswert von 0.8 mV für das LSB ist ein hochauflösendes Digitalvoltmeter erforderlich. Mit einem üblichen Multimeter sind alle Messwerte über 2.2 V wegen zu geringer Auflösung unbrauchbar. Im Bereich unterhalb diese Wertes zeigt die DAC-Charakteristik aber Werte der Ausgangsspannung die allesamt im Bereich von +/- 2 LSB liegen. Die Angaben im Datenblatt können damit (zumindest in diesem Bereich) als messtechnisch bestätigt betrachtet werden.

Durch die Verbindung der beiden Anschlüsse PA3 und PA4 am Longan Nano kann nun der ADC0 die Spannungen des DAC0 erfassen. Das Programm LonganNano_ADC_DAC dient dem Erzeugen der Daten, die die DAC-ADC-Charakterstik beschreiben.

Ausgabe des Programms LonganNano_ADC_DAC

Die Abweichungen vom erwarteten Idealverhalten liegen bei maximal 10 mV.

Das DAC-ADC-Subsystem des Longan Nano (GD32VF103) zeigt damit wesentlich bessere Eigenschaften, als das des ESP32, wodurch bei weniger kritischen Anwendungen auf den Einsatz eines externen ADCs verzichtet werden kann.

Sipeed Longan Nano

Longan Nano von Sipeed ist ein kleines Evaluationboard auf Basis eines 32-Bit-RISC-V-Mikrocontrollers GD32VF103CBT6 von GigaDevice. Für Studenten, Ingenieure, Geeks und Enthusiasten ist das eine Möglichkeit, um auf die neueste Generation von RISC-V-Prozessoren zuzugreifen.

Sipeed Longan Nano wird aktuell nicht durch die Arduino IDE, wohl aber durch PlatformIO unterstützt.

Auf die Installation selbst gehe ich an dieser Stelle nicht ein. Hierzu gibt es einen sehr guten Beitrag von Michel Deslierres.

Der Sipeed Longan Nano bietet zwei Möglichkeiten für den Programm-Upload. Auf der rechten Seite befindet sich ein USB-C-Anschluss über den kann mit dem Tool DFU-Util das compilierte Programm zum Controller geladen werden. Die andere Möglichkeit ist die an der linken Seite herausgeführte serielle Schnittstelle (UART0).

Ich habe diese Möglichkeit verwendet, da ich die seriellen Ausgaben über dieses Port vorgenommen habe. Wie im Bild unten gezeigt bedarf es eines USB-TTL-Konverters, der Tx und Rx sowie 3.3 V und GND zur Verfügung stellt.

Ich habe drei Programme ausprobiert, die unter https://github.com/ckuehnel/GD32 zum Download zur Verfügung stehen.

Das Programm LonganNano_HelloWorld dient dem Test der Inbetriebnahme von PlatformIO IDE und erstem Programm. LonganNano_LCD zeigt die Ausgaben auf dem Onboard-LCD und LonganNano_Dhrystone liefert die Ergebnisse des Dgrystone-Benchmarks.

Serielle Kommunikation & Programm-Upload
Anzeige des Sipeed-Logos
Serielle Ausgabe Programm LonganNano_HelloWorld

Serielle Ausgaben des Dhrystone Benchmarks

Mit einem VAX MIPS Rating von 91 liegt der hier eingesetzte RISC-V Controller deutlich oberhalb der Cortex-M3 von ARM. Vergleichen Sie die Benchmark-Resultate für verschiedene Mikrocontroller von 8-Bit bis 64-Bit unter https://ckarduino.wordpress.com/benchmarks/.

M5Stack Atom Matrix & Atom Lite

ATOM Matrix und ATOM Lite sind ESP32-Entwicklungsboards mit einer Größe von nur 24 * 24 mm. Zum Einsatz kommt ein ESP32-PICO-Chip, der WiFi und Bluetooth für die Kommunikation bietet und über 4 MB integrierten SPI-Flash-Speicher verfügt. Für die IO-Erweiterung steht ein Grove-Port zur Verfügung. Über 6 GPIOs können beide Boards mit externen Sensoren und Aktoren verbunden werden. Die integrierte Typ-C-USB-Schnittstelle ermöglicht das schnelle Hochladen und Ausführen von Programmen

ATOM-Lite bietet eine Infrarot-LED, eine RGB-LED, Tasten und eine PH2.0-Schnittstelle.

ATOM-Matrix verfügt über einen integrierten IMU-Sensor (MPU6886) und eine 5 * 5 RGB-LED-Matrix, die sich sehr gut zu farbigen Signalisationszwecken eignet.

Signalisation über RGB-LED-Matrix

Eine Arduino Library ist unter https://github.com/m5stack/M5Atom zu finden.

Open-Source Real-Time OS für das IoT

Steht man heute vor der Aufgabe, ein neues Embedded System zu entwickeln, dann wird in den Anforderungen kaum die Anforderung nach einer Netzwerkverbindung fehlen. Dabei spielt es in erster Linie keine Rolle, ob es sich um eine drahtlose oder drahtgebundene Kommunikation handelt, ob die Kommunikation durch die Anwendung genutzt wird oder einen Remote Access für Konfiguration und Service darstellt. Möglicherweise lassen sich diese Dinge auch kaum vernünftig trennen.

Ein Embedded System, welches derartige Anforderungen erfüllen muss, ist mit vernünftigem Entwicklungsaufwand nicht ohne Betriebssystem umsetzbar. Die Suche nach einem für die betreffende Aufgabenstellung geeigneten Betriebssystem umfasst, viele und sehr unterschiedliche Aspekte.

Betrachtet man die Langlebigkeit von Investitionsgütern, dann erscheint schon aus strategischen Gründen der Einsatz eines OS-RTOS zwingend. Einer ersatzlosen Abkündigung eines etablierten, proprietären RTOS kann auf diese Weise der Schrecken genommen werden. In einer gewissen Klasse von Embedded Systems bis hin zu Supercomputern gibt es mit Linux ein ausgezeichnetes Beispiel für ein solches Open Source Betriebssystem.

Damit ist Linux heute ein mächtiges Betriebssystem, welches aber auch gewisser Ressourcen bedarf und für Systeme mit kleinem Footprint, geringen Ressourcen und möglichst für Batteriebetrieb angepasstem Stromverbrauch weniger geeignet ist.

Analysiert man aus Github Daten für Code Frequency, Commits und Contributions für Contiki, RIOT und Zephyr, dann kann deutlich eine größere Aktivität der Community beim Zephyr OS gegenüber den anderen beiden RTOS verzeichnet werden. Natürlich ist das Zephyr OS auch ein „junges“ RTOS, was nicht in allen Bereichen bereits ausgereift sein kann.

Das Zephyr Project (https://www.zephyrproject.org/what-is-zephyr) ist ein von der Linux Foundation gehostetes Collaboration-Projekt, eine Open Source Zusammenarbeit, die führende Kräfte aus der gesamten Branche zusammenbringt, um mit dem Zephyr OS ein skalierbares Echtzeit-Betriebssystem (RTOS) für mehrere Architekturen ressourcenbeschränkter Geräte zu entwickeln.

Der in der Zeitschrift Design & Elektronik erschienen Beitrag mit dem o.a. Titel (Design & Elektronik 3/2019, S. 42-48  ) soll Einblicke in das Zephyr OS und die Zephyr Entwicklungsumgebung geben. An Hand einiger einfacher und nachvollziehbarer Programmbeispiele wird die Vorgehensweise bei der Programmierung von Anwendungen und der Build Prozess dokumentiert. Die Programmbeispiele selbst sowie dazugehörige Screenshots sind auf Github unter https://github.com/ckuehnel/zephyrtests abgelegt.

Das Zephyr OS ist ein Open Source RTOS, welches durch das von der Linux Foundation gehostete Zephyr Project und die Nähe zu Linux das Potential hat, bei Embedded Systems mit kleinem Footprint in Zukunft vergleichbar erfolgreich zu werden, wie es Linux bei Systemen mit mehr Performance schon länger ist. Der Erfolg wird sicher stark durch die Community geprägt. Ausdauer und Kraft sind der Community zu wünschen. Die zentrale Mailinglist des Zephyr Projects [ https://lists.zephyrproject.org/g/main ] gibt aktuell Auskunft über die laufenden Aktivitäten.

Arduino Interrupts

Arduino Interrupts:
Speed up your Arduino to be responsive to events

Jetzt auch als Print erhältlich. ISBN 978-3-907856-42-7

Ist nun bei Amazon online unter https://www.amazon.de/dp/3907857429/

Cover



Graham Mantel

4,0 von 5 Sternen Interrupts Explained with examples

2. Dezember 2017 – Veröffentlicht auf Amazon.com Verifizierter Kauf

Interrupts are very useful item used in programming, by extending the basic range of the processor. This book explains in very clear English how to use interrupts . There also are many examples that I have inserted into my computer, and they all compile . Although finding the library files is more difficult, I have been given the run around trying to get the exact libary or equivalents . All being considered the book is well worth obtaining.

Sipeed MAix BiT for RISC-V AI+IoT

Heute eingetroffen:

Sipeed MAix BiT Front

Sipeed MAix BiT Back

Was hat Sipeeds MAix BiT zu bieten?

MAix’s CPU

Kendryte K210 system-on-chip (SoC), bietet folgende Features:

  • Dual-Core RISC-V 64bit IMAFDC
  • 8 MB high-speed SRAM
  • max. 800 MHz Clock
  • KPU (Neural Network Processor)
  • APU (Audio Processor)
  • Flexible FPIOA (Field Programmable IO Array) for GPIO Mapping
  • DVP camera and MCU LCD interface
  • Accelerators and peripherals: AES Accelerator, SHA256 Accelerator, FFT Accelerator (not APU’s one), OTP, UART, WDT, IIC, SPI, I2S, TIMER, RTC, PWM, etc

MAix’s Module integrates K210, 3-channel DC-DC power, 8MB/16MB/128MB Flash (M1w module add wifi chip esp8285 on it) into Square Inch Module.

M1 Module

Sipeed MAix BiT Development Board

Integriert USB2UART Chip, Auto-Download Schaltung, RGB LED, DVP Camera FPC Anschluss für FPC camera und Standard M12 Kamera), MCU LCD FPC Anschluss (für 2.4 inch QVGA LCD), SD Card Slot (Bild oben).

MAix’s SoftWare

  • MAIX wird durch ein Standalone SDK, FreeRTOS SDK auf Basis von C/C++ unterstützt.
  • Ein MicroPython Port unterstützt FPIOA, GPIO, TIMER, PWM, Flash, OV2640, LCD, etc. Das MaixPy Projekt und die MaixPy Dokumentation stehen auf Github zur Verfügung.

Ich bin gespannt auf die ersten Schritte in diesem neuen Umfeld…

Externer ADC am ESP32

In einem früheren Post hatte ich das ADDA-Subsystem des ESP32 untersucht und konnte nur wenig überzeugende Resultate präsentieren.

Ich habe die Messungen an einem neuen ESP32_Core_board v2 wiederholt. Die Resultate waren vergleichbar zur letzten Untersuchung.

ESP32 DAC-ADC-Characteristics

Im ESP32 Forum habe ich einen Hinweise zum Thema gefunden (https://www.esp32.com/viewtopic.php?f=2&t=4784&hilit=adc+accuracy) und eine Polynomapproximation der Kennlinie auf Github.

Diese Funktion habe ich in meinen Test eingebaut und die folgenden Ergebnisse erzielt:

ESP32 DAC-ADC-Characteristics

Schon in der Gesamtcharakteristik ist eine verbleibende Nichtlinearität zu erkennen, die im Detailbild noch deutlicher wird. Die Trendlinie zeigt eine Korrekturmöglichkeit am Gain. Es bleiben aber die nichtlineare Abweichungen , die allenfalls durch ein angepasstes Polynom reduziert werden könnten.

ESP32 DAC-ADS1015-Characteristics – Abweichung der ADC Spannung

Eine Alternative ist ein externer ADC. Ich verwende einen 12-bit ADC ADS1015, den es als Breakout Board von Adafruit u.a. gibt.

Adafruit ADS1915

Das Testprogramm ESP32_DAAD_ext_Test.ino ist auf Github abgelegt.

Die Resultate sehen folgendermassen aus:

ESP32 DAC-ADS1015-Characteristics

Erwartungsgemäss bekommen wir eine lineare Kennlinie, die aber bei näherem Hinsehen mit einem Offset und einem Gain behaftet ist, wie die folgende Darstellung besser zeigt.

ESP32 DAC-ADS1015-Characteristics – Abweichung der ADC Spannung

Diese Eigenschaften lassen sich kalkulatorisch ausgleichen und wir erhalten schliesslich Abweichungen im Bereich weniger mV.

Abweichung der ADC Spannung nach Offset- und Gain-Korrektur