Prüfung einer Idee

Hallo, es geht hier um eine Prüfung einer Idee. Also erst mal lose Ideensammlung, ob man das verwirklichen kann.

Mein Problem:
Ich organisiere gemeinnützig Seifenkistenrennen. Hier haben wir eine Logo Zeitmessanlage von Siemens. Aufgrund meiner beruflicher Aktivitäten haben wir das komplett gesponsort bekommen.
Seifenkistenverband Baden-Württemberg e. V. – Seifenkistenverband-BW

Jetzt hab ich die Rennläufe / Fahrten der Teilnehmer in Excel drin.

Von hier aus möchte ich das dem Publikum visualisieren.

Wir haben hier (Ur-)alte Segment-Wechselanzeigen (also die wo so Klick machen, wenn sich die Ziffern ändern). Die sind zwar auch bei Sonne extrem gut lesbar, aber halt auch sau schwer und sind out of Service. Sobald was kaputt geht, bekomme ich keine Ersatzteile mehr.

Daher würde ich mir gern diese Anzeigen tauschen gegen z. B. solche Anzeigen, wo man an Tankstellen sieht. Also riesige LED 7 Segmentanzeigen. Eine Ziffer sollte mind. 300mm hoch sein.

Ich bräuchte pro Bahn (2x) 5 Segmente (999 Sekunden, 99 Nachkomma). Die Segmentanzeigen würde ich über LED Bänder selber machen (CNC Fräse, großer 3D Drucker, alles vorhanden). Mechanisches fertigen, LED Bänder löten usw. ist kein Problem. Ich möchte auch was haben, was in 10 Jahren noch funktioniert, daher der Lösungsansatz mit Arduino und nix von dubiosen China Händlern.

Jetzt die Frage. Gibt es einen halbwegs einfachen Weg von Excel über ein Arduino die Dinger zum leuchten bringen? Sprich: Ich will über Excel die Zeit z. B. 123,44 Sekunden über ein VBA Script versenden, die Zeitanzeige soll das dann anzeigen.

Meine Kenntnisse: Ich habe mehrere Marlin 3D Drucker und kann Code (halbwegs) lesen, minimale Änderungen durch führen und auch installieren auf einem Board. Programmieren kann ich nicht.

Excel VBA geht da schon deutlich besser. Da kann ich das auch Programmieren (einfaches bis mittleres Niveau)

Kann man das realisieren? Oder gibt es (evtl. auch ausserhalb der Arduino Welt) andere Lösungsansätze?

Schau dir mal Ein Schiedsrichtertisch für Tischtennis mit 74HC595 und 74HC165 an. Da wurden große Anzeigen auch selbst gebaut.

Oder

1 Like

Ob man in VBA serielle Schnittstellen ansprechen kann, weiß ich nicht, in VB geht es.
Das müsstest Du klären.

Gruß Tommy

Ups, das ging schnell.

@wwerner
Die Anzeige geht in die Richtung. Meine Kenntnisse genügen bei weitem nicht um das um zu stricken.

Das mit dem TM1637 ist da ein besserer Weg, vor allem der Schluss-Eintrag.

Grundsätzlich suche ich eine Art Anleitung, damit ich das nachbauen kann. So was hab ich bisher noch nicht gefunden. Wenn es da nichts gibt, kann ich es aufgrund meiner begrenzten Kenntnisse nicht verwirklichen.

"Einfach" ist relativ. VBA kenne ich nicht und wäre daher sau schwer für mich, irgendwas am Arduino zum Leuchten bringen machbar. Beispielsweise habe ich LED-Bänder (WS2815) in einer Uhr verbaut. In der Sonne hing die noch nicht, aber selbst bei einer Taschenlampe kann man die sonst gut ablesbare Zeit nicht mehr erkennen:

Siehe Anleitung: JumboUhr mit Noiasca_NeopixelDisplay, WS2815 und ESP32

Anstelle der Uhrzeit könnte man Daten von der seriellen Schnittstelle einlesen, bräuchte nur ein paar Ziffern mehr.

Ich hoffe, mit Hilfe der Beispiele kannst Du die Schwierigkeit besser einschätzen :slightly_smiling_face:

Was mir noch einfällt: Die klappende Anzeige benötigt nur Strom zum Klappen, eine leuchtende Anzeige die gesamte Veranstaltung lang Energie. Anstelle einer schweren Anzeige schleppst Du eventuell schwere Akkus :zany_face:

Eigentlich benötigst Du nur einfarbige Anzeigen, aber WS2812/WS2815 und dergleichen benötigen nur einen Pin am Arduino, weil diese Pixel ein IC eingebaut haben. Funktioniert grundsätzlich wie ein Schieberegister.

Anstelle der LED-Streifen gibt es auch einzelne RGB-LEDs mit IC (WS2811). Die Angebotsbeschreibung von Pollin ist gruselig, Korrekturen:

  • vermutlich WS2811 (die Platine zwischen Draht und LED)
  • Betriebsspannung 5 V
  • Strom 20 mA je Farbe, also 60 mA je RGB-LED bei Weiß

Diese LED gibt es in 5, 8 und 12 mm, steht leider nicht dabei.

1 Like

Ich bin mir nicht sicher, ob Du den Weg von Excel zum arduino schon betrachtet hast.
Je nach Sach- oder Kenntnisstand hilft das hier vielleicht.
Heißt, Du schiebst die relevanten Werte entweder per Timer zyklisch oder auch bei einem Excel-Event (z.B. Worksheet-Change) über den Comport zum arduino, der liest die Daten ein und zaubert sie auf der Anzeige. Sind ja eh nur ne handvoll Daten, ist unkritisch.
Und wenn die Entfernung PC <> arduino groooooß ist, dann noch nen RS485 Wandler oder ähnliches dazwischen.

1 Like

Die mechanischen und elektrischen Fragen für die Anzeigen kommen erst dann, wenn klar ist, wie der Arduino an die Daten kommt.

Wie kommen die denn in den ExcelSheet?

Gäbe es eine Möglichkeit direkt an der Logo etwas abzugreifen?
Ob dauerhaft senden oder auf Anforderung ist erstmal egal.

Das kann auch eine Gemeinschaftsarbeit werden.

Der Code ist schon so ausgelegt, dass da noch gaaanz viele Player mitmachen könnten....
Das anpassen auf eine andere Anzeige ist das geringste Problem.

könnte sein schau mal

Bezüglich der Anforderung an die Zifferngröße wollte ich auch noch etwas dazu beitragen:
7 Segment Ziffer, groß

Das geht zwar bei 5 Ziffern und dann noch x2 bestimmt zu sehr ins Geld, aber man könnte sich ja die einzelnen Segmente auch selbst fräsen/3D-Drucken und dann mit ordentlich hellen LEDs bestücken..

1 Like

Ist mir zu vage.
Denn da war och mit meinem ursprünglichen Gedankengang.
Wenn die Logo da was sendet, hätte ich den Arduino als "Man in the Middle" gesetzt und gut wärs.

Das Ganze mit einen ESP aufgesetzt und schon bekommst noch einem Webterminal kostenlos dazu.

@derGeppi hat da schon ne gute mechanische Vorlage. In den nächsten Tagen ist bundesweit wieder Tag der offenen Maker- und Hackspaces.
Vielleicht könnte man damit mal irgendwo aufschlagen.
Hier ums Eck lasern die Sperrholz:-)

Wäre aber auch nicht wirklich ein Problem.

Man kann ja in VB via INTEROP auf die Excel-Tabelle zugreifen.

Das mache ich dauernd.

Wobei ich allerdings dazu tendiere, die Daten in einer DB via VB zu erfassen und dann auf Klick einfach in eine Excel-Tabelle auszugeben.

Der Rest ist auch einfach machbar. Man schickt via Serial-Port Daten an den Arduino und der muss die halt verarbeiten.

Gruß

Pucki

ps.: Ich hasse VBA.

Die Daten sind ja in der Logo vorhanden. Dort gibt es ein Add-On, wo ich dann via Netzwerk direkt auf die Logo / Speicher zu greifen kann. Dann hab ich das in Excel. Dort werden die Zahlen geprüft und frei gegeben zur Anzeige (und Auswertung). Daher sollte Excel die Basis sein.

Was man hierbei beachten sollte. Es muss eine Lösung sein, dass wenn was kaputt geht auch noch in 10 Jahren (Windows 15??) funktionieren soll. Daher tendiere ich eher für eine Netzwerk / Datenbank Lösung statt RS485. Wer weiss was sich Microsoft da alles einfallen lässt....

Das finde ich richtig toll :+1:

Zu VC20 Zeiten konnte ich das Basic. VBA ist halt nicht weit davon weg und ich brauch's immer wieder mal auf der Arbeit.

Dann soll es so sein.
Sag einfach nur, was Deine Vorgaben sind.
Irgendwas findet sich da schon.

AAAHH
Na dann ist doch meine Geschichte mit Man in the Middle ganz nah dran.
Zumal Du damit zwei Fliegen erschlägst:

  • Exportmöglichkeit auf FRAM, Datenbank, SD-Karte oder what ever (Der ESP hat ein eigenes Dateisystem :index_pointing_up:)
  • Unabhängigkeit von Windows

Also Mechanik ist genau mein Ding. Ich baue Seifenkisten aus Carbon, gehe in den viruellen Windkanal, habe mehere 3D Drucker, CNC Fräse, komplettes CAD Studio usw. Also egal was da kommt (mechanisch) das ist bei mir nur ne Fingerübung. Kritischer wird's bei der gesamten Elektrik.

Für irgendwas müssen wir ja auch noch da sein :grin:

Also alles nicht so schlimm.

Unter VB geht das so.

Nur einige Code-Zeilen.

Imports Microsoft.Office.Interop.Excel.XlApplicationInternational

Public excel As New Microsoft.Office.Interop.Excel.Application

Sub einlesen()
excel.Workbooks.Open(grunddaten.prg_pfad_datei)
tabelle$ = "excel"
zeile = zeile + 1
akt_puk_nr = excel.Rows(zeile).cells(1).value

akt_puk_nr = akt_puk_nr + 1
excel.Rows(zeile).cells(1).value = akt_puk_nr

end sub

Und da VB wessentlich mächtiger ist, als VBA , allein schon durch seine einfache Fähigkeit ein DB anzubinden, wäre das eine prima Idee für den TO.

Falls er Fans von C hat, das Visual-Studio kann ja fast alles. :wink: Und der Code da oben, ist kinderleicht in C umzuwandeln. Und das würde bis auf die Elektronik alles lösen.
Und wie man das baut, sieht er im Link bei Post #2

In VB muss er nur an den Com-Port die passenden Daten senden. Was auch sehr leicht ist, für jemand mit mittleren Programmierkentnissen. Ich schätze Je nach Datenmenge so ca. 20 Zeilen Code in einer Sub.

Gruß

Pucki

Das weiß ich auch nicht, aber RS485 bringe ich nicht in Verbindung mit Microsoft. Diese Schnittstelle gibt es schon seit mehreren Jahrzehnten und wird es auch noch in zehn Jahren geben. Es geht nur darum, Daten wie bei RS232 mit Differenzsignalen über längere Strecken zu übertragen.

Auch das ist nicht wirklich ein Problem.

Ich habe man aus Testzwecken(wollte wissen ob ich das hin bekomme) 2 Nanos via 433 Mhz. verbunden. Der eine Nano steckte zusätzlich im USB-Port meines PC.
Dann habe ich via VB ein Text getippt und gesendet. Der Text ging via Serial an NANO 1 und von dort via 433 Mhz an Nano 2 und wurde auf den Display an Nano-2 angezeigt.

Wie gesagt : Nur eine Spielerei.

Aber der TO kann es genau so machen. Er schickt Daten an einen MC am USB-Port und dann via Funkstrecke an einen 2 MC der an der Anzeige angeklemmt ist.

Allerdings würde ich von den 433 Mhz Netz eher abraten. Eine gute Idee wäre es, den Nano gegen ein ESP32 auszutauschen und dann die Übertragung via Wlan zu machen.
Das ist wenigstes nicht so störanfällig wie 433 Mhz.

Gruß

Pucki

1 Like

Du hast noch nicht beschrieben wie deine Zeitdaten von der "Siemens Logo" in dein "Excel" kommen oder wo dein Excel läuft.

Mir sind das zu viele (unbekannte) Übergänge

  • Siemens Logo --> via ???
  • zu Excel --> via ???
  • Arduino --> via ???
  • Noch zu bauendes Display

Zwei zusätzliche Vorschläge:

Vorschlag A)

  • Im einfachsten Fall - warum nicht von der Siemens Logo auf ein Display?

Vorschlag B)

  • Von der Siemens Logo auf den Excel-PC (?)
  • Am Excel-PC ein herkömliches Zweites Display (großer Monitor....) und vom PC darstellen lassen?