- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 38

Thema: Sport-Anzeigetafel über USB

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2010
    Ort
    Nähe Wien
    Alter
    34
    Beiträge
    108

    Sport-Anzeigetafel über USB

    Hallo!

    Für eine Sport-Organisation möchte ich eine (LED-)Anzeigetafel zum darstellen von Zeit und Spielstand bauen.
    Dazu habe ich mir bereits ein paar Gedanken gemacht, welche ich gerne mit euch diskutieren würde. Erfahrungsaustausch regt ja bekanntlich zu neuen Ideen an.

    Hier einmal die Grundvorraussetzungen der Aufgabenstellung:
    2 größere Anzeigen für die jeweiligen Punktestände, 1 stellig, also größeres 7-Segment-Element
    1 Anzeige für die Spielzeit, 4 Stellig (Minuten, Sekunden), also 4 kleinere 7-Segment-Elemente
    1 Anzeige für die verbleibende Pausenzeit, 3 Stellig (Minuten, Sekunden), also 3 kleinere 7-Segment-Elemente
    Witterungsbeständig, also Outdoor-Fähig, wobei die Anzeige jeden Abend wieder weggeräumt wird, also keine Problematik wie Tau oder ähnliches
    Lesbarkeit (~40m Entfernung oder mehr)
    Anschluss über USB per Laptop
    Preis - möglichst günstig versteht sich, fertige Lösungen sind leider nicht leistbar
    optional: Schriftfeld über dem Punktestand, um anzuzeigen wer gerade spielt

    Die Konstruktion:
    1. Aufbau:
    Die 7-Segment-Anzeigen herzustellen ist jetzt nicht das Problem, da habe ich mir gedacht die werde ich jede Anzeige für sich, modular (möglichst wasserfest) fertigen, so das man sie nacher in die "Tafel" nur noch einsetzen muss. Dazu möchte ich mehrere LEDs seriell zusammenschalten, wodurch die "Linien" der Segmente entstehen. Diese Linien dann 7-Fach in ein Gehäuse einbauen, die 7 Datenleitungen unten per 8-Pol-Kabel hinausführen und den 8. Pol des Kabels kann man dann entweder direkt die Spannung anhängen oder ihn als Pin zum Multiplexen rauslassen.

    Vorteil von den Modulen wäre halt, das wenn (relativ spontan) eines durch defekt ausfällt, man nur das alte ausklipst, das neue einbaut und es läuft wieder.

    Diese Module sollen dann eben in die Anzeigetafel von hinten eignesetzt werden können, dazu möchte ich davor eine Plexiglas-Platte zum Regenschutz anbringen. Ist das einfach so möglich, zwecks Hitzeentwicklung der LEDs? Sollte ich hier Abstand lassen? Wenn ja wieviel?

    2. Die Ansteuerung der Segmente:
    Da ich ja nur 9 Segmente insgesamt betreiben muss, weiß ich nicht so recht welche Ansteuerung hier sinnvoller ist. Im Mikrokontroller-Forum habe ich bereits über Multiplexen nachgelesen, hat das hier Sinn? Hier sollte ja der Programmier-Aufwand deutlich höher sein als bei der "direkten" ansteuerung über dne Controller, oder?
    Andererseits bräuchte ich für die direkte Ansteuerung über die Controller-Pins auch wieder 63 Ausgänge am Controller + die Eingänge die ich für den USB-Anschluss benötige. Gibt es überhaupt einen AtMega der so eine Anzahl von Pins beweltigen kann (zu einem vernünftigen Preis)?

    Habt ihr hier vielleicht alternative Ideen zur Ansteuerung? Sie sollten aber bitte möglichst simpel gehalten sein, da ich extrem Aufwändige Schaltungen so gut wie möglich vermeiden möchte. (Die Anzeige soll im Notfall auch wärend eines laufenden Turniers schnell zu reparieren sein.)

    3. Ansteuerung über USB:
    Da die zu Grunde liegende Software, welche z.B. den Spielstand ermittelt, über einen Laptop läuft, soll die Anzeigetafel, bzw. der Controller auch mit diesem Laptop verbunden werden, also über USB. Hier bin ich derzeit noch komplett Ratlos, in welcher Form ich die Daten überhaupt zum µC übertragen kann, bzw. wie ich überhaup die Verbindung zwischen Laptop und µC über USB realisieren kann. Hat dazu schon jemand Erfahungswerte gesammelt?
    Dazu weiß ich bisher leider nur das Grundwissen zum Programmieren von µCs, also wie man den Programmer anschließt. Jetzt soll das ganze aber (wenn möglich) in Echtzeit passieren, da die Anzeigetafel ja eine mitlaufende Uhr enthalten soll. Es sollen also jede Sekunde die Spielzeit-Daten an die Tafel übermittelt werden, der Punktestand kommt jedoch nur dann wen ner sich geändert hat, was so ca. alle 1-2 Minuten der Fall ein sollte.

    Soweit, sogut...
    Ich bitte euch also jetzt um Hilfe bezüglich den oben genannten Fragen, im Speziellen also zum Thema "Multiplexen ja/nein oder, gibt es sinnvolle Alternativen", sowie zur Ansteuerung über USB (in Echtzeit, oder zumindest möglichst nahe daran).

    Danke im Vorhinein!
    Liebe Grüße,
    Euer ijjiij

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von Thegon
    Registriert seit
    21.01.2011
    Beiträge
    562
    Ich würde auf jeden Fall Multiplexen, das geht mit 7 - Segment - Anzeigen eigentlich sehr gut bzw. ich glaube nicht, das das anders gemacht wird.
    Auch der Programmieraufwand ist nicht wirklich groß, oder? Also einfach erste Zahl auf erstes Segment, dann das Segment wechseln, nächste Zahl auf nächstem Segment und so weiter.

    Einzig aufpassen sollte man, dass jedes Segment genau gleich lange eingeschalten ist, denn wenn eines länger an ist als die anderen, dann erscheint es heller, und das sieht irgentwie ungut aus.
    Villeicht realisierung per Timer - Interrupt oder so.

    Mfg Thegon

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Da das Display im Outdoor Einsatz sein wird würde ich eine statische Ansteuerung vorziehen, da Du da jedes Lumen brauchst das die Anzeige hergibt.
    Ein Display im Multiplexbetrieb kommt üblicherweise nicht an die Helligkeit eines statisch betriebenen heran.
    Dazu würde ich pro Segment ein Schieberegister mit Latch und einem nachgeschalteten Segmenttreiber z.B. ULN2803 verwenden.
    Du kriegst dann 4 Steuerleitungen DATA, CLOCK, RESET und STROBE an den Controller.
    DATA und Clock sind die Daten und Takt Leitung für die serielle Ansteuerung.
    Mit RESET bringst du das Schieberegister beim Controllerstart auf definierte Ausgangszustände - Kannst aber auch gleich bei Controllerstart gültige Daten zum Display überspielen. Mit Strobe wird der eingetaktete Datenstrom an die Display Treiber ausgegeben.
    Das schafft dann sogar ein ATMEGA 8. Ich würd aber wegen eventuell künftiger Optionen einen ATMEGA 16 verwenden.
    Von beiden Chips kannst Du zum Einlesen der Daten in das Schieberegister sogar noch die Hardware SPI verwenden.

    Die einzelnen Digits können dann per Wannenstecker relativ einfach miteinander verbunden werden.
    Für die Stromversorgung würde ich dann aber Schraubklemmen verwenden Stromstärke ! ). Dadurch wären dann auch die Segmente sehr schnell bei einem Fehler zu wechseln.

    Für die Uhr würde ich eine DCF 77 Lösung vorziehen, das Stellen zur Sommerzeit / Winterzeit entfällt dann schon mal.
    Zusätzlich kannst Du einen REAL TIME CLock Chip einsetzen, der als Basis für den Countdown Timer genutzt werden kann.
    Diese RTC Chips gibts auch in I²C, welches der Controller als "TWI" wiederum in Hardware unterstützt.

    Die teueren Komponenten sind dabei die Displays, die Platinen, der DCF Empfänger, der mit ca. 12€ einschlägt und der FT232 der um die 6,-€ kostet.
    Zusätzlich noch ein 50W Netzteil das so um die 18,€ kostet.
    Die teuerste Komponente könnte das Gehäuse werden. Es sei denn Du hättest da Beziehungen?!

    Als Stromversorgung würde ich ein fertiges Schaltnetzteil verwenden, dann bist Du auch Elektrisch auf der sicheren Seite.
    Vom Strom her würde ich auf einem maximale Stromaufnahme von ca. 5A tippen. 60mA pro Segment * 7 Segmente * 9 Stellen=~3,8A + ein bischen Reserve.

    Für die Anbindung an den PC würde ich einen FT232RL verwenden. Als Bussystem zum Display ein bidirektionales RS485 mit SN75176 Treibern.
    Diesen Bus deshalb, weil damit große Reichweiten erreichbar sind ( max. 1km ). Also ein Kabel mir 2x2 Drähten. Netzwerkkabel wär auch geeignet.

    Übrigends gibts bei Reichelt und Conrad 10cm große Siebensegment Anzeigen für bezahlbares Geld.
    Vieleicht nicht für die Hauptanzeige, aber für die "Nebenanzeigen" eine Alternative?

    Als Preis würde ich mal gut 200,€ über den Daumen, ohne Gehäuse veranschlagen.

    Auf der PC Seite kannst Du ein FT232 TTL Fertigmodul von ELEKTOR verwenden und diesem dann 2* SN75176 nachschalten. Beides in ein SOAP Gehäuse eingebaut und die PC Seite ist fertig.

    Dann bräuchtest Du noch jemanden, der Dir für den PC ein Programm zur Ansteuerung des Displays schreibt. Ich meine mit Visual Basic sollte das gehen, auch wenn Ich da keine Ahnung von hab.
    Mit Hyper Terminal gings zwar auch ist aber nicht besonders Chic.

    Eventuell gönnst Du Dir auch eine "Fernsteuerung" mit einem eigenen Controller und kleine Siebensegmentanzeigen ?!
    Geändert von wkrug (28.03.2012 um 16:24 Uhr)

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2010
    Ort
    Nähe Wien
    Alter
    34
    Beiträge
    108
    Danke wkrug für deine ausführliche Antwort!

    Leider ist mein Elektronik-Wissen auf dem Gebiet noch etwas eingeschränkt...

    Dazu würde ich pro Segment ein Schieberegister mit Latch und einem nachgeschalteten Segmenttreiber z.B. ULN2803 verwenden.
    Könntest du mir diesen Satz eventuell noch ein wenig ausführlicher machen?
    Wie funktioniert der ULN2803? Soweit ich das jetzt verstanden habe, braucht er ja auch 7 Input-Leitungen für 7 Outputs. Wo liegt dann der Vorteil? Bzw. was machen die Überhaupt? Kurz gefragt: wofür brauch ich die?

    Ein Schieberegister macht mir dann wohl aus 4 Datenströmen 7-8 Stück davon, wenn ich das richtig verstanden habe. Dadurch würde ich dann also von 9*7= 63 Datenleitungen (direktbetrieb) auf 9*4= 36 Dateinleitungen mit Schieberegistern kommen. Stimmt das soweit?
    Der Vorteil hiervon ist mir dann natürlich ersichtlich.
    Aber mit dem Begriff "Latch" komm ich dann auch schon wieder nicht zurecht. Hier mcht mich Google aber auch nicht wirklich schlauer.

    Mit Strobe wird der eingetaktete Datenstrom an die Display Treiber ausgegeben. Das schafft dann sogar ein ATMEGA 8.
    Ist dein Aufbau dann also:
    PC -> Schieberegister -> AtMega -> Display?
    oder
    PC -> AtMega -> Schieberegister -> Display?

    Nicht das hier dann jetzt ein Misverständnis auftritt. Ich schätze mal aufgrund deiner weiteren Ausführungen meinst du die erste Variante. Du meintest ja es kommen nur 4 Letigungen vom PC zur "Anzeige". Richtig?


    Für die Uhr würde ich eine DCF 77 Lösung vorziehen, das Stellen zur Sommerzeit / Winterzeit entfällt dann schon mal.
    Ich glaub da haben wir uns schon wieder Missverstanden. Ich will nicht die Aktuelle Zeit anzeigen, sondern ledigleich auf der einen "Zeit-Anzeige" einen 15 Minuten Countdown (der dann nach jedem Punkt kurz unterbrochen wird) und auf der anderen "Zeit-Anzeige" einen 1:30 Countdown. Da hier aber sowieso im Hitnergrund eine Software am Laptop mitlaufen muss, können hier die kompletten Anzeige-Daten (also 15:00, 14:59, 14:58 etc.) auch einfach dauernd vom Laptop gesendet werden. Ich muss hier keine extra Uhr verbauen.

    Als Bussystem zum Display ein bidirektionales RS485 mit SN75176 Treibern. Diesen Bus deshalb, weil damit große Reichweiten erreichbar sind ( max. 1km ). Also ein Kabel mir 2x2 Drähten. Netzwerkkabel wär auch geeignet.
    Reichweiten in dieser Größenordnung sind für unsere Zwecke jetzt mal Irrelevant, es hier eher um 5-10 Meter. Hat der von dir vorgeschlagene Bus bei diesen geringeren Entfernungen irgendeinen Nachteil? Braucht man bei solchen Leitungslängen überhaupt einen Bus?



    Dann bräuchtest Du noch jemanden, der Dir für den PC ein Programm zur Ansteuerung des Displays schreibt. Ich meine mit Visual Basic sollte das gehen, auch wenn Ich da keine Ahnung von hab. Mit Hyper Terminal gings zwar auch ist aber nicht besonders Chic.
    Für die direkte Ansteuerung von der Anzeigetafel bin ich dann nur noch in beratender Funktion beteiligt. Hier werden sich die beiden Informatiker, die das gesamte zugrunde liegende Softwarepaket (Stoppuhr, Sound-System, etc.) entwickelt haben das übernehmen. Betrifft mich also nur soweit, das ich ihnen sagen muss: Wenn du auf die Leitung dieses Signal schickst, wird jenes passieren.


    Nochmals Danke für deine schnelle Antwort!

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.214
    Ok versuchen wirs mal Blockweise.
    1. Ein Schieberegister ist im Endeffekt ein kleiner Speicher.
    Du legst ein Bit an den seriellen Eingang des Schieberegisters und machst einen Impuls auf die Clock Leitung.
    Dadurch wird dieses Bit in das Schieberegister eingelesen. Nun Legst Du ein weiteres Bit an den Eingang und machst einen weiteren Schiebeimpuls auf der Clock Leitung. Dadurch wird der erste Impuls einen Platz weitergeschoben und das neue Bit befindet sich nun auf dem Platz des Ersten.
    So geht das nun weiter bis z.B. 8 Bit in dieses Schieberegister eingelesen sind.
    Dann gibts ein Carry Out, auf den die Bits die in diesem Schieberegister keinen Platz mehr haben weitergeschoben werden. An diesen Carry Out hängt dann das nächste Schieberegister und so fort. Im Prinzip funktioniert das wie eine Eimerkette bei der Feuerwehr.
    Für diese Funktion bräuchtest Du im Prinzip 2 Ausgänge des Microcontrollers für alle deine Segmente.

    Da es aber zu einem Flackern in der Anzeige führen würde, sobald man eine neue Bitkombination in das Schieberegister einlesen will nimmt man eine Schieberegister mit Latch.
    Dieses Latch ist im Prinzip ein Zwischenspeicher. Das schieben in so einem IC findet Quasi im Hintergrund statt.
    Wird nun ein Latch Impuls gegeben, dann wird der aktuelle Stand des Schieberegisters in diesen Zwischenspeicher eingelesen und so lange beibehalten, bis ein neuer Latch Impuls kommt, der Chip restettet wird, oder der Strom abgeschaltet wird.
    Dieses Latch ist direkt mit den Ausgängen so eines Schieberegisters verbunden.
    Diesen Latch Impuls müsstest Du vom Controller ausgeben, wenn alle Bits für die Anzeige in das Schieberegister eingelesen wurden. Deshalb brauchst Du da noch einen Controller Pin.
    Da dieses Schieberegister günstigerweise mit 5V Läuft und auch nur ca. 15mA Strom an seinen Ausgänge liefern kann, ist es sinnvoll einen Treiber nachzuschalten.
    Am einfachsten wär da ein kleiner Transistor wie der FET BS170. Da Du aber sehr viele von diesen Transistoren + Beschaltung brauchen wirst, nimmt man dafür ein sog. Darlington Array. In diesem ULN2803 befinden sich 8 Darlingten Transistoren inklusive der nötigen Beschaltung, inklusive je einer Freilaifdiode, wenn man ein Relais anschlissen wollte.
    Du brauchst also für jedes Segment ein Schieberegister und ein Darlington Array + 8 Strombegrenzungs Widerstände für die LED's.
    Der vierte Anschlußpin an den Controller für die Anzeigesteuerung wäre eine Reset Leitung. Schaltet man diese Leitung, die mit allen Reset Eingängen der Schieberegister verbunden sein muß, aktiv, werden die Schieberegister zurückgesetzt. Wie schon geschrieben ist das nicht unbedingt nötig, weil man ja auch gleich beim Start des Controllers gültige Werte in die Schieberegister einschreiben kann, aber es würde den Controllerstart doch vereinfachen, wenn das nicht nötig wäre.
    Das wären dann die Vier Steuerleitungen vom Controller zur Anzeige.

    Eine software Multiplexansteuerung ist schon ein anderes Kaliber und in meinen Augen für so viele Stellen nicht sinnvoll.
    Jede Stelle würde ja dann nur für 1/9 der Zeit bestromt und dadurch sehr dunkel erscheinen.

    2. Zum Block Zeit:
    Ich hatte das so verstanden, das immer die aktuelle Uhrzeit und zusätzlich! ein Countdown Timer angezeigt werden soll.
    Wenn da nur ein Countdown passieren soll ist DCF natürlich Käse.

    Trotzdem brauchst Du eventuell eine genaue Zeitbasis. Entweder Du nimmst einen Uhrenquarz und steuerst damit einen Timer im Controller an, oder Du machst den Controllerquarz abgleichbar ( Trimmkondensator ) damit auch nach einer Viertelstunde deine Zeitanzeige noch stimmt.

    3. Leitungslänge:
    Bei 5 bis 10m geht das auch noch ganz normal über die serielle Schnittstelle des PC. Allerdings brauchst Du dann auf der Controllerseite wieder einen Pegelwandler, weil der PC Spannungen von +/-12V für die einsen und nullen zum Controller sendet. Dafür gibts aber den Chip MAX232.
    Wenn Du ohnehin nur einen PC mit USB Anschlüssen hast, bräuchtest Du einen USB zu seriell Konverter - Die zugegeben relativ günstig sind.
    Auf der Anzeigen Seite ändert sich da aber nichts. Trotzdem ist da ein MAX 232 nötig.

    Bei meinem Vorschlag würde auf der PC Seite ein FT232 USB nach seriell Wandler verwendet. Dieser gibt allerdings nur TTL Pegel an seinem Ausgang raus.
    Diese TTL Pegel ( =0V /5V ) können aber auch bei Leitungslängen von 5m Probleme machen.
    Deshalb der Vorschlag da für die Sende und auch die Empfangsrichtung - Falls der Controller auch mal was zum PC senden soll - Je einen RS485 Pegelwandler zu verwenden. Der benutzt 2 Leitungen und wechselt die Polarität auf der Leitung je nachdem ob an seinem Eingang eine 1 oder eine 0 anliegt.
    Diese Pegelwandler müssen dann natürlich auch auf der Controllerseite eingebaut werden. Da es sich bei RS485 um ein symetrisches Signal handelt, geht die Übertragung sehr weit und Gleichtaktstörungen spielen auch keine Rolle.

    Eine weitere Lösungsmöglichkeit wäre eine Funklösung via Bluetooth. Google mal nach den Chip BTM222.
    Oder, als 868MHz Lösung, nach Wi.232EUR .

    Google mal ein bischen rum und mach ein wenig Grundlagenforschung.
    Wenn dann spezielle Probleme auftauchen, oder was unklar ist kannst Du dann ja konkret fragen.
    Alles Mundgerecht vorkauen werd ich Dir nicht!

    Wenn Du noch nie was mit so einem Controller selber geproggt hast, wirst Du das nach diesem Projekt können!
    Geändert von wkrug (29.03.2012 um 16:53 Uhr)

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.12.2010
    Ort
    Nähe Wien
    Alter
    34
    Beiträge
    108
    Vielen Dank für deine Ausführungen!
    Jetzt bin ich auf jeden Fall um einiges schlauer!

    Ich werde mich die Tage mal an die Stückliste, Bestückungspläne, Layouts und Schaltpläne setzen.

    Ich habe jetzt nur noch eine Frage:

    Wenn ich so ein FT232RL-Modul (z.B. http://www.elektor.de/products/kits-....1913324.lynkx) verwenden möchte, wie gestaltet sich dann die Kommunikation zwischen dem Modul und dem AtMega16?
    Werde hier leider nicht wirklich schlau aus dem Datenblatt und konnte auch bei Google nichts passendes finden.
    Die Kommunikation muss hier nur vom PC zum AtMega16 erfolgen, nicht in die Gegenrichtung! Das sollte die Schaltung ja noch weiter vereinfachen
    Geändert von ijjiij (29.03.2012 um 18:53 Uhr)

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 19.04.2011, 13:36
  2. suche große LED Anzeigetafel
    Von yaro im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 19
    Letzter Beitrag: 18.05.2010, 19:18
  3. Über C-Konsolenanwendung Daten über RS232 übertragen
    Von WDragon91 im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 03.07.2008, 20:23
  4. Lux: Die Lichtschranke für den Sport- und Physikunterricht
    Von luma im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 0
    Letzter Beitrag: 10.08.2006, 00:03
  5. anzeigetafel....tastatur...problem?!?
    Von hoer173 im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 19.08.2004, 14:19

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test