Archiv der Kategorie: Raspbian Jessie

LoRa Gateway aktiv…

Heute habe ich zu Testzwecken ein LoRa Gateway installiert. Im TTN Mapping (TheThingsNetwork) ist es als „CK LoRa Gateway“ markiert.

Ein LoRa Concentrator iC880A ist bei IMST bestellt, dann wird das Gateway LoRaWAN kompatibel.

ck-lora-gateway

In den nächsten Tagen bekommt die eingesetzte LoRa Node (Dragino Lora Shield & Arduino Uno) noch einen Temperatursensor, dessen Daten dann übermittelt werden. Es folgen später stromsparende Varianten auf Basis des  LoRa Transceiver RFM95W & Arduino Pro Mini, Raduino32 SX1272 und LoPy.

Advertisements

Nextcloud/ownCloud

ownCloud als Universal File Access Plattform hat nicht nur für Unternehmen eine starke Verbreitung gefunden und kann sowohl auf eigenen Servern als auch in externen Rechenzentren gehostet werden. Ein Überblick über die Möglichkeiten und die Architekture von ownCloud ist hier zu finden.

Zu den Hintergründen, warum es nun Nextcloud und ownCloud gibt, möchte ich auf einen Beitrag im Linux-Magazin verweisen.

Will man sich nicht die Mühe machen, ownCloud auf einem eigenen System zu installieren, dann bieten sich externe Anbieter an, die Transparenz und Datensicherheit garantieren.

Für erste Test bietet u.a. der Schweizer Anbieter woelkli.com einen Gratiszugang mit 500 MB an. Die zur Verfügung stehenden Pakete und die Features sind detailliert beschrieben. Für alle möglichen Geräte sind ownCloud Clients vorhanden.

Der Zugriff auf die Daten kann aber auch über ein Webinterface oder WebDAV erfolgen.

Auf einem Linux-Device (hier ein Raspberry Pi 3) ist dazu das WebDAV Filesystem zu installieren und ein Directory für das Mounting einzurichten:

apt-get install davfs2
mkdir /mnt/DAV
mount -t davfs cloud.woelkli.com/remote.php/webdav /mnt/DAV

Alle ins Directory /mnt/DAV geschriebenen Dateien werden dann auf dem ownCloud-Server und den mit ihm synchronisierten Clients zur Verfügung stehen.

Wie man Dropbox, Box und 4share einbinden kann, ist hier beschrieben.

Mit der Nextcloud Box steht nun auch eine vorbereitete Hardware zur Verfügung.

Enviro pHAT am Raspberry Pi (Zero)

Die englische Firma Pimoroni bietet sogenannte pHATs (HAT = Hardware at Top) für den Raspberry Pi an. Von den Abmessungen her orientieren sich diese am Raspberry Pi Zero. Das Interface ist aber durch den 40-poligen GPIO-Stecker definiert, so dass ein solches pHAT auf jeden, diesen Stecker aufweisenden Raspberry Pi installiert werden kann.

Enviro pHAT umfasst vier unterschiedliche Sensoren, die die Messung von Temperatur und Druck, Licht und Farben (RGB), Bewegung in drei Achsen, Ausrichtung des Magnetfelds (Compass) und Gleichspannung über vier Analog-Eingänge ermöglichen. Ausserdem befinden sich zu Beleuchtungszwecken zwei weisse LEDs auf diesem pHAT.

Enviro pHAT Features:

  • LSM303D accelerometer/magnetometer sensor (I2C Slave Addr 0x1d)
  • TCS3472 light and RGB colour sensor (I2C Slave Addr 0x29)
  • ADS1015 4-channel 3.3v, analog to digital sensor (ADC) (I2C Slave Addr 0x48)
  • BMP280 temperature/pressure sensor (I2C Slave Addr 0x77)
  • Two LEDs for illumination (GPIO4)

i2c map

Eine Python Library unterstützt eine komfortable Programmierung in Python. Installation und Inbetriebnahme sind im Dokument „Getting started with Enviro pHAT“ beschrieben.

Bei der Inbetriebnahme blieben die LEDs dunkel. Es muss sicher gestellt sein, dass GPIO4 frei zur Verfügung steht und das Script setup.py gestartet wurde. Danach sollte alles problemlos laufen.

Mit dem Script test_all.py kann nun jede Funktion des Enviro pHAT getestet werden. Der Screenshot zeigt die Ausgabe über die Console.

Unbenannt

#!/usr/bin/env python

import sys
import time
import datetime

from envirophat import light, weather, motion, analog, leds


def write(line):
 sys.stdout.write(line)
 sys.stdout.flush()

write("--- Enviro pHAT Monitoring ---")

try:
 while True:
 leds.on()
 time.sleep(0.02)
 leds.off()
 rgb = light.rgb()
 analog_values = analog.read_all()

output = """
Date : {n}
Temperature: {t} grd C
Pressure : {p} hPa
Light : {c}
RGB : {r}, {g}, {b} 
Heading : {h}
Analog : 0: {a0}, 1: {a1}, 2: {a2}, 3: {a3}
""".format(
 n = datetime.datetime.now(),
 t = round(weather.temperature(),2),
 p = round(weather.pressure(),2),
 c = light.light(),
 r = rgb[0],
 g = rgb[1],
 b = rgb[2],
 h = motion.heading(),
 a0 = analog_values[0],
 a1 = analog_values[1],
 a2 = analog_values[2],
 a3 = analog_values[3]
 )
 output = output.replace("\n","\n\033[K")
 write(output)
 lines = len(output.split("\n"))
 write("\033[{}A".format(lines - 1))

time.sleep(10)
 
except KeyboardInterrupt:
 pass

 

 

Raspberry Pi 3 Speichererweiterung durch WD PiDrive 314 GB

Erweitert man den Speicher des Raspberry Pi 3 durch die WD PiDrive Harddisk mit 314 GB, dann hat man für viele Anwendungen erst mal ausreichend externen Speicher zu Verfügung. Von Interesse sind aber außerdem die Zugriffszeiten auf dieses Medium.

Für den Banana Pi mit SATA-Interface hatte ich das bereits untersucht. Die Ergebnisse sind hier zu finden.

Die Vorbereitung der WD PiDrive Harddisk erfolgte nach den Vorgaben aus dem WD Forum.

Den erweiterten Raspberry Pi 3 mit Raspbian Jessie habe ich dem gleichen Test unterzogen und die folgenden Ergebnisse erzielt:

hdparm

Verglichen zum Banana Pi  präsentieren sich die Ergebnisse wie folgt:

Timing cached reads Timing buffered disk reads Timing O_DIRECT cached reads Timing O_DIRECT buffered disk reads
Banana Pi
USB-HD 1 TB
252.63 27.55 28.79 28.24 MB/sec
Banana Pi
SSD 32 GB
280.69 81.72 127.53 132.77 MB/sec
Raspberry Pi
WD PiDrive 314 GB
483.04 29.67 26.62 25.82 MB/sec
Nur die über das SATA-Interface an den Banana Pi angeschlossene SSD zeigt erwartungsgemäß einen höheren Datendurchsatz. Ansonsten sind die Werte vergleichbar.

 

Unixbench Raspberry Pi Zero

Der Raspberry Pi Zero V1.3  ist ein um ein Kameraport (CSI) erweiterter Raspberry Pi Zero., gekennzeichnet durch die folgenden Eigenschaften:

  • 1Ghz, Single-core CPU Broadom BCM2835
  • 512MB RAM
  • Mini HDMI and USB On-The-Go ports
  • Micro USB power
  • HAT-compatible 40-pin header
  • Composite video and reset headers
  • Size: 65mm long x 30mm wide x 5mm thick
  • pint-sized CSI connector to connect the Raspberry Pi Camera Module

Weiterlesen

Raspberry Pi Zero

Heute war der Raspberry Pi Zero, vor wenigen Tagen bestellt bei Pimoroni (UK). im Briefkasten.

20160521_134433

Im Pibow Zero Case kann sich der Raspberry Pi Zero durchaus sehen lassen.

20160521_140002_000

Als nächstes werde ich auch diesen Raspberry Pi mit dem PREEMPT_RT Patch versehen, um ihn echtzeitfähig zu machen. Auf die Ergebnisse bin ich gespannt.

Echtzeitfähiger Raspberry Pi

In vielen Bereichen der Steuerungstechnik wird echtzeitfähiges Verhalten der eingesetzten Rechner erwartet. Für Mikrocontroller, die ohne Betriebssystem (bare metal) arbeiten, ist das in der Regel kaum ein Problem. Will man auf ein Betriebssystem nicht verzichten, dann stehen zahlreiche Echtzeit-Betriebssysteme (RTOS) zur Verfügung.

Für Linux-Devices gibt es verschiedene Möglichkeiten, Echtzeitfähigkeit sicher zu stellen. Im White Paper „LINUX und Echtzeit – Eine Übersicht prinzipieller Lösungsansätze“ werden unterschiedliche Möglichkeiten dazu aufgezeigt. Der PREEMPT_RT Patch des Mainline-Linux-Kernels ist der favorisierte und durch die Linux-Community getragene Ansatz.

Die Schritte zum Aufsetzen eines PREEMPT_RT Kernels für den Raspberry Pi  sind auf einer separaten Webseite dokumentiert.

An dieser Stelle werden die Ergebnisse der Latenzzeitmessung mit dem Programm cyclictest für Raspbian Jessie und den Kernel mit  PREEMPT_RT Patch verglichen:

Linux raspberrypi 4.4.9+ #884 Fri May 6 17:25:37 BST 2016 armv6l GNU/Linux

$ sudo ./cyclictest -l50000000 -m -n -a0 -t1 -p99 -i400 -h400 –q

hist
# Total: 049929616
# Min Latencies: 00014
# Avg Latencies: 00033
# Max Latencies: 03978
# Histogram Overflows: 70384

Die mittlere Latenzzeit beträgt 33 µs, wobei 70384 der insgesamt 50 Mio Messungen oberhalb von 400 µs liegen und die maximale Latenzzeit sogar 3978 µs beträgt.

Linux raspbberypi 4.1.15-rt15 #1 PREEMPT RT Tue May 17 17:19.15 CEST 2016 armv6l GNU/Linux

$ sudo ./cyclictest -l50000000 -m -n -a0 -t1 -p99 -i400 -h400 –q

rthist
# Total: 050000000
# Min Latencies: 00015
# Avg Latencies: 00027
# Max Latencies: 00146
# Histogram Overflows: 00000

Die mittlere Latenzzeit beträgt 27 µs und die maximale Latenzzeit nur 146 µs.

Fazit

Durch den Einsatz des PREEMPT_RT Patchs auf den Kernel werden die Latenzzeiten deutlich reduziert und Determinismus des zeitlichen Verhaltens erreicht.

Für den hier untersuchten Raspberry Pi wurde die maximale Latenzzeit von fast 4 ms auf weniger als 150 µs reduziert.