Schlagwort-Archive: Display

Start- Stop Zeitmessung mit DOT Matrix Display und WLAN Anbindung

Timekeeper Manual
Timekeeper Manual
Timekeeper-Manual.pdf
Version: 1.01
2.9 MiB
467 Downloads
Details

Allgemeines

Die hier beschriebene Zeitmessung „Timekeeper“ entstand auf Anfrage für eine Zeitmessung zu Trainingszwecke für eine Gleichmäßigkeitsprüfung, wie sie bei Oldtimer Rennen zur Wertung durchgeführt wird.

Aufgabenstellung:

Beim Durch- bzw. Überfahren eines Startinitiators sollte eine neue Zeitmessung begonnen werden, diese sollte mit dem Durch- bzw. Überfahren des Zielinitiators enden.
Die Zeitnahme sollte in drei verschiedenen Modi erfolgen können, eine reine Zielzeiterfassung, eine Ziel- und Zwischenzeiterfassung (was einen weiteren Zeitmesseingange für die Zwischenzeit notwendig machte) und die Erfassung von zwei Rundenzeiten (LAP1 und LAP 2).

Die gemessenen Zeiten sollten durch eine große Anzeige, die gut aus dem Fahrzeug, nach Beendigung der Zeitnahme abzulesen wäre. Des Weiteren sollte die Möglichkeit bestehen, die gemessenen Zeiten zusätzlich in einer APP auf dem Smartphon angezeigt zu bekommen.

Eine Webserver Ansicht, die alternativ zur APP Ansicht benutzt werden könnte, wurde ebenfalls angestrebt.

Die Anforderungen wurden in diesem Projekt kurzbeschrieben wie folgt realisiert:


Die gesamte Zeitmessung erhielt ein robustes Aluminium Gehäuse mit einer verspiegelten Plexiglasscheibe, hinter der eine gut lesbare LED DOT Matrix Anzeige angebracht wurde.
Die Auflösung des Displays beträgt 1024 Led Bildpunkte.

Um die drei Initiatoren direkt per M12 Steckverbinder anzuschließen, wurden auf der Rückseite des Gehäuses drei Buchsen angebracht, die einen direkten Anschluss von Industrie Laserlichtschranken (z.B. der Firma Leutze) ermöglichen.
Aus diesem Grund wird das Modul mit einem =24V/1A Stecker Netzteil versorgt, dass sogleich die Versorgungsspannung für die angeschlossenen Initiatoren wie auch der internen Elektronik bereitstellt.

Die Zeiterfassung erfolgt Mikrocontroller gestützt, mit einem ESP8266. Dieser Baustein bietet alle Voraussetzungen, die für die Realisierung des Projektes und eine Anbindung über ein WIFI Netzwerk notwendig sind.

Eine Externe Antenne sorgt für eine optimale Reichweite des Moduls.

Um die ermittelten Zeiten direkt auf einem Smartphone anzuzeigen, wurde eine Anbindung an die BLYNK APP realisiert.
Da diese APP ist sowohl für Android als auch für IOS erhältlich ist. Sie überzeugte durch ihr offenes und flexibles Konzept und ist zudem eine sehr kostengünstige Lösung für den Endkunden.

Durch den Kauf von zusätzlicher Energie, kann die App leicht und flexibel um weitere Anzeigen und Funktionen erweitert werden.

Ist keine Internetverbindung möglich oder vorhanden, arbeitet das Timekeeper Modul somit nach der Initialisierung im Standalone Modus, die ermittelten Zeiten werden auf dem Display angezeigt.

Zusätzlich können die gemessenen Zeitinformation in diesem Betreibsmodus aber auch über ein integriertes Webinterface abgerufen und angezeigt werden. Hierfür wird ein interner Access Point geöffnet, mit dem man sein Smartphon verbinden kann, um auf die ermittelten Zeiten zuzugreifen.

Ist eine Anbindung an ein lokales WLAN und somit eine Internet Verbindung vorhanden, bietet das Modul weitere Optionen für die Bedienung und die Zeitanzeige.

Es ist dann z.B. möglich die neusten Firmware Updates vom Webserver des Herstellers direkt in das Modul zu laden und zu installieren.

Ein integrierter NTP-Zeitservice stellt dann die aktuelle Uhrzeit und das Datum zur Verfügung. Wird mit dem Modul länger als 90 Sekunden keine neue Zeitmessung mehr durchgeführt wird diese dann automatisch auf dem Display angezeigt.

Die Auswahl verschiedener Funktionen erfolgt über dem MODE-Taster auf der Rückseite des Moduls. Damit kann ein Menü aufgerufen werden, um die Funktionsweis des Moduls zu konfigurieren.

 

Die M12 Buchsenanschlüsse sind kompatible mit der von uns empfohlenen Leuze Laserlichtschranken von Typ PRKL 25 4.1 200-S12 und können somit direkt angeschlossen und betrieben werden.

Steckerbelegung:

Versionsverlauf:

Intended:

  • Version 1.02
    Nicht geplant

Released:

  • 08.05.2019: Version 1.01RC
    „Single Ini“ Zeitnahmefunktion mit nur einem Initiator, Trenddarstellung der Zeitdifferenz und Umgestaltung der Bedienelemente.
    Erweiterung der Blynk App um ein Eingabefeld für die Entfernung zwischen dem Start- und Ziel Initiator sowie die Integration einer Anzeige der daraus berechneten Geschwindigkeit.
    Timekeeper BLYNK Token V1.01
    Timekeeper BLYNK Token V1.01
    Timekeeper-BLYNK-Token-V1.01.png
    Version: 1.01
    10.6 KiB
    477 Downloads
    Details
  • 20.04.2019: Version 1.00
    Timekeeper finale Version 1.00, Firware released.
    Timekeeper BLYNK Token V1.00
    Timekeeper BLYNK Token V1.00
    Timekeeper-BLYNK-Token-V1.00.png
    Version: 1.00
    10.7 KiB
    316 Downloads
    Details

[wp_cart_button name=“TimeKeeper Modul V1.0″ price=“298.90″ shipping=“0.000001″]

Kaufpreis: 298,90 €

TextToEEprom

TextToEEprom
TextToEEprom
TextToEEprom.zip
Version: 1.0
2.0 MiB
640 Downloads
Details

TextToEEprom

In Mikrokontroller Anwendungen werden Texte z.B. für eine Displayausgabe häufig in externen EEProm Bausteinen abgelegt.

Das Programm “TextToEEprom” dient der Erstellung, der Pflege sowie dem Brennen der indizierten Textfiles in ein EEprom des Typs 24cxx. Je nach Anwendung können verschiedene 24cxx EEPromtypen ausgewählt werden. Die Übertragung der Daten kann seriell, direkt durch dem Microkontroller oder mit einem kleinen externen I2C-Brenner dessen Bauanleitung in der beiliegenden Dokumentation zu finden ist erfolgen. Der Bauplan für den Brenner und diverse Beispieleprogramme für die Nutzung mit einem Mikrokontroller sind als Basic Code in der beiliegeneden Hilfe enthalten. Dieser Code kann so auch leicht in beliebige ander Programmiersprachen portiert werden.

Um einen schnellen Zugriff auf die einzelnen Texte zu erhalten, wird jedem Text ein Index zugewiessen. Diese Indizis, die am Anfang des EEproms liegen, referenzieren (ähnlich einem Zeiger) die Startadresse des entsprechenden Textes im Speicherbereich des EEProms.

Im Programm wird nun z.B. von der fünften Speicherstelle des EEProm der Index für den Fünften Text im EEProm geladen und anschließend begonnen den Text Zeichen für Zeichen aus dem EEProm aus zu lesen und auszugeben, bis die Textende Markierung erreicht wird.

Das Textende wird durch einen frei definierbaren Bytewert gekenzeichent, der im Programm definiert werden kann.


Pseudo Code für die Verwendung der EEProm Daten:

Diese Beispiele zeigen, wie eine 24Cxx EEProm direkt mit einem PIC Microkontroller und der serielle Schnittstelle programmiert werden kann. Um ein besseres Verständnis der Funktionsweise zu erreichen, wurden die Programmteile mit vielen Kommentaren versehen. In diesem Beispiel wurde ein PIC 16F877 verwendet. Die Firmware kann mittels Bootloader über die Hardware serielle Schnittstelle des PIC (MAX 232 nötig) und Microcode Studio übertragen werden, dies erlaubt eine schnelle Fehlersuche bzw. Änderung der Software.
Diese Schnittstelle wird ebenfals für das Übertragen der EEprom Daten aus dem Programm TextToEEProm genutzt.
Die Beispielprogramme zeigen das Laden des EEProms mit Daten von der seriellen Schnittstelle, die Funktionsweise einer Textausgabe der mit TextToEEProm erstellten Texte und den Einsatz dieser Texte in einem kleinem Menü, dass über drei Tasten und ein LCD Display gesteuert werden kann.

Pic Basic Code Beispiel:Ladeprogramm für das EEprom (24C32 bzw. 24C64)‘————————[ Texte in das EEProm laden ]————————–
’24C32 10101ddd  (4K EEPROM) Adresse im Wordformat
TextToEEProm:
CONT = %10101000
ADDR = 0                    ‚Variable Addr mit null initialisieren
READDATA:
HSERIN 6000,START,[CHAR]            ‚Zeit um die Übertragung zu starten
IF CHAR = 251 THEN START            ‚End of File Zeichen
I2CWRITE SDA,SCL,CONT,ADDR,[CHAR]         ‚Daten in das EEProm schreiben
PAUSE 10                    ’10 ms Brenndauer abwarten
I2CREAD SDA,SCL,CONT,ADDR,[CHAR]        (Optional bei verwendung von ECHO)
HSEROUT [CHAR]                ‚Echo zum Sender (Optional bei verwendung von ECHO)
ADDR = ADDR + 1                ‚Addresse um eins erhöhen
GOTO READDATATextausgabe auf das LCD-Display (EEprom 24C32 bzw. 24C64)‘—————-[ LCD Ausgabe mit Word Pointer H/L ]—————————
’24LC32 4K Bytes %10101ddd (4K EEPROM) Adresse im Wordformat
‚TEXT => Erster Text ab INDEX
DiplayOut:                    ‚Der Index des Textes
CONT = %10101000
TEMP_WORD = (TEXT + OFFSET) * 2        ‚*2 Byte (High/Low)
I2CREAD SDA,SCL,CONT,TEMP_WORD,[ADDR]    ‚I*2 bei Word Pointer, lade Startadresse
READCHAR:
I2CREAD SDA,SCL,CONT,ADDR,[Char]
IF CHAR = 0 THEN RETURN            ‚End of Text Zeichen erkannt
ADDR = ADDR + 1                ‚Addresse um eins erhöhen
LCDOUT CHAR                    ‚Zeichen in das Display schreiben
GOTO READCHARTypischer Programmaufbau für eine Menüführung mit Displayausgabe

‚—————————[ Funktionsmenue ]———————————-
SETUP:
OFFSET = 11                    ‚Text offset Setup Menue
TEXT = 0                        ‚0-„Einstellungen …   “
GOSUB DISPLAYOUT                ‚Textausgabe aus EEProm
PAUSE 700
TEXT = 0                    ‚Setze Hauptmenüeintrag „Rollobedienung“
BACKTOSETUP:
OFFSET = 20                    ‚Text offset Setup Hauptmenue
MENUMAX = 2                    ‚0-3 Anzahl der Menü Einträge

‚******************************** Aktionsmenü  *********************************
MENU:
GOSUB DisplayOut
LOOP:
GOSUB GET_TASTER
SELECT CASE TASTER
CASE 1   ‚Zurück blättern
IF TEXT > 0 THEN                ‚Maximale Anzahl der Einträge erreicht?
TEXT = TEXT – 1
ELSE
TEXT = MENUMAX
ENDIF
GOSUB DISPLAYOUT
CASE 2    ‚Vor blättern
IF TEXT < MENUMAX THEN            ‚Minimale Anzahl der Einträge erreicht?
Text = Text + 1
ELSE
TEXT = 0
ENDIF
GOSUB DISPLAYOUT
CASE 4                        ‚Menüeintrag auswählen
PAUSE 255                    ‚255 ms warten Tastenwiederholrate
IF OFFSET = 20 THEN                ‚Hauptmenü
BRANCHL TEXT, [A0,A1,INIT]            ‚Init ist der letze Eintrag und beendet das Menü
ENDIF
IF OFFSET = 30 then B0
IF OFFSET = 40 then B1
END SELECT
GOTO LOOP

‚************************ Untermenüs *******************************************
A0:
TEXT = WERT                    ‚Atuellen Wert zugewiessen
OFFSET = 30                    ‚Text offset B0
MENUMAX = 3                    ‚Anzahl der Menü Einträge
GOTO MENU

A1:
TEXT = STATUS.2                 ‚Aktuelle Einstellung Binär 0 oder 1
OFFSET = 40                    ‚Text offset B1
MENUMAX = 2                    ‚Anzahl der Menü Einträge
GOTO MENU

‚********************* Aktionen der Untermenüs *********************************
B0:
SELECT CASE TEXT
CASE 0        ‚Eintrag 0
….
CASE 1        ‚Eintrag 1
::::
CASE 2        ‚Eintrag 2
….
CASE 2        ‚Eintrag 3
….
END SELECT
TEXT = 0                    ‚Setze Hauptmenüeintrag A0
GOTO BACKTOSETUP

B1:
SELECT CASE TEXT
CASE is < 2    ‚Eintrag 0..1
…..
CASE 2        ‚Eintrag 3
…..
END SELECT
TEXT = 1                    ‚Setze Hauptmenüeintrag A1
GOTO BACKTOSETUP

Was ist neu

Version 1.22.1  Neu

  • Es wurde eine Updatesuche integriert, die es nun ermöglicht, bequem aus der Anwendung heraus nach einen aktuelleren Version dieser Software zu suchen und diese dann direkt herunterzuladen.

Version 1.22.0

  • Erweiterung der EEProm Typen