Hilscher NetIO für Hausautomatisierung

Vor geraumer Zeit hatte ich einen Hilscher NetIO für die Hausautomatisierung beschafft. Jetzt endlich bin ich dazu gekommen, diesen in Betrieb zu nehmen. Aber fangen wir erst mit den Daten & Fakten an.

Das Gerät hat folgende technische Eigenschaften (entnommen der Herstellerseite):

  • Betriebsspannung 24V +-6V (DC)
  • 4 Kern 64bit ARM BCM2837
  • 1GB DDR3 RAM
  • 8GB industie MLC NAND Speicher
  • Stromverbrauch 170mA
  • Ethernet 10/100Mbit
  • 2 Sockets für Profinet / Ethercat ( Hilscher netx 51)
  • Wifi
  • Bluetooth
  • HDMI
  • Metallgehäuse
  • DIN-SChienenanschluss (Schaltschrank)

Also wie ihr seht, ist es quasi ein Raspberry-Pi 3 nur in Industrietauglicher Ausführung. Der Spaß kostet bei Amazon etwa 300 EUR. Jetzt muss jeder für sich selsbt entscheiden, ob einem das Wert ist.

Als Betriebssystem kommt ein Linux (out of the Box) zum Einsatz. Auf dem Device gibt es graphisches Frontend, welches einem die Konfiguration übernimmt. Der eigentlicehn Konsolen-Zugriff ist eigentlich nicht vorgesehen. Alle Softwareinstallationen erfolgen über Docker (also eigene getrennte Container).

Inbetriebnahme Dopplerradar OPS243

Im Zuge eines neuen Projektes wurde ein Dopplerradar der Firma OmniPreSense mit der Bezeichnung OPS243 angeschafft.
Technisch ist das hochinteresannt:

  • Detektionsbereich 1-100m
  • Geschwindigkeitsdetektion bis zu 348 mph
  • Richtungserkennung ( kommend oder gehend)

Weitere Informationen sind hier zu finden: https://omnipresense.com/product/ops243-doppler-radar-sensor/

Standardmäßig sendet der Sensor seine Daten per serielles Interface heraus. Mit folgenden Einstellungen, lassen sich die Daten abzapfen:

/dev/ttyACM0  9600 8N1

Folgender Datenstrom ergibt sich:

Die Ausgabestream gibt die Detektierten Objekte in m/2 an.

Nachdem dies nun zu funktionieren scheint, gilt es die Integration ins ROS zu vollziehen. Hierbei gehe zu http://wiki.ros.org/radar_omnipresense und folge der Installationsanweisung. Ich installiere das fehlende ROS Paket mit

sudo apt install ros-kinetic-radar-omnipresense

und nun kommt dier Erkenntnis, dass ich keine out of the Box-Visualisierung habe. Ich muss mich um was spezielles wohl kümmern.

Linux / UNIX minicom

Unter Linux hat man die Möglichkeit mit zahlreichen Tools auf die serielle Schnittstelle zuzugreifen. Wenn mir eine GUI zur Verfügung steht, so nutze ich am liebsten putty, da ich dieses Werkzeug auch unter Windows benutze, bin ich damit sehr vertraut. Jedoch habe ich nicht immer die Möglichkeit mit einer GUI zu arbeiten, oder wenn mal schnell besondere Rechte für den Konsolen-Zugriff benötigt werden, ist es auf der Shell einfacher

Mein Lieblingswerkezug hierfür ist dann minicom. minicom bietet alles was das Herz begehrt, ohne konkret darauf einzugehen.

Installieren von minicom

Unter Debian / Ubuntu lässt sich minicom mit folgenden Befehl installieren:

sudo apt-get install minicom

Benutzen von minicom

Bevor man minicom benutzen kann, muss es konfiguriert werden. Hierzu startet man minicom mit folgenden Parameter:

minicom -s

Möchte man stattdessen ein “buntes” minicom haben, so fügt man zusätzlich noch -c on der Parameterliste hinzu:

minicom -s -c on

Wenn ihr dauerhaft irgendwelche Parameter minicom mitgeben wollt, so könnt ihr gerne die MINICOM Umgebungsvariable überschreiben bzw. setzen ( minicom sucht nach dieser Variablen, Kommandozeilenparameter sind dominant)

export MINICOM="-c on"

Und so sieht jetzt mein minicom aus, wenn ich die Daten des Dopplerradars (OPS243) via seriellem Interface (/dev/ttyACM0) auslese

RPLidar A3 Inbetriebnahme unter ROS kinetic

Für ein aktuelles Projekt wird ein RPLidar A3 unter ROS benötigt. Von den Daten her ist er für ein Low-Budget Lidar ganz brauchbar:

  • Entfernung: 10-25m
  • Abtastrate: 16.000-10.000 Mal pro Sekunde
  • Abtastrate: 10-20 Hz
  • Winkelauflösung: 0,3375°, 0,54°
  • Unterstützt frühere SDK-Protokolle

Basierend auf der Anleitung unter https://blog.zhaw.ch/icclab/rplidar/ bin ich entsprechend ans Werk gegangen.

### init ros
sudo rosdep init
rosdep update
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall
### Create a ROS Workspace
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

Entgegen der ursprünglichen Anleitung habe ich ein anderes Repository genommen. Als Quelle diente mir die ROS-Webseite http://wiki.ros.org/rplidar_ros. Darin befindet

cd ~/catkin_ws/src
git clone https://github.com/Slamtec/rplidar_ros.git

Nun gilt es “alles” zu bauen und die Umgebungsvariablen zu setzen

### Build with catkin
cd ~/catkin_ws/
catkin_make

### Set environment when build is complete
source devel/setup.bash

Gestartet wird nun RViz mit dem entsprechenden Launcher

### Launch demo with rviz
roslaunch rplidar_ros view_rplidar.launch

Und so sieht es dann aus, wenn alles funktioniert:

Welche Probleme sind mit während der Inbetriebnahme entstanden

  • Zugriffsrechte auf das /dev/ttyUSB0 device waren fehlerhaft. Hier gibt es verschiedene Möglichkeiten. Bitte daran denken, nach dem Ändern der Gruppenberechtigungen, einmal ausloggen und neu einloggen!
    • den eigenen Benutzer in die dialout-gruppe hinzuzufügen, durch modifizieren der Datei /etc/group.
    • oder mit Hilfe des Folgenden Befehls
      sudo gpasswd –add ${USER} dialout
  • Standardmäßig ist die /dev/ttyUSB0 auf 115000Baud eingestellt, dies Funktioniert auch für den A1 und A2. Da ich aber den A3 hatte, musste dies auf 256000Baudumgestellt werden. Dazu habe ich folgende Datei verändert:
    nano ~/catkin_ws/src/rplidar_ros/launch/rplidar.launch
    Die Zeile mit den 115000 habe ich entfernt und die 256000 Zeile entsprechend hereingenommen.

Und wie ich nun am Ende mitbekommen habe, gibt es auch ein entsprechendes ROS paket, welches ich installiere.

Debian/Ubuntu: Probleme nach Repository-Namensänderung

Tritt nach einem z.B. Debian release im testing zweig ein Namenswechsel ein (z.B: von buster nach bullseye) so erscheint folgende Fehlermeldung:

Get:1 http://ftp.halifax.rwth-aachen.de/debian testing InRelease [117 kB]  Get:2 http://ftp.halifax.rwth-aachen.de/debian testing-updates     InRelease [38.8 kB]                     
Hit:3 http://packages.ros.org/ros/ubuntu buster InRelease
Reading package lists... Done 
E: Repository 'http://ftp.halifax.rwth-aachen.de/debian  testing InRelease' changed its 'Codename' value from 'buster' to        'bullseye'       
N: This must be accepted explicitly before  updates for this       repository can be applied. See apt-secure(8) manpage for details.  

Dies kann ganz einfach vollzogen werden, wenn statt

apt-get

einfach

apt get

benutzt wird.

Lang’ lang’ ist’s her … aber die Welt ist nicht stehen geblieben

Seit den letzten Beiträgen ist vieles passiert. Sowohl privat als auch beruflich.

  • Zum einen bin ich 2017 Vater geworden.
  • Gegen Ende 2017 wurde ein neues Unternehmen namens AXON Innovations (https://axon-innovations.com) gegründet.
  • Ebenfalls im Herbst / Winter 2017 haben wir unser Haus in Leipzig gekauft.
  • Das Jahr 2018 war von Ende Januar bis Anfang Dezember von der Kernsanierung des Objektes gekennzeichnet.
  • Mitte 2018 habe ich dann eine Tochter meiner Firma im Ausland gegründet.

Und nebenbei rufen immer die Pflichten als Famlienvater einerseits aber auch in meinen Rollen in den verschiedenen Firmen. So dass es folglich hier sehr ruhig wurde. Ich möchte versuchen, die fehlende Zeit entsprechend nachzutragen, aber auch dies wird entsprechend Zeit benötigen.

Runter mit der Tapete

Als wir das Haus bekommen haben, sah es wie folgt aus:

Uns war klar, die Tapete muss raus, also sind wir voller Elan ins Haus gestürmt, und haben das “gelumpe” entfernt. In Summe haben wir 100 Stunden gebraucht, um das komplette haus, und die Decken tapetenfrei zu bekommen …

Tja, irgendwann waren wir fertig, bei dieser Gelegenheit haben wir auch gleich “ein paar” Fliesen entfernt. Es kam aber schnell die Erkenntnis, dass ein 1kg schwerer Kress-Bohrhammer nicht viel Bums hat. Und das Tepeten entfernen eine scheiß Arbeit ist.

Was besonders war, ist dass jeder Raum eine andere Putzfarbe hatte 🙂

Unser Häuschen!

Unser kleines Häuschen

Endlich ist es soweit, wir haben unser Häuschen bekommen. Obwohl im September/Oktober 2017 der Kaufvertrag unterschrieben wurde, haben wir nun erst die Schlüssel bekommen. Tja, jetzt kann es los gehen. Wir könnten theoretisch schon einziehen, aber ein “bisschen” renovieren wollen wir dennoch.

Geplant ist Folgendes:

  • Neue Elektrik
  • Neue Raumaufteilung
  • Neue Sanitäreinrichtung
  • Neue Küche ( weil andere Raumaufteilung)
  • Neue Böden ( war nicht geplant)
  • Neuer Putz im inneren (ar nicht geplant)
  • Dachoben ordentlich ausbauen (war ja bereits teilweise ausgebaut)
  • Neue Heizungsanlage ( war auch nur teilweise geplant)

Wir haben schließlich eine Kernsanierung gemacht, es flog alles raus, außer die Fenster, die Treppe und die Türblätter 🙂 Ich glaube so rum ist die Liste kürzer.

Pin-Beschreibung des STM32Nucleo72RB Boards

Vor einigen Tagen landete ein Nucleo Board auf meinem Schreibtisch. Da ich für meine Basteleien immer wieder das Pinout suchte, habe ich nun diesen Beitrag erstellt.

ARM-Toolchain: elf umwandeln nach hex

In der ARM-Welt, existieren zahlreiche Möglichkeiten ein Programm zu kompilieren, da wären beispielsweise .bin, .hex, .elf und weitere Endungen.
Zum Beispiel erzeugt die Atollic TrueStudio Toolkette in der kostenfreien Version nur .hex files.

Um nun das Binary-File auf einen STM32 zu bekommen in meinem Fall war es ein Nucleo board, aber das tut aktuell nichts zur Sache), verwende ich unter Windows das ST-Link-Tool von STM. Dieses Tool kann mit elf-Files nichts anfangen. Also muss dieses konvertiert werden.

Dies geschieht am einfachsten mit folgendem Tool, samt Aufruf:
arm-none-eabi-objcopy -O ihex nucleo72_led_button.elf nucleo72_led_button.hex

Standardmäßig sind diese Tool sin der Lite Version auch nicht enthalten, also muss man sich diese separate besorgen. Hinter folgendem Link kann man sich die entsprechenden Tools herunterladen: https://launchpad.net/gcc-arm-embedded/+download