Inhaltsverzeichnis:

Hellschreiber-Uhr - Gunook
Hellschreiber-Uhr - Gunook

Video: Hellschreiber-Uhr - Gunook

Video: Hellschreiber-Uhr - Gunook
Video: Casio A700 ► Edel, Vintage und nur 40 Euro ► Ist sie dir groß genug? ► Is it big enough? 2024, November
Anonim
Hellschreiber-Uhr
Hellschreiber-Uhr

Ein kleiner Mikrocontroller ist so programmiert, dass er eine Reihe von Tönen ausgibt, die, wenn sie einer PC-Soundkarte zugeführt und von einem Spektrumanalysatorprogramm verarbeitet werden, ein Bild der aktuellen Uhrzeit anzeigen.

Schritt 1: Spectrum Lab-Software

Spectrum Lab-Software
Spectrum Lab-Software

Die ganze harte Arbeit der Analyse und Anzeige der Töne wird von einer kostenlosen Software durchgeführt, dem "Spectrum Lab", das von einem Amateurfunk-Enthusiasten, DL4YHF, geschrieben wurde. Es analysiert den über die Soundkarte eingespeisten Ton und zeigt das Ergebnis als Bild an.

Der hier verwendete Anzeigetyp wird als "Wasserfall"-Anzeige bezeichnet und ist so eingestellt, dass er von rechts nach links scrollt. Es scrollt traditionell von oben nach unten, und daher der Begriff Wasserfall. Dieses Programm wird von Amateuren verwendet, um unter anderem mit Bruchteilen eines Watts um die halbe Erde zu kommunizieren. Es ist ein sehr leistungsfähiges Programm und verfügt über eine Vielzahl von Einstellungen, die genau richtig eingestellt werden müssen, um eine gute Anzeige zu erzielen. Der Begriff „Hellschreiber“stammt vor langer Zeit aus der Telegrafie und bedeutet wörtlich Schreiben mit Licht. Die in der Einleitung gezeigte Anzeige ist ein Diagramm der Intensität der Frequenz gegen die Zeit. Der Mikrocontroller ist so programmiert, dass er eine Reihe von Tönen erzeugt, so dass ein Bild der Informationen von diesem Programm gemalt wird. Dieser Modus wird als "sequentieller Mehrton-Hellschreiber" bezeichnet und wird verwendet, um mit relativ einfachen Sendegeräten über große Entfernungen zu kommunizieren.

Schritt 2: Zeit als Folge von Frequenzen

Zeit als Folge von Frequenzen
Zeit als Folge von Frequenzen

Dieser Screenshot zeigt die Aufnahme von der Uhr, die eine sequentielle Sekundeninformation sendet. Tatsächlich ist dies falsch, da die Generierung jedes Ziffernsatzes mehrere Sekunden dauert und die Anzeigen daher ein größeres Zeitintervall abdecken als die vorgeschlagenen drei Sekunden.

Das über der Ziffernzeile zu sehende Punktmuster ist auf die Oberwellen der Töne zurückzuführen: Der Mikrocontroller erzeugt Töne, indem er eine Portleitung auf Versorgung oder Masse schaltet, und die resultierende Rechteckwelle hat viele Oberwellen. Da diese direkt der Soundkarte zugeführt wird, zeigt das Display alle diese Oberwellen zusammen mit der gewünschten Grundfrequenz an. Da es schwierig ist, eine reine Sinuswelle zu arrangieren, muss die Differenz zwischen der maximalen und der minimalen Frequenz, die für die Anzeige verwendet werden, daher kleiner als eine Oktave eingestellt werden. Mit anderen Worten, die maximale Frequenz muss weniger als das Doppelte der minimalen Frequenz betragen.

Schritt 3: Jede zehnte Sekunde anzeigen

Anzeige jede zehnte Sekunde
Anzeige jede zehnte Sekunde

Die in der Abbildung gezeigte Anzeige ist realistischer für die Leistung der Uhr: Aktualisierung alle zehn Sekunden.

Die Ziffern wurden so programmiert, dass sie optisch schöner sind. Alle Programme, die diese Anzeigen produziert haben, wurden im letzten Schritt dieser Anleitung in einer Zip-Datei enthalten. Der Schaltplan ist in ASCII-Form in den asm-Dateien enthalten. Der Mikrocontroller war ein Microchip 12F510, ein Achtleiter-Mikrocontroller, der mit 32,768 KHz getaktet wurde und einen kleinen Quarz einer nicht mehr funktionierenden Uhr verwendete. Es wurde nur eine Ausgangsleitung verwendet, sodass zwei I/O-Leitungen und eine Eingangsleitung für andere Zwecke frei blieben.

Schritt 4: Wellenformen

Wellenformen
Wellenformen
Wellenformen
Wellenformen

Die beiden Abbildungen zeigen die Wellenformen, die in die Soundkarte einfließen, um diese Anzeigen zu ermöglichen.

Die erste zeigt alle sieben Frequenzen, die nacheinander ausgegeben werden, und die erste Frequenz noch einmal. Es ist die Ziffer "1", der Lauf von sieben Frequenzen, die die vertikale Linie verursachen, und die letzte die rechte Seite der Basis. Die zweite zeigt, wie die Lücken die Leerzeichen in der Anzeige verursachen. Wenn ein bestimmter Raum in der Punktmatrix, der ein Zeichen bildet, leer ist, wird die entsprechende Frequenz während seines Zeitschlitzes nicht gesendet, wodurch ein Zeichen mit Lichtflecken und leerem Raum gebildet wird.

Schritt 5: Anzeige beliebiger Bitmaps

Anzeige beliebiger Bitmaps
Anzeige beliebiger Bitmaps

Die Anzeige der Zeit oder anderer solcher alphanumerischer Daten ist in Ordnung, aber manchmal möchten wir vielleicht eine hübsche Anzeige von zufälligen Dingen haben.

Es kann getan werden, wie diskutiert und demonstriert werden soll. Ich werde Programme schreiben, die die Textzeile "Instructables" als Bitmap und den Instructables-Roboter als 24 Pixel hohe Grafik anzeigen. Zunächst müssen die benötigten Bilder digitalisiert werden. Der erste Schritt besteht darin, sie auf Millimeterpapier zu zeichnen. "Instructables" wurde mit einer fünf Pixel hohen Schriftart geschrieben. Da dies als Bitmap übertragen wird, habe ich Buchstaben wo immer möglich zusammengeführt, ohne die Lesbarkeit zu beeinträchtigen. Das Bild des instructables Roboters wurde vertikal auf 24 Pixel verkleinert und dann markierte ich seinen Umriss mit Punkten und fügte auch ein paar Punkte im Inneren hinzu. Ich denke, die Leute werden den Roboter erkennen, besonders wenn man ihnen vorher sagt, dass er so sein soll.

Schritt 6: Digitalisierung von "Instructables"

Digitalisierung
Digitalisierung

Das Bild zeigt, wie die Bitmap der Textzeile digitalisiert wird.

In der Spalte ganz links sind beispielsweise alle Pixel schwarz. Sie sind also alle eins: 11111 Wir gruppieren zu vieren und bilden zwei Halbbytes: 1 1111 Diese beiden werden dann zur kompakten Darstellung hexadezimal ausgedrückt: 1 F Da die Zeichen fünf Bit hoch sind, wird die erste Ziffer entweder 0 oder 1, und die zweite Ziffer ist 0-1, AF. Der Boden wird als das bedeutsamere Ende angesehen. Die zweite Spalte ist leer, also alle Null: 00 hex. In der dritten Spalte stehen die ersten drei Einsen gefolgt von zwei Nullen: 1 1100 -> 1 C Und so geht es bis zum Schluss weiter. Dies ist alles in eine Include-Datei namens "instructlables.inc" gestopft. Durch Ändern der Zeile, die die Include-Datei im Hauptprogramm angibt, können Sie also die angezeigte Bitmap ändern. Falls Sie beispielsweise eine weitere Bimap mit Ihrem Namen erstellen, können Sie diese in eine Datei "Ihrname.inc" einfügen und im Hauptprogramm aufrufen.

Schritt 7: Die resultierende Anzeige

Die resultierende Anzeige
Die resultierende Anzeige

Es funktioniert, wie Sie am resultierenden Bild auf dem Bildschirm sehen können.

Mit der Spectrum Lab-Software können Sie die Farben und Schattierungen des Displays auswählen, sodass Sie mit diesem Programm durch sorgfältige Auswahl sehr schönen Text anzeigen können.

Schritt 8: Reihenfolge der Frequenzen

Reihenfolge der Frequenzen
Reihenfolge der Frequenzen
Reihenfolge der Frequenzen
Reihenfolge der Frequenzen

Schauen wir uns einmal genauer an, wie dieses Bild entstanden ist.

Das erste Bild unten zeigt die Abfolge der vom Mikro emittierten Frequenzen mit einer kurzen Zeitauflösung. Es zeigt deutlich die Treppenstufennatur der Töne, da die Töne, aus denen die Punkte bestehen, in serieller Abfolge emittiert werden. Sie können auch sehen, warum die Charaktere alle nach rechts geneigt sind. Die zweite zeigt das gleiche Display mit einer anderen Filtereinstellung. Die zeitliche Auflösung dieses Filters ist reduziert, so dass die Punkte mehr Zeit zu beanspruchen scheinen. Der resultierende horizontale Wisch hat das Ergebnis, dass der Text leichter lesbar ist. Ein Signal muss eine entsprechende Einstellung des Programms haben, bevor es als erkennbares Bild angezeigt wird.

Schritt 9: Digitalisierung des Roboters

Digitalisierung des Roboters
Digitalisierung des Roboters

Der Roboter ist 24 Bit groß und passt daher nicht in ein 8-Bit-Wort. Eine andere Technik wurde verwendet, um den Roboter zu digitalisieren, diesmal aus dem Programm, das für die "musikalische Grußkarte" instructable verwendet wurde.

Da das Bild durch eine Tonfolge gebildet wird, sollte ein Musikprogramm den Roboter darstellen können, sofern dem Roboter eine in Musik umzusetzende Frequenzfolge zugeführt wird. Die Abbildung zeigt den Roboter, mit Verzögerungswerten beschriftete Reihen, die in ein Musikprogramm gesteckt werden. Diese Werte wurden leicht modifiziert und stehen als Listing robot.asm zur Verfügung und ergaben eine fast wiedererkennbare Roboteranzeige.

Schritt 10: Der Roboter auf dem Computerbildschirm

Der Roboter auf dem Computerbildschirm
Der Roboter auf dem Computerbildschirm

Es ist ein Vogel … Es ist ein Flugzeug … Es ist eine fliegende Untertasse des Mars …

Es ist der instructables Roboter.

Schritt 11: Die Hardware

Die Hardware
Die Hardware
Die Hardware
Die Hardware

Die Abbildungen zeigen das Foto und den Schaltplan des Mikrocontrollers, der diese Bilder erzeugt.

Es ist ein 8-Pin-Mikrocontroller, der 12F510, hergestellt von microchip. Das abgeschirmte Kabel links wird an die Soundkarte des Computers angeschlossen. Der rechte Anschluss wird mit dem Programmiergerät verbunden und versorgt auch die Stromversorgung. Ohne etwas zu trennen oder Anschlüsse zu ändern, kann der Mikrocontroller über ICSP gelöscht und neu programmiert werden, indem einfach die entsprechenden Programme auf dem Computer ausgeführt werden.

Schritt 12: Das Prinzip

Das Prinzip
Das Prinzip

Die Abbildung zeigt das Prinzip hinter der Anzeige der Punktmatrix, aus der die Zeichen bestehen. Die Abfolge ansteigender Töne bildet eine Treppenwellenform, die, in bestimmten Abständen wiederholt, einen Sägezahn über das das Zeichen bildende Frequenzband bildet. Ich hatte eine frühere anweisbar, https://www.instructables.com/id/Oscilloscope-clock/, zur Anzeige der Zeit auf einem Oszilloskop. Das Prinzip ist ähnlich, außer dass das frühere Spannungspegel und dieses Frequenz verwendet. Der Unterschied besteht darin, dass Spannungspegel mit der Soundkarte sehr schwer anzuzeigen sind und fast jedes Programm, das Spannungspegel anzeigt, sie im Modus nicht anzeigt wodurch Zeichen sichtbar werden. Jedes Zeichen wird als eine Folge von Spalten mit einer Höhe von sieben Pixeln angezeigt. Soll das unterste Pixel leuchten, wird die dazugehörige Frequenz kurzzeitig eingeschaltet. Bei der "Oszilloskopuhr" wird für diese Zeit ein bestimmter Spannungspegel gehalten. Wenn dieser Pixel dunkel sein soll, wird der Ton überhaupt nicht erzeugt oder stattdessen ein Austastpegel gesendet. Da diese Frequenzen (oder Spannungspegel) nacheinander gesendet werden, bilden sie keine vertikale Linie. Sie bilden eine nach rechts geneigte Linie. Es ist möglich, diese Bits in umgekehrter Richtung zu senden, und dann neigen sich die resultierenden Zeichen nach links. Dies sieht unnatürlich aus, daher wird die vorliegende Anordnung bevorzugt. Eine andere Art von Hellschreiber, die alle Töne gleichzeitig sendet, ist in der Lage, perfekt senkrechte Zeichen zu erzeugen. Da hierfür alle Töne gleichzeitig verzerrungsfrei erzeugt werden müssen, ist eine einfache Realisierung mit einem einzigen Mikrocontroller nicht möglich.