Remote Desktop Verbindung zur Raspberry Pi 3 xrdp mit Windows MSDSC

Soll eine Verbindung von Windows mit dem Remotedesktop hergestellt werden, kann es bei der Raspberry Pi 3 zu Problemen kommen.

Der Grund hierfür ist das bereits ein Remotedesktop Sitzung geöffnet zu sein scheint. Das liegt daran, dass die PI3 bereits mit einem vorinstallierten RealVNC kommt.

Um mit xrdp eine Verbindung herzustellen muss dieser beendet werden, im folgenden wird beschrieben wie vorgegangen werden muss.

  • Entferne die folgende packages : xrdp, vnc4server, tightvncserver

sudo apt-get remove xrdp vnc4server tightvncserver

  • Installiere tightvncserver gefolgt von xrdp

sudo apt-get install tightvncserver

sudo apt-get install xrdp

Am Ende sollte es so aus sehen:

https://i.stack.imgur.com/vpmnn.png

Einen lokalen Blynkserver beim Booten der Raspberry PI Starten

In diesem Beitrag wird am Beispiel eines lokalen Blynk Servers gezeigt, wie auf einer Raspberry PI eine Java File beim Starten und Herunterfahren der PI automatisch gestartet und heruntergefahren werden kann.

  1. Zuerst wird ein Startscript und ein Stopscript erstellt, die später die Applikation mir Rootrechten startet und stoppt. Hier für wechseln wir mit sudo bash unsere Benutzerrechte auf Root.In unserem Beispiel speichern wir die Scripte im Verzeichnis /usr/local/bin/…
  • Start Script: /usr/local/bin/startBlynk.sh
  • Stop Script: /usr/local/bin/stoppBlynk.sh

Nach dem erstellen der Scripte müssen noch deren Attribute auf ausführbar gesetzt werden. Dies geschieht mit dem Befehl chmod +x NAME

Zu Starten des BlynkServers kann der Inhalt des Scripts startBlynk.sh im einfachsten Fall so aussehen:

#!/bin/bash
/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/bin/java -jar /home/pi/Blynk/server-0.39.10.jar -dataFolder /home/pi/Blynk &

Zu Stoppen des BlynkServers kann der Inhalt des Scripts stoppBlynk.sh im einfachsten Fall so aussehen:

#!/bin/bash
#sucht und beendet die Java Applikation
ps auxf |grep ’server-0.xx.x.jar ‚|`awk ‚{ print „kill “ $2 }’`

Als nächstes benötigen wir noch das folgendes Script (localBlynk) , wir speichere es in das Verzeichnis /etc/init.d/localBlynk

  • sudo nano /etc/init.d/localBlynk
  • Inhalt der Date:#! /bin/sh
    ### BEGIN INIT INFO
    # Provides:        localBlynk
    # Required-Start:
    # Required-Stop:
    # Default-Start:        2 3 4 5
    # Default-Stop:         0 1 6
    # Short-Description:    Stars & Stops BlynkServer
    # Description:          Stars & Stops BlynkServer
    ### END INIT INFO

 

# Start Stop Blynk local Blynk Server

case $1 in
start)
/bin/bash /usr/local/bin/startBlynk.sh
;;
stop)
/bin/bash /usr/local/bin/stopBlynk.sh
;;
restart)
/bin/bash /usr/local/bin/stopBlynk.sh
/bin/bash /usr/local/bin/startBlynk.sh
;;
esac
exit 0

  • Um das Script zum Systemstart hinzu zu fügen, führen wir nun noch  folgende Kommandos aus:cd /etc/init.d/
    sudo chmod 755 localBlynk
    sudo update-rc.d localBlynkdefaults

 

Einen eigenen lokalen Blynk Server auf dem Raspberry PI installieren

Logen Sie sich auf ihrer Raspberry z.B. per ssh ein.

Nun wird die aktuelle Java Version (Java 8) installiert :

sudo apt-get install oracle-java8-jdk

Stellen Sie sicher, dass nun die aktuelle Java Version installiert wurde.

java -version
Output: java version "1.8.0_40"

Download des Blynkserver jar Files in das „/home/pi/Blynk Verzeichnis.
Sollte das Verzeichnis noch nicht existiert muss es zuerst angelegt werden.

Alle folgenden „sudo“ Anweisungen kann man sich sparen, wenn man gleich in den „sudo bash“ wechselt, dies ist vergleichbar mit dem „su“ bei anderen Linux Distributionen.

pwd
/home/pi/
sudo mkdir Blynk
cd Blynk
sudo wget "https://github.com/blynkkk/blynk-server/releases/download/v0.39.10/server-0.39.10.jar"

Es ist auch möglich,  die Server Datei manuell via ssh oder scp herunter zuladen und in das entsprechende Verzeichnis hinein zu kopieren .

Um den Mailversand zu aktivieren, muss im Verzeichnis /home/pi/Blynk eine Datei mit dem Namen mail.properties angelegt werden.

Der Inhalt dieser Datei hat folgendes Format.

mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.host=smtp.gmail.com
mail.smtp.port=587
mail.smtp.username=Anmeldename
mail.smtp.password=Kennwort

Die aktuelle Blynk Server Version ist unter:
https://github.com/blynkkk/blynk-server/releases
zu finden.

  • Server mit den default Einstellungen starten (Hardware Port 9443 SSL)
    sudo java -jar server-0.39.10.jar -dataFolder /home/pi/Blynk        
    
  • Als Rückmeldung des Servers erscheint eine Meldung wie diese :
    Blynk Server successfully started.
    All server output is stored in current folder in 'logs/blynk.log' file.
    

Aktiviere automatischen Server Neustart

Um diese Option zu aktivieren, suchen Sie das Verzeichnis:
/etc/init.d/rc.local
öffnen sie die Datei mit dem vi Editor und fügen sie die folgende Zeile hinzu:

sudo vi rc.local
java -jar /home/pi/Blynk/server-0.39.10.jar -dataFolder /home/pi/Blynk &

Sollte dieser Ansatz nicht funktionieren, versuche Sie bitte folgendes:

sudo crontab -e

und fügen sie die folgenden Zeilen hinzu

    @reboot java -jar /home/pi/server-0.39.10.jar -dataFolder /home/pi/Blynk &

anschließend speichern und beenden.

Der Administrationsbereich kann anschließend bei laufendem Blynk Server mit folgender URL im Browser geöffnet werden.

https://your_ip|(127.0.0.1):9443/admin

Um den Blynkserver im Lokalen Netzwerk auch über das Internet erreichen zu können wird der Einsatz einer DynDNS Adresse empfohlen. Diese kann dann z.B. in einer Fritzbox hinterlegt werden, ändert sich die IP-Adresse der Fritzbox (alle 24 Stunden veranlaßt durch den Provider), wird automatisch die DynDNS Adresse informiert und der Server ist somit immer mit einem Pseudo Domain Name erreichbar.
In lokalen Router müssen außerdem noch ein paar Portfreigaben definiert werden. EIn Auszug der wichtigsten Einstellungen ist hier zu sehen.

 

Viele weitere Informationen zur Konfiguration der Blynk Servers.

Mathe signifikante Stellen wie gehts …

Die erste signifikante Stelle einer Zahl ist die erste Zahl ungleich 0.

Wenn wir davon ausgehen, dass jede Zahl mit führenden und nachfolgenden Nullen geschrieben werden kann, wie hier in diesem Beispiel zu sehen ist,

…..000000000000000009732,34555000000000000000….

ist die erste Zahl, die NICHT Null ist, also die „9“ die ERSTE Signifikante Ziffer.

Danach wird einfach gezählt:
9732,345550000000000 ….
123456789 daraus folgt, neun signifikante Stellen!

So lautet die Zahl auf drei signifikante Stellen gerundet nun

9730

Würde zum Beispiel die Folgende Zahl da steht: 2100004, dann wären die ersten drei signifikanten Ziffern: 210.

Es werden also wie im Beispiel nur die ersten drei Stellen, die nicht Null sind abzählen und auf die n-te Stelle gerundet.

NMEA nach Dezimalgrad umrechenen und als KML-Datei für Google Earth zusammenbauen

Um die Daten eines GPS Empfängers z.B. in Google Earth anzuzeigen benötigt Google Earth die Daten als XML Datei. Die Dateiendung dieser XML Datei lautet „.KML “

In Folgenden finden Sie ein Beispiel für den Aufbau einer solchen Datei mit einer Track (Wegeanzeige), hierbei wird eine Textur 10 Meter über den Weg nach oben gezogen, um einen besseren Überblick zu erhalten:

<?xml version="1.0" encoding="UTF-8"?>
  <kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>KmlFile</name>
    <Style id="transPurpleLineGreenPoly">
    <LineStyle>
    <color>7fff00ff</color>
       <width>4</width>
       </LineStyle>
       <PolyStyle>
         <color>7f00ff00</color>
       </PolyStyle>
    </Style>
    <Placemark>
       <name>Absolute</name>
       <visibility>1</visibility>
       <description>Dillinger-Engineering</description>
       <styleUrl>#transPurpleLineGreenPoly</styleUrl>
       <LineString>
          <tessellate>1</tessellate>
          <altitudeMode>relativeToGround</altitudeMode>
          <coordinates>
            10.8665686666667,49.4601001666667,10
            10.8665698333333,49.4601003333333,10
            10.8665793333333,49.4601003333333,10
            10.8665775,49.4601003333333,10
            10.866586,49.460101,10 
            10.8665888333333,49.4601011666667,10
            10.8665971666667,49.4601015,10 
            10.8665971666667,49.4601015,10
         </coordinates>
       </LineString>
    </Placemark>
  </Document>
</kml>

Von einem GPS Empfänger werden die Daten meist im NMEA Format übertragen. Für eine reine Positionsbestimmung genügt der Daten String „Recommended Minimum Sentence C“ (RMC)
Jeder GNSS-Empfänger muss mindestens den Recommended Minimum Sentence C (empfohlener Mindestdatensatz C, RMC) Datensatz ausgeben können, maximal alle zwei Sekunden.
Er folgt folgendem Aufbau:
Seit NMEA In 2.3, wurden folgende Sätze um ein Feld erweitert (APB, BWC, BWR, GLL, RMA, RMB, RMC, VTG, WCV und XTE) das die Signalintegritätsinformation laut FAA darstellt. („F“ in untenstehender Tabelle)

$GPRMC,162614,A,5230.5900,N,01322.3900,E,10.0,90.0,131006,1.2,E,A*13
$GPRMC,HHMMSS,A,BBBB.BBBB,b,LLLLL.LLLL,l,GG.G,RR.R,DDMMYY,M.M,m,F*PP

Symbol
Bedeutung
HHMMSS
oder
HHMMSS.SSS
Zeit (UTC)
A Status (A für OK, V bei Warnungen)
BBBB.BBBB Breitengrad
b Ausrichtung (N für North, nördlich; S für South, südlich)
LLLLL.LLLL L ängengrad
l Ausrichtung (E für East, östlich; W für West, westlich)
GG.G Geschwindigkeit über Grund in Knoten
RR.R Kurs über Grund in Grad bezogen auf geogr. Nord
DDMMYY Datum (Tag Monat Jahr)
M.M magnetische Abweichung (Ortsmissweisung)
m Vorzeichen der Abweichung (E oder W)
F Signalintegrität :
A = Autonomous mode,
D = Differential Mode,
E = Estimated (dead-reckoning) mode
M = Manual Input Mode
S = Simulated Mode
N = Data Not Valid
PP Hexadezimale Darstellung der Prüfsumme
(Die Prüfsumme ergibt sich durch eine XOR-Verknüpfung aller Daten-Bytes zwischen (jeweils exklusive) dem Dollar-Zeichen ‚$‘ und dem Stern ‚*‘.)

Um aus den selektierten Lat und Lon Daten den Dezimalgrad zu extrahieren kann folgende Pascal Funktion verwendet werden.

function GMSToDC(Str, Direction : String): String;
{Convert NMEA latitude & longitude to decimal
Here's how you convert latitude & longitude obtained from NMEA's GPGGA to decimal:
N              NMEA             Decimal
latitude       0302.78469    03 + (02.78469/60) = 3.046412
longitude     10141.82531    101 + 41.82531/60) = 101.6971
Notice that for latitude of 0302.78469,
03 ==> degress. counted as is
02.78469 ==> minutes. divide by 60 before adding to degrees above
Hence, the decimal equivalent is:
03 + (02.78469/60) = 3.046412 }
Var Grad, MinSec , DC: Extended;
begin
   if Length(Str)=10 then //BBBB.BBBBB     Breitengrad
   Begin 
      Grad:= StrToInt(Copy(Str,1,2));
      delete(Str,1,2);
   end
   else                 // LLLLL.LLLLL     Längengrad
   Begin
      Grad:= StrToInt(Copy(Str,1,3));
      delete(Str,1,3);
   end;
   while Pos('.', Str) > 0 do      // Ersetze den Punkt durch ein komma
   Str[Pos('.', Str)] := ',';
   MinSec:= StrToFloat(Str)/60;
   DC:= Grad + MinSec;
   if (Direction='S') or (Direction='W') then
      DC := -DC;
   Result:= FloatToStr(DC);
   while Pos(',', Result) > 0 do
   Result[Pos(',', Result)] := '.';
end;

  Das Zusammenbauen der KML-Datei erfolgt hier:

Procedure NMEAToKML(VarStringList:TStringList;Name:String;NMEAArray:array of TNMEA);
Var I    : Integer;
Begin
  StringList.Add(''+#13#10+'<kml xmlns="http://www.opengis.net /kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2"xmlns:atom="http://www.w3.org/2005/Atom">'+#13#10+
  '<Document><name>'+Name+'</name>'+#13#10+
  '<Style id="sn_ylw-pushpin">'+#13#10+
  '<IconStyle><scale>1.1</scale><Icon>'+#13#10+ 
  '<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png'+#13#10+
  '<hotSpot x="20" y="2" xunits="pixels" yunits="pixels"/>'+#13#10+
   '<LineStyle><color>7f0000ff</color><width>5</width>  </LineStyle>'+#13#10+
  '<PolyStyle><color>7f0000ff</color></PolyStyle></Style>'+#13#10+
  '<StyleMap id="msn_ylw-pushpin"><Pair><key>normal</key>  <styleUrl>#sn_ylw-pushpin</styleUrl></Pair>'+#13#10+
  '<Pair><key>highlight</key><styleUrl>#sh_ylw-pushpin</styleUrl></Pair></StyleMap>'+#13#10+
  '<Placemark><name>'+FStopWatch.VeranstaltungsInfo+'#msn_ylw-pushpin1'+#13#10+
  '<tessellate>1</tessellate><altitudeMode>relativeToGround</altitudeMode><coordinates>');
  For I:= Low(NMEAArray) to High(NMEAArray) do
  StringList.Add(GMSToDC(NMEAArray[I].Lon, NMEAArray[I].NS)+ ',' +
  GMSToDC(NMEAArray[I].Lat, NMEAArray[I].EW) + ',10');
  StringList.Add(''+#13#10+
  '</LineString>'+#13#10+
  '</Placemark>'+#13#10+
  '</Document>'+#13#10+
  '</kml>');
end;

1. Cadolzburger Kettcar Rennen

1. Cadolzburger Kettcar Rennen Gesamtwertung

1. Cadolzburger Kettcar Rennen Urkunden

Am 27.12.2015 war es endlich so weit, meine beiden Söhne wollten schon seit längerem mit ihren Freunden ein Kettcar Rennen veranstalten und die anhaltend milde Witterung gestatte es uns dies auch noch im Dezember zu tun.

So wurden kurzerhand mit der Urkunden Druckerei der StopWatch Software Plakate erstellt und in der gerammten Nachbarschaft verteilt, damit auch möglichst viele Teilnehmer dabei sein konnten.

20151227_1. Cadolzburger Kettcar Rennen Flyer

Am Sonntag Vormittag begannen dann endlich die Vorbereitungen. Es wurde eine Leutze Laserlichtschranke installiert und mit der neu entwickelten Interface Platine an den Zeitmess PC angeschlossen.

20151227_Kettcar Rennen Cadolzburg (5)

Auch eine DMX Ampel und ein zweiter Monitor durfte nicht fehlen, die den Teilnehmern das Startsignal und den Zuschauern die entsprechenden Renninformationen lieferten.

20151227_Kettcar Rennen Cadolzburg (9)

Zu guter letzt organisierte mein großer Sohn noch eine aktive Lautsprecherbox mit einem USB Stick und der passenden Musik, sowie ein Mikrofon für Durchsagen und die geplante Siegerehrung.

Das Rennen begann wie geplant mit den Kettcars und jeder fuhr mehrere Runden um sein Bestzeit zu toppen.
Nach einer Stärkung mit Getränken und Kuchen ging es in die nächsten Runden, nach dem Kettcar wurde so ziemlich alles gefahren was Räder hatte bis am Ende die Stecke noch im Dauerlauf absolviert wurde.

20151227_Kettcar Rennen Cadolzburg (11)

Die Kids waren voll in ihrem Element, leider war die anschließende Auswertung dann umso schwieriger.
Deshalb hatten wir beschlossen die Ergebnisse in Altersgruppen ein zu teilen und egal wie die Bestzeit entstanden ist diese zu werten.

Es gab drei Gewinner, die bei der Preisverleihung alle einen kleinen Pokal und eine Urkunde erhielten.

20151227_Kettcar Rennen Cadolzburg (16)

Das Resümee war äußerst positiv, alle hatten einen Heiden Spaß bei der Sache und wahren mit sehr viel Motivation dabei.
Das wichtigste war aber, dass es auf jeden Fall nächstes Jahr wieder Rennen geben sollte.

USB Initiator Interface mit galvanischer Trennung

 

USB Initiator Interface
USB Initiator Interface

Verwendung:
Dieses Initiator Modul wurde für eine direkte Anschluß von industriellen Lichtschranken mit einer max. Ausgangsspannung bis 27V entwickelt.
Die Zeitmessung in der StopWatch Applikation erfolgt hierbei über einen virtuellen COM Port, der im Gegensatz zum StopWatch USB Modul einige Besonderheiten bereitstellt.
Besonders zu erwähnen ist hierbei die Direktstartfunktion, mit der beim Durchfahren der Startlichtschranke die Zeitmessung automatisch gestartet werden kann. Interessantist diese Funktion z.B. Bei Seifenkistenrennen oder ähnlichen Veranstaltungen, wo auf einen geregelten Startvorgang mit einer Startampel verzichtet werden kann.

Allgemeines:
Bisher stand für eine Zeiterfassung über die COM Schnittstelle lediglich ein USB Seriell Adapter und eine kleine Options Platine zur Verfügung.

Die Initiator Eingänge mussten in Folge der fehlenden Galvanischen Trennung z.B. mit einem zwischen geschalteten Relais entkoppelt und ggf.  invertiert werden. Nur so konnte gewährleistet werden, dass zwischen Messung und PC – Seite keinerlei elektrische Verbindung besteht, die im Fehlerfall zu einer Zerstörung der PC Hardware führen hätte können.

Außerdem konnten bis zur StopWatch Version 1.34 die Initiator Eingänge noch nicht in der Software invertiert werden, wofür wiederum die Relais herangezogen werden mussten, wenn der Initiator nicht das richtige Ausgangspotential zur Verfügung stellte. Der Verdrahtungsaufwand und der Platzbedarf waren erheblich.

Deshalb wurde bei der Entwicklung dieser neuen Interface Platine ein besonderes Augenmerk auf die folgenden Punkte gelegt:

Da der Platzbedarf möglichst gering gehalten werden sollte, um die komplette Platine inklusive aller Anschlüsse später in eine IP66 Verteilerdose bauen zu können, wurde das Layout der Platine komplett mit moderner SMD Technik erstellt. Nur so konnte eine Platinen Größe von 68 mm x 42 mm erreicht werden.

Es wurden WAGO SMD Anschlussklemmen mit Federklemmtechnik verwendet, die einen maximalen Aderquerschnitt bis 1,5 mm2 aufnehmen können. Die Anzahl der Klemmen wurde so gewählt das sowohl die Adern für die Spannungsversorgung, wie auch alle Anschlussleitungen der bis zu drei Lichtschranken angeschlossen werden können. Somit ist keine weitere Klemmstelle im Gehäuse mehr nötig.

Da üblicherweise als Initiatoren Lichtschranken verwendet werden, wie sie auch in Industrieellen Anwendungen zum Einsatz kommen, wurden die Initiator Eingänge für einen weiten Eingangsspannungsbereich  von 7 – 27 V ausgelegt. Zusätzlich wurden die Eingänge gegen Verpolung geschützt.

Jeder Eingang besitzt eine eigene kleine LED, mit der die Funktion des Initiators bereits bei der Installation getestet werden kann, selbst wenn noch kein PC angeschlossen ist.

Für die Verbindung mit der USB Schnittstelle wurde bewusst eine Micro USB Buchse auf der Platine verbaut. Dies bietet den Vorzug das ein defekten Anschlusskabels sehr schnell und bequem ausgetauscht werden kann. Ein weiterer Vorteil liegt in der sehr kleinen Bauform des Micro USB Steckers, der mit seinen ca. 10 mm Durchmesser leicht durch eine M18 Verteilerdosenverschraubung gesteckt werden kann.

Bei der Montage hat sich jedoch gezeigt, das ein Abgewinkelter Stecker vermutlich besser geeignet wäre.

Tabelle mit Maßen für Kabelverschraubungen

Nenngröße Kerndurchmesser
(mm)
Klemmbereich
(mm)
Metrisches Gewinde
M12 × 1,5
10,6
M16 × 1,5
14,6
Für die Initiatoranschlüsse
4–9
M18 × 1,5
16,4
M20 × 1,5
18,6
Für den USB Anschluß
6–13
M24 × 1,5
22,4
M25 × 1,5
23,6
7–17

Die USB Anschlusskabel sind im Fachhandel in verschiedenen Längen erhältlich, so dass auch hier die Anschlusskabellänge vom Anwender leicht an die Gegebenheiten angepasst werden kann.

Zusätzlich finden sich noch zwei weitere Led’s auf der Platine, die zur Anzeige des Kommunikationsstatus mit der USB Schnittstelle dienen.

Mit den vier Befestigungslöchern an jeder Kanten, kann die Platine sicher in einem Gehäuse befestigt werden.

Die Integration des USB Anschlusses unter Windows erfolgt wie beim USB RS232 Adapter als virtueller COM Port. Somit ist diese Platine sowohl für die StopWatch Software als auch für eigene Anwendungen und Projekte geeignet.

Die Initiator Eingänge arbeiten in einem weiten Spannungsbereich von 7 – 27 V=, ab einer Eingangsspannung von 7V wird das Eingangssignal sicher als High erkannt.
Jeder Eingang wird durch eine in Reihe geschaltete Diode gegen Verpolung geschützt. Der Spannungsregler in jedem Eingangszweig arbeitet als Stromkonstanter mit ca. 20mA, dieser eingeprägte Strom durch fließt die Signalisierungs Led und die Led des Optokopplers.
Schaltet der Transistor des Optokopplers durch, wird der entsprechende Eingang am FDTI Chips auf Low gezogen.

Auf der Platine befindet sich zwei Lötbrücke J1 und J2, diese beiden Brücken verbinden den Zwischenzeitinitiator wahlweise mit den Eingängen (RI) und (DCD).
Im Auslieferungszustand sind diese beide Brücken geschlossen. Sie dienen als Option für spätere Stopwatch Versionen, da sich die Auswertung des (RI) Signals im Programmcode etwas anders verhält als die des (DCD) Signals.
So ist es später möglich, auch ohne größere Eingriffe an der Hardware die Funktion entsprechend einer späteren Softwareänderung anzupassen.
DCD – (Data) Carrier Detect
RI – Ringer Indicator

Einbau des Initiator Interface:

Gut als Gehäuse eignet sich z.B. eine:

Hensel Kabelabzweigdose Abzweigkasten DE 9340 grau
98x98x61mm,  Schutzart: IP 65

Initiator Interface Hensel (7)

Als Kabeleinführungen wird empfohlen auf die mitgelieferten Gummistopfen zu verzichten und stattdessen entsprechende Kabelverschraubungen zu verwenden.  Diese bieten den Größen Vorteil, dass sie eine ausreichende Zugentlastung bieten und auch nach mehrfacher Verwendung nicht so schnell ausleiern wie die Gummistopfen.

Für die Einführung des USB Kabels sollte je nach Steckergröße eine M18 – M20 Verschraubung verwendet werden. Um anschließend die Verschraubung dicht zu bekommen, wird empfohlen das Kabel an der Verschraubung mit Klebeband so zu umwickeln, bis der benötigten Durchmesser für eine wasserdichte Verbindung erreicht ist.

Für die Initiatorkabel und die Spannungsversorgung sind je nach Kabeldurchmesser Verschraubungen mit der Größe M12 – M16 geeignet.

Werden die empfohlenen Kabelverschraubungen verwendet, dürfen die vorgeprägten Löcher in der Verteilerdose nicht einfach aufgebrochen werden, sondern müssen z.B. mit einem Stufenbohrer vorsichtig auf die richtige Größe auf gebohrt werden.

Je nach Beschaffenheit der Verteilerdose können für die Befestigung der Leiterplatte die vorhandenen Löcher verwendet werden. Da sich auf der Unterseite der Leiterplatte keine Bauteile befinden, kann diese aber auch mit einem doppelseitigen Klebeband in der Dose befestigt werden. In diesem Fall empfiehlt es sich zwichen Platine und Dosenboden noch ein PVC Platte o.ä. einzukleben, um die Höhe des USB Stecker ein wenig auszugleichen.

Prinzip Schaltplan:

USB Initiator Interface

Anschlusbelegung:

USB Initiator Interface Plane

Technische Daten:
USB 2.0 Schnittstelle
Spannungsversorgung per USB: 4.5 to 5.5 VDC / 100 mA

  • Drei galvanisch getrennte Initiatoreingänge mit einer Isolationsspannung von 5 KV rms
  • Initiator Eingangsspannung: 7V – 27V =, Typisch 24V=
  • Betriebstemperaturbereich: -20 to +55 °C
  • Abmessungen L x B x H: 68mm  x 42 mm x 8mm

USB RFID Lesegerät

Dieser USB-RFID-Leser wurde speziell für den Betrieb mit der auf diesem Blog vorgestellten Software StopWatch entwickelt.

Wird dieser RFID-Reader zusammen mit der StopWatch Software betrieben, können komfortabel alle Teilnehmer einer Veranstaltung über ihren eigenen RFID Chip authentifiziert und angemeldet werden. Wird ein Lesegerät am Start aufgestellt, kann vom Starter selbst eine automatische Starter Auswahl initiieren. Dabei wird der entsprechende Teilnehmer Datensatz automatisch geöffnet und die Teilnehmerdaten am Infobildschirm angezeigt. Auf diese Weiße entfällt die Teilnehmer Suche in der Liste oder über die Filterfunktion und die Bearbeitung wird dadurch vereinfacht und beschleunigt.

Zusätzlich können RFID Chip an die Mitarbeiter der Veranstaltung ausgegebn werden, die eine personalisierten Anmeldung an der StopWatch Software erlauben. Über die definierten Zugriffsrechte der Tags werden automatisch bestimmte Funktionen freigeschaltet bzw. gesperrt.

Die StopWatch Software ist in der Lage eine beliebige Anzahl dieser Lesegeräte zu erkennen und gleichzeitig zu betreiben. Der Reader erscheint nach dem Verbinden mit dem PC nicht als virtueller Comport in der Systemsteuerung. Wenn diese Funktionalität zusätzlich gewünscht wird kann dies auf Anfrage gerne entsprechend angepasst werden.

Technische Details

Mit diesem USB-RFID Lesegerät (Radio Frequency Identification) können Transponder der Familie EM4100 ausgelesen werden. Diese Transponder arbeiten mit einer Trägerfrequenz von 125 Khz und sind für kurze Distanzbereiche bis zu 5 cm geeignet. Das Lesegerät beinhaltet ein serielles RFID-Reader-Modul der Firma Paralax. Die Anbindung an die USB-Schnittstelle erfolgt durch eine weitere Platine, auf der sich ein Schnittstellenwandler FT232RL (Seriell USB Umsetzer) befindet und die Verbindung zur USB-Schnittstelle des PC’s herstellt.

Das Gerät wird direkt über den USB-Port versorgt. Es wird keine zusätzliche externe Stromversorgung benötigt. Beim Anschluss von mehreren USB Geräte an einen USB-Hub, wird der Einsatz eines fremdgespeisten USB-Hub enmpfohlen, um die maximale Grenze von 500 mA nicht zu überschreiten.

Kompatible Tags:

  • 54x85mm Rectangle Tag ISO Card: 6.3cm (2.5″) +/- 10%
  • 50mm Round Tag World Tag 50mm: 6.8cm (2.7″) +/- 10%
  • Blue Eye Key Fob
  • 25mm Disk Tag

Technische Daten:

  • Liest 125 kHz Tags, der Familie EM41000
  • Spannungsversorgung per USB: 4.5 to 5.5 VDC / 110 mA
  • Kommunikation CMD Direct Driver d2xx.dll, 2400 Baud (8N1)
  • Betriebstemperaturbereich: -20 to +55 °C

USB DMX Adapter zur Ansteuerung einer DMX Ampel

 

Dieser USB DMX Adapter ermöglicht in Zusammenarbeit mit der auf diesen Seiten vorgestellten StopWatch Software den Betrieb von DMX 512 steuerbaren Komponenten.

In die StopWatch Applikation wurde ab Version 1.33 die Ansteuerung einer Ampel über DMX integriert. Es können gleichzeitig mehrere DMX Adapter betrieben werden.

Unabhängig davon, ob die Zeiterfassung manuelle, serielle oder mit einem StopWatch Modul erfolgt, wird die DMX Ampel paralell aus der StopWatch Software angesteuert.

Gerade für den Einstieg bietet diese Lösung einen kosten günstige Alternative zum Einsatz einer professionellen Ampelanlage. Denn bereits mit einem einzigen DMX Scheinwerfer ist die Realisierung einer Ampel möglich.

Der Adapter  wird direkt über den USB Port versorgt. Beim Anschluss von mehreren USB Geräte wird der Einsatz eines USB-Hub empfohlen, um die maximale Grenze von 500 mA nicht zu überschreiten.

Pol 5 polig 3 polig international
1 Masse (Abschirmung) Masse (Abschirmung)
2 Signal invertiert (DMX−, „Cold“) Signal invertiert (DMX−, „Cold“)
3 Signal (DMX+, „Hot“) Signal (DMX+, „Hot“)
4 Data –
5 Data +

Technische Daten:

  • Spannungsversorgung per USB: 4.5 to 5.5 VDC / 100 mA
  • Kommunikation CMD Direct Driver d2xx.dll, 250 000 Baud (7N2)
  • DMX Anschluß 3 Polig, Buchse.
  • Es ist keine Galvanische Trennung zum DMX Ausgang vorhanden.
  • Betriebstemperaturbereich: -20 to +55 °C

Hochgenaue Zeiterfassung über das USB StopWatch Modul

Harwarebeschreibung USB StopWatch Modul
Harwarebeschreibung USB StopWatch Modul

Um bei Sportveranstaltungen mit Start- Zielläufen, die Start-, Zwischen und Zielzeiten auf  Hundertstel Sekunden genau und sicher erfassen zu können, wurde eine Rechner unabhängige Hardware zur Messung der Zeiten beauftragt, die mit einer quarzgenauen interne Zeitmessung arbeitet.

Es ist der direkte Anschlus von Initiatoren möglich wie sie in der Industrie zum einsatzkommen. Üblicherweise werden Leuze Laserlichtschranken eingesetzt, die direkt an die M12/4 Steckverbinder angeschlossen werden können. Die Versorgung der Initiatoren erfolgt ebenfalls direkt über den M12 Steckverbinder, zur Verfügung gestellt wird diese Versorgungsspannung durch ein Externes Steckernetzteil 9V-24V=.

Die StopWatch Hardware verfügt über einen USB Anschluss für den Datenaustausch mit einem PC.
Drei Relais Ausgänge auf dem Modul bieten die Möglichkeit zur Ansteuerung von Signalgebern, wie zum Beispiel einer Ampelanlage. Desweiteren sind drei über Optokoppler getrennte Eingänge vorhanden, die zur Anbindung geeigneter Sensoren für die Start-, Zwischenzeit und Ziel Erfassung dienen.

Über Steuerbefehle vom PC wird die Starsequenz eingeleitet. Je nach Konfiguration des Moduls, wird anschließend die Ampel angesteuert und die Startfreigabe an den Teilnehmer erteilt. Sobald der Relaisausgang (Ampel grün) aktiv ist, beginnt je nach Konfiguration des Moduls die Zeiterfassung sofort oder erst mit dem überschreiten des Startsensors, dass Modul beginnt die Zeiterfassung.

Zeitgleich erhält der PC den Beginn der Zeitmessung über die USB Schnittstelle. Das Erreichen eines Zwischenzeitsensors wird ebenso wie das Erreichen des Zielsensors an den PC übertragen. Die letzten Zeitwerte werden im Modul gespeichert und bleiben dort Spannungsausfallsicher bis zum Beginn einer neuen Zeiterfassung gespeichert. So ist es möglich die zuletzt gesammelten Daten ein weiteres Mal für eine Auswertung auszulesen und erneut zu verarbeiten.

Die StopWatch Software wurde so konzipiert, dass die Darstellung der aktuellen Zeiten in einem eigenen frei verschiebbares Fenster angezeigt werden. In diesem Fenster befinden sich verschiedene Informationen, von denen die ersten beiden fest definiert sind und die laufende Zeit sowie die letzte Zwischenzeit anzeigen. Die anderen Felder können in den Programm Optionen ausgewählt werden. Zusätzlich können beliebig viele Freitexte und ein Werbe Banner eingeblendet werden. Das Fenster mit den Zeiten und einer virtuellen Ampel kann auf einem separaten Bildschirm anzuzeigen werden,  hierfür wird Gebrauch von einer Standard Windows Funktion gemacht, die es erlaubt, gleichzeitig zwei Bildschirme an einem PC zu betreiben.

Die Einstellungen hierfür sind in der Systemsteuerung von Windows unter Anzeige zu treffen. Nach dem Einrichten dieser Funktion, kann das Zeitanzeigefenster einfach mit der Maus auf den zweiten Bildschirm verschoben und dort maximiert werden. Die StopWatch Software wird von uns mit Nachdruck weiterentwickelt und neue Funktionalitäten und Kundenanfragen werden konsequent umgesetzt.

Hardwareentwicklung des USB StopWatch Moduls

Die StopWatch Hardware besteht im wesentlichen aus drei Bereichen.

  1. Einem USB RS232 Konverter, der zum seriellen Datenaustausch zwischen dem PC und dem Mikrokontroller (PIC 16F628/648) dient.
  2. Dem Mikrokontroller, der die Datenerfassung und die Kommunikation mit dem StopWatch Modul übernimmt.
  3. Sowie den Ein- und Ausgängen zur Verbindung mit der Peripherie. Alle Ein- und Ausgänge des StopWatch Moduls sind galvanisch getrennt ausgeführt, die Versorgung der Initiator Eingänge wird durch eine externes Steckernetzteil 7-27V DC gewährleistet. Mit diesem externen Netzteil werden die Angeschlossenen Initiatoren versorgt.
    Der Mikrocontroller besitzt drei über Optokoppler getrennte Eingänge für die Start-, Zwischen und Zielzeit Initiatoren.
    An die Eingänge über M12/4 Stecker direkt z.B. Industrielichtschranken der Fa. Leuze angeschlossen werden.Die drei Ausgänge sind über Read Relais galvanisch entkoppelt. Die grundlegenden Funktionen des PIC bestehen aus der Kommunikation mit dem StopWatch Programm über die USB Schnittstelle.
    Der Erfassung der Zeitmessereingänge und der Bruttozeiterfassung. Hierfür wird wie für andere Funktionen eine Interrupt Routine genutzt, die eine Genauigkeit von 4,096 ms gewährleistet.

Privater Hobby Blog