Zeitmessung auf alter 7 Segmentanzeige anzeigen

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Markus1999
User
Beiträge: 4
Registriert: Samstag 8. Februar 2020, 16:16

Hallo an alle,

Ich bin bei der Feuerwehr und habe für unsere Wettkampf Bewerbsgruppe ein Python 3 Programm auf einem Raspberry Pi 1B+ geschrieben, das funktioniert ansich auch prima.

Da wir aber letztens auf dem Dachboden eine alte große funktionierende 7 Segmentanzeige gefunden haben, wollte ich die gemessene Zeit auf dieser Anzeige anzeigen lassen.
Es handelt sich bei der Anzeige um eine Siebert S300-1660M-1-S1-A

Leider kenn ich mich da zu wenig aus und finde ich im Internet kein ähnliches Projekt. Auch keine Bedienungsanleitung zu dem Gerät, aber zu einem ähnlichen & etwas moderneren, die Steuerung sieht gleich aus und dürfte sich daher nicht viel verändert haben: https://www.siebert-group.com/docs/Sieb ... R%20DE.pdf

Demnach könnte man das ganze über rs485 oder rs232 Schnittstelle ansteuern. Aber wie da die gesendeten Daten aussehen müssen und so weiter bin weit überfragt.

Hoffe ich hab das ganze verständlich erklärt & hoffe das sich da jemand auskennt der mir weiterhelfen könnte & mir sagen kann ob das ganze überhaupt so funktionieren könnte wie ich mir das vorstelle :)

Hier noch das Programm:

Code: Alles auswählen

import gpiozero
import time
import pygame
pygame.init()

print("Feuerwehr Zeitmessung")

Startknopf = gpiozero.Button(2)
Buzzer = gpiozero.Button(3)

while True:
    Startknopf.wait_for_press()
    print("start")
    pygame.mixer.music.load("Angriff.mp3")
    pygame.mixer.music.play()
    time.sleep(21.55)         #Wert zum Zeit Kallibrieren
    start = time.time()
    
    
    Buzzer.wait_for_press()
    end=time.time()
    print("end")
    
    zeit = (end-start)
    
    print("%.4f" % zeit)
    
    if zeit >= 25:      #Zeit über 25
        pygame.mixer.music.load("Schas.mp3")
        pygame.mixer.music.play()
        
    if (zeit > 20) and (zeit < 25):   #Zeit zwischen 20 und 25
        pygame.mixer.music.load("Applaus.mp3")
        pygame.mixer.music.play()

    if  (zeit >13) and (zeit<= 20):            #Zeit unter 20
        pygame.mixer.music.load("Champions.mp3")
        pygame.mixer.music.play()
        time.sleep(7)
        pygame.mixer.music.stop()
        
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Hast du mal die in der Dokumentation beschriebene Einstellung fuer die serielle Schnittstelle vorgenommen? Das Geraet gibt ja ziemlich gut Auskunft wie es eingestellt ist.
Markus1999
User
Beiträge: 4
Registriert: Samstag 8. Februar 2020, 16:16

Ja hab ich, das kann man alles so einstellen wie beschrieben.

Brauche ich jetzt noch einen Adapter für den raspi?
Wie hier beschrieben:[url]https://buyzero.de/blogs/news/praktisch ... ry-pi/[url] kann man da gpio pins nehmen, funktioniert dass?
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die Seite geht fuer mich nicht. Und wenn es RS232 ist, oder 485, dann braucht man einen Adapter. Die GPIOs funktionieren NICHT, dier sind nur von 0..3.3V! Und wenn die Typbezeichnung (die ja nur so ungefaehr stimmt) aussagekraeftig ist, dann hast du eine S-Variante, und nicht T - T koennte ggf. mit den GPIOs gehen, aber ich kann mir schwer vorstellen, dass das 3.3V sind. Eher 5. Auch da waere dann also ein USB-serial-Adapter angezeigt.
Markus1999
User
Beiträge: 4
Registriert: Samstag 8. Februar 2020, 16:16

Okey Danke! Ja dann muss noch ein Adapter her.

Jetzt noch die Frage was ich dem Gerät dann senden muss, also was zum bsp. wenn ich 000000 schreiben möchte?
In der Bedienungsanleitungnleitung auf Seite 14 steht ein Zeichensatz, brauch ich den dafür? Also für die zahl 0 muss ich 30 senden?
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich wuerde es erstmal mit kleineren Dingen versuchen. ZB Displaytest, oder blinken. Ich finde die Beschreibung der Schnittstelle da ziemlich schlecht. Mir ist zB nicht klar, ob du einfach nacheinander so viele Zeichen sendest, wie das Ding darstellen kann. Oder ob da gescrollt wird, also immer von rechts angehangen und links rausgeschoben. Oder umgekehrt. Einen Weg, eine bestimmte Stelle anzusteuern habe ich nicht gesehen. Und ob es nach einem Kommando eine Wagenruecklauf und/oder Zeilenende braucht. Alles Sachen, mit denen du mal rumspielen musst.
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Markus1999: Für die Ziffer "0" musst Du ein Byte mit dem hexadezimalen Wert 30 senden. Was zufällig, oder vielleicht auch nichts so zufällig dem ASCII-Wert für das Zeichen "0" entspricht. Also letztlich kannst Du einfach eine Zeichenkette als ASCII kodieren, denn die anderen darstellbaren Zeichen dort haben auch jeweils den entsprechenden ASCII-Wert.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Markus1999
User
Beiträge: 4
Registriert: Samstag 8. Februar 2020, 16:16

Das ergibt Sinn, sobald der Adapter da ist muss ich damit ein wenig herumspielen :lol:

Danke für die Hilfe, wenn ichs nicht schaff melde ich mich wieder :wink:
Antworten