Herbert P. schrieb: >> Es ist Acht Uhr einunddreißig... > > Es wird selbstverständlich auch diese Variante geben. Aber nicht nur.... wie denn nun SS oder ß in der Großschrift? SS als Doppelzeichen oder in einem Fenster? Herbert P. schrieb: > @Joachim: Mail ist angekommen, danke! wow Frank M. schrieb: > Ich würde die 24-Stunden-Notation nicht unbedingt bärbeissig > durchsetzen, so spricht kein Mensch. sehe ich mittlerweile auch so mein Favorit Minuten ausser 30 Stunden nur 12 morgens abends OK
Frank M. schrieb: > Es ist neun Uhr abends. > Ich würde die 24-Stunden-Notation nicht unbedingt bärbeissig > durchsetzen, so spricht kein Mensch. Also von der jüngeren Generation (6..18 Jahre) erlebe ich das anders. Mein Sohn fragt dann sogar: "Welche Zeit ist das in richtig?" Ich habe ihm schon mi 6 Jahren und immer wieder gesagt, er soll einfach 12 dazu zählen. Aber dazu ist er selbst jetzt mit 11 Jahren noch zu faul und fragt immer noch. Seine Mitschüler sprechen auch im 24h-Format.
:
Bearbeitet durch User
Torsten C. schrieb: > Also von der jüngeren Generation (6..18 Jahre) erlebe ich das anders. Okay, meinetwegen abends auch als Sprache "Digitalisch". ;-) Ich stelle die Uhr dann einfach auf 12-Stunden-Modus und bin fein raus :-)
Frank M. schrieb: > So wie die Standard-Zeitangabe spricht aber keine Sau. ;-) > > Ich denke da eher an die Uhrzeit-Angabe, die ich morgens im Radio höre. > Und das ist innerhalb NRW genau das, was ich oben tabellarisch > aufgeführt habe - und zwar der Rhein-Ruhr-Modus (R.R.), also: Bitte keine diesbezügliche Aufregung! Wenn Ihr Euch das Frontplattendesign genau angeschaut hättet, dann müsste eigentlich klar sein, dass damit SO GUT WIE ALLE GÄNGIGEN VERSIONEN - AUCH UNTER BERÜCKSICHTIGUNG REGIONALER BESONDERHEITEN - REALISIERBAR SIND: 12- oder 24-Stunden-Anzeige; Bei 12-Stunden-Anzeige Zusatzanzeige möglich: "(IN DER) NACHT(S)"; "(IN DER) FRÜH", "(AM) MORGEN(S)"; "(AM) VORMITTAG(S)", "MITTAG(S)"; "(AM) NACHMITTAG(S)"; "(AM) ABEND(S)" ES SIND SÄMTLICHE GÄNGIGEN VARIANTEN MÖGLICH!!! Stunden vor Minuten oder Minuten vor Stunden, beides in Kurz- oder Langform "ES IST ZWÖLF UHR DREIZEHN" "ES IST ZWÖLF UHR UND DREIZEHN MINUTEN" "ES IST VIERTEL NACH ZWÖLF" oder "ES IST VIERTEL EINS" "ES IST ZWÖLF UHR FÜNF UND ZWANZIG" oder "ES IST FÜNF VOR HALB EINS" oder "ES IST FÜNF MINUTEN VOR HALB EINS" "ES IST ZWÖLF UHR VIERZIG" oder "ES IST ZEHN NACH HALB EINS" "ES IST ZWÖLF UHR FÜNF UND VIERZIG" ODER "ES IST DREIVIERTEL ZWÖLF" oder "ES IST VIERTEL VOR EINS" ES IST ZWÖLF UHR ACHT UND VIERZIG" oder "ES IST ZWÖLF MINUTEN VOR EINS" oder "ES IST ZWÖLF MINUTEN VOR EIN UHR" oder "ES IST ZWÖLF MINUTEN AUF EINS" BITTE, BITTE, BITTE, DISKUTIERT DOCH NICHT UM DES KAISERS BART, WO ICH DOCH OHNEHIN SÄMTLICHE DENKBAREN MÖGLICHKEITEN UND KOMBINATIONEN VORGESEHEN HABE! Excel-Datei öffnen, Augen aufmachen und Denken einschalten, ob die persönlich gewünschten Anzeigeformen dabei sind. Wenn nicht, bitte PN an mich!
:
Bearbeitet durch User
@FRANK Ich habe den Text "FUNK" entfernt und durch "AUF" ersetzt. Somit ist die in manchen Regionen übliche Form "ES IST ZWÖLF MINUTEN AUF SECHS" ebenfalls möglich.
ZWISCHENBILANZ FRONTPLATTE: Es wird ein Design für 16x16 Matrix mit LED-Rasterabstand 20x20mm (für 2x 16x8 RGB-LED Array WS2812) und eines für 18x16 Matrix mit LED-Rasterabstand 16,66x20mm (für RGB LED-Strips WS2812 60LED/lfm) geben. Welche Version in Kleinserie (Acrylglas mit schwarzem Siebdruck samt Diffusor-Aufdruck) gefertigt wird, ist noch nicht entschieden, in jedem Fall betragen die Außenmasse der Frontplatte 450x450mm. Für Joachim, der eine 500x500mm große Frontplatte möchte, stelle ich gerne eine Vorlage (Design nach Wunsch) für Vinyl-Plotter zur Verfügung. Für die 16x16-Ausführung kommt die "Arial"-Schrift zur Anwendung, für die 18x6-Version (wegen der besseren Lesbarkeit bei geringerem horizontalen Buchstabenabstand) die Futura Light BT. Für Schriftschnitte in Holz oder Stahl mit CNC-Fräse bzw. Laserschnitt stelle ich gerne Frontplattenentwürfe mit Schablonenschriften ("Stencil"-Schriften mit Stegen) als svg-Vektordatei zur Verfügung. Derzeit bin ich dabei, den diesbezüglichen Markt zu sondieren und Angebote einzuholen. CONTROLLER: Derzeit stehen die zwei Controller AtMega1284P und STM32 in Diskussion. Da ich persönlich zwar ein wenig Ahnung von der Atmega-Familie (Arduino) habe, aber keinerlei Ahnung vom STM32, ziehe ich ganz eindeutig den Atmega Controller vor. Zumal ich mir sicher bin, dass die Atmega-Familie eine wesentlich größere Gemeinde anspricht als der andere, der Allgemeinheit wohl eher unbekannte Controller. Der Atmega1284 würde meines Erachtens über ausreichend Speicherkapazität und Ressourcen verfügen, und er ist bei Reichelt ab Lager um etwas mehr als 5 € erhältlich. Damit ist für mich diese Entscheidung klar. BILDSCHIRMSCHONER: Die Idee, zu Testzwecken einen Bildschirmschoner zu kreiieren, wurde allgemein positiv aufgenommen, ist aber mittlerweile etwas untergangen. Wer kann und will sich damit beschäftigen? Ich möchte jedoch ersuchen, mit dem Software-Design noch ein, zwei Tage zu warten, bis ich meine Referenz-Tabellen fertig habe. Raster für die LEDs: bei einer größeren Stückzahl bietet sich an, das Raster für die LEDs aus MDF-Material fräsen zu lassen. Da jedoch derzeit noch nicht einmal feststeht, welche LEDs mit welchen Abständen letztendlich zum Einsatz kommen sollen, wird dieses Thema hintangereiht.
Herbert P. schrieb: > Bitte keine diesbezügliche Aufregung! Ich hab mich nicht aufgeregt ;-) > ES SIND SÄMTLICHE GÄNGIGEN VARIANTEN MÖGLICH!!! Das finde ich klasse :-) Vielen Dank, Frank
Herbert P. schrieb: > Somit ist die > in manchen Regionen übliche Form "ES IST ZWÖLF MINUTEN AUF SECHS" > ebenfalls möglich. Prima, gefällt mir.
Herbert P. schrieb: > Es wird ein Design für 16x16 Matrix mit LED-Rasterabstand 20x20mm (für > 2x 16x8 RGB-LED Array WS2812) und eines für 18x16 Matrix mit > LED-Rasterabstand 16,66x20mm (für RGB LED-Strips WS2812 60LED/lfm) > geben. Welche Version in Kleinserie (Acrylglas mit schwarzem Siebdruck > samt Diffusor-Aufdruck) gefertigt wird, ist noch nicht entschieden, Wir sollten uns auf eine Version konzentrieren. Das schafft auch Sicherheit und Entschlussvermögen unter denjenigen, die eine solche Uhr bauen möchten. > CONTROLLER: > > Derzeit stehen die zwei Controller AtMega1284P und STM32 in Diskussion. > Da ich persönlich zwar ein wenig Ahnung von der Atmega-Familie (Arduino) > habe, aber keinerlei Ahnung vom STM32, ziehe ich ganz eindeutig den > Atmega Controller vor. Zumal ich mir sicher bin, dass die Atmega-Familie > eine wesentlich größere Gemeinde anspricht als der andere, der > Allgemeinheit wohl eher unbekannte Controller. Das sehe ich anders. Obwohl die ATmegas auch diejnigen sind, mit denen ich seit vielen Jahren (hobbymäßig) arbeite und sie so ziemlich gut aus dem EffEff beherrsche, sehe ich da keine große Zukunft. Mit den STM32 beschäftige ich mich erst seit wenigen Tagen. Aber dank jeder Menge guter Tutorials habe ich schon fast alle meine AVR-Projekte auf STM32 portiert. Die STM32 sind auch überhaupt keine unbekannten Controller, sie werden mehr und mehr eingesetzt. Ich würde auch ungern die WS2812-Kommunikation mit einem ATmega machen, weil diese das geforderte Timing schlecht bis gar nicht einhalten können. Das läuft nur auf "gut Glück" und muss meist mit Assembler implementiert werden, damit man überhaupt noch eine Chance hat, etwas nebenbei (wie zum Beispiel IRMP laufen zu lassen. Bei STM32 ist dank DMA die WS2812-Ansteuerung ein Kinderspiel. Besorg Dir einfach mal bei Watterott (oder woanders) das STM32F4-Discovery. Du wirst von den Möglichkeiten begeistert sein. > Der Atmega1284 würde meines Erachtens über ausreichend Speicherkapazität > und Ressourcen verfügen, und er ist bei Reichelt ab Lager um etwas mehr > als 5 € erhältlich. Damit ist für mich diese Entscheidung klar. Siehe oben: WS2812-Ansteuerung mit ATmega ist ziemlicher Murks. Diesen Weg würde ich nur mit größter Abscheu mitgehen. Im Notfall würde ich da sogar einen Fork wagen. So kann man dann zwischen zwei Prozessor-Lösungen wählen... meinetwegen. Die Nachbauer, die überhaupt keinen Programmer haben (das sind ein Drittel) müssten sich erst einen besorgen oder sich einen ATmega flashen lassen (mache ich im Moment beim WC10x11-Projekt unentgeltlich, puh). Beim STM32F4Discovery brauchst Du das Kabel nur in den USB-Port zu stecken, das ST-Link-Programm runterladen und direkt das Hex-File flashen. Ich garantiere Dir auch: Mit der STM32-Version wird einiges mehr an Funktionalitäten möglich sein, d.h. diese Variante wird um einiges attraktiver. Und die Programmierung würde auch viel mehr Spaß bereiten ;-)
:
Bearbeitet durch Moderator
Frank M. schrieb: > weil diese das geforderte Timing schlecht bis > gar nicht einhalten können. Das läuft nur auf "gut Glück" und muss meist > mit Assembler implementiert werden, damit man überhaupt noch eine Chance > hat, etwas nebenbei (wie zum Beispiel IRMP laufen zu lassen. es läuft und zwar bei vielen und auch bei mir auch mit IRMP, wenn du sagst ich hatte Glück dann wird es auch anderen so gehen denke ich ;-) aber das ist eh ein Streit um Kaisers Bart, einzelne Probleme können immer bei jedem auftreten und da Frank M. schrieb: > WS2812-Ansteuerung mit ATmega ist ziemlicher Murks. Diesen > Weg würde ich nur mit größter Abscheu mitgehen. Im Notfall würde ich da > sogar einen Fork wagen. So kann man dann zwischen zwei > Prozessor-Lösungen wählen... meinetwegen. wir sowieso offensichtlich 2-gleisig fahren tuts auch nicht weh wenn einer Atmel AVR mag, der andere STM ARM
So, ich bin ab heute und in der nächsten Woche offline. Bitte nicht wundern, dass von mir nichts kommt. Wer möchte, kann mir per PM gerne schon mal mitteilen, ob er geneigt ist, an einer etwaigen Sammelbestellung der Frontplatten teilzunehmen. Es wäre nicht schlecht zu wissen, ob wir die ersten hundert zusammenbekommen.
Frank M. schrieb: > WS2812-Ansteuerung mit ATmega ist ziemlicher Murks. Diesen > Weg würde ich nur mit größter Abscheu mitgehen. Also ich nehme den STM32, da ich ihn für andere Projekte mit WS2812-Strips und Großbildschirm-Matrix-Kacheln eh benutze. Die SW-Module und Platinen mit den nötigen Steckern, Treibern usw. aus den anderen Projekten kann ich hier auch benutzen. Ich denke, wir müssen uns nicht mit Gewalt auf einen gemeinsamen Controller einigen. Es ist schon sehr gut, wenn wenigstens bei den Frontplatten eine "kritische Masse" zusammen kommt. Und der Codegenerator kann von mir aus wahlweise auch Code mit "PROGMEM" ausspucken. Da müssen mir die Atmel-User halt Input geben, welche Toolkette sie nehmen, siehe Beitrag "avr-gcc progmem immer noch?"
PS: Wenn sich das Bit-Timing für die WS2812 abhängig von der Optimierung (Compilerschalter) ändert ist das Murks! WS2812-Ansteuerung mit ATmega ist z.B. dann kein Murks, wenn man über SPI geht.
:
Bearbeitet durch User
CODE: das Erstellen der verschachtelten Tabellen für die Anzeige ist wegen der verschiedenen Versionen ziemlich zeitaufwändig. Es wird wohl mehrere Tage dauern, bis ich etwas liefern kann. Bis dahin ersuche ich jeden in seinem eigenen Interesse, nicht allzuviel mit diversen Tabellen herumzuprobieren bzw. zu programmieren. Es würde wohl nicht möglich sein, die dann mit einzubauen.
Torsten C. schrieb: > WS2812-Ansteuerung mit ATmega ist z.B. dann kein Murks, wenn man über > SPI geht. PS: Doof ist, dass man während der Übertragung alle Interrupts ausschalten muss. Arduino-Bibliotheken sind aus meiner Sicht ganz grauselig. Aber wenn sie jemand benutzt, wird er eh kaum welche mit Interrupts finden, daher wäre das auch egal. Herbert P. schrieb: > Bis dahin ersuche ich jeden Ist angekommen. Ich halte die Füße Still! BTW: Danke für die tolle "ZWISCHENBILANZ" (s.o.) :-)
Dankbar wäre ich, wenn mir jemand einen Vorschlag machen würde, mit welcher Syntax ich die Tabellen (Arrays) und Variablen (Parameter) zur Verfügung stellen soll.
Torsten C. schrieb: > WS2812-Ansteuerung mit ATmega ist z.B. dann kein Murks, wenn man über > SPI geht. und auch am Arduino wird es per bit banging mit Inline Assembler gemacht und wenn man noch während der Übertragung die Interrupts abschaltet stört weder die Optimierung noch IRMP :p und meine 117 LEDs brauchen 3ms nun lass doch 288 LEDs 9ms brauchen, so kurz kann keiner eine Fernbedienungstaste drücken und eine Blindheit von IRMP dürfte auch nicht stören. Herbert P. schrieb: > das Erstellen der verschachtelten Tabellen für die Anzeige ist wegen der > verschiedenen Versionen ziemlich zeitaufwändig. und auch da habe ich schon einen Link gezeigt wie es schnell und elegant gehen könnte: https://backes-markus.de/blog/2014/02/diy-rgb-strip-wordclock/ schau dir seine Lösung an, klappt 2 Tabellen, eine für die LEDs und eine für das Wortarray, so ganz durchblicke ich das nicht, aber es geht saufix, man braucht nur alle beteiligten Buchstaben zu setzen, als Macro oder als Unterroutine.
Joachim B. schrieb: > und auch da habe ich schon einen Link gezeigt wie es schnell und elegant > gehen könnte: > https://backes-markus.de/blog/2014/02/diy-rgb-strip-wordclock/ Sorry, aber das ist glaube ich nicht ganz das, was ich brauche. Ich mach' ja mehrere Tabellen für mehrere Versionen, die man per Konfiguration auswählen kann: Uhrzeit I ------------------------------------------ I I 12 Stunden 24 Stunden I I -------------------- --------------------- I I I I Stunden+Minuten Minuten+Stunden Stunden+Minuten Minuten+Stunden I I I I ----------- ----------- ----------- ---------- I I I I I I I I kurz lang kurz lang kurz lang kurz lang I I regional_1 I I I I I I I regional_2 I I I I I I I regional_3 I I I I I I I regional_4 I I I I I I I I I I I I I I I regional_n I I I I I ----------------------------------------------------------------------- I I I LED-Zuordnungstabelle (Position;Länge) I I I ----------------------------------------------------------------------- Stunden+Minuten kurz: "ZWEI UHR DREIUNDZWANZIG" Stunden+Minuten lang: "ZWEI UHR UND DREIUNDZWANZIG MINUTEN" Minuten+Stunden kurz: "ZWEI NACH SIEBEN" Minuten+Stunden regio: "VIERTEL/ HALB/ DREIVIERTEL SIEBEN" (div. regionale Versionen) Minuten+Stunden lang: "ZWEI MINUTEN NACH SIEBEN UHR" Die Regionalversionen kommen nur bei der 12-Stunden-Variante zum tragen, denn kein Mensch sagt "Viertel dreiundzwanzig Uhr" Außerdem sind bei der 12-Stunden-Version die Nachsätze ("AM"/"IN DER") "NACHT", "FRÜH" bzw. "MORGEN", "VORMITTAG", "MITTAG", "NACHMITTAG" und "ABEND" per Konfiguration zuschaltbar.
:
Bearbeitet durch User
Das Ganze funktioniert nach Art einer relationalen Datenbank, wobei mehrere ineinander verschachtelte und miteinander verknüpfte Tabellen zusammenarbeiten.
Herbert P. schrieb: > Sorry, aber das ist glaube ich nicht ganz das, was ich brauche. Ich > mach' ja mehrere Tabellen für mehrere Versionen, die man per > Konfiguration auswählen kann: dann kannst du nicht programmieren oder verstehst es nicht ich kann ja je nach Auswahl verschiedene Worttabellen erstellen und nehme die die meine Auswahl ist.... deutsch_uhr setze LED 1, 2, 3 english_clock setze LED 12, 20, 33 zeige LED
:
Bearbeitet durch User
davor noch ne Verzeigung wegen Sprache setzen ist ja kein Problem schnipsel
1 | if(selectedLanguageMode == RHEIN_RUHR_MODE) { |
2 | pushZWANZIG(); |
3 | pushVOR(); |
4 | } else if(selectedLanguageMode == WESSI_MODE) { |
5 | pushZEHN1(); |
6 | pushNACH(); |
7 | pushHALB(); |
8 | |
9 | //-----------------------------------------------------------
|
10 | //show minutes
|
11 | if(minutes >= 5 && minutes < 10) { |
12 | pushFUENF1(); |
13 | pushNACH(); |
14 | } else if(minutes >= 10 && minutes < 15) { |
15 | pushZEHN1(); |
16 | pushNACH(); |
17 | //-----------------------------------------------------------
|
18 | case 3: |
19 | pushONE(); |
20 | pushTWO(); |
21 | pushTHREE(); |
22 | |
23 | //-----------------------------------------------------------
|
24 | |
25 | //show uhr
|
26 | if(minutes < 5) { |
27 | pushUHR(); |
28 | }
|
die Ziffern sind die LED Nummer:
1 | void pushVIERTEL() { |
2 | pushToStrip(47); |
3 | pushToStrip(52); |
4 | pushToStrip(67); |
5 | pushToStrip(72); |
6 | pushToStrip(87); |
7 | pushToStrip(92); |
8 | pushToStrip(107); |
9 | }
|
:
Bearbeitet durch User
Hallo, ich klinke mich hier mal ein da mehrfach der Vorschlag kam mit dem Wordclock-Screensaver die Wortuhr zu simulieren. Als Autor des Wordclock-Screensavers habe ich ein kleines Simulationsprogramm für die 18x16 Wortuhr geschrieben. Bitte die Zip-Datei entpacken und entweder die Exe zum Konfigurieren (nur die Farbe im Moment) oder das Cmd-File zum Starten der Exe nehmen. Bedienung: Mit den Cursortasten links/rechts ein Wort auswählen (blinkt) und mit Leertaste dieses aktiv oder inaktiv setzen. Cursor kann über alle möglichen Worte verschoben werden und am Ende unsichtbar sein. Beenden mit Mausbewegung oder ESCAPE-Taste. In der Excel-Datei von Herbert P. sind mir ein paar Fehler aufgefallen, im Anhang korrigiert und gelb hinterlegt. - Frontplatte Sheet letzten zwei Zeilen anders als Text Sheet (ich habe das Frontplatte Sheet korrigiert) - bei wenigen Wörtern Fehler in der Worttabellen-Matrix ;-) Wäre schön wenn es hilft. Checksum d7bbd29bae5df129f995f990a5c50f84dc0b1e96 wordclock2.exe
Hans H. schrieb: > In der Excel-Datei von Herbert P. sind mir ein paar Fehler aufgefallen, > im Anhang korrigiert und gelb hinterlegt. > - Frontplatte Sheet letzten zwei Zeilen anders als Text Sheet > (ich habe das Frontplatte Sheet korrigiert) > - bei wenigen Wörtern Fehler in der Worttabellen-Matrix ;-) > > Wäre schön wenn es hilft. > > Checksum d7bbd29bae5df129f995f990a5c50f84dc0b1e96 wordclock2.exe Herzlichen Dank schon einmal!
@Joachim Ich würde es bevorzugen, mit Konfigurations- und Referenztabellen außerhalb des Programmcodes zu arbeiten. Das erfordert zwar etwas mehr Speicherplatz und auch mehr Initialaufwand, erleichtert aber später die Datenpflege wesentlich.
@Hans: wirklich nett, Dein Screensaver :-)
Herbert P. schrieb: > @Joachim > Ich würde es bevorzugen, mit Konfigurations- und Referenztabellen > außerhalb des Programmcodes zu arbeiten. Sorry, ich komme von der Datenbank-Entwicklung und bin es gewohnt, Programmablauf und Daten strikt zu trennen. Hat sich im Nachhinein immer als vorteilhaft erwiesen.
Herbert P. schrieb: > @Joachim > Ich würde es bevorzugen, mit Konfigurations- und Referenztabellen > außerhalb des Programmcodes zu arbeiten. ich verstehe grad nicht was du meinst logisch können die Tabellen sonst wo sitzen, nur eines ist klar, sie müssen im Programmcode sein sonst kann der User zur Laufzeit nie umschalten. Klar könnte das ausserhalb in #defines stecken, das verbraucht dann tatsächlich weniger Speicherplatz, aber dann müsste bei der Compilierung ja der Schalter gesetzt werden welche Sprachversion. Also klar im Programmcode (also das was in den Flash kommt), nur an welcher Stelle ist ja frei. Irgendwie musst du eine andere Sprache als ich sprechen :-)
:
Bearbeitet durch User
Joachim B. schrieb: > Irgendwie musst du eine andere Sprache als ich sprechen :-) Ich halte das durchaus für möglich, aber irgendwie werden wir uns schon verständigen können :-)
Herbert P. schrieb: > Ich halte das durchaus für möglich, aber irgendwie werden wir uns schon > verständigen können :-) bestimmt, ich denke du meinst ein Datensegment innerhalb der Programmierung
1 | static unsigned char backlight=7; |
2 | #define MAX_BL 10
|
3 | #define MIN_BL 0
|
4 | |
5 | prog_uchar pwmtable_16C[] PROGMEM = {0,2,3,4,6,8,11,16,23,32,45,64,90,128,181,255}; |
6 | |
7 | static int contra=70; |
8 | prog_uchar pwmtable_11C[] PROGMEM = {255,253,251,248,244,236,223,201,164,103,1}; |
es ist im Programm aber natürlich nicht im Ablauf
1 | void loop() |
2 | { unsigned char j; |
3 | char tmp_str[4]={0}; |
4 | |
5 | if(irmp_data.address==65280 && irmp_data.command==4 && led_hell>MIN_LEDHELL) |
6 | { myGLCD.printNumI(--led_hell,66,36,3,' '); Serial.print(F("led_hell=")); Serial.println(led_hell); |
7 | LEDS.setBrightness(pgm_read_byte(&pwmtable_16C[led_hell])); |
8 | if(prg==2) set_wb(); |
9 | } // if(irmp_data.address==65280 && irmp_data.command==4 && led_hell>MIN_LEDHELL) |
Hier einmal ein paar Mustertabellen in Excel und Access
An die Softwerkler: bitte die oben hochgeladenen Tabellen noch nicht einbauen, sie sind nur als Beispielmuster gedacht, unvollständig und zum Teil noch fehlerhaft. Heute oder morgen - spätestens Montag - werde ich die vervollständigten Tabellen (Beta-Version) hochladen.
Herbert P. schrieb: > Dankbar wäre ich, wenn mir jemand einen Vorschlag machen würde, mit > welcher Syntax ich die Tabellen (Arrays) und Variablen (Parameter) zur > Verfügung stellen soll. In der "Qlock_Pi_Worttabellen.accdb" vermisse ich die oberen Ebenen in Deiner Baum-Struktur: Uhrzeit, 12 Stunden / 24 Stunden, kurz/ lang, regional_1 / regional_n. Bevor das nicht da ist, kann ich keinen Vorschlag programmieren. Sollen die Ebenen denn auch noch in die .accdb? Dann brauche ich den Code-Generator ja gar nicht machen und warte einfach, bis die Ebenen von "Uhrzeit" bis "regional_n" auch in der .accdb sind. Im Code sollte m.E. alles drin sein, was mit einer Frontplatte möglich ist, um regional_n, kurz/lang usw. umschalten zu können. Für den der will, vielleicht auch automatisch im 15-Sekundentakt. Wer die Frontplatte wechselt, kann dann auch neu flashen.
:
Bearbeitet durch User
Herbert P. schrieb: > mit welcher Syntax ich die Tabellen (Arrays) und Variablen (Parameter) > zur Verfügung stellen soll. Meinst Du die Array-Initialisierung? Falls ja: Sind denn die Arrays so in Ordnung?
1 | #define N_Variante 16
|
2 | #define N_WORDS 56 // Nächstes Vielfaches von 8
|
3 | struct wordLED_Struct { |
4 | uint16_t firstIndex; |
5 | uint8_t count; |
6 | };
|
7 | wordLED_Struct word_array[N_WORDS]; // Start-und End-Index pro Wort, 3 Bytes pro Wort |
8 | uint16_t minute_array[N_Variante][60][N_WORDS/8]; // 840 Bytes pro Sprache |
9 | uint16_t hour_array[N_Variante][24][N_WORDS/8]; // 336 Bytes pro Sprache |
Speicherbedarf: Anzahl der Varianten / KBytes 1 1.3 2 2.5 3 3.6 4 4.8 5 5.9 6 7.1 7 8.2 8 9.4 9 10.5 10 11.6 11 12.8 12 13.9 13 15.1 14 16.2 15 17.4 16 18.5 Mit "Variante" kann man dann 16 Kombinationen aus 12/24 Stunden, kurz/lang und regional_1/_n aussuchen. Das kann man sicher noch weiter optimeren.
:
Bearbeitet durch User
Torsten C. schrieb: > Sollen die Ebenen denn auch noch in die .accdb? Dann brauche ich den > Code-Generator ja gar nicht machen und warte einfach, bis die Ebenen von > "Uhrzeit" bis "regional_n" auch in der .accdb sind. > > Im Code sollte m.E. alles drin sein, was mit einer Frontplatte möglich > ist, um regional_n, kurz/lang usw. umschalten zu können. Für den der > will, vielleicht auch automatisch im 15-Sekundentakt. Es wird auf oberster Ebene ein Auswahl-Tabelle tbl_mode für die Auswahl der Betriebsart geben: Anzeige "Minuten vor Stunden" oder Anzeige "Stunden vor Minuten" Auswahl "24-Stunden-Anzeige" oder "12-Stunden-Anzeige" bei 24-Stunden-Anzeige: nur Standard-Minutenanzeige 1 bis 59, kein Ossi-, Wessi-Mode - Auswahl Kurzform: "ES IST DREIZEHN UHR EINUNDZWANZIG" - Auswahl Langform: "ES IST DREIZEHN UHR UND EIN UND ZWANZIG MINUTEN" bei 12-Stunden-Anzeige: a) Standard Minutenanzeige 1 bis 59 b) Ossi-, Wessi-, XYZ-Modus (Viertel, Halb, Dreiviertel,...) 1) ohne Anzeige "NACHTS", MORGENS", "VORMITTAGS", MITTAGS", .... 2) mit Anzeige "NACHTS", MORGENS", "VORMITTAGS", MITTAGS", "NACHMITTAGS", "ABENDS" Die Tabellen für die Wortkombinationen tbl_hours und tbl_minutes werden jeweils eine Spalte mit der Angabe der Wortanzahl n enthalten, damit sie leicht per Schleife abgearbeitet werden können. Die Minutentabelle enthält eine Spalte "hour_offset", damit auch Zeitangaben "VOR ... UHR" einfach gehandhabt werden können (dabei wird der Offset +1 zur aktuellen Stunde addiert) Die Hierarchie sieht nach derzeitigem Stand so aus: tbl_modus tbl_hours, tbl_minutes tbl_words Alle Tabellen werden Bestandteil der Datenbank sein. Hoffe, damit sämtliche Klarheiten beseitigt zu haben ;-)
Herbert P. schrieb: > Alle Tabellen werden Bestandteil der Datenbank sein. > Hoffe, damit sämtliche Klarheiten beseitigt zu haben Perfekt. Das "wordLED_Struct word_array[N_WORDS];" kann ja immer gleich sein, also braucht man das nur einmal. Der Codegenerator braucht nun nur noch "Checkboxen", um die zu exportierenden Vaianten (N_Variante) auswählen zu können. Oder jede Variante kommt in ein separates Array:
1 | uint8_t minute_array_V1[60][N_WORDS/8]; // 420 Bytes pro Sprache |
2 | uint8_t hour_array_V1[24][N_WORDS/8]; // 168 Bytes pro Sprache |
3 | |
4 | uint8_t minute_array_V2[60][N_WORDS/8]; // 420 Bytes pro Sprache |
5 | uint8_t hour_array_V2[24][N_WORDS/8]; // 168 Bytes pro Sprache |
6 | |
7 | ...
|
8 | |
9 | uint8_t minute_array_Vn[60][N_WORDS/8]; // 420 Bytes pro Sprache |
10 | uint8_t hour_array_Vn[24][N_WORDS/8]; // 168 Bytes pro Sprache |
Dann muss der Code halt mit switch&case auswählen. Torsten C. schrieb: > Speicherbedarf: Anzahl der Varianten / KBytes > ... > 16 18.5 oops, ist ja viel weniger. Varianten-Anzahl / KBytes 1 0.7 2 1.3 3 1.9 4 2.5 5 3.0 6 3.6 7 4.2 8 4.8 9 5.3 10 5.9 11 6.5 12 7.1 13 7.6 14 8.2 15 8.8 16 9.4
:
Bearbeitet durch User
Torsten C. schrieb: > Torsten C. schrieb: >> Speicherbedarf: Anzahl der Varianten / KBytes >> ... >> 16 18.5 > > oops, ist ja viel weniger. Ist sicher wesentlich weniger. Außerdem bemühe ich mich, die Tabellen "sophisticated" anzulegen. Das Programm wird nicht viel Arbeit damit haben ;-)
Torsten C. schrieb: > Torsten C. schrieb: >> Speicherbedarf: Anzahl der Varianten / KBytes >> ... >> 16 18.5 > > oops, ist ja viel weniger. Ist sicher wesentlich weniger. Außerdem bemühe ich mich, die Tabellen "sophisticated" anzulegen. Das Programm wird nicht viel Arbeit damit haben ;-) Wieviel Speicherplatz steht für die Arrays ungefähr zur Verfügung?
Herbert P. schrieb:
> Wieviel Speicherplatz steht für die Arrays ungefähr zur Verfügung?
Im Flash braucht die SW sonst nicht viel Platz, falls nich noch ein
Webserver drauf soll. Das China-Modul hat mit 64KB Flash am wenigsten.
Bis zu 50 Kilobyte für Arrays wären OK, bei anderen auch mehr.
:
Bearbeitet durch User
Torsten C. schrieb: > Bis zu 50 Kilobyte für Arrays wären OK, bei anderen auch mehr. Ich hab die Tabellen in der Access Datenbank jetzt soweit fertig, leider ist der von ACCESS dafür belegte Speicherplatz kein maßstab. Es gibt eine übergeordnete Tabelle tbl_modes, mit der werden derzeit 14 Betriebsarten ausgewählt (betrifft nur die Zeitanzeigesteuerung!) Die Tabelle tbl_modes bezieht sich auf die beiden Tabellen tbl_hours und tbl_minutes, in welchen die Anzeigemodi festgelegt sind (Stunden vor Minuten vice versa, kurze/ lange Anzeigetexte, regionale Anzeigemodi). Es sind derzeit 14 Anzeigemodi definiert. Die Tabellen tbl_hours und tbl_minutes bilden dann ihrerseits die Referenz zu der Tabelle tbl_words, von wo die Positionen der anzeigetexte (LEDs) geliefert werden. Zur vereinfachten Abarbeitung verfügen sowohl die Tabelle tbl_hours als auch die Tabelle über je eine Spalte hour_wordcount bzw. minute_wordcount, welche die Anzahl der Wörter angeben, aus denen der jeweilige Anzeigestring besteht. Die Tabelle tbl_minutes enthält außerdem eine Spalte hour_offset. Die dient dazu, die Stunde um 1 zu erhöhen, wenn die Minutenanzeige von der nächsten vollen Stunde heruntergezählt wird (z.B. "ES IST HALB HH", ES IST MM MINUTEN VOR HH UHR"). Das Ganze ließe sich natürlich wesentlich komprimieren, ich habe jedoch voerst einmal die priorität auf die eine leichte Wartbarkeit und Nachvollziehbarkeit gelegt. Ich hoffe, ich habe nicht allzu viele Fehler eingebaut, und wünsche viel Spaß damit (bin neugierig, wieviel Speicher die Arrays belegen)!
Torsten C. schrieb: > Bis zu 50 Kilobyte für Arrays wären OK, bei anderen auch mehr. Ich hab die Tabellen in der Access Datenbank jetzt soweit fertig, leider ist der von ACCESS dafür belegte Speicherplatz kein maßstab. Es gibt eine übergeordnete Tabelle tbl_modes, mit der werden derzeit 14 Betriebsarten ausgewählt (betrifft nur die Zeitanzeigesteuerung!) Die Tabelle tbl_modes bezieht sich auf die beiden Tabellen tbl_hours und tbl_minutes, in welchen die Anzeigemodi festgelegt sind (Stunden vor Minuten vice versa, kurze/ lange Anzeigetexte, regionale Anzeigemodi). Es sind derzeit 14 Anzeigemodi definiert. Die Tabellen tbl_hours und tbl_minutes bilden dann ihrerseits die Referenz zu der Tabelle tbl_words, von wo die Positionen der anzeigetexte (LEDs) geliefert werden. Zur vereinfachten Abarbeitung verfügen sowohl die Tabelle tbl_hours als auch die Tabelle tbl_minutes über je eine Spalte hour_wordcount bzw. minute_wordcount, welche die Anzahl der Wörter angeben, aus denen der jeweilige Anzeigestring besteht. Die Tabelle tbl_minutes enthält außerdem eine Spalte hour_offset. Die dient dazu, die Stunde um 1 zu erhöhen, wenn die Minutenanzeige von der nächsten vollen Stunde heruntergezählt wird (z.B. "ES IST HALB HH", ES IST MM MINUTEN VOR HH UHR"). Das Ganze ließe sich natürlich wesentlich komprimieren, ich habe jedoch voerst einmal die priorität auf die eine leichte Wartbarkeit und Nachvollziehbarkeit gelegt. Ich hoffe, ich habe nicht allzu viele Fehler eingebaut, und wünsche viel Spaß damit (bin neugierig, wieviel Speicher die Arrays belegen)!
Für diejenigen, die über keine MS Access Datenbank verfügen, stelle ich hier einmal vorab die einzelnen Tabellen als Excel-Datei herein. Sie enthalten die Daten in der Form, wie sie im Flash-Memory gespeichert werden sollen (ohne die Kommentarspalten selbstverständlich), und sind so leider nicht ohne Weiteres lesbar. Die Hierarchie der Tabellen ist nach Art einer Baumstruktur aufgebaut. Höchstrangige Tabelle ist die Tabelle tbl_modes, sie enthält für derzeit 14 Anzeigeversionen die Referenzen zu den hierarchisch darunter angeordneten Tabellen tbl_hours und tbl_minutes: (Stunden vor Minuten oder Minuten vor Stunden, jeweils in 12- oder 24 Stunden-Betriebsart, kurze oder lange Version der Darstellung (mit oder ohne Text "UHR" und "MINUTEN"), bei 12-Stunden-Version mit oder ohne den Nachsatz "NACHT", "MORGENS", VORMITTAGS",...."ABENDS". Die kürzesten Anzeigemodi sind derzeit z.B. "ES IST DREI NACH ELF" bzw. "ES IST ELF UHR DREI", die längsten "ES IST DREI MINUTEN NACH ELF UHR" bzw. "ES IST ELF UHR UND DREI MINUTEN". Im 12-Stunden-Modus sind auch die verschiedenen regionale Modi für "VIERTEL NACH", "VIERTEL" (vor), "HALB", "DREIVIERTEL" etc. vorgesehen. Da bei dieser Betriebsart teilweise eine Referenzierung auf die nächste Stunde erfolgt, enthält die Minutentabelle eine Spalte "hour_offset". Normalerweise ist dort "0" eingetragen, lediglich bei den Anzeigeformen "Viertel" (vor"), ""HALB", "DREIVIERTEL" etc. beträgt der Offset "1", weil dabei Bezug auf die nächstfolgende Stunde genommen wird, und ist der aus der Uhrensteuerung ausgelesenen Stunde dazuzuzählen. Sowohl die Stunden-Tabelle tbl_hours als auch die Minuten-Tabelle tbl_minutes enthalten Verweise auf die Tabelle tbl_words, welche ihrerseits die Referenzen für die jeweils anzuzeigenden Textstrings für die einzelen Wörter bzw. Silben der Textanzeige enthält. DIe Tabelle txt_words enthält derzeit die Referenzen für die 18 x 16 WordCLock-Frontplattenaufteilung in zwei verschiedenen Formen: Für die Ansteuerung von LED-Streifen mit Schieberegistern enthält die Tabelle tbl_words die Spalte "shift", bei welcher entsprechend der seriellen Einspeisung der Daten über Schieberegister der Wortanfang der einzelnen Wörter und ihre Länge in der Form (start,length) fortlaufend von 1 bis 288 angegeben ist. Eine zweite Spalte "matrix" der Tabelle tbl_words ist für Matrix-Ansteuerung gedacht. Sie enthält die absolute Position der Wörter in einer 18 x 16 Matrix in der Form (row;column,lenght). Auf diese Weise ist, was die Hardware der Anzeige anbetrifft, eine größtmögliche Flexibilität gewährleistet. Da die "Intelligenz" der Anzeige ausschließlich über Tabellen (Arrays) realisiert wird, ist sie jederzeit leich änderbar und erweiterbar. Auch fremdsprachliche Versionen sind auf dieser Basis relativ einfach und zeitsparend realisierbar. Für jene, die keine 18 x 16 Matrix, sondern die ursprüngliche Version einer 16 x 16 Matrix bevorzugen, werde ich in den kommenden Tagen (Wochen) eine für diese Anzeigeform angepasste Tabellenversion vorstellen. Ich hoffe, damit einen konstruktiven beitrag zum Gelingen dieses Projekts beigetragen zu haben, und freue mich über Eückmeldungen und konstruktive Kritik.
:
Bearbeitet durch User
Sorry, bei der Tabelle tbl_hours.xlsx habe ich irrtümlich die Tabelle mit den Texten anstatt mit den Referenzen hochgeladen, was ich hiermit korrigiere.
Wie sind denn die Spalten minute_ix_0, minute_ix_1, …, minute_ix_8, hour_ix_0, …, hour_ix_6 entstanden? http://de.wikipedia.org/wiki/Normalisierung_%28Datenbank%29 Hast Du da 'ne Kreuztabellenabfrage gemacht? Falls die Spalten auch normalisiert vorliegen, wäre das einfacher, denn ich würde die Spalten sonst erstmal zu einer einzelnen Spalte zusammenfassen. Die Reihenfolge ist ja egal, da alle LEDs gleichzeitig an gehen, also keine Reihenfolge mehr haben. Ist die letzte "Buchstabenmatrix" noch aktuell? Wenn ich die aus der Datenbank ermitteln wollte, müsste ich allein dafür erstmal ein Programm schreiben, um die Buchstaben.Positionen aus tbl_words.matrix zusammen zu setzen. A propos tbl_words.matrix: Statt die Daten aus "(1;11;4)" zu parsen, wären einzelne Spalten "Spaltenindex" und "Lauflänge" einfacher zu verarbeiten. Die Zeile ist ja schon in einer separaten Spalte. :-)
:
Bearbeitet durch User
Ich bin soeben auf einen logischen Fehler bei der Tabelle tbl_words draufgekommen: bei der "Serpentinen-Ansteuerung" der LED-Stripes muss bei jeder zweiten Zeile der Indexzeiger nicht auf den Wortanfang, sondern auf das Wortende zeigen. Ich werde eine korrigierte Tabelle im Lauf des heutigen Tages hochladen.
Herbert P. schrieb: > bei der "Serpentinen-Ansteuerung" der LED-Stripes muss bei jeder zweiten > Zeile der Indexzeiger nicht auf den Wortanfang, sondern auf das Wortende > zeigen. http://www.spreadshirt.de/das-kannste-schon-so-machen-aber-dann-isses-halt-C4408A22229116 Je nach HW-Implementierung ist das ja auch wieder anders. Das kann doch der Code-Generator machen.
Torsten C. schrieb: > Wie sind denn die Spalten minute_ix_0, minute_ix_1, …, minute_ix_8, > hour_ix_0, …, hour_ix_6 entstanden? Keine Kreuztabellenabfrage. In jedem Anzeigemodus repräsentiert: jeder Record der Tabelle tbl_hours genau eine Stunde aus 24 Stunden; jeder Record der Tabelle tbl_minutes genau eine Minute aus 60 Minuten. Die Indizes hour_ix_n und minute_ix_n nehmen Bezug auf die Indizes der zu Grunde liegenden Tabelle tbl_words. z.B. Darstellung der Uhrzeit "6:20" tbl_hours: hour_ix_0 hour_ix_1 hour_ix_2 hour_ix_3 1 = "ES" 2="IST" 17="SECHS" 43="UHR" tbl_minutes: minute_ix_0 minute_ix_1 minute_ix_2 46 = "UND" 67 = "ZWANZIG" 76 = "MINUTEN" Zusammengesetzt ergibt das die Anzeige: tbl_hours tbl_minutes ---------------- ------------------- 1 2 17 43 46 67 76 ES IST SECHS UHR UND ZWANZIG MINUTEN Die Auswahl, welcher Anzeigemodus der Stundenanzeige (kurz/lang; 12/24 Stunden) mit welchem Anzeigemodus der Minutenanzeige (kurz/lang; Standard/ regional,...) kombiniert wird, übernimmt die Tabelle tbl_modes je nach ausgewählter Betriebsart.. Auch die Auswahl, ob die Stunde der Minute vorangestellt wird, oder umgekehrt die Minute der Stunde ("ES IST ZWÖLF UHR UND ZEHN MINUTEN" bzw. "ES IST ZEHN MINUTEN NACH ZWÖLF") erfolgt über die Auswahltabelle tbl_modes. Nach Korrektur der Indexfehler in der Tabelle tbl_words werde ich die Access-Datei noch einmal hochladen. Sie wird dann auch eine Auswahlabfrage enthalten, aus der (hoffentlich) klar ersichtlich ist, wie es gedacht ist, dass das Werkel funktionieren soll. Normalisierung: Selbstverständlich unterscheiden sich bei etlichen Betriebsarten die Anzeigen nur teilweise und geringfügig voneinander. Aber aus Gründen der besseren Übersichtlichkeit habe ich es vorerst dabei belassen. Die dabei auftretenden Redundanzen sind also der besseren Lesbarkeit wegen mit Absicht in Kauf genommen, um einmal einen ersten Eindruck zu vermitteln.
Torsten C. schrieb: > Je nach HW-Implementierung ist das ja auch wieder anders. Das kann doch > der Code-Generator machen. Soll mir recht sein, dann lassen wirs so wie es ist.
Herbert P. schrieb: > Aber aus Gründen der > besseren Übersichtlichkeit habe ich es vorerst dabei belassen. Das ist ja fürs menschliche Auge auch OK, aber für eine For-Next-Schleife ist das saublöd. Zumal Du das normalisierte Format bereits vorliegen hast und man für den Codegenerator oder den Screensaver Deine Kreuztabellen-Abfrage wieder "rückwärts" rechnen muss, damit alles in eine Spalte kommt. Und wie gesagt, Details siehe oben: > Ist die letzte "Buchstabenmatrix" noch aktuell? > Statt die Daten z.B. aus "(1;11;4)" zu parsen, wären einzelne Spalten > "Spaltenindex" und "Lauflänge" einfacher zu verarbeiten.
:
Bearbeitet durch User
Torsten C. schrieb: > und man für den Codegenerator oder den > Screensaver Deine Kreuztabellen-Abfrage wieder "rückwärts" rechnen muss, > damit alles in eine Spalte kommt. Sind keine Kreuztabellenabfragen. Es sind lediglich in den Tabellen selbst die ....ix_n Felder als Feldtyp "Nachschlagefeld" definiert, die Tabellenfelder enhalten jedoch nur Indizes als Integer (Byte würde auch genügen, sollte man eigentlich ändern). Wenn man den Feldtyp der ..ix_n Tabellenfelder auf "Textfeld" ändert, dann werden ganz normal die Indizes als Integer angezeigt. Oder reden wir aneinander vorbei? Soll ja auch schon vorgekommen sein...;-)
Torsten C. schrieb: > Ist die letzte "Buchstabenmatrix" noch aktuell? Wenn ich die aus der > Datenbank ermitteln wollte, müsste ich allein dafür erstmal ein Programm > schreiben, um die Buchstaben.Positionen aus tbl_words.matrix zusammen zu > setzen. > > A propos tbl_words.matrix: Statt die Daten aus "(1;11;4)" zu parsen, > wären einzelne Spalten "Spaltenindex" und "Lauflänge" einfacher zu > verarbeiten. Die Zeile ist ja schon in einer separaten Spalte. :-) Ich schick noch heute nachmittag die geänderten Tabellen und den aktuellen Letztstand der Buchstabenmatrix hoch.
Herbert P. schrieb: > Keine Kreuztabellenabfrage. Herbert P. schrieb: > Oder reden wir aneinander vorbei? Ich habe nicht ordentlich gelesen. Meine Schuld, sorry. Unnötig Tipperei auf Deiner und meiner Seite. Dann muss das nächste Tool in der Toolkette sich die "einzuschaltenden Wörter" halt aus mehreren Spalten zusammen suchen. Dann lass es ruhig auch so, sonst wäre die Arbeit für die Tonne. Soll ich "(1;11;4)" parsen? Oder kommen die zwei letzten Spalten auch noch separat? Herbert P. schrieb: > aktuellen Letztstand der Buchstabenmatrix Danke. Die Vorgehensweise macht aber nur Sinn, wenn die Buchstabenmatrix immer passend zusammen mit der Datenbank veröffentlicht wird, damit die zusammen passen. Ansonsten könnte man die Buchstabenmatrix besser aus der Datenbank holen, falls die da auch direkt drin ist (ohne aufwendige Auswertung von tbl_words).
:
Bearbeitet durch User
So, hab' Alles auf Letztstand gebracht: die zip-Datei enthält die Exceldatei WordClock24h.xlsx und die Access-Datenbank WordCLock24h.accdb. Für die Neugestaltung der Frontplatte als Grafik-Datei hat die Zeit nicht gereicht, aber zur Not kann man ja zum Testen die Frontplatte aus der Excel-Datei verwenden. Die Access-Datei enthält zusätzlich zu den Tabellen tbl_hours und tbl_minutes, in welchen bei den ...ix_n-Feldern die Klartexte als Nachschlagefelder hinterlegt sind, die inhaltlich identischen Dateien tbl_hours_plain und tbl_minutes_plain ohne Nachschlagefelder, in denen also die Referenz-Indizes auf die Tabelle tbl_words sichtbar sind. Wo es möglich war, habe ich den Datentyp der Indizes auf "Byte" reduziert. Außerdem enthält die Datenbank ein Formular frm_Anzeigestrings, in welchem man am Formularkopf die verschiedenen Anzeigemodi auswählen kann und dann die dazugehörigen Anzeigestrings für 24 Stunden angezeigt werden. Leider ging das auf die Schnelle nur unter Verwendung von Kombinationsfeldern, was die Lesbarkeit ein wenig behindert. Ich hoffe, damit einen Schritt in die richtige Richtung gemacht zu haben, LG Herbert
:
Bearbeitet durch User
Torsten C. schrieb: > Soll ich "(1;11;4)" parsen? Oder kommen die zwei letzten Spalten auch > noch separat? Ich habe jetzt alles in separaten Spalten angelegt.
Es gibt einen Fehler in den letzten beiden Zeilen: um "NACHMITTAGS" darzustellen, muss ich die beiden Zeilen vertauschen.
"mein Arduino" mit dem 1284p soll: http://forum.arduino.cc/index.php?topic=234895.0 We've sent the panel containing your boards to the fabricator. We expect to get them back around November 29th. nebenbei versuche ich ein Muster mit DIL40 aufzubauen.
Herbert P. schrieb: > Ich habe jetzt alles in separaten Spalten angelegt. Da stimmt was nicht:
1 | word_ix text row column length abs_start_position abs_snake_position |
2 | 47 DREI** 8 0 4 145 145 |
3 | 48 VIER** 8 0 4 149 149 |
4 | 49 VIERTEL* 8 4 7 149 149 |
Bei word_ix 48 muss sicher 'ne vier in Spalte "column" stehen:
1 | 48 VIER** 8 ((4)) 4 149 149 |
Mein Tool weigert sich beim Import.
:
Bearbeitet durch User
Wie schon erwähnt sind noch ein paar kleine Fehler in den Wortindizes. @Herbert P.: Habe die letzten beiden Zeilen vertauscht, aber auch Nach(ts) nach vorne gezogen und die letzte Zeile um zwei Buchstaben nach rechts, damit Nach mittag möglichst "fließend" zu lesen ist. Angehängt zwei Snapshots aus dem Wordclock2-Mockup, einmal mit großem ß und einmal mit ss. Mir gefällt die Version mit großem ß besser. Siehe auch: http://de.wikipedia.org/wiki/Gro%C3%9Fes_%C3%9F Auch angehängt meine Zeichentabelle und die Tabelle der Wortindizes. Dabei Zeilen mit **** markiert die ich korrigiert habe. Bei Interesse an den Exen kann ich die auch gerne hochladen. Edit: in wordtab.cpp natürlich nicht die Zeile {1,11,4}, // wp1_VIER, **** sondern die geändert {8,4,4}, // wp2_VIER, ****
:
Bearbeitet durch User
Torsten C. schrieb: > Bei word_ix 48 muss sicher 'ne vier in Spalte "column" stehen: Sorry, hab' ich korrigiert. Ich hab auch gleich die zwei letzten Zeilen vertauscht, damit ist jetzt auch eine Anzeige "NACH" "MITTAGS" möglich. Hans H. schrieb: > Edit: in wordtab.cpp natürlich nicht die Zeile > {1,11,4}, // wp1_VIER, **** > sondern die geändert > {8,4,4}, // wp2_VIER, **** Hab' ich korrigiert (siehe oben - Anmerkung von Torsten) WOW, sieht ja schon gut aus!
Hans H. schrieb: > Mir gefällt die Version mit großem ß besser. > Siehe auch: http://de.wikipedia.org/wiki/Gro%C3%9Fes_%C3%9F Ich zitiere aus dem genannten Wikipedia-Artikel: "Großschreibweise mit Ersetzung von ß durch SS Die heutigen Rechtschreibregeln schreiben vor, im Versalsatz das „ß“ durch „SS“ zu ersetzen („Weiß“ wird zu „WEISS“)."
Frage an alle, die sich schon mit den Tabellen zur Kodierung der Anzeige beschäftigt haben: gibt es bezüglich Parametrisierung, Wortauswahl/ Positionierung und Anzeigemöglichkeiten noch irgend welche Anregungen/ Wünsche/ Beschwerden? (bitte nur auf die zuletzt hochgeladene Version beziehen!) Erst wenn alles passt, mache ich mit Photoshop und CorelDraw die Druckvorlagen für die Frontplatte. @Jürgen: Deine 16x16 Version ist nicht vergessen, muss aber die Wörter noch einmal überprüfen und ggf. ergänzen.
:
Bearbeitet durch User
Herbert P. schrieb: > ... Anregungen/ Wünsche/ Beschwerden? > Erst wenn alles passt, mache ich mit Photoshop und CorelDraw die > Druckvorlagen für die Frontplatte. Ich wollte eigentlich erstmal 'ne Simulation (Mockup) im Zeitraffer machen, aber hatte erstmal "die Füße still" gehalten, daher dauert das noch etwas. Aber: Ich bin nicht so penibel. Zur Not nehme ich 'ne Platte, so wie sie ist. Aber Andere, die das enger sehen, bemerken Änderungswünsche vielleicht erst dann. Für meinen digitalen Bilderrahmen erzeuge ich mir Bitmaps, dann kann die Familie schon mal meckern, wenn denen das nicht gefällt. Herbert P. schrieb: > Die heutigen Rechtschreibregeln schreiben vor ... Mit Zitaten kommen wir nicht weiter. Ich zitiere den Duden: > Allerdings darf mündigen Bürgerinnen und Bürgern im Einzelfall getrost > die Entscheidung überlassen werden, ob sie das große Eszett etwa für > die Schreibung ihres Namens nutzen oder nicht. Über Geschmack lässt sich halt nicht streiten.
word_ix text row column length 55 EINS* 9 5 4
@Torsten: Danke für die Korrektur! Wenn ich mir die Mockup-Bildchen von Hans so anschaue, dann fällt mir auf, dass sich das Wort "UHR" eine Zeile höher in der Mitte - dort, wo jetzt das "AUF" steht - optisch wahrscheinlich besser machen würde. Ich denke, ich werde die beiden Wörter vertauschen.
bei 24 Stunden und NULL UHR ZWEI UND DREIßIG kann das NACHTS wohl entfallen? sonst wäre es ja 12:32.
:
Bearbeitet durch User
@Joachim: Ist nur ein Darstellungsbeispiel, keine konkrete Kodierung @Herbert: Bitte mal die Indizes auch für AUF anpassen, da ist in der letzten Excel-Tabelle noch ein Fehler {6,8,3}, // wp1_AUF, **** Warum hast du in der vorletzten Zeile das NACH(TS) nach vorne gerückt, sieht imho ab Spalte 1 besser aus? Viele Grüße,
Joachim B. schrieb: > bei 24 Stunden und NULL UHR ZWEI UND DREIßIG kann das NACHTS wohl > entfallen? Ja, kann entfallen. Wenn Du Dir die Tabelle tbl_modes anschaust, dann siehst Du, dass bei den 24-Stunden-Modi grundsätzlich keine Zusätze "NACHTS", "MORGENS"... etc. vorgesehen sind. Die von Dir zitierte Kombination ist aber nicht die einzige sinnentleerte, die theoretisch möglich wäre. Daher gibt es die Tabelle tbl_modes, über die die Auswahl der möglichen und sinnvollen Kombinationen erfolgt. Folgende Anzeigemodi sind derzeit vorgesehen: 1 - [EMPTY]- ES IST HH UHR (12) - MM 2 - [EMPTY]- ES IST HH UHR (24) - MM 3 - [EMPTY]- ES IST HH UHR (12) - UND MM MINUTEN 4 - [EMPTY]- ES IST HH UHR (24) - UND MM MINUTEN 5 - ES IST MM NACH - HH (12) 6 - ES IST MM MINUTEN NACH - HH (12) 7 - ES IST MM MINUTEN NACH - HH UHR (12) 8 - ES IST MM MINUTEN NACH - HH UHR (12) NACHTS 9 - ES IST MM (VIERTEL NACH, HALB, VIERTEL) - HH (12) 10 - ES IST MM MINUTEN NACH (VIERTEL NACH, HALB, VIERTEL) - HH UHR (12) 11 - ES IST MM MINUTEN NACH (VIERTEL NACH, HALB, VIERTEL) - HH UHR (12) NACHTS 12 - ES IST MM (VIERTEL NACH, HALB, DREIVIERTEL) HH (12) 13 - ES IST MM MINUTEN NACH (VIERTEL NACH, HALB, DREIVIERTEL) HH UHR (12) 14 - ES IST MM MINUTEN NACH (VIERTEL NACH, HALB, DREIVIERTEL) HH UHR (12) NACHTS [EMPTY] bedeutet, dass die entsprechenden Spalten in der Tabelle tbl_modes leer sind und von der Software übersprungen werden müssen, da die Anzeige mit der Stundenanzeige beginnt. Die Länge der abzuarbeitenden "Strings" ist bei jedem Datensatz als hour_wordcount bzw. minute_wordcount explizit angegeben. Dabei sind die Referenz-Indizes für die "Strings" in den Tabellen tbl_hours und tbl_minutes festgehalten, die Tabelle tbl_modes tut nichts anderes, als jeweils eine Variante aus tbl_hours und eine dazu passende aus tbl_minutes miteinander zu verknüpfen. Da bei den verschiedenen Anzeigemodi die "Minuten-Strings" einmal vor den "Stunden-Strings", einmal danach plaziert sind, ist in der Tabelle tbl_modes der Index für die "Minuten-Strings" einmal vor dem Index für die "Stunden-Strings", einmal danach plaziert. Wenn Du über MS Access verfügst, kannst Du die derzeit möglichen Kombinationen mit dem Access-Formular frm_Anzeigestrings anschauen. Eine andere Möglichkeit der Visualisierung steht mir leider im Augenblick nicht zur Verfügung. Sollte jemand nicht über MS Access verfügen, kann ich die Tabellen gerne als Excel-Dateien hochladen. Leider ist es mir damit jedoch nicht möglich, die Tabellenbezüge miteinander zu verknüpfen - die Anzahl der möglichen Kombinationen würde die Kapazität von Excel sprengen. ***** Die Software braucht nichts Anderes zu tun, als jede Minute einmal in der Tabelle tbl_modes nachzuschauen, welcher Anzeigemodus eingestellt ist. Dann werden aus den Tabellen tbl_hours und tbl_minutes die dem Anzeigemodus und der Uhrzeit entsprechenden "String"- Repräsentanten (Byte) als Referenzen für die Tabelle tbl_words geholt, und letztendlich die referenzierten Inhalte aus der Tabelle tbl_words zu einem Bitstream zusammengesetzt und ausgegeben.
@Herbert Das AUF und UHR zu tauschen finde ich auch gut.
Hans H. schrieb: > Warum hast du in der vorletzten Zeile das NACH(TS) nach vorne gerückt, > sieht imho ab Spalte 1 besser aus? War ursprünglich auch meine Meinung. Aber: Man braucht das "NACH(TS)" auch für NACH MITTAGS Durch die neue Positionierung ergibt sich ein besserer Lesefluss für diese Kombination.
Hans H. schrieb: > @Herbert > Das AUF und UHR zu tauschen finde ich auch gut. Oki, dann machn ma das so :-) Übrigens wird das "AUF" bei den derzeitigen Anzeigeversionen (noch) nicht verwendet, es spricht aber nichts dagegen, auch einen Anzeigemodus mit der Variante "ES IST ZEHN MINUTEN AUF EINS" einzuführen (ich glaube, diese Form schon irgendwo einmal gehört zu haben). Zum Thema "VOR", "BIS", "AUF": Für Anzeigemodi, welche sich auf die nachfolgende Stunde beziehen, habe ich der Tabelle tbl_minutes eine Spalte "hour_offset" hinzugefügt. Die enthält normalerweise den Wert "0". Nur in jenen Fällen, in welchen Bezug auf die nächstfolgende Stunde genommen wird ("ES IST ZEHN MINUTEN VOR EINS"), enthält sie den Wert "1" und muss der aktuellen, aus der Uhr ausgelesenen Stunde hinzugezählt werden.
Herbert P. schrieb: > Eine > andere Möglichkeit der Visualisierung steht mir leider im Augenblick > nicht zur Verfügung. Arbeitet außer mir noch jemand dran? Hans H. schrieb: > Snapshots aus dem Wordclock2-Mockup Was ist das "Wordclock2-Mockup"? Wenn's schon was gibt, muss ich das Rad ja nicht neu erfinden. Ich bastel sonst weiter an einer SW (.exe für windows), um: - Ein Filmchen (.avi) im Zeitraffer zu erstellen (lade ich dann auf YouTube hoch) - Einzelbilder für einen digitalen Bilderrahmen zu erzeugen und - Den C-Code für ATMEGA (AVR) und STM32 (ARM) zu erzeugen Den Sourcecode davon (C# mit Visual Studio Express) kann ich gern bei GitHub veröffentlichen. Zu den ganzen ZIPs und XLSXen und ACCDBs: Ich schlage vor, die in den Wiki-Artikel zu hängen und immer mit neuen Versionen zu überschreiben. Dann hat man ohne Sucherei immer einen PermaLink auf die aktuellste Version.
:
Bearbeitet durch User
Torsten C. schrieb: > Was ist das "Wordclock2-Mockup"? Auf Basis meines Wordclock-Screensavers geschriebene Windows-Anwendung, die zur Zeit das Durchschalten der Wortkombinationen ermögicht, siehe mein Beitrag weiter oben. Wenn hier ein Stand erreicht ist, werde ich sicher auch wieder einen richtigen Screensaver daraus machen.
Aha, wordclock2.cmd und wordclock2.exe :-) Danke. Hans H. schrieb: > Durchschalten der Wortkombinationen ... > richtiger Screensaver Das klingt erstmal nicht wirklich nach Doppelarbeit. Oder?
:
Bearbeitet durch User
Torsten C. schrieb: > Arbeitet außer mir noch jemand dran? Das würde mich auch brennend interessieren - speziell, wer mit der Access-Datenbank was anfangen kann, und wer nicht (die dortigen Tabellen und Verknüpfungen sind nämlich der Pfiff an der ganzen Sache und die halbe Miete) - oder wie siehst Du das, Torsten? Torsten C. schrieb: > Zu den ganzen ZIPs und XLSXen und ACCDBs: Ich schlage vor, die in den > Wiki-Artikel zu hängen und immer mit neuen Versionen zu überschreiben. > Dann hat man ohne Sucherei immer einen PermaLink auf die aktuellste > Version. Halte ich für eine gute Idee! Ich habe mittlerweile die Anzeigemodi um die Version "ES IST MM MINUTEN AUF ..." erweitert. bei den speziellen regionalen Versionen bin ich auf Euren Input angewiesen, da ich nicht weiß, was bei Euch so üblich ist, z.B.: ES IST 1 ... 14 MINUTE(N) NACH HH ES IST VIERTEL HH+1 ES IST 16 ... 20 MINUTEN NACH HH ES IST 9 .... 1 MINUTE(N) AUF HALB HH+1 ES IST HALB HH+1 ES IST 1 ... 9 MINUTE(N) NACH HALB HH+1 ES IST 20 ... 16 MINUTEN AUF HH+1 ES IST VIERTEL VOR HH+1 ES IST 14 ... 1 MINUTE(N) AUF HH+1 Wer pflegt die Wiki-Einträge ein? Kann das jeder, oder benötigt man dazu eine spezielle Berechtigung?
:
Bearbeitet durch User
Torsten C. schrieb: > Hans H. schrieb: >> Durchschalten der Wortkombinationen ... Eine Übersicht über die Wortkombinationen der jeweiligen Anzeigemodi erhält man auch mit dem Formular frm_Anzeigestrings der WordCLock24h.accdb. Es werden bei jedem Anzeigemodus alle 1440 Minuten von 24 Stunden in Listenform angezeigt.
Herbert P. schrieb: > benötigt man dazu > eine spezielle Berechtigung? nein, Du bist ja als "herb3472" angemeldet. Einfach unten links unter Werkzeuge "Datei hochladen" http://www.mikrocontroller.net/articles/Spezial:Hochladen Das sieht dann so aus wie hier z.B.: http://www.mikrocontroller.net/articles/Datei:LED-Pendellampe.zip Und im Artikel WordClock24h gehst Du auf "Bearbeiten" und trägst das dann entsprechend ein, so wie hier z.B.: > == Downloads == > > * [[Datei:LED-Pendellampe.zip]] http://www.mikrocontroller.net/wikisoftware/index.php?title=LED-Pendellampe&action=edit§ion=11 PS: Vorschlag: Alle Dateinamen haben den Prefix "WC24h_", ist dann übersichtlicher.
:
Bearbeitet durch User
Torsten C. schrieb: > PS: Vorschlag: Alle Dateinamen haben den Prefix "WC24h_", ist dann > übersichtlicher. Habe in das WordClock24h-Wiki ein Kapitel "Wörter und Wortkombinationen" eingefügt und die Datei WC24h.zip (WC24h.accdb, WC24h.xlsx) hochgeladen.
Herbert P. schrieb: > … die dortigen Tabellen > und Verknüpfungen sind nämlich der Pfiff an der ganzen Sache und die > halbe Miete … oder wie siehst Du das, Torsten? Das ist ja schon ein Stück weit "data-driven programming". :-) "die halbe Miete" ist das allemal, der Rest ist Pipifax. Nur das Datenbank-Design hätte ich mir - wie Du weißt - etwas anders vorgestellt. Aber Schwamm drüber, ich bin anpassungsfähig. Auszug aus dem Import in C#:
1 | public void AddWordsInMode(OleDbDataReader reader) { |
2 | int hour_mode = Convert.ToInt32(reader.GetValue(0));// 0 hour_mode |
3 | int hour_input = Convert.ToInt32(reader.GetValue(2));// 2 hour_input |
4 | if (hour_input != this.Hour) System.Diagnostics.Debugger.Break(); |
5 | this.AddWord(hour_mode, reader.GetValue(4));// 4 hour_ix_0 |
6 | this.AddWord(hour_mode, reader.GetValue(5));// 5 hour_ix_1 |
7 | this.AddWord(hour_mode, reader.GetValue(6));// 6 hour_ix_3 (hour_ix_2 gibt es nicht) |
8 | this.AddWord(hour_mode, reader.GetValue(7));// 7 hour_ix_4 |
9 | this.AddWord(hour_mode, reader.GetValue(8));// 8 hour_ix_5 |
10 | this.AddWord(hour_mode, reader.GetValue(9));// 9 hour_ix_6 |
11 | }
|
12 | protected void AddWord(int hour_mode, object hour_ix) { |
13 | List<int> Words; |
14 | int WordIndex; |
15 | if (!(hour_ix is DBNull)) { |
16 | WordIndex = Convert.ToInt32(hour_ix); |
17 | if (this.WordsInModes.ContainsKey(hour_mode)) { |
18 | Words = this.WordsInModes[hour_mode]; |
19 | } else { |
20 | Words = new List<int>(); |
21 | this.WordsInModes.Add(hour_mode, Words); |
22 | }
|
23 | Words.Add(WordIndex); |
24 | }
|
25 | }
|
Das hätte man auch einfacher machen können. Aber nun lassen wir das bitte so. Sieht lustig aus, wenn die Wörter im Mock-up durcheinander aufblitzen. :-)
:
Bearbeitet durch User
"ES IST ZEHN FÜNF UHR" statt "ES IST FÜNF ZEHN UHR" Das ist aber nur beim "durchklickern" von Hand aufgefallen. Weitere Fehler werde ich ggf. sammeln und am Stück posten, wenn die Animation automatisch komplett alle Varianten durchgespielt hat.
Oki! Ich bitte Dich, auch auf eine optisch möglichst ansprechende Verteilung der Wörter zu achten und mir Bescheid zu geben, wenn ich diesbezüglich was ändern muss.
Herbert P. schrieb: > Ich bitte Dich, auch auf eine optisch möglichst ansprechende Verteilung > der Wörter zu achten Das ist Geschmacksache. Meine Meinung kann ich zwar sagen. Wenn das .avi für YouTube fertig ist, kann sich aber jeder selbst 'ne Meinung bilden. Wörter, Varianten und Stunden sind fertig. Ich muss noch die Minuten machen, verschachtelte foreach-Schleifen für alle Kombinationen machen, jeweils die Bitmaps automatisch speichern und dann ffmpeg installieren: http://stackoverflow.com/questions/1870103/create-a-video-stream-avi-from-a-series-of-images Das dauert noch etwas. Zum Film: a) Pro Variante ein Film? Oder b) ein einziger Film, wo für jede der 1440 Minuten alle Varianten durchgeschaltet werden? Natürlich im extemen Zeitraffer. Herbert P. schrieb: > @Torsten: Danke für die Korrektur! Wie kommen denn solche Fehler zustande? Synchronisierst Du Excel und Access von Hand?
:
Bearbeitet durch User
Torsten C. schrieb: > Wie kommen denn solche Fehler zustande? Synchronisierst Du Excel und > Access von Hand? Am Anfang stand die Einteilung der Frontplatte und die zugehörige Wort-Tabelle, beides habe ich mit Hilfe von Excel gemacht. Die Daten aus der Excel-Tabelle habe ich dann händisch in die Tabelle tbl_words übertragen. Die anderen Tabellen tbl_hours, tbl_minutes und tbl_modes habe ich in Handarbeit in Access erstellt.
:
Bearbeitet durch User
Torsten C. schrieb: > "ES IST ZEHN FÜNF UHR" statt "ES IST FÜNF ZEHN UHR" Sorry, der Fehler lag in der Reihenfolge der Wörter in der 4. Zeile der Frontplatte: ich musste die Wörter "ZEHN", ZWÖLF","FÜNF" umreihen auf "ZWÖLF", "FÜNF", "ZEHN". Daraus ergeben sich natürlich auch andere Referenzen in der Tabelle tbl_words und tbl_hours. Die korrigierten Daten habe ich im WordClock24-Wiki hochgeladen.
Ich hab jetzt im WordClock24h-Wiki auch einen aktualisierten Frontplattenentwurf mit dem Font "Futura Light" mit 18x16 Matrix im Format 45cm x 45cm als pdf-Datei hochgeladen und bitte um Begutachtung und Rückmeldung (die Schrift ist vielleicht doch etwas zu zart?)
:
Bearbeitet durch User
Torsten C. schrieb: > Zum Film: > a) Pro Variante ein Film? Oder Ich würde für diese Variante plädieren, eine Version mit allen Auswahlmöglichkeiten (15 x 1440 = 216.000 Frames) würde zu lang werden, fürchte ich.
Herbert P. schrieb: > Ich hab jetzt im WordClock24h-Wiki auch einen aktualisierten > Frontplattenentwurf mit dem Font "Futura Light" mit 18x16 Matrix gibt es noch einen aktuellen 16 x 16 Entwurf? bevor ich die 2 WS Platten 16 x 16 wegwerfe würde ich gerne erst mal dem Urgedanken folgen, 18 x 16 kann ja auch noch folgen, nur fehlen mir jetzt Stripes und ich würde gerne die 16 x 16 verbauen evtl. im wiki einpflegen 16 x 16
Joachim B. schrieb: > ich würde gerne die 16 x 16 verbauen Also 'ne Billig-variante mit Großbildschirm-kacheln in 16 x 16 würde ich auch noch aufbauen wollen. Mir ist allerdings die Reihenfolge egal. Joachim B. schrieb: > evtl. im wiki einpflegen 16 x 16 Nimm doch einfach den letzten Entwurf, der gepostet wurde und trage ihn im WIKI ein. http://www.mikrocontroller.net/wikisoftware/index.php?title=WordClock24h&action=edit§ion=3
:
Bearbeitet durch User
Torsten C. schrieb: > Nimm doch einfach den letzten Entwurf, der gepostet wurde und trage ihn > im WIKI ein. > > http://www.mikrocontroller.net/wikisoftware/index.php?title=WordClock24h&action=edit§ion=3 och ich löte lieber, kann das evtl. jemand übernehmen der schon mal Wiki Einträge bearbeitet hat?
Herbert P. schrieb: > 15 x 1440 = 216.000 Frames Im Moment sind 7 Modes in tbl_hours, keine 15. Oder kann man da was duplizieren?
:
Bearbeitet durch User
Torsten C. schrieb: > Im Moment sind 7 Modes in tbl_hours, keine 15. Oder kann man da was > duplizieren? Die 15 Modes ergeben sich durch die Vernüpfung mit den modes der tbl_minutes (es gibt ja auch verschiedene Modi der Minuten-Anzeige). WICHTIG: die Verknüpfung von tbl_hours und tbl_minutes erfolgt über die tbl_modes, wo auch die Auswahl einer der 15 Betriebsarten erfolgt!!! BITTE UNBEDINGT ANSCHAUEN!!! Mit dem Formular frm_Anzeigestrings kann man die einzelnen in der tbl_modes definierten Modi auswählen und erhält dann die kompletten Strings (Stunden + Minuten bzw. Minuten + Stunden) für 24 Stunden in Listenform angezeigt.
:
Bearbeitet durch User
Joachim B. schrieb: > gibt es noch einen aktuellen 16 x 16 Entwurf? > > bevor ich die 2 WS Platten 16 x 16 wegwerfe würde ich gerne erst mal dem > Urgedanken folgen, 18 x 16 kann ja auch noch folgen, nur fehlen mir > jetzt Stripes und ich würde gerne die 16 x 16 verbauen > > evtl. im wiki einpflegen 16 x 16 Selbstverständlich wird es einen aktualisierten 16 x 16 Entwurf geben, ich will ja meine Matrizen auch nicht wegwerfen. Sobald ich ihn fertig habe (voraussichtlich noch heute oder spätestens morgen), werde ich ihn im Wiki einpflegen.
Joachim B. schrieb: > nur fehlen mir > jetzt Stripes Hab grad von LED-Stübchen ein Angebot für WS2812 RGB LED Stripes 60 LEDs/lfm hereinbekommen: 1m: 18,00 EUR 10m: 17,00 EUR 100m: 15,50 EUR 500m: 14,50 EUR Hab' aber noch keine Zeit gehabt, die Preise zu vergleichen.
:
Bearbeitet durch User
Herbert P. schrieb: > Hab grad von LED-Stübchen ein Angebot für WS2812 RGB LED Stripes 60 > LEDs/lfm hereinbekommen: > > 1m: 18,00 EUR > 10m: 17,00 EUR > 100m: 15,50 EUR > 500m: 14,50 EUR och das sieht nicht günstig aus, ich tippe mal das sind Meterpreise, interessant wird es wenn der Preis pro LED genannt wird, auseinander schneiden und zusammenlöten kann ich die selber....... bei 10m wären das ja 170€ = 600 LEDs = 28 Ct/LED da lag mein witopower mit 5m 51€ = 17 Ct/LED günstiger. da hast ja was angerichtet: Der Server unter www.led-stuebchen.de braucht zu lange, um eine Antwort zu senden.
:
Bearbeitet durch User
Herbert P. schrieb: > Hab' aber noch keine Zeit gehabt, die Preise zu vergleichen. Ich hatte Dir per PN drei Links geschickt, die Lieferungen waren OK und die Preise m.E. auch: - http://www.aliexpress.com/snapshot/6238120902.html - http://www.aliexpress.com/snapshot/6238131544.html - http://www.aliexpress.com/snapshot/6237951049.html Mehr als 12€ pro Meter incl. Versand ist Wucher.
:
Bearbeitet durch User
dummerweise finde ich aktuell nur 30/m oder 60/m interessanter wären aktuell für mich 42 - 52 /m non waterproof von mir aus auch LPD 8806
:
Bearbeitet durch User
Torsten C. schrieb: > Ich hatte Dir per PN drei Links geschickt, die Lieferungen waren OK und > die Preise m.E. auch Danke :-) Ich hab' meine LED-Stripes schon aus Hongkonmg geliefert bekommen, das Angebot von LED-Stübchen habe ich nur interessehalber eingeholt, hätte ja sein können..... Joachim B. schrieb: > interessanter wären aktuell für mich 42 - 52 /m non waterproof Nach sowas hätte ich auch gesucht, scheint es aber leider zumindest derzeit nicht am Markt zu geben.
Herbert P. schrieb: > Nach sowas hätte ich auch gesucht, scheint es aber leider zumindest > derzeit nicht am Markt zu geben. Dann sind wir uns in dem Punkt ja doch noch einig geworden. :-) Ich hatte das Anfangs ja auch schon geschrieben.
Herbert P. schrieb: > Joachim B. schrieb: >> interessanter wären aktuell für mich 42 - 52 /m non waterproof > > Nach sowas hätte ich auch gesucht, scheint es aber leider zumindest > derzeit nicht am Markt zu geben. gefunden ohne Preis genau 50LEDs/m = 2cm Raster, damit könnten wir unsere Panels 16x16 auf 16x18 verlängern http://www.pixel-leds.com/products/112-.html
Joachim B. schrieb: > genau 50LEDs/m = 2cm Raster, damit könnten wir unsere Panels 16x16 auf > 16x18 verlängern > http://www.pixel-leds.com/products/112-.html Ich bin grad dabei, die 16x16 Frontplatte so umzubauen, dass damit praktisch die gleichen Wortkombinationen möglich sind wie beim 18x16 Panel. Lediglich die Wortaufteilung wird ein wenig anders sein. Ist ziemliche Fitzelarbeit :-( Es wird also letztendlich eine reine Geschmacksfrage sein, ob man dem 16x16 oder dem 18x16 Panel den Vorzug gibt.
Herbert P. schrieb: > Ich bin grad dabei, die 16x16 Frontplatte so umzubauen, dass damit > praktisch die gleichen Wortkombinationen möglich sind wie beim 18x16 > Panel. Hmmm, entweder ich habe da noch ein Programmierfehler, oder da ist noch einiges durcheinander. Vielleicht macht es Sinn, erstmal eine fertig zu machen und dann die zweite.
Torsten C. schrieb: > Hmmm, entweder ich habe da noch ein Programmierfehler, oder da ist noch > einiges durcheinander. Vielleicht macht es Sinn, erstmal eine fertig zu > machen und dann die zweite. bin sehr dafür die 16 x 16 wäre ja vorrangig weil die Panels ja schon gekauft hier rumliegen, die erweiterte 18 x 16 ist später drann wenn es wieder genug Stripes mit passendem Raster gibt, da könnten dann die Stripes enger beieinander rücken, ich Dödel habe ja die erste Uhr mit quadratischem Raster aus Stripes gebaut 10 x 11, also nicht die Buchstaben enger gesetzt obwohl das bei Stripes ja gegangen wäre.
Joachim B. schrieb: > die 16 x 16 wäre ja vorrangig weil die Panels ja schon gekauft hier > rumliegen, die erweiterte 18 x 16 ist später drann wenn es wieder genug > Stripes mit passendem Raster gib Ich hab mittlerweile sowohl die Matrizen als auch 5 m Stripes, den Atmel 1284P-PU im DIL-Gehäuse, das STM32 F4 Discovery Board, eine 30 x 30 cm Aluplatte zur Montage der Stripes, eine 50 x 50 cm Hartschaumstoff- und eine 45 x 45 cm MDF-Platte für die Rastermasken sowie eine eloxierte Alu-Winkelschiene für den Rahmen hier liegen - und komm nicht zu mehr als nur die Teile auszupacken, wenn sie geliefert werden, weil ich dauernd an der Frontplatte und an den Tabellen herumwerkle - ich Dödel ;-) Aber ich hab' für das Gehäuse schon ein ganz brauchbares Konzept, wie ich glaube....inkl. Background-Beleuchtung. Sind eigentlich die Enden der Stripes lötbar, wenn man sie auseinanderschnippselt, oder muss man sie mit diesen Spezialsteckern verbinden?
:
Bearbeitet durch User
Herbert P. schrieb: > Sind eigentlich die Enden der Stripes lötbar, wenn man sie > auseinanderschnippselt, bis jetzt habe ich alles löten können was kupferfarben aussah (aber die Stripes müssen schon fixiert sein und man darf keinen Zug ausüben, die reissen schnell ab diese Kupferflächen) diese Stecker würde ich nicht mal mit der Kneifzange anfassen......
:
Bearbeitet durch User
Torsten C. schrieb: > Hmmm, entweder ich habe da noch ein Programmierfehler, oder da ist noch > einiges durcheinander. Vielleicht macht es Sinn, erstmal eine fertig zu > machen und dann die zweite. Vielleicht beruht das Ganze nur auf einem Kommunikationsfehler? Wo liegt das Problem?
Herbert P. schrieb: > Wo liegt das Problem? Vielleicht ist es eins, vielleicht mehrere. Nun lass mich doch erstmal alle Frames für den Film erzeugen und dann ein .avi draus machen. Anbei ein Beispiel-Frame vom Mock-up. PS: Wenn Du nicht auf das .avi auf YouTube warten willst, kann ich Dir die Frames auch als ZIP per E-Mail schicken.
:
Bearbeitet durch User
Auch nicht schlecht. Aber vielleicht ist das ja ein Kommunikationsfehler. PS: Ich kann Dir auch das unfertige VS-Projekt schicken. Aber im Moment macht es nur Sinn, das im Debug-Mode aus der IDE zu starten.
:
Bearbeitet durch User
An der Qualität muss ich noch arbeiten: http://youtu.be/HL16kwwANH8 PS: Mir war bis eben gar nicht klar, wieviele Videos es zu WordClocks bereits gibt: https://www.youtube.com/playlist?list=PLZ46h9nEUStojY0WQ17BdGuW25HPIRFEp Gute N8, bis Morgen.
:
Bearbeitet durch User
Hab (hoffentlich) die oben gezeigten Fehler behoben. Und hoffentlich keine neuen hinzugefügt!. Da ich die Tabellen im Blindflug erstelle, ist das leider nicht ganz auszuschließen. :-( Die editierten Tabellen habe ich ins Wiki hochgeladen. Ein Schönheitsfehler ist mir aufgefallen, für den ich bisher keine Lösung gefunden habe: BEI "ES IST .. UNDZWANZIG" kleben das "UND" und das "ZWANZIG" in der 5.Zeile (leider) aneinander. Ich habe aber keine Idee, wie ich das anders platzieren könnte. Torsten C. schrieb: > Youtube-Video "Erster Test des WordClock Mock-up" Nettes Ding, was Du da fabrizierst :-) Torsten C. schrieb: > PS: Mir war bis eben gar nicht klar, wieviele Videos es zu WordClocks > bereits gibt: Wusste ich auch nicht...ist ja kaum zu glauben!
:
Bearbeitet durch User
Zwischenbericht @Joachim: ich hab die Tabellen für die 16 x 16 Matrix in Arbeit, dauert noch ein paar Stunden.
Herbert P. schrieb: > WICHTIG: die Verknüpfung von tbl_hours und tbl_minutes erfolgt über die > tbl_modes, wo auch die Auswahl einer der 15 Betriebsarten erfolgt!!! Menno, nun wo alles falsch angezeigt wurde, habe ich es erst verstanden. Bilder sagen mehr als 1000 Worte. Ich habe das Bild in der .accdb gefunden. So, also nochmal das Objektmodell anpassen und dann gibt es neue Bilder. Das Tool exportiert übrigens um die 16 Screenshots pro Sekunde. :-)
:
Bearbeitet durch User
Hallo Herbert, baust Du bitte in die tbl_words noch eine Spalte "color" ein? Am besten als String im HTML-Code (roter Kringel). Erstmal für das DMU (Digital-Mock-Up) und bei Bedarf auch für den C-Code-Generator. Danke. :-) VG Torsten (WordClock24h) ← neuer Thread-Footer?
:
Bearbeitet durch User
Torsten C. schrieb: > Menno, nun wo alles falsch angezeigt wurde, habe ich es erst verstanden. > Bilder sagen mehr als 1000 Worte. Ich habe das Bild in der .accdb > gefunden. Na also! bist Du jetzt einverstanden mit der Struktur? Torsten C. schrieb: > Das Tool exportiert übrigens um die 16 Screenshots pro Sekunde. :-) Das ist heavy! Wird auch notwendig sein bei so vielen Kombinationsmöglichkeiten ;-) Torsten C. schrieb: > baust Du bitte in die tbl_words noch eine Spalte "color" ein? > > Am besten als String im HTML-Code (roter Kringel). Können die RGB-Stripes tatsächlich 16 bit pro Farbe? Welche Farbe soll ich defaultmässig zuweisen? Am ehesten einen warmen Weißton, oder?
:
Bearbeitet durch User
Herbert P. schrieb: > Können die RGB-Stripes tatsächlich 16 bit pro Farbe? Welche Farbe soll > ich defaultmässig zuweisen? ne 3x 8-bit für RGB oder 24 Bit Color wobei die 16 Millionen möglichen Farben natürlich nicht von der LED sichtbar gemacht werden können, liegt an unseren Augen? (LED Fading ist z.B. das Stichwort) http://www.mikrocontroller.net/articles/LED-Fading
Herbert P. schrieb: > Können die RGB-Stripes tatsächlich 16 bit pro Farbe? Welche Farbe soll > ich defaultmässig zuweisen? Am ehesten einen warmen Weißton, oder? Der HTML-Code hat zwar 6 Nibbles aber nur 3 Bytes. Die WS2811-Controller in den WS2812- und WS2812B-LEDs auch. > defaultmässig Die Antwort würde ich in der endgültigen µC-Firmware überlassen. Erstmal sind das individuelle Farben, die man bei Bedarf ersetzen kann und nur zur Erzeugung eines syntakisch korrekten AutoCode-Templates und für die Movies vom DMU dienen.
:
Bearbeitet durch User
Joachim B. schrieb: > wobei die 16 Millionen möglichen > Farben natürlich nicht von der LED sichtbar gemacht werden können Doch, ist aber egal. Der Speicherbedarf betrifft nur 15 Array-Elemente. Die Farben haben keine gleichmäßigen "Farbabstände" für das Auge. Das ist sicher das, was Du meinst. Eine Gamma-Korrektur ist - wenn überhaupt - an anderer Stelle angebracht. Herbert P. schrieb: > bist Du jetzt einverstanden mit der Struktur? Das war ich vorher auch. Es ging mir um die Normalisierung der rot markierten Teile. Man hätte den Speicherbedarf mit normalisierten Tabellen einfach per SQL-Query ermitteln können. Das geht zwar per Union-Abfrage nun auch noch, das ist mir aber zu blöd.
:
Bearbeitet durch User
Herbert P. schrieb: > notwendig brauchst noch Bastelkram? Beitrag "V: Diverses, inkl. AVRs (Österreich)"
Joachim B. schrieb: > Herbert P. schrieb: >> notwendig > brauchst noch Bastelkram? Was hat das mit "notwendig" zu tun? 7.97€ bei Mouser 5.43€ bei Aliexpress 2.89€ bei zpeter Guter Preis für einen ATMEGA1284P-PU von Peter. Ein STM32 kostet trotzdem noch die Hälfte. ;-)
:
Bearbeitet durch User
Torsten C. schrieb: > Was hat das mit "notwendig" zu tun? nix, aber mit basteln und Herbert hat ja eher einen Hang zu AVR ;-)
Joachim B. schrieb: > Herbert hat ja eher einen Hang zu AVR ;-) Torsten C. schrieb: > Ein STM32 kostet die Hälfte. ;-) Das muss ich jetzt einfach mal loswerden: DAS IST EIN COOLES KERNTEAM, das sich um den > Beitrag "Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?" gebildet hat! Frank M. schrieb: > Das ist einfach ein zusammengewürfelter Haufen Das sehe zumindest ich - trotz oder gerade wegen der Streitkultur (Wikipedia) - inzwischen ganz anders!
:
Bearbeitet durch User
Wo ist eigentlich der Unterschied zwischen "WC24h18x16.accdb" und "WC24h.accdb" in der ZIP-Datei WC24h18x16.zip? http://www.mikrocontroller.net/articles/Datei:WC24h18x16.zip Oder waren die Dateien versehentlich doppelt?
:
Bearbeitet durch User
Torsten C. schrieb: > DAS IST EIN COOLES KERNTEAM, danke, obwohl ich momentan nicht viel schaffe, zuviel echte Arbeit. Aber die Arduiono m1284p sind bestellt, Stripes, Flächen LED, wlan Empf., DCF77 Empf., RTC Ds1307 und DS3231 sind da, der erste Aufbau auch, ich mache weiter an der SW wenn die m1284p laufen für die Entwicklung am Arduino, wenn alles läuft kann man ja abspecken bis es im m328p passt > Frank M. schrieb: >> Das ist einfach ein zusammengewürfelter Haufen warum auch immer Frank schimpft? muss wohl an mir liegen, ich weiss nur nicht was ich ihm getan habe, danke ihn mindestens 1x täglich für sein IRMP nutze es gerne.
:
Bearbeitet durch User
übrigens: Your Mighty Mini 1284P copy boards have been depanelized and shipped to you via USPS Standard First Class Mail.
Joachim B. schrieb: > Your Mighty Mini 1284P copy boards have been ... shipped to you Das sind nur die PCBs und bestücken musst Du selber, oder? ?!
Torsten C. schrieb: > Das sind nur die PCBs und bestücken musst Du selber, oder? ?! ja aber bei ca. 3,-€ pro Platine OK bei Reichelt kostet der m1284p im TQFP44 5,30€ und das Vogelfutter geht nahezu unter.
Joachim B. schrieb: > aber bei ca. 3,-€ pro Platine OK Aha. Na denn … Ohne DMA. Das muss ja jeder selbst wissen. Danke für die Info. Für 4€ gibt's ja fertig gelötete Module mit DMA. Egal, kein Krieg, bitte. Frage zu [tbl_minutes].[hour_offset] und [tbl_hours].[hour_input]: [hour_input] geht von 0..24. Aber die "Stunde" der Uhrzeit geht ja nur von 0..23. Ich nehme an, dass [hour_input] immer durch "Stunde plus [hour_offset]" gebildet wird und dass [hour_offset] immer über [minute__txt_first] ermittelt wird und nicht über [minute_txt_last], richtig?
:
Bearbeitet durch User
Torsten C. schrieb: > Man hätte den Speicherbedarf mit normalisierten > Tabellen einfach per SQL-Query ermitteln können. Das geht zwar per > Union-Abfrage nun auch noch, das ist mir aber zu blöd. Die von mir vorgeschlagene Methode beruht nicht auf einem einzigen Tabellenzugriff, der das Ganze "in einer Wurscht verarbeitet", sondern ich hatte mir eigentlich vorgestellt, dass die kompilierte Version aus Speicherspargründen ebenfalls mit diesen Tabellen arbeitet und sich die Anzeige sozusagen über mehrere Ecken zusammenklamüsert: Zuerst sieht die Software in der tbl_modes nach, welche Anzeigeart eingestellt ist: - tbl_modes 15 Konfigurationen á 4 Bytes = Speicherbedarf 60 Bytes Mit dem von dort geholten Referenzindex sucht die Software in der Tabelle tbl_minutes aus 9 verschiedenen Varianten und einem aus 60 Datensätzen den 11 Bytes langen Index-String für die führende Minutenanzeige aus: - tbl_minutes 9 x 60 x 11 = 5.940 Bytes Aus der tbl_hours wird aus 7 verschiedenen Varianten mit jeweils 24 Datensätzen der 8 Bytes lange Index-String für die Stunden-Anzeige ausgesucht: - tbl_hours 7 x 24 x 8 = 1.344 Bytes Ist der Inhalt der Auswahl für die führende Minutenanzeige = 0, dann wird der Index-String aus der tbl_minutes dem Stunden-String nachgestellt. ***** Nun ist der Index-String für Stunden und Minuten komplett, und wird seriell abgearbeitet: jedes Byte repräsentiert eines von 84 Wörtern aus der Tabelle tbl_words. Die Tabelle tbl_words repräsentiert die Wörter nicht als Bitmuster, sondern lediglich mit ihrer Position (Matrix: 2 Bytes, seriell: 1 Short Integer = 2Bytes) und Länge (1 Byte). Dazu kommen noch 3 Nibbles = 2 Bytes für die Farbe: tbl_words 84 x (2 + 2 + 1 + 2) = 588 Bytes. ***** Der Gesamtspeicherbedarf für die 4 Arrays ist also: 60 Bytes tbl_modes 5.940 Bytes tbl_minutes 1.344 Bytes tbl_hours 588 Bytes tbl_words -------------------- 7.832 Bytes ****************************************** Wenn man Alles in einer Wurscht zusammenfassen würde, dann sähe der Speicherbedarf ein wenig anders aus: 1 Anzeigemodus umfasst: (7 x 24 Stunden x 8 Wörter) x (9 x 60 Minuten x 11 Wörter) = = 7.983.360 Bytes x 15 Anzeigemodi= 119.750.400 Bytes = 116.943,75 KiB Das wäre ein wenig schwierig in einem Mikrocontroller unterzubringen, denke ich.... ****************************************** Es kann natürlich sein, dass ich mich verrechnet habe, oder dass mir ein logischer Fehler unterlaufen ist (in der Früh läuft mein Hirn noch sehr untertourig). Ich bitte daher um Rückmeldung.
:
Bearbeitet durch User
Torsten C. schrieb: > Joachim B. schrieb: >> Herbert P. schrieb: >>> notwendig >> brauchst noch Bastelkram? > > Was hat das mit "notwendig" zu tun? Ich brauche keinen neuen Bastelkram, denn schon der vorhandene verstaubt leider in irgend welchen Kisten an irgend welchen dunklen Orten, weil ich im Büro eigentlich keinen Platz zum Elektronik-Basteln habe, und ein anderer Platz steht mir nicht zur Verfügung (von Beileidskundgebungen bitte ich Abstand zu nehmen ;-)) Ich hab mir einen ATmega1284 und ein STM32 Board zugelegt, weil ich von Natur aus neugierig bin. Der Preis spielt für mich in diesen Größenordnungen keine Rolle, ich will damit ja nicht in Serie gehen. Allerdings habe ich mit dem Arduino schon ein bisschen was gemacht, den ASTM32 habe ich bisher lediglich ausgepackt und rundherum angeschaut. Torsten C. schrieb: > DAS IST EIN COOLES KERNTEAM, das sich um den >> Beitrag "Minutengenaue 24 Stunden-Wortuhr - wer will mitbauen?" > gebildet hat! Das sehe ich auch so :-) Joachim B. schrieb: > übrigens: > > Your Mighty Mini 1284P copy boards have been depanelized and shipped to > you via USPS Standard First Class Mail. Ist ja prima! Joachim B. schrieb: > bei Reichelt kostet der m1284p im TQFP44 5,30€ und das Vogelfutter geht > nahezu unter. Ich hab meinen m1284 (und auch den STM32) bei RS bestellt, war auch in dieser Größenordnung. Bei uns in Österreich kommt halt leider immer noch ein saftiges Porto dazu - das kostet oft mehr als die Bauteile.
Torsten C. schrieb: > Frage zu [tbl_minutes].[hour_offset] und [tbl_hours].[hour_input]: > > [hour_input] geht von 0..24. Aber die "Stunde" der Uhrzeit geht ja nur > von 0..23. Das "24" ist lediglich eine zusätzliche Variante, sie ist - wenn überhaupt - nur bei jenen Anzeigemodi von Belang, welche die Anzeige "ES WIRD IN MM MINUTEN VIERUNDZWANZIG UHR" verwenden. Wahrscheinlich wird man eher "ES WIRD IN MM MINUTEN MITTERNACHT" verwenden, denke ich. Torsten C. schrieb: > Ich nehme an, dass [hour_input] immer durch "Stunde plus [hour_offset]" > gebildet wird und dass [hour_offset] immer über [minute__txt_first] > ermittelt wird und nicht über [minute_txt_last], richtig? [minute_txt_first] und [minute_txt_last] greifen auf dieselbe Tabelle tbl_minutes zu. Selbstverständlich muss [hours_offset] zuerst ausgelesen und der anzuzeigende Wert für die Stunde ermittelt werden, bevor man auf die tbl_hours zugreift. Die 16 x 16 Datenbank wird übrigens heute fertig.
Nachsatz zu den Uploads im Wiki: nachdem es zwei Versionen geben wird - eine mit 16 x 16 Matrix und eine mit 18 x 16 Matrix, habe ich die Dateinamen um das Matrixformat ergänzt: WC24h16x16 betrifft die 16x16 Version WC24h18x16 betrifft die 18x16 Version. Alle Versionen, die im Dateinamen keinen Hinweis auf die Matrix enthalten, sind ältere (veraltete) Versionen. Leider habe ich übersehen, im Wiki einen entsprechenden Hinweis einzubringen, sorry :-(
Allgemeine Handhabung von "0" und "24" Uhr: Wenn die Uhrzeit auf Mitternacht zugeht, also 23:MM, verwendet man bei einigen Anzeigemodi in Verbindung mit hour_offset = 1 den Text für 24 Uhr ("ES WIRD IN MM MINUTEN 24 UHR"), für nach Mitternacht (0:MM) den Text für 0 Uhr ("ES IST MM MINUTEN NACH NULL UHR")
:
Bearbeitet durch User
Herbert P. schrieb: > in Verbindung mit hour_offset = 1 den Text für 24 Uhr Also eine 24 für [hour_input] kann nur über den Offset entstehen. Gut. Ich wollte nur wissen, ob ich es richtig verstanden habe. Danke. Herbert P. schrieb: > Selbstverständlich muss [hours_offset] zuerst ausgelesen > und der anzuzeigende Wert für die Stunde ermittelt werden Und zwar über den grünen weg und nicht über den roten, richtig? So war meine Frage gemeint. Herbert P. schrieb: > ich hatte mir eigentlich vorgestellt, dass die kompilierte Version aus > Speicherspargründen ebenfalls mit diesen Tabellen arbeitet und sich die > Anzeige sozusagen über mehrere Ecken zusammenklamüsert Da sind wir uns alle einig, denke ich. Die Sache mit der Normalisierung hätte ich besser nie gesagt. Mir ging es nur darum, dass man gelb und grün jeweils in einer einzigen Spalte unterbringen hätte können. Die Anzahl der Datensätze hätte sich erhöht, die Arrays im C-Code wären am Ende aber wieder identisch gewesen. Gelb und grün in einer Tabelle mischen, macht keinen Sinn. So war das mit dem Union nicht gemeint.
:
Bearbeitet durch User
Habe nun auch die Excel- und Access-Dateien für die 16x16 Matrix-Version in's Wiki hochgeladen. Bitte um Nachsicht für eventuelle Fehler, es war sehr viel Nachtarbeit dabei.
Torsten C. schrieb: > Und zwar über den grünen weg und nicht über den roten, richtig? Da es sich in beiden Fällen um ein und dieselbe Tabelle tbl_minutes handelt, ist mir nicht ganz klar, was Du meinst?
:
Bearbeitet durch User
Die Tabelle tbl_modes enthält mit minute_txt_first und minute_text_last 2 Referenzen auf den Index minute_mode von ein und derselben Tabelle tbl_minutes. Eine der beiden Referenzen ist immer 0, an dieser Position erfolgt keine Minutenanzeige. Die andere ist immer größer > 0. Je nachdem, ob der Minutentext vorangeht oder dem Stundentext folgt, befindet sich der Indexwert > 0 in der Spalte tbl_minutes_first oder tbl_minutes_last. Die Software braucht nur in der Tabelle tbl_modes aus den Spalten minutes_txt_first und minutes_txt_last jenen Wert für minute_mode herausholen, der > 0 ist. Dabei dienen die Indizes "minute_mode" 1 und 2 der Anzeigeform HH:MM, die Indizes "minute_mode" 3 bis 9 der Form MM:HH. Der Index minute_mode ist der Filter für den aktuell anzuwendenden Recordset aus der Tabelle tbl_minutes, aus welchem dann der hour_offset entsprechend der Minute entnommen wird.
Die Datenbank-Tabelle tbl_words wurde sowohl in der 16x16 als auch in der 18x16 Version um die Spalte "color" (Default #FFFFFF) erweitert.
Bin dabei, mich wieder der Frontplatte zu widmen, und habe soeben im Wiki Bohr- und Positionier-Schablonen für beide Varianten (16x16 Matrix mit 320mm Außenmaß und 18x16 Matrix mit 300mm x 300mm Außenmaß) hochgeladen. [[http://www.mikrocontroller.net/articles/Datei:WC24h16x16_Bohr_%26_Positionierschablone_32x32cm.png]] [[http://www.mikrocontroller.net/articles/Datei:WC24h18x16_Bohr_%26_Positionierschablone_30x30cm.png]] Eine gute Montagemöglichkeit für die Frontplatte bzw. überhaupt für das gesamte Werkel bietet meines Erachtens eine 16mm starke MDF-Platte ("Mitteldichte Faserplatte") aus dem Baumarkt, in die man mittels Holzbohrer und aufgesetztem Versenker Kammern für die LEDs bohrt. Die Platte hat mich heute € 2,40 gekostet :-) Da die Schneide des Versenkers um 45° angeschrägt ist, könnte ich mir vorstellen, dass sich dadurch - wenn die Platte weiß lackiert wird - hervorragende Reflektoren für die LEDs ergeben. Für die 16 x 16 Matrix passt ein Versenker mit 16mm Durchmesser (ideal für die Buchstabengröße), für die 18x16mm Matrix kann man leider nur 14mm Versenker verwenden, da sonst die Wandstärke zu den Nachbarkammern zu dünn wäre und durchbrechen würde. Wenn der Radius für die Buchstabengröße nicht ausreicht, muss man da eventuell nacharbeiten. Bei größerer Stückzahl kann man das selbstverständlich von einer CNC-Fräse erledigen lassen, wie es ja auch für das Vorgänger-Modell gemacht wurde. Auf die Rückseite der MDF-Platte kann man - etwas vom Rand nach innen versetzt und von vorne unsichtbar - mit Aluschienen einen Gehäuserahmen für die Elektronik draufbauen. Dadurch erhält die Frontplatte der Uhr etwas Abstand von der Wand, was optisch von Vorteil ist. Und auf den Alurahmen des "Backplane"-Gehäuses kann man - komfortabel und von vorne unsichtbar - LED-Stripes als Backlight anbringen.
Hallo Herbert, kannst Du bei Gelegenheit mal die Acess Databases im *.MDB Format ins Wiki stellen (Acess 2007 oder so). Dann kann ich auch mal mit Libre versuchen einen Blick rein zu werfen. Danke!
Herbert P. schrieb: > Eine der beiden Referenzen ist immer 0, an dieser Position erfolgt keine > Minutenanzeige. Die andere ist immer größer > 0. Je nachdem, ob der > Minutentext vorangeht oder dem Stundentext folgt, befindet sich der > Indexwert > 0 in der Spalte tbl_minutes_first oder tbl_minutes_last. Aber dadurch verändert sich doch nicht die Reigenfolge der Buchstaben auf der Frontplatte. Gibt es denn zwei Frontplatten? Eine für *_first und eine für *_last?
Hans H. schrieb: > Hallo Herbert, > kannst Du bei Gelegenheit mal die Acess Databases im *.MDB Format ins > Wiki stellen (Acess 2007 oder so). > Dann kann ich auch mal mit Libre versuchen einen Blick rein zu werfen. Die beiden Versionen für die 16x16 Matrix und die 18x16 Matrix sind als mdb-Datenbank (Access 2002/2003) im Wiki (zip-File) Hoffe, es klappt mit Libre, für Fragen stehe ich gerne zur Verfügung :-)
Torsten C. schrieb: > Aber dadurch verändert sich doch nicht die Reigenfolge der Buchstaben > auf der Frontplatte. > > Gibt es denn zwei Frontplatten? Eine für *_first und eine für *_last? Nein, es gibt keine zwei Frontplatten, allerdings zwei unterschiedliche String-Zusammenstellungen für *_first und *_last. Bei vorangestellten Minuten belegen die Minuten den oberen Teil, die Stunden den unteren Teil der Frontplatte. Bei hintangestellten Minuten ist die Aufteilung genau umgekehrt, da ist die Stundenanzeige oben und die Minutenanzeige unten.
:
Bearbeitet durch User
Um möglichst sämtliche Wünsche nach den unterschiedlichsten Darstellungsformen bedienen zu können, enthält die Frontplatte so gut wie alle Wörter mindestens zweifach: Der obere Teil der Frontplatte dient stets der Darstellung des ersten Teils der Zeitanzeige, der untere der Darstellung des zweiten Teils - gleichgültig, ob (je nach Betriebsart) zuerst die Stunden und danach die Minuten, oder umgekehrt zuerst die Minuten und dann die Stunden angezeigt werden: ES IST oder ES IST oder ES IST oder .... HH UHR MM MINUTEN MM ------------------------------------------------------------------------ UND NACH/ VOR NACH ..... MM MINUTEN HH UHR HH Auf diese Weise sind so gut wie alle gängigen "Zeitanzeige"-Arten konfigurierbar, die Anzeigeart ist durch einfache Auswahl der entsprechenden Konfiguration ohne Weiteres veränderbar. Selbstverständlich können die Tabellen auch um zusätzliche Modi ergänzt werden, lediglich die verwendeten Wörter bzw. Silben müssen auf der Frontplatte vorhanden sein.
Herbert P. schrieb: > Die beiden Versionen für die 16x16 Matrix und die 18x16 Matrix sind als > mdb-Datenbank (Access 2002/2003) im Wiki (zip-File) Danke für's Umwandeln, Zugriff auf die Tabellen sieht erstmal brauchbar aus. Hans WordClock24h
Herbert P. schrieb: > allerdings zwei unterschiedliche > String-Zusammenstellungen für *_first und *_last OK, also ist das nur für das Formular in Access, aber für das Mock-Up und den Code-Generator hätte auch ein einziges Datenbankfeld [minute_txt] gereicht. Ich glaube, nun habe ich es verstanden. Also importiere ich auch nur einen Minuten-Index:
1 | this.DBKey = Convert.ToInt32(reader.GetValue(0)); // mode_ix |
2 | this.Text = reader.GetString(1); // text |
3 | this.minute_ix = Convert.ToInt32(reader.GetValue(2)); // minute__txt_first |
4 | if (this.minute_ix == 0) { |
5 | this.minute_ix = Convert.ToInt32(reader.GetValue(4)); // minute_txt_last |
6 | }
|
7 | this.hour_ix = Convert.ToInt32(reader.GetValue(3)); ; //hour_txt |
Dann darfst Du aber nicht nur 20=NACH nehmen, sondern musst ggf. auch 45=NACH* und 78=NACH** benutzen.
:
Bearbeitet durch User
Torsten C. schrieb: > Also importiere ich auch nur einen Minuten-Index: Korrekt! Torsten C. schrieb: > Dann darfst Du aber nicht nur 20=NACH nehmen, sondern musst ggf. auch > 45=NACH* und 78=NACH** benutzen. Hab' ich da einen Fehler eingebaut? :-( Muss ich kontrollieren....
Hans H. schrieb: > Danke für's Umwandeln, Oki, gerne :-) Mit dem Formular kannst Du Dir einen Eindruck bilden, welche Strings bei den verschiedenen Betriebsarten dargestellt werden.
Torsten C. schrieb: > Dann darfst Du aber nicht nur 20=NACH nehmen, sondern musst ggf. auch > 45=NACH* und 78=NACH** benutzen. Sorry, das 20=NACH ist effektiv ein Fehler, standardmäßig sollte das 45-er NACH* verwendet werden. Allerdings bekomme ich dann ein Problem mit "NACH* HALB", weil das HALB auf der Frontplatte derzeit vor dem NACH* plaziert ist. Das muss ich mir näher anschauen :-(
Herbert P. schrieb: > ist effektiv ein Fehler Genau deshalb teste ich ja mit dem Mock-up. :-) Torsten C. schrieb: > Vielleicht macht es Sinn, erstmal eine fertig zu > machen und dann die zweite. Genau das meinte ich damit. ;-) Naja, ich bin auch noch nicht fertig. Ich muss den [hour_offset] noch korrekt auswerten.
:
Bearbeitet durch User
Torsten C. schrieb: > Naja, ich bin auch noch nicht fertig. Wegen des "HALB" und "NACH*"-Fehlers muss ich leider in der Mitte der Frontplatte bei drei Zeilen Umstellungen vornehmen. Das hat bedauerlicherweise gravierende Auswirkungen :-(
So, die korrigierten Tabellen für die WC24h18x16 sind hochgeladen, beide als zip-Dateien, einmal in Originalversion (.xlsx und .accdb - Dateien), einmal konvertiert für Office 2003 (.xls und .mdb Dateien)
27.11.2014 22:22 Uhr: > Das hat bedauerlicherweise gravierende Auswirkungen 27.11.2014 23:06 Uhr: > die korrigierten Tabellen … sind hochgeladen Und wie schnell bist Du bei weniger gravierenden Auswirkungen? Ich knobel immer noch an [hour_offset]. :-(
:
Bearbeitet durch User
@Joachim: Es war erforderlich, auch für die 16 x 16 Frontplatte ein neues Design mit einer neune Aufteilung der Wörter zu entwerfen. Leider musste dabei das "PROSIT NEUJAHR!" entfallen. Dafür enthält die unterste Zeile in der Mitte drei "***", die man z.B. zur Anzeige der Uhrensynchronisation etc. verwenden kann. Ich habe die Excel- und Access-Dateien im Wiki hochgeladen, hast Du sie Dir schon angesehen?
:
Bearbeitet durch User
Wie ich soeben festgestellt habe, birgt auch die 16x16 Version einen Fehler bezüglicher der Anzeige von "HALB". Die neue, überarbeitete Version werde ich im Lauf des heutigen Vormittags hochladen.
Torsten C. schrieb: > Ich knobel immer noch an [hour_offset]. :-( Bescheidene Frage: was ist daran so schwierig? Hast Du auch in Betracht gezogen, dass mir dabei eventuell ein Fehler unterlaufen sein könnte?
:
Bearbeitet durch User
Herbert P. schrieb: > @Joachim: > Mitte drei "***", die man z.B. zur Anzeige der Uhrensynchronisation etc. > verwenden kann. Klasse > Ich habe die Excel- und Access-Dateien im Wiki hochgeladen, hast Du sie > Dir schon angesehen? leider nein, war aber OK Herbert P. schrieb: > Die neue, überarbeitete > Version werde ich im Lauf des heutigen Vormittags hochladen. weil.....
Joachim B. schrieb: > Herbert P. schrieb: >> Die neue, überarbeitete >> Version werde ich im Lauf des heutigen Vormittags hochladen. > > weil..... ...ich draufgekommen bin, dass mir bei der 16x16 Version der gleiche Fehler unterlaufen ist wie bei der 18x16 Version: "HALB" war nur im oberen Teil vorhanden, nicht aber im unteren. Eine Anzeige der Form: "ES IST MM (MINUTEN) NACH HALB HH (UHR)" wäre nicht möglich gewesen. Ich bin daher grad dabei, das zu ergänzen. Übrigens gefällt mir die Buchstabenaufteilung bei der 16x16 Version besser als bei der 18x16 Version. Ich finde es optisch ansprechender, wenn die horizontalen Buchstabenabstände etwas größer sind. Aber das ist natürlich Geschmackssache.
Herbert P. schrieb: > Bescheidene Frage: was ist daran so schwierig? Ich hatte erst nur ein UIElement für die Stunde vorgesehen, nun müssen es zwei werden: - Stunde der echten Uhrzeit und - Stunde mit Offset. Außerdem war die Auswertung der Offset-Spalte beim "ersten Test" noch gar nicht im Programm drin. Das ist also kein technisches Problem. Das ist nur 'ne Zeifrage. Ich habe am Tag immer nur mal hier und da ein paar Minuten Zeit weiter dran zu basteln und muss halt in Summe ca. 60 Minuten Zeit dafür finden. > Hast Du auch in Betracht > gezogen, dass mir dabei eventuell ein Fehler unterlaufen sein könnte? Falls dann Fehler zu sehen sind, schaue ich natürlich in die Tabellen und sage Bescheid. (schon wieder sind 4 Minuten weg) ;-) PS: Jens K. schrieb: > Schwarze Farbe kann man aber > bestimmt wunderbar vom Glas runterbrennen. Bearbeitungsfläche ist aber > nur 18x18cm, dafür aber mit Galvos ^^ Sieht dann in etwa so aus: > > https://www.youtube.com/watch?v=8EnUgIURiVA > > nur keine China Maschine sondern ein ordentliches Teil von Foba mit 30W > Coherent Prisma-Laser g Da wir für das Teil fast nix bezahlt haben, > tut es dann auch eine kleine Spende für unsere Bastelkasse :)
:
Bearbeitet durch User
Torsten C. schrieb: > Jens K. schrieb: >> Schwarze Farbe kann man aber >> bestimmt wunderbar vom Glas runterbrennen. Bearbeitungsfläche ist aber >> nur 18x18cm, dafür aber mit Galvos ^^ Sieht dann in etwa so aus: Die Idee ist gut, an Stelle von Acrylglas echtes Glas zu nehmen, schwarz einzufärben und mit Laser die Schrift rauszubrennen. Könnte funktionieren... Das Problem ist halt die kleine Bearbeitungsfläche von 18x18cm (was sind übrigens "Galvos"?). Ich hab' hier auch privat jemanden an der Hand, der sowas macht wie auf dem Youtube-Video. Muss mal fragen, welche Größe der bearbeiten kann. Um Schriften aus Stahl rauszubrennen braucht man aber einen etwas stärkeren (CO2-)Laser, denke ich. Hat sich schon einmal jemand über die "FabLabs" bzw. "HappyLabs" schlau gemacht? Vielleicht gibts dort jemanden, den man für unser Projekt begeistern kann? http://de.wikipedia.org/wiki/FabLab http://wiki.happylab.at/w/Laser_Cutter
Herbert P. schrieb: > Um Schriften aus Stahl rauszubrennen braucht man aber > einen etwas stärkeren (CO2-)Laser, denke ich. Wir daben dafür den hier in der Nähe: http://www.donaris-lbw.de/ Material Format 3000x1500: Muss halt 'ne gewisse Anzahl zusammen kommen, dann könnte man ein Angebot anfragen.
Torsten C. schrieb: > Wir daben dafür den hier in der Nähe: > > http://www.donaris-lbw.de/ der ist natürlich schon ein techologisches Schwergewicht! Man könnte auch bei dem hier anfragen: http://www.schmitz-peter.de/Namensschild-mit-Strassennamen-und-Hausnummer-aus-2-mm-Corten-Stahl-gelasert.htm der ist auf Schilder spezialisiert, möglicherweise mit Einzelanfertigungen vertraut und möglicherweise billiger.
Herbert P. schrieb: > Hat sich schon einmal jemand über die "FabLabs" bzw. "HappyLabs" schlau > gemacht? Ich werde am 3.12. mal ein Bierchen in der "Euse" trinken. Als Student war ich da öfter. http://fablab-bs.de/ Das scheint zwar alles noch im Aufbau zu sein, aber vielleicht gibt es wenigstens brauchbare Infos und Tipps.
:
Bearbeitet durch User
Torsten C. schrieb: > Das scheint zwar alles noch im Aufbau zu sein, aber vielleicht gibt es > wenigstens brauchbare Infos und Tipps. Bis wir soweit sind, dass wir die Frontplatten brauchen, sind die auch schon soweit, dass sie welche machen können g
Herbert P. schrieb: > Torsten C. schrieb: >> Zum Film: >> a) Pro Variante ein Film? Oder > Ich würde für diese Variante plädieren, eine Version mit allen > Auswahlmöglichkeiten … würde zu lang werden … Ich würd's gern so machen: Jede Uhrzeit bleibt 3 Sekunden lang stehen. Mann muss ja genug Zeit zum visuellen erfassen und prüfen haben und ggf. rechtzeitig auf Pause drücken können. Jeder Film ist 3 Minuten lang. Es werden nicht alle möglichen Kombinationen abgespielt, sondern nur 60 Kombinationen:
Für jeden Modus (1..15) gibt es einen separaten Film. Bei 12h-Modi werden folgende Uhrzeiten ausgegeben: > 00:00, 01:01, 02:02, …, 12:12, 00:13, 01:14, 02:15, …, 07:59 Bei den beiden 24h-Modi werden folgende Uhrzeiten ausgegeben: > 00:00, 01:01, 02:02, …, 23:23, 00:24, 01:25, 02:26, …, 11:59 Im 12h-Modus gibt es also 13 verschiedene Stunden: 0..12. Einverstanden?
Die korrigierten Dateien für die 16x16 Matrix sind im Wiki hochgeladen.
Torsten C. schrieb: > Einverstanden? Einverstanden! Bitte beachte, dass bei den Regional-Modi mit "VIERTEL, VIERTEL VOR" bzw. "VIERTEL NACH, DREIVIERTEL" die Minuten teilweise als Countdown gezählt werden ("10, 9, 8 ... 1 MINUTE VOR/NACH HALB, ... VOR HH" etc...)
Herbert P. schrieb: > Torsten C. schrieb: >> Einverstanden? > Einverstanden! Gut, habe aber noch 'ne andere Idee. Was ist besser: Ein YouTube-Video oder ein Bilder-Set bei flickr.com? Die fest eingestellten 3 Sekunden pro Screenshot können ja auch nerven. > Bitte beachte, dass … die Minuten teilweise als Countdown > gezählt werden … Was soll ich da beachten? Das sollte doch alles in Deinen Tabellen drin sein. So, die DMU-Software sollte jetzt fertig sein. Bilder mit Auffälligkeiten schicke ich dann per E-Mail. "fertig" heißt: Film- und Einzel-Screenshot-Export sind fertig. Die Bitmaps für den digitalen Bilderrahmen und den C-Code-Generator muss ich noch ergänzen. Aber die Tabellen haben sicher auch noch Fehler. Die Bitmaps für den digitalen Bilderrahmen stelle ich am besten bei flickr.com ein, oder?
:
Bearbeitet durch User
Torsten C. schrieb: > Was soll ich da beachten? Das sollte doch alles in Deinen Tabellen > drin sein. Ich meinte damit, dass von den speziellen Zeitanzeigen, die "von der Norm abweichen", ausreichend Samples gezeigt werden sollten. Torsten C. schrieb: > Die Bitmaps für den digitalen Bilderrahmen stelle ich am besten bei > flickr.com ein, oder? Sicher eine gute Möglichkeit - vielleicht sogar übersichtlicher als in Youtube. Eine andere Möglichkeit wäre eine dynamische HTML-Page mit SQL-Server im Hintergrund.
Herbert P. schrieb: > dynamische HTML-Page mit SQL-Server Mach das. ;-) Eine Flash-Animation könnte man auch machen. Da ich mit VisualStudio arbeite, könnte ich allerdings einfacher Silverlight als Flash erzeugen. Aber in all das müsste ich mich erst einarbeiten. Ich bin schon froh, den Sprung von VB zu C# geschafft zu haben. ES_IST_HH_UHR_MM_(12) und ES_IST_HH_UHR_MM_(24) scheinen identisch zu sein, oder habe ich geschielt? Die Auffälligkeiten zu ES_IST_HH_UHR_MM_(12) bekommst Du gleich per Mail. Weitere Modi folgen. PS: Herbert P. schrieb: > vielleicht sogar übersichtlicher als in Youtube. Also die 60 Screenshots mit 00:00, 01:01, 02:02, … auch in flickr? PPS: Bei "ES IST HH UHR UND MM MINUTEN" sind die LEDs für "ES IST" nicht an. Ist das gewollt? Oder wollwn wir "ES IST" separat von den Modi ein- und ausschaltbar machen?
:
Bearbeitet durch User
Torsten C. schrieb: > ES_IST_HH_UHR_MM_(12) und ES_IST_HH_UHR_MM_(24) scheinen identisch zu > sein, oder habe ich geschielt? Hab soeben sowohl die tbl_modes als auch die tbl_hours noch einmal kontrolliert. Sollte eigentlich nicht sein. "ES_IST_HH_UHR_MM_(12)" verwendet den hour_mode 3 (12h), "ES_IST_HH_UHR_MM_(24)" den hour_mode 1 (24h) aus der tbl_hours. Torsten C. schrieb: > Die Auffälligkeiten zu ES_IST_HH_UHR_MM_(12) bekommst Du gleich per > Mail. Weitere Modi folgen. Oki thx! Torsten C. schrieb: > Also die 60 Screenshots mit 00:00, 01:01, 02:02, … auch in flickr? Wie es halt für Dich einfacher ist!
Torsten C. schrieb: > PPS: > Bei "ES IST HH UHR UND MM MINUTEN" sind die LEDs für "ES IST" nicht an. > Ist das gewollt? Oder wollwn wir "ES IST" separat von den Modi ein- und > ausschaltbar machen? Nein, das ist nicht gewollt, da muss ein fehler in den Tabellen sein. "ES IST" ausschaltbar zu machen, halte ich eigentlich für einen unnötigen Mehraufwand.
Herbert P. schrieb: >> PPS: >> Bei "ES IST HH UHR UND MM MINUTEN" sind die LEDs für "ES IST" nicht an. >> Ist das gewollt? Oder wollwn wir "ES IST" separat von den Modi ein- und >> ausschaltbar machen? Bei mir funktioniert das, ebenso die 24 Stunden-Anzeige bei ES_IST_HH_UHR_MM_(24). Ich hatte einen Fehler in der qry_hours Abfrage, aber die wird ja von Dir nicht verwendet, oder?
Ich muss für heute Schluss machen, Gute N8!
Herbert P. schrieb: > Sollte eigentlich nicht sein. "ES_IST_HH_UHR_MM_(12)" > verwendet den hour_mode 3 (12h), "ES_IST_HH_UHR_MM_(24)" den hour_mode 1 > (24h) aus der tbl_hours. Danke. Sorry. Ich hattte den Minuten-Index für die Stunden genommen. :-( Cut & Paste sollte man verbieten. ;-) Der Bug ist gefixed. Schickst Du mir korrigierte .accdb-Dateien per Mail? Heute und morgen habe ich Zeit und kann alle Modi testen. Herbert P. schrieb: > Bei mir funktioniert das Bei mir jetzt auch, war derselbe Bug. Sorry. Herbert P. schrieb: > muss ein fehler in den Tabellen sein Muss nicht. Ich mache halt auch Fehler, wie man sieht. :-( Herbert P. schrieb: > Ich muss für heute Schluss machen OK. Falls fehlerfreie Modi dabei sind, lade ich die inzwischen hoch. 1x flickr und 1x YT, beides mit Stoppuhr. Ich schätze, flickr geht schneller. VG Torsten C. ➜ Artikel WordClock24h PS: Hier das Bookmarklet für den Footer:
1 | javascript:(function()%20{document.getElementsByTagName('textarea')[0].value%20+=%20'\n\nVG%20Torsten%20C.%20%E2%9E%9C%20Thread-Artikel%20[[WordClock24h]]';})(); |
:
Bearbeitet durch User
Mal wieder AN ALLE, siehe Bild: Was meint Ihr? Bei vollen Stunden ist das "UHR" am Ende ja OK. Aber mittendrin? Was meint Ihr? Ich würde das "UHR" nur bei vollen Stunden anzeigen. Oder hatten wir das schon zu Ende diskutiert? VG Torsten C. ➜ Thread-Artikel WordClock24h
:
Bearbeitet durch User
Torsten C. schrieb: > Was > meint Ihr? Ich würde das "UHR" nur bei vollen Stunden anzeigen. jau, dafür
Hallo an alle, leider habe ich euch hier zu spät entdeckt :-). Hoffentlich kann ich noch mitbauen! Vielleicht kann ja irgendwie nützlich sein. In einem Beitrag habe ich was vom Zerschneiden der LED-Strips gelesen, das ist nicht nötig. Es gibt einzelne Mini-Platinen mit LED Treiber zum Selber- Bestücken. Wie auf dem Bild. (Hier ws2811, gemeinsame Anode). Ist wesentlich günstiger. Bei Ebay erhältlich. Ich habe aber auch noch ein paar übrig mit passenden RGB-LEDs. Die Matrix kann man dann auf selbstklebenden Kupferband-Streifen aufbauen. Desweiteren kann ich euch mit sehr professionellen Fronten aushelfen, die nach eurer Vorlage gefertigt werden. Keine Folie und keine Fräse, jede Schrift ist möglich. 100% lichtdicht, wo es so sein soll! Der Preis richtet sich nach der Menge! Morgen stelle ich mal ein Beispiel-Bild rein. Bei interesse einfach sagen. Gruß Sergej
Hallo Sergej, herzlich willkommen in unserer Thread-Community. ☺ Sergej Wind schrieb: > leider habe ich euch hier zu spät entdeckt Spät aber nicht zu spät ☺. Es war mal von 100 Nachbauern die Rede, da sind wir noch lange nicht! Deswegen poche ich übrigens immer auf "effizient" und "preiswert". > Es gibt einzelne Mini-Platinen mit LED Treiber zum > Selber- Bestücken. Wie auf dem Bild. Die gibt es auch fertig als "Lichterkette" mit 5mm-LEDs. Such mal nach "LED Pixel" bei Aliexpress. > Die Matrix kann man dann auf > selbstklebenden Kupferband-Streifen aufbauen. Oder man steckt die LEDs der Lichterkette durch 5mm-Löcher in einer Kunstoff- oder Holzplatte. So machen das die meisten Leute. > Desweiteren kann ich euch mit sehr professionellen Fronten aushelfen, > die nach eurer Vorlage gefertigt werden. Keine Folie und keine Fräse, > jede Schrift ist möglich. 100% lichtdicht, wo es so sein soll! Das klingt interessant. Erzähl mehr! Das ist unsere größte Baustelle! > Morgen stelle ich mal ein Beispiel-Bild rein. Ich warte ... ;-) VG Torsten C. ➜ Thread-Artikel WordClock24h
:
Bearbeitet durch User
Sergej Wind schrieb: > In einem Beitrag habe ich was vom Zerschneiden der LED-Strips gelesen, > das ist nicht nötig. Es gibt einzelne Mini-Platinen mit LED Treiber zum > Selber- Bestücken. Wie auf dem Bild. (Hier ws2811, gemeinsame Anode). > Ist wesentlich günstiger. vielen Dank, aber das ist mir noch unverständlich, wozu einzelne Platinen wenn ich die Stripes als 5m fertig bekomme und nur 16er oder 18er zurechtschneiden muss um 16 x 16 oder 18 x 16 mit variablen Zeilenabständen zu erzeugen? > Desweiteren kann ich euch mit sehr professionellen Fronten aushelfen, > die nach eurer Vorlage gefertigt werden. Keine Folie und keine Fräse, > jede Schrift ist möglich. 100% lichtdicht, wo es so sein soll! OK da bleiben wir dran
Ich hoffe, der neue Beitrag "WortUhr/WordClock: Minutengenau, 24h, RGB – Für Neu-Einsteiger" ist im Sinne Aller. Joachim B. schrieb: > das ist mir noch unverständlich, wozu einzelne > Platinen wenn ich die Stripes als 5m fertig bekomme Die unsägliche Diskussion um "LEDs pro Meter" ist noch nicht zuende. Hier bist Du flexibel! 48 LEDs pro Meter? Kein Problem! 46,3mm? Auch kein Problem! Waben-Struktur statt Matrix? Einfach andere Bohrlöcher! Und wie gesagt: Einzelne LEDs brauchst Du nicht kaufen, die gibt es als Lichterkette. PS: Frage zu "Mit dem STM32F4-Discovery-Board hätte man für wenig Geld (ca. 17 EUR) ein leistungsfähiges System. Es wird aber auch noch nach kleineren Alternativen (wie zum Beispiel STM32F103C8T6) gesucht..." Was spricht gegen ein "STM32 Nucleo" als Basis-Empfehlung? VG Torsten C. ➜ Für Neu-Eisteiger gibt es den Beitrag "WortUhr/WordClock: Minutengenau, 24h, RGB – Für Neu-Einsteiger"
:
Bearbeitet durch User
Torsten C. schrieb: > Die unsägliche Diskussion um "LEDs pro Meter" ist noch nicht zuende. > Hier bist Du flexibel! 48 LEDs pro Meter? Kein Problem! 46,3mm? Auch > kein Problem! Waben-Struktur statt Matrix? Einfach andere Bohrlöcher! wozu diese gezeigte Platine? (wegen dem aufgelöteten Controller für RGB) ws2812b LEDs mit integriertem Controller gibt es als SMD oder bedrahtet. wenn Platine dann für diese vorher genannten, RGB LED kaufen um diese Platine mit dem aufgelöteten Controller zu bestücken oder verdrahten verstehe ich nicht, RGB LED + Platine mit Controller kann nur teurer werden.
Torsten C. schrieb: > Frage zu "Mit dem STM32F4-Discovery-Board hätte man für wenig Geld > (ca. 17 EUR) ein leistungsfähiges System. Es wird aber auch noch nach > kleineren Alternativen (wie zum Beispiel STM32F103C8T6) gesucht..." ich habe mal den wiki ergänzt: oder Arduino/Atmel als 1284p jar hat erst mal 6 Platinen bestellt andere Möglichkeit oder kleiner als mega328p Arduino-PRO-MINI-ATMEGA328 brauchen Programmieradapter oder ohne Programmieradapter ich hoffe ist OK für dich.
Joachim B. schrieb: > RGB LED kaufen um diese Platine mit dem aufgelöteten Controller zu > bestücken oder verdrahten verstehe ich nicht Da gibt es auch nichts zu verstehen. Die LEDs gibt es mit eingebautem Controller einzeln oder (wie nun schon zum dritten!!! Mal geschrieben) die Platinen-Version als fertige Lichterkette. Diese unverdrahtete Platine ist m.E Quatsch! Zu der LED-Version mit eingebautem Controller gibt es z. B. den Beitrag ""Sammelbestellung" für 8mm RGB LEDs mit WS2811 chip" Muster habe ich hier in der Bastelkiste. Und für die, die nicht nach "LED PIXEL" googeln wollen, habe ich auch noch einen Link für die Lichterkette-Version: ➜ http://www.aliexpress.com/item/-/32240969873.html Torsten C. schrieb: > durch 5mm-Löcher OK, sorry, 8mm-Löcher! VG Torsten C. ➜ Für Neu-Eisteiger gibt es den Beitrag "WortUhr/WordClock: Minutengenau, 24h, RGB – Für Neu-Einsteiger"
:
Bearbeitet durch User
Torsten C. schrieb: > OK. Falls fehlerfreie Modi dabei sind, lade ich die inzwischen hoch https://www.flickr.com/search/?tags=4a157715efad45ae91fa5d17915155c8 Das ist Mode 3: ES IST HH UHR UND MM MINUTEN (12) Allerdings geht bei flickr.com offenbar die Reihenfolge flöten. :-( Also doch YouTube? VG Torsten C. ➜ Für Neu-Eisteiger gibt es den Beitrag "WortUhr/WordClock: Minutengenau, 24h, RGB – Für Neu-Einsteiger"
:
Bearbeitet durch User
Sergej Wind schrieb: > Hallo an alle, > > leider habe ich euch hier zu spät entdeckt :-). Hoffentlich kann ich > noch mitbauen! > > Vielleicht kann ja irgendwie nützlich sein. Hallo Sergej! Herzlich willkommen im Club! Es gibt genug Arbeit für alle, und speziell beim Thema Frontplatten-Fertigung sind wir noch nicht sehr weit gekommen.
Torsten C. schrieb: > VG Torsten C. ➜ Für Neu-Eisteiger gibt es den > Beitrag "WortUhr/WordClock: Minutengenau, 24h, RGB – Für Neu-Einsteiger" Danke, Torsten - halte ich für eine gute Idee!
Torsten C. schrieb: > > Da gibt es auch nichts zu verstehen. Die LEDs gibt es mit eingebautem > Controller einzeln oder (wie nun schon zum dritten!!! Mal geschrieben) > die Platinen-Version als fertige Lichterkette. Diese unverdrahtete > Platine ist m.E Quatsch! Es ist natürlich ein größerer Aufwand, die Platinen zu verdrahten, dafür kann man die Abstände beliebig variiren. Ich habe die Platinen für etwas anderes gebraucht (Light Topography von Jim Campbell bei Youtube ansehen). Einen Preisvorteil könnten die Dinger dennoch haben: für 100 Stück habe ich 15€ incl. Versand gezahlt. Die passenden LEDs für 0,04€ pro Stück. Ganz günstig kann man die Uhr bauen, wenn man auf RGB-LEDs verzichtet und auf einfarbige SMD 5050 Chip-LEDs zurückgreift. So habe ich meine Uhr gebaut. Diese LEDs dann auf Kupferbahnen-Matrix löten. Erspart auch das Bohren. (http://www.ebay.de/itm/251009248347?_trksid=p2059210.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT5050LED) Braucht aber auch eine andere Hard- und Softwarelösung. Zu den Fronten: Acrylglas mit polerten Kanten, für den Rahmenlosen Aufbau geeignet. Größe bis 50x50cm (geht auch 60x60, wird aber wesentlich teuerer) Die Platte auf dem Bild ist 50x50, der Preis bewegt sich auch um die 50€ :-). Original-Design kann aber nicht gefertigt werden, nur für Eigenbedarf! Herstellung nach eurer Vektor-Grafik Vorlage! PS.: es sind auch andere Farben möglich!
Falls jemand doch mit der einfarbigen Version der Uhr zufrieden ist, kann er auf einen fertigen LED-Matrix Treiber zurückgreifen. (http://www.elmotex.de/bausaetze--module/bausatz-led-matrix-treiber---nachbau-v03.php) Preis: ca.35€ Die wortuhr-begeisterten Jungs haben da schon gut vorgearbeitet. Es ist alles drauf, was man braucht: Echtzeituhr, Microcontroller, Anschluß für den DCF-77 Empfänger. Man braucht nur noch einen FTDI-Adapter zum Programmieren.(http://www.digitalsmarties.net/products/usb-bub) Meine Uhr ist damit gemacht! Der Schaltplan ist auf dem Bild!
Die Software (Arduino-basiert, keine RGB-LEDs) gibt es für die normale Variante natürlich auch. Die könnte man einfach auf die neue 16x16 Matrix anpassen! Bei Interesse kann ich die euch mailen!
Torsten C. schrieb: > VG Torsten C. ➜ Für Neu-Eisteiger gibt es den > Beitrag "WortUhr/WordClock: Minutengenau, 24h, RGB – Für Neu-Einsteiger" Danke, Torsten - halte ich für eine gute Idee! Sergej Wind schrieb: > Die Software (Arduino-basiert, keine RGB-LEDs) gibt es für die normale > Variante natürlich auch. Die könnte man einfach auf die neue 16x16 > Matrix anpassen! Das wäre natürlich nicht uninteressant - als einfärbige Ergänzung unsere bisherigen Programms....
@torsten: Die Fehler, die Du mir gemailt hast, habe ich korrigiert. Mir ist aber bei Deinen Flickr-Fotos aufgefallen, dass in der 12.Zeile ("NEUNUNDZEHNZWANZIG") bei "NEUNUND..." das "UND" am "NEUN" dranklebt - und das ist nicht sehr schön:-( Ich habe hin- und her- überlegt, wie ich das ändern könnte. Die einzige Möglichkeit, die mir bisher einfiel, um den erforderlichen Platz zu SCHAFFEN, wäre, das "MITTERNACHT" in der Mitte zu opfern (das meines Erachtens ohnehin wenig bis gar nicht benötigt wird). Einverstanden?
Frage zur Wärmeentwicklung der LEDs: Wie warm (heiß) werden die WS2812 RGB-LEDs eigentlich? Ist es zweckmäßig, sie zur Hitzeableitung z.B. auf ein Alublech zu montieren?
Frage zu den Formulierungen der Zeitanzeige: sind folgende Formen erwünscht bzw. erforderlich: "ES WIRD IN MM MINUTEN HH UHR" ES IST MM MINUTEN AUF HH"
Folgende Formen kommen mir ebenfalls etwas speziell vor und es stellt sich die Frage, ob sie Berücksichtigung finden sollen: ES SIND MM MINUTEN BIS HH ES SIND MM MINUTEN AUF HH ES WIRD IN MM MINUTEN HH UHR Werden diese Anzeigeformen von irgend jemandem gewünscht?
Herbert P. schrieb: > Folgende Formen kommen mir ebenfalls etwas speziell vor und es stellt > sich die Frage, ob sie Berücksichtigung finden sollen: > > ES SIND MM MINUTEN BIS HH > > ES SIND MM MINUTEN AUF HH > > ES WIRD IN MM MINUTEN HH UHR Problem gelöst. Es geht sich mit der 18 x 16 Matrix aus und wird platzmäßig möglich sein.
Sergej Wind schrieb: > Ganz günstig kann man die Uhr bauen, wenn man auf RGB-LEDs verzichtet > und auf einfarbige SMD 5050 Chip-LEDs zurückgreift. So habe ich meine > Uhr gebaut. Diese LEDs dann auf Kupferbahnen-Matrix löten. Ach so! Die Kupferbahnen bezogen sich auf einfarbig! Der Groschen ist gefallen. Gibt es solche Kupferbahnen als "Klebeband" zu kaufen? Oder was benutzt man da? Herbert P. schrieb: > Folgende Formen kommen mir ebenfalls etwas speziell vor und es stellt > sich die Frage, ob sie Berücksichtigung finden sollen Auch wenn das Problem inzwischen gelöst ist, vielleicht is es bei 16x16 noch ein Problem: Wollte die jemand? Ich nicht. Herbert P. schrieb: > Wie warm (heiß) werden die WS2812 RGB-LEDs eigentlich? Ist es > zweckmäßig, sie zur Hitzeableitung z.B. auf ein Alublech zu montieren? Fürs Wohnzimmer und in einer Farbe mit 100% Leuchtkraft werden die nicht sehr warm. Bei drei Farben á 33% auch nicht. Außerdem sind ja meistens nicht alle LEDs an, sondern nur einzelne Wörter. Auf diesen Strom könnte man auch das Netzteil auslegen. Natürlich gibt's dann den "Killer poke". Wenn das Netzteil 288 x 60mA = 17A kann, dann könnte man auch alle 288 LEDs auf 100% weiß stellen, dann muß da 'ne Alu-Platte drunter. Herbert P. schrieb: > ... und das ist nicht sehr schön:-( Um sowas festzustellen ist das DMU ja da. Vielleicht fällt ja noch mehr auf. Schade, dass MITTERNACHT weg ist, aber das sieht eh kaum einer, da wird in der Regel geschlafen. ;-) Ich hoffe, mein "Footer" nervt nicht und ist im Forum erlaubt. Ich habe keine Regeln gefunden, wo Footer verboten sind. VG Torsten C. ➜ Für Neu-Eisteiger gibt es den Beitrag "WortUhr/WordClock: Minutengenau, 24h, RGB – Für Neu-Einsteiger"
:
Bearbeitet durch User
Herbert P. schrieb: > Problem gelöst. Wenn es 'ne neue .accdb gibt, sag bitte Bescheid. Du kannst sie mir auch per Mail schicken, falls ich sie zunächst im DMU "durchlaufen" lassen soll, bevor Du sie online stellst.
Torsten C. schrieb: > Ach so! Die Kupferbahnen bezogen sich auf einfarbig! Der Groschen ist > gefallen. Gibt es solche Kupferbahnen als "Klebeband" zu kaufen? Oder > was benutzt man da? Ja, gibt's zu kaufen: http://www.ebay.de/itm/5mm-Rolle-Selbstklebend-Kupfer-Klebeband-Kupferband-Kupferfolie-Band-30-Meter-/141449036885?pt=LH_DefaultDomain_77&hash=item20ef050455
Torsten C. schrieb: > > Auch wenn das Problem inzwischen gelöst ist, vielleicht is es bei 16x16 > noch ein Problem: Wollte die jemand? Ich nicht. 16x16 würde mir reichen, da wesentlich weniger Aufwand. Dafür ist ja quasi schon alles fertig. Aber wir haben ja zum Glück unterschiedliche Geschmäcker!
Herbert P. schrieb: > Wie es halt für Dich einfacher ist! YouTube ist für mich einfacher als flickr. Mode 4 mit Daten vom 27. Nov 21:58: https://www.youtube.com/watch?v=rjBsismDwC4 Aber die Daten sind ja auch schon wieder alt, oder?
Sergej Wind schrieb: > 16x16 würde mir reichen, da wesentlich weniger Aufwand. Dafür ist ja > quasi schon alles fertig. Ach?! Es gibt einen Konsens zu der 16x16 Buchstaben-Matrix und in allen Varianten sind keine Fehler mehr drin? Im DMU habe ich die jedenfalls noch nicht laufen lassen.
So riesig werden die Arrays zwar nicht, aber brauchen wir unterschiedliche Arrays für "mit" und "ohne" das Wort MINUTEN? Das Wort MINUTEN kann man doch per SW separat auschalten, wenn man das nicht möchte, oder? Dann reichen die Arrays mit MINUTEN. Im Mode 12 ist der Minuten-Modus m.E. falsch und im Minuten-Modus 8 fehlt der [hour_offset]. Wenn ich Fehler korrigieren und Tabellen hochladen soll, sage Bescheid. Aber es macht keinen Sinn, wenn wir parallel ändern und unsere Änderungen gegenseitig überschreiben. Ich habe noch einige weitere einzelne Fehler gesehen. Aber ein neuer "Film" macht ohne die o.g. Korrektueren keinen Sinn.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.