Archiv der Kategorie: Arduino

Ledunia Benchmarks

Mit dem Beitrag Arduino32: Die jungen Wilden in der Zeitschrift DESIGN&ELEKTRONIK (Online-Version Teil 1Online Version Teil 2) hatte ich 32-Bit Arduinos vorgestellt und an Hand einfacher Benchmarks miteinander verglichen.

Der verbreitete #ESP8266 ist ebenfalls in die Arduino Umgebung integriert und die Verfügbarkeit von #Ledunia als High-End-ESP8266-Modul haben mich veranlasst, diese Test mit Ledunia zu wiederholen.

Die Programme selbst sind unter GitHub abgelegt, können von da heruntergeladen und in der Arduino IDE ausgeführt werden. Hier sind die Benchmark-Ergebnisse im Vergleich zu verschiedenen klassischen Arduinos:

Board Arduino Uno Arduino M0 Arduino Due Ledunia
CPU ATmega328 ATSAMD21G18
(Cortex-M0+)
AT91SAM3X8E
(Cortex-M3)
ESP8266EX
Clock 16 MHz 48 MHz 84 MHz 80 MHz
Runtime 18267 ms 5180 ms 3451 ms 2189 ms
IO-  Periode 11,60 us 3.24 us 4,32 us 5 us
I/O-Frequenz 86,21 kHz 308,6 kHz 203,3 kHz 200 kHz

Die Leistungsmerkmale der ESP8266-basierten Arduinos können sich sehen lassen und bilden damit eine sehr gute Ergänzung der Arduino-Familie.

Advertisements

Hello World für Ledunia

Ledunia bezeichnet ein leistungsfähiges IoT Entwicklungsboard für das IoT auf Basis des bekannten ESP8266 Mikrocontrollers.

Die Installation in der Arduino IDE ist auf der Ledunia Website im Detail beschrieben. Hier ist ein einfaches Programmbeispiel im „Hello World“-Stil gezeigt, welches die erfolgreiche Inbetriebnahme zeigt.

Der deutlich grössere Speicher im Vergleich zum NodeMCU ist aus den Screenshots ersichtlich.

// Uncomment your board

#define ESP8266_LED 5 // for Ledunia
#define NodeMCU_LED D0 // for NodeMCU

#define LED ESP8266_LED // adapt it

ADC_MODE(ADC_VCC);

byte count = 0;

void setup() 
{
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
  delay(4000); // waiting to start the monitor
  Serial.print("Hi there, here is "); 
  Serial.println("Ledunia"); // for Ledunia
//  Serial.println("NodeMCU"); // for NodeMCU
  Serial.print("ESP8266 Chip ID: ");
  Serial.println(ESP.getChipId());
  Serial.print("Flash Chip ID: ");
  Serial.println(ESP.getFlashChipId());
  Serial.print("Flash available [KB]: ");
  Serial.println(ESP.getFlashChipSize()/1024);
  Serial.print("Flash Chip Size [KB]: ");
  Serial.println(ESP.getFlashChipRealSize()/1024);
  Serial.print("Flash frequency [MHz]: ");
  Serial.println(ESP.getFlashChipSpeed()/1000000);
  Serial.print("Free Heap [KB]: ");
  Serial.println(ESP.getFreeHeap()/1024);
  Serial.print("VCC [mV]: ");
  Serial.println(ESP.getVcc());
}

void loop() 
{
  Serial.print(".");
  count++;
  if (count == 25)
  {
    Serial.println();
    count=0;
  }
  digitalWrite(LED, HIGH);
  delay(980);
  digitalWrite(LED, LOW);
  delay(20);
}

LeduniaTest

NodeMCU

Interesse geweckt?

Arduino for the Cloud

This eBook describes the Arduino Yún configured for cloud applications.

Due to the combination of microcontroller and Linux device you can separate effectively real-time tasks from tasks that need network access.

Further explanations to Arduino Yún and the Arduino Yún shield as an addon for a conventional Arduino can be found in my book, Arduino for the Cloud.

Have fun with Arduino Yún!

Ranging mit radino32 DW1000

Der Decawave DW1000 Baustein ist ein IEEE802.15.4-2011 konformer Ultra-Wideband (UWB) Transceiver und kann zur Positionsbestimmung im 2-Wege-Ranging betrieben werden und bietet dabei eine Genauigkeit von 10cm.

Das radino32 DW1000 kombiniert einen STM32L151 Mikrocontroller (Cortex-M3 Core) von STMicroelectronics mit dem DW1000 Funkchip von Decawave zum kompakten radino Formfaktor und kann damit als ein Baustein in einem komplexeren Real-Time Location System (RTLS) dienen.

Der Hersteller In-Circuit bietet eine freie Arduino-Bibliothek für die radino Funkmodule an, welche USB-Treiber, Bootloader und zahlreiche Beispiel-Sketches enthält.

Links zu weiteren Herstellerinformationen:

DW1000 Datasheet DW1000 User Manual

radino32 DW1000 für Ranging und RTLS, Ultra Wideband (UWB), IEEE802.15.4-2011 compliant, 3.5-6.5GHz

 

 

 

TMP36 LoRa Node

architecture

Die aus einem Arduino Uno und Dragino LoRa Shield V1.2. aufgebaute TMP36 LoRa Node misst die Aussentemperatur und überträgt die Messdaten (drahtlos) an das im Inneren platzierte LoRa Gateway.

Über dieses Gateway ist die TMP36 LoRa Node  in das TTN LoRaWAN integriert. Das LoRa Gateway besteht aus einem Raspberry Pi 3 mit einem Dragino LoRa /GPS HAT.

Dieses einkanalige LoRa Gateway hat nicht die Möglichkeiten eines voll ausgebauten LoRa Gateways, trotzdem ist es für diese einfache Aufgabenstellung geeignet. Das TTN Gateway ist bestellt und wird erwartet.

Die gemessenen Daten werden vom LoRa Gateway via Internet an den TTN Server übertragen. Zugriff auf die Daten ist über die TTN Console möglich.

Um die Daten auch anderen Anwendungen zur verfügung zu stellen, kann auf diese via MQTT zugegriffen werden. Ich verwende Mosquitto auf einem anderen Raspberry Pi, um die Daten zu abonnieren und zur Visualisierung an den Thingspeak Server zu senden. In die Website ckuehnel.ch/TMP36_LoRa_Node.html habe ich diese Grafik eingebunden.

Die für dieses Anwendungsbeispiel verwendete Software ist auf  Github abgelegt.