• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Magnetbake / Reaktivlicht mit 5x7 DotMatrix LED & AtTiny261A

chrysophylax

Geomaster
Nachdem hier gerade der Winter nochmal so richtig tobt hab ich die Gelegenheit genutzt, und ein schon länger vor sich hindümpelndes Projekt mal halbwegs gedeckelt. Ich hab ja bei den 16Segmenten schon verkündet, dass ich die irgendwie nicht ganz so erotisch finde - und wenn überhaupt dann als Luxus-Variante der LED-Koordinatenanzeige gleich 5x7 DotMatrix nehmen würde.

Nunja, das hab ich dann auch mal getan. Damit sich das Platinen-Machen auch lohnt hab ich dann mal Rücksicht auf die Atmel-Anhängerschaft genommen und auf Basis von Teilen, die bei Reichelt zusammen weniger als 5€ kosten eine Schaltung zusammengeworfen, einen Prototypen auf Lochraster aufgebaut, und schonmal probehalber ein Layout auf eine Platine geworfen um zu schauen, dass das Ganze auch in Standard-Gehäuse (sprich: 12cm Petlinge) passt.

Die Stückliste ist relativ übersichtlich und wird wohl in Kürze zusammen mit der Komplettdoku wie üblich auf meiner Heimatseite zu finden sein:
Stückliste schrieb:
1x AtTiny261A
1x TA07
1x MK6-7-B
7x 100R
5x 2k2
1x 10k
5x BC327/BC817
fertig. Der Tiny24 hatte diesesmal zu wenige Portpins, der Tiny2313 hat keinen AD-Wandler (nötig für die bereits vorgesehene, aber noch nicht in Software implementierte Variante als Reaktivlicht), und die Megas waren mir zu protzig. Mehr Understatement bitte.

Im Prozessor ist jetzt auch endlich mal (durch das mit Punktmatrix-Werten für 128 Zeichen relativ groß geratene Character-ROM) ein bißchen Inhalt drin. Die Software ist eine Erweiterung meiner Magnetbaken-Software auf das nötige 5spaltige multiplexen, alle dort bekannten Features (per Jumper deaktivierbarer Lebenszeichen-Blitz, Ausgabe Auslösungszähler in Hex) sind dementsprechend drin geblieben. Zusätzlich sind noch ein paar neue Features dazugekommen:
- Die DotMatrix-Bake kann ihre Texte über ein Konfigurationsbit auch automatisch "auf dem Kopf stehend" ausgeben - irgendwie hat ja jeder Mensch andere Vorlieben, wie rum er einen Petling montiert. Die entsprechende Mathematik zum Bits-umsortieren ist im Programm schon drin, so dass da für den Anwender kein Aufwand entsteht.
- Die Ansteuerung der Zeilen- und Spalten kann über 2 Konfigurationsbits auf jede beliebige der 4 möglichen Konfigurationen von Low- oder High-aktiv gewählt werden, je nachdem ob und wieviele externe Treiberstufen vorhanden sind und ob Anzeigen mit gemeinsamer Anode oder gemeinsamer Kathode genutzt werden. "Ursprünglich" wollte ich das hardcodiert auf genau meine Schaltungsvariante machen, aber dann kam mir irgendwann letztes Wochenende die Idee, wie unglaublich retro-kultig so eine DotMatrix-Anzeige wohl aussehen würde, wenn man statt der LEDs richtige Glühbirnchen in Sockeln auf einem Brett nimmt. Und da man dafür dann definitiv sowohl Spalten- als auch Zeilentreiber braucht, um den Strom zusammenzubekommen, hab ich deren Polarität mal komplett konfigurierbar gemacht.

Alles Flash, das nicht für Character ROM und Programm benutzt wird, steht automatisch für Ausgabetext zur Verfügung. Meine Test-Nachricht hat im Moment 8 Byte Länge, der Assembler wirft nach endgültigem Zusammenbau dann folgende Statistik aus:

Code:
ATtiny261 memory use summary (bytes):
Segment   Begin    End      Code   Data   Used    Size   Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x000594    726    702   1428    2048  69.7%
[.dseg] 0x000060 0x000060      0      0      0     128   0.0%
[.eseg] 0x000000 0x000000      0      0      0     128   0.0%
Assembly complete, 0 errors. 0 warnings
, d.h. im Moment ist die maximal unterstützte Textlänge beim Tiny261A 628 Bytes. (2048Bytes Gesamt - (1428 Bytes used - 8 Bytes Demotext) = 628 Zeichen. Sollte für die meisten Nachrichtenlängen ausreichen, wenn nicht ist die Software aufwärtskompatibel und mit Änderung einer einzelnen Zeile werden dann daraus 628+2048=2676 Zeichen für einen AtTiny461A oder gar 628+2048+4096=6772 Zeichen beim AtTiny861A. Aber ich glaube, so lange Romane möchte kein Dosensucher lesen und keine Batterie speisen.

Die Software wird es wie immer in Dot-Deeh-Double-Youh-Style Assembler unter CC-BY-NC-SA geben, d.h. wer möchte kann diese beliebig nichtkommerziell nutzen und sich eigene Texte zusammenkonfigurieren. So sieht dann der Teil aus, in dem der Anwender nach belieben rumkonfigurieren kann:
Code:
;*****************************************************************************
;*****************************************************************************
;*                           Auszugebende Nachricht                          *
;*****************************************************************************
;*****************************************************************************
BOTBEG:							; Anfang auszugebende Nachricht
;*****************************************************************************
#ifndef	GENATDW					; Nachricht nur im Normalbetrieb einbauen
;*****************************************************************************
.equ FLCONF = 0b11000000        ; Konfigurationsbyte Flash
;               |||||||+--------- Bit0: reserviert, bitte 0 lassen
;               ||||||+---------- Bit1: reserviert, bitte 0 lassen
;               |||||+----------- Bit2: reserviert, bitte 0 lassen
;               ||||+------------ Bit3: reserviert, bitte 0 lassen
;               |||+------------- Bit4: reserviert, bitte 0 lassen
;               ||+-------------- Bit5: UPSDWN, Zeichenausgabe "auf dem Kopf"
;               |+--------------- Bit6: COLINV, Spaltenansteuerung invertiert
;               +---------------- Bit7: ROWINV, Zeilenansteuerung invertiert

.equ ADAUER = 80				   ; Anzeigedauer jedes Zeichens x10ms,
								       ; Beispiel: 80 = 800ms Anzeigedauer
.equ PDAUER = 5                ; Pausenzeit nach jedem Zeichen x10ms,
                               ; Beispiel: 5 = 50ms Pausenzeit
	.db FLCONF, 0               ; Konfigurationswort im Flash ablegen
	.db ADAUER, PDAUER          ; Anzeigedauer, Pausendauer im Flash ablegen
	.dw ((BOTEND-BOTBEG-3)<<1)  ; Länge des Strings im Flash ablegen
							

                                ; Hier folgt der eigentliche Ausgabe-Text:
	.db "Hallo finde N48",SYM_DEG," 51.493 E002",SYM_DEG," 17.670 und H=324m."	

;*****************************************************************************
BOTEND:							; Ende von Ausgabestring
;*****************************************************************************

Vermutlich könnte man sogar noch 5 Widerstände und 5 Transistoren für die Spaltentreiber einsparen wenn man nicht die Standard-Reichelt-Variante der Anzeige nimmt, sondern die erheblich stromsparender gezüchteten Versionen in hyper-rot und hyper-orange - leider hat Reichelt diese nicht. Ich hab mir je eine Handvoll von den Teilen bei Händlern, die nur an Gewerbe liefern organisiert - die sind wirklich schweinshell. Bei 20-30mA Stromaufnahme je nach angezeigtem Zeichen während die Anzeige läuft denkt man mit denen es brennt einem gleich die Augen aus.... Bestimmt gibt es auch irgendwelche schwindligen Krauter, die die Teile haben und auch an Hobbyisten liefern. Nur für die Menschen, die dann ähnliches Ergebnis mit völlig minimalistischer Hardware selbst auf Lochraster aufbauen wollen. Ich rate eher davon ab, weil 5 Widerstände und 5 Transistoren wirklich nichts kosten, aber ich möchte auch außer meinem eigenen Prototypen glaub ich keine Exemplare dieser Schaltung mehr auf Lochraster aufbauen ;). Der Ruhestrom der Schaltung dürfte nur minimal größer sein als bei der klassischen 7Segment-Magnetbake, ich schätze mal ich komme ohne Lebenszeichen-Blitz unter 1µA und werde mit Lebenszeichen-Blitz immer noch einstellig im µA-Bereich bleiben. Werde ich die Tage nochmal nachmessen....

Anbei noch ein paar Bilder als Serviervorschlag und 2 Videos bei Duröhre:
Prototyp an Logic-Analyzer,
Prototyp mit Testnachricht.
Man verzeihe mir die gruselige Bildqualität - mein Taschenknips macht tolle Pfotos, aber nur relativ schlechte bzw. kurze Videos.

chrysophylax.
 

Anhänge

  • W6L5V1_pre.PNG
    W6L5V1_pre.PNG
    69,6 KB · Aufrufe: 4.914
  • W006Z001V001_LR_Oben.JPG
    W006Z001V001_LR_Oben.JPG
    105,7 KB · Aufrufe: 4.914
  • W006Z001V001_LR_Unten.JPG
    W006Z001V001_LR_Unten.JPG
    152,5 KB · Aufrufe: 4.914
OP
chrysophylax

chrysophylax

Geomaster
Einer der Gründe, warum ich Prototypen so gerne in RIESENGROß auf Lochraster aufbaue ist der, dass man nur dann vernünftig mit den (dann doch wieder erstaunlich fuddeligen) Klemmen vom Logic-Analyzer drankommt ;)

chrysophylax.
 

Anhänge

  • W006Z001V001_Oszi.JPG
    W006Z001V001_Oszi.JPG
    115,6 KB · Aufrufe: 4.907

Starglider

Geoguru
Würde es nicht viel geiler aussehen wenn die Buchstaben nicht nacheinander angezeigt würden sondern Punktweise durch das Display scrollen würden?
Das wäre auch besser lesbar, insbesondere wenn doppelte Buchstaben und Ziffern auftreten.

(uiuiui, ich glaube moenk spielt gerade an der Konfiguration des Forums herum)
 
OP
chrysophylax

chrysophylax

Geomaster
Für doppelte Buchstaben und Ziffern gibt es die 50ms Pause zwischen den Zeichen - die allerdings in den Videos so gar nicht rüberkommt. Fiel mir bei der 7Segment-Variante schon auf, die ist auch "in echt" erheblich deutlicher als "in Duröhre".

Ansonsten ist die Idee des weichen scrollens durchaus knuddelig, aber in der aktuellen Programmstruktur... nur mit erheblichem Aufwand umsetzbar. Andererseits: Dann hätte ich wenigstens mal einen Grund, die Unmengen RAM zu benutzen (die bisher völlig brach vor sich hindümpeln und nur 1-2 Ebenen tief für Stack genutzt werden) um einen hübschen Puffer mit drübergleitendem Anzeigefenster zu bauen. Wenn mir irgendwann mal furchtbar langweilig sein sollte, denk ich drüber nach. Es steht natürlich Jedem frei, selbst was hübsches auf Basis dieser Schaltung undoder Idee zu programmieren...

Erstmal die Tage fertigdokumentieren und zum Download bereitstellen.

chrysophylax.
 

Bussard

Geocacher
Das kann sich ja wirklich sehen lassen, vor allem die wahlweise fuß- oder kopfstehende Ausgabe gefällt mir sehr. Mit der Textlänge stimme ich auch mit Dir überein, weniger ist mehr, ansonsten sollte man ein eBook verstecken ;-).
Wenn jetzt noch ein paar Tage Schnee liegt, bringst Du dem Teil sicher noch 3D bei?

Heute Nachmittag dachte ich schon, ich wäre blau, aber jetzt sind wir ja wieder im grünen Forum.
Gruß Bussard
 
OP
chrysophylax

chrysophylax

Geomaster
Oh, ich glaube 3D wird dann doch etwas schwierig. Aber es gibt noch genügend zu dokumentieren, und wenn mich wider Erwarten der Hafer sticht dann grübel ich eher früher als später über das weiche Scrollen nach.

Der potentielle Charme lässt mich irgendwie nicht mehr los und ich puzzele in der hintersten Ecke des Hirns schon an Lösungsstrategien... Wobei da natürlich die Option "AufDemKopf"-Ausgabe zum echten Knieschuss wird, weil ich einmal rechtsrum und einmal linksrum mein Fenster über das Ausgabearray schieben muss, und das natürlich richtig Code frisst. Ich bin doch so geizig...

chrysophylax.
 

Bussard

Geocacher
Speicher und Pins sparen ist halt das Ausleben einer speziellen Programmierphilosophie, vor seeehr langer Zeit hatte ich mal bei einen durch viele Studentengenerationen optimierten ASM-Code eines Sortieralgorithmus (nicht Bubblesort) nochmal ein wenig verkleinert, was mir 'ne gute Note und den Zorn des Profs einbrachte, weil der "seinen" Code in seinem Standardwerk als das Nonplusultra anpries.
Heute habe ich solchen Ehrgeiz nicht mehr, und preislich (Mega88A für 1.50€) und vom Lernaufwand lohnt es sich für mich eher, mich auf nur wenige Attinys zu beschränken. Aber ich kann mich an den Spaß des Bytesparens noch gut erinnern :)
Also, weiterschneien und weiter machen ...

Gruß Bussard
 
OP
chrysophylax

chrysophylax

Geomaster
Naja, der Ehrgeiz ist ja nicht nur des Ehrgeizes wegen - sondern auch, weil das was ich so verbreite natürlich auch als "Arbeitsbeispiel: So entwickele, programmiere und dokumentiere ich" für potentielle Kunden dient. Man hat ja immer das Problem, dass man Interessenten für die eigenen Dienstleistungen schlecht etwas zeigen kann, was man für andere Leute entwickelt hat (Betriebsgeheimnis und so).

Natürlich sind Reichelt-Preise keine exakten Vergleichswerte für das, was ein "echter" Distri bei Stückzahlen >1k so gibt, aber üblicherweise ein recht guter Anhalt. Und wenn ich mir überlege, irgendeinem Möchtegern-Betriebswirt locker aus der Hüfte erklären zu können, dass ich im Gegensatz zum üblichen Nifo aus dem Mikrodilettantencontroller.net (niemand möchte den Podcast beleidigen) durch Einsatz von Hirn mit einem 1,15€-Prozessor (Tiny261A@Reichelt] statt einem 2,15€-Prozessor (Mega88A@Reichelt) auskomme und noch reichlich Platz habe, dann ist das schon ein gewisser.... Vorteil bei der Selbstvermarktung.

Natürlich ist mir klar, dass der Aufwand für reine Hobbyisten in keinem Verhältnis zum nötigen Zeitaufwand für Schaltung, Layout, Doku und Programmierung steht - aber bei mir ist es halt ein bißchen mehr als "nur" Hobby. Oder doch einfach nur Ehrgeiz. Oder beides.

chrysophylax.
 

Kappler

Geowizard
Also wenn schon Ehrgeiz und weiches scrollen, dann doch über mehrere Dot-Matrix-Bausteine und mit Schieberegistern zum Ports sparen :D.
Dann könnte man auch ganze Laufschriften in Plexiglasröhrchen über die Wälder verteilen.

Aber ich fürchte, ich übertreibe wieder etwas... :irre:
 
OP
chrysophylax

chrysophylax

Geomaster
Warum habe ich gerade das Gefühl, ich hätte meinen kleinen Finger ins Wasser gehalten und finde mich wieder mit meinem Arm bis zur Schulter im Schlund des großen weißen Hais ? ;)

chrysophylax.de
 
OP
chrysophylax

chrysophylax

Geomaster
Du hältst einen Magnet an das Gerät und es löst aus. Wie Reaktivlicht, nur mit Magnet statt Taschenlampe. Ich gebe zu, dass ich keine Reaktivlichter mag - sowohl aufgrund der generellen "Nachtdosenproblematik", als auch weil Magnetbaken so Dinge wie Fehlauslösungen etc. einfach nicht kennen. Die sind einfach dankbarer. Im Zweifelsfalle mal die beiden Videos ansehen, dann bekommst du einen Eindruck, wie das Ganze funktioniert.

Bin übrigens heute morgen mal wieder an meinem "Stromverbrauchs-Messelko" vorbeigekommen und habe mal meinen Prototypen nachgemessen:

8µA Ruhestrom mit Lebenszeichen-Blitz alle 16s,
150nA Ruhestrom ohne Lebenszeichen-Blitz.

Ich glaube, das kann ich so in Soft- und Hardware auf die Menschheit loslassen. Der Ruhestrom mit Lebenszeichen ist plausibel etwas höher als bei der 7Segment-Variante, ein bisschen ist da auch noch zu holen, ich weiß nur nicht, ob ich dazu auch Lust habe ;). Die 8µA liegen glaub ich so ungefähr in der Gegend von dem, was die Standard-Basis-Koma-Software ohne Lebenszeichen braucht, da muss ich nicht noch mehr rausquetschen. Wer stromsparen will, soll auf den Lebenszeichen-Blitz verzichten, auch wenn ich den für gewöhnlich als höchst angenehm empfinde.

chrysophylax.
 

Kappler

Geowizard
chrysophylax schrieb:
Warum habe ich gerade das Gefühl, ich hätte meinen kleinen Finger ins Wasser gehalten und finde mich wieder mit meinem Arm bis zur Schulter im Schlund des großen weißen Hais ?...
Weil du hier in der Grünen Hölle bist... :devil2:
Da darf nichts anderes erwartet werden :D
 

Starglider

Geoguru
chrysophylax schrieb:
dann grübel ich eher früher als später über das weiche Scrollen nach.

Der potentielle Charme lässt mich irgendwie nicht mehr los und ich puzzele in der hintersten Ecke des Hirns schon an Lösungsstrategien... Wobei da natürlich die Option "AufDemKopf"-Ausgabe zum echten Knieschuss wird, weil ich einmal rechtsrum und einmal linksrum mein Fenster über das Ausgabearray schieben muss,
Das musst du eigentlich nicht.

Für die Über-Kopf-Darstellung muss nur die Routine die die LEDs ansteuert die Reihenfolge umkehren in der sie angesteuert werden (sowohl vertikal als auch horizontal), alles andere kann dann auch beim weichen Scrollen gleich bleiben.

Die Softscroll-Variante braucht übrigens auch nicht viel Ram:
12 Bytes reichen für einen Bildpuffer der zwei Zeichen und zwei Leerspalten enthält.
Dann noch ein Offset der angibt ab welcher Startadresse des Bildpuffers die 5 Bytes ausgelesen werden die dargestellt werden sollen.

Der Offset läuft von 0 bis 5, dann wird im Bildpufer das rechte Zeichen nach links kopiert und das nächste Zeichen in der rechten Hälfte aufgebaut und weiter gehts.
 
OP
chrysophylax

chrysophylax

Geomaster
Auf die 12 Bytes RAM kam ich auch, durch die "über Kopf-Option" muss ich aber sowohl "von rechts nach links" als auch "von links nach rechts" schieben können (Wenn man den Petling lässt wie er ist und über Kopf ausgibt, dann erscheint in ursprünglicher Betrachtungsrichtung (die des µc) der Text richtigrum gelesen von links nach rechts zu wandern). Aber auch dafür wird sich eine Lösung finden. Kommt Zeit, kommt Lösung. Oder Böcke. Oder beides.

Habe gerade mal die Schleimpistole ausgepackt - das Pappmodell getestet mit diversen Petlingen sagt, dass ich bestellen kann. Es knirscht einen ganz kleinen Hauch, aber notfalls wird der ISP-Steckverbinder entweder liegend bestückt oder an den "Außenpins" einen Hauch gekürzt oder es gibt statt der vergossenen Reed-Kontakte die nackten Röhrchen, die sind auch noch einen Hauch flacher. Außerdem ist mein "Prozessor-Dummy" durch einen etwas zu früh erkalteten Schleimklecks drunter leicht in der Luft montiert, gibt auch noch Sicherheit in die richtige Richtung. Die "Platinendicke" des Pappmodells kommt ziemlich gut hin, man hat ja ein paar Jahre Erfahrung in der Auswahl des zugrundeliegenden Schreibtischblock-Modells, das die Rückseiten-Pappe stiftet.

Platz in der Länge ist im 12cm-Petling noch etwas, das entspannt die Sache bei den Montageoptionen deutlich.

Ich bin immer wieder erstaunt, WIE UNGLAUBLICH RIESIG diese DotMatrix-Anzeige im Vergleich zu den 10mm 7Segment-Anzeigen ist, die ich sonst so üblicherweise verbaue... Mit der leicht verzerrenden Optik des Petlings am Rand muss man wohl einfach leben.

chrysophylax
 

Anhänge

  • Pappmodell1.JPG
    Pappmodell1.JPG
    25,6 KB · Aufrufe: 3.049
  • Pappmodell2.JPG
    Pappmodell2.JPG
    22,6 KB · Aufrufe: 3.049
OP
chrysophylax

chrysophylax

Geomaster
Sodele, ich hab dann heute morgen mal einen vorübergehenden Deckel auf die Geschichte gemacht. Die Software ist jetzt doch nochmal ein wenig optimiert, um mit Lebenszeichenblitz nur 5-6µA zu brauchen (ich erwähnte schon das mit dem Ehrgeiz), außerdem auch das gesamte bisherige Projekt publikumstauglich ausgegeben.

Wer mag, kann sich das Ganze jetzt auch auf meiner Heimatseite oder als Direktlink W006Z005 ansehen und herunterladen.

Heute morgen pfilosopfierte ich noch ein wenig mit einem Kollegen über das Thema, und der kam auf die schöne Idee, in der nächsten Software-Version vielleicht nicht nur über weiches scrollen von rechts nach links, sondern auch mal über "Rollenanzeigen" (wie im klassischen mechanischen Autotacho) von oben nach unten oder "Klappanzeigen" (mit den fallenden Blechblättern wie bei alten Radioweckern) als Software-Animation nachzudenken.

So oder so: Da steckt noch viel Charme-Potential in der Animierung der Anzeige, mal schauen, ob und was ich davon wann umsetze. Bis dahin schonmal viel Spaß beim Nachbauen und Ausprobieren, falls schon jemand möchte.

chrysophylax.
 

S!roker

Geocacher
chrysophylax schrieb:
Heute morgen pfilosopfierte ich noch ein wenig mit einem Kollegen über das Thema, und der kam auf die schöne Idee, in der nächsten Software-Version vielleicht nicht nur über weiches scrollen von rechts nach links, sondern auch mal über "Rollenanzeigen" (wie im klassischen mechanischen Autotacho) von oben nach unten oder "Klappanzeigen" (mit den fallenden Blechblättern wie bei alten Radioweckern) als Software-Animation nachzudenken.

:gott: Darauf habe ich gewartet :gott:
Halte uns bitte mal auf dem Laufenden
 
OP
chrysophylax

chrysophylax

Geomaster
Ja, ziemlich genau so hatte ich mir das vorgestellt. Das Video ruiniert zwar wieder mal ein wenig den Gesamteindruck, weil es Schwebungen zeigt, die in der Realität nicht vorhanden sind, aber man kann ja nicht alles haben. Sieht "in echt" wirklich erheblich hübscher aus und völlig ohne jedes Gewabere.

Im Petling ist in der Länge noch reichlich Platz, da kann ich in Zukunft dann wieder nur 10cm-Petlinge kaufen, die 12er sind irgendwie immer so ungewohnt groß ;)

chrysophylax.de
 

Anhänge

  • W006Z005V001_Unten.JPG
    W006Z005V001_Unten.JPG
    58,6 KB · Aufrufe: 2.757
  • W006Z005V001_Oben.JPG
    W006Z005V001_Oben.JPG
    56,3 KB · Aufrufe: 2.757
  • W006Z005V001_Petling.JPG
    W006Z005V001_Petling.JPG
    41,9 KB · Aufrufe: 2.757
Oben