Selbstgemachte elektronische Uhr, Elementbasis - Teil 2
Hallo Geektimes! Im ersten Teil des Artikels wurden die Prinzipien zur Ermittlung der genauen Zeit für selbstgemachte Uhren berücksichtigt. Lassen Sie uns überlegen, wie und zu welcher Zeit es besser ist, abzuleiten.1. Ausgabegeräte
Wir haben also eine bestimmte Plattform (Arduino, Raspberry, PIC / AVR / STM-Controller usw.), und die Aufgabe besteht darin, eine Anzeige damit zu verbinden. Es gibt viele Optionen, die wir in Betracht ziehen werden.Segmentanzeige
Hier ist alles einfach. Die Segmentanzeige besteht aus gewöhnlichen LEDs, die über die Löschwiderstände trivial mit dem Mikrocontroller verbunden sind.
Achtung, Verkehr!Vorteile: Einfachheit des Designs, gute Blickwinkel, niedriger Preis.Minus: Die Menge der angezeigten Informationen ist begrenzt.Es gibt zwei Arten von Indikatordesigns mit einer gemeinsamen Kathode und einer gemeinsamen Anode. Das Innere sieht ungefähr so aus (Diagramm von der Website des Herstellers).
Es gibt einen 1001-Artikel darüber, wie man eine LED an einen Mikrocontroller anschließt. Schwierigkeiten beginnen, wenn wir eine große Uhr machen wollen - schließlich ist es nicht besonders praktisch, auf einen kleinen Indikator zu schauen. Dann brauchen wir solche Anzeigen (Foto von eBay):
Sie werden mit 12 V betrieben und funktionieren einfach nicht direkt vom Mikrocontroller aus. Hier hilft uns der CD4511- Chip, nur zu diesem Zweck. Es konvertiert nicht nur Daten von einer 4-Bit-Leitung in die gewünschten Ziffern, sondern enthält auch einen eingebauten Transistorschalter zur Spannungsversorgung des Indikators. Daher benötigen wir in der Schaltung eine "Netzspannung" von 9-12 V und einen separaten Abwärtswandler (z. B. L7805), um die "Logik" der Schaltung mit Strom zu versorgen.Matrixindikatoren
Tatsächlich sind dies dieselben LEDs, nur in Form einer 8x8-Matrix. Fotos von eBay: Bei
eBay in Form von Einzelmodulen oder fertigen Blöcken verkauft, zum Beispiel 4 Stück. Ihre Verwaltung ist sehr einfach: Der MAX7219-Chip ist bereits mit den Modulen verlötet und gewährleistet deren Betrieb und Verbindung mit dem Mikrocontroller mit nur 5 Drähten. Es gibt viele Bibliotheken für Arduino, diejenigen, die es wünschen, können den Code sehen.Vorteile: niedriger Preis, gute Betrachtungswinkel und Helligkeit.Minus: niedrige Auflösung. Aber für die Aufgabe, Zeit auszugeben, reicht das aus.LCD-Anzeigen
LCD-Anzeigen sind grafisch und textuell.
Grafiken sind teurer, aber Sie können vielfältigere Informationen anzeigen (z. B. eine Grafik des atmosphärischen Drucks). Texte sind billiger und einfacher zu bearbeiten. Sie ermöglichen auch die Anzeige von Pseudografien. Sie können benutzerdefinierte Zeichen in die Anzeige laden.Es ist nicht schwierig, mit der LCD-Anzeige aus dem Code zu arbeiten, aber es gibt ein gewisses Minus - die Anzeige erfordert viele Steuerleitungen (von 7 bis 12) vom Mikrocontroller, was unpraktisch ist. Daher haben die Chinesen eine Kombination aus einer LCD-Anzeige und einem i2c-Controller entwickelt, die sich am Ende als sehr praktisch herausstellte - nur 4 Drähte reichen aus, um eine Verbindung herzustellen (Foto von eBay).
LCD-Anzeigen sind billig genug (wenn Sie sie auf eBee verwenden), groß, einfach anzuschließen und Sie können eine Vielzahl von Informationen anzeigen. Das einzig Negative sind nicht sehr große Betrachtungswinkel.OLED-Indikatoren
Sie sind eine verbesserte Fortsetzung der vorherigen Version. Variiert von klein und billig mit einer Diagonale von 1,1 "bis groß und teuer. Fotos von eBay.
Eigentlich sind sie für alle gut, außer für den Preis. Was kleine Indikatoren betrifft, die 0,9-1,1" groß sind, dann (abgesehen vom Studium der Arbeit mit i2c) eine praktische Anwendung es ist schwer für sie zu finden.Gasentladungsanzeigen (IN-14, IN-18)
Diese Indikatoren sind mittlerweile sehr beliebt, anscheinend aufgrund des "warmen Röhrenklangs des Lichts" und des ursprünglichen Designs.
(Foto von nocrotec.com)Das Schema ihrer Verbindung ist etwas komplizierter, weil Diese Anzeigen verwenden eine Spannung von 170 V für die Zündung. Auf dem MAX771- Chip kann ein Konverter von 12V => 180V hergestellt werden . Zur Versorgung der Anzeigen mit Spannung wird die sowjetische Mikroschaltung K155ID1 verwendet, die speziell dafür geschaffen wurde. Der Ausgabepreis für die Eigenproduktion: etwa 500 Rubel für jeden Indikator und 100 Rubel für K155ID1, alle anderen Details, wie sie in alten Magazinen geschrieben wurden, sind "nicht selten". Die Hauptschwierigkeit besteht darin, dass sowohl IN-xx als auch K155ID1 seit langem nicht mehr angeboten werden und Sie sie nur auf Radiomärkten oder in einigen Fachgeschäften kaufen können.2. Plattformauswahl
Wir haben mehr oder weniger mit der Angabe herausgefunden, es bleibt zu entscheiden, welche Hardwareplattform besser zu verwenden ist. Hier gibt es mehrere Optionen (ich betrachte keine hausgemachten, da ich diesen Artikel nicht für diejenigen benötige, die eine Platine herstellen und einen Prozessor löten können).Arduino
Die einfachste Option für Anfänger. Das fertige Board ist kostengünstig (ca. 10 US-Dollar bei eBay mit kostenlosem Versand) und verfügt über alle für die Programmierung erforderlichen Anschlüsse. Foto von eBay:
Unter Arduino gibt es eine Vielzahl unterschiedlicher Bibliotheken (z. B. für dieselben LCD-Bildschirme, Echtzeitmodule). Arduino ist hardwarekompatibel mit verschiedenen zusätzlichen Modulen.Das Hauptminus: die Komplexität des Debuggens (nur über die Konsole mit serieller Schnittstelle) und ein für moderne Standards eher schwacher Prozessor (2 KB RAM und 16 MHz).Das Hauptplus: Sie können viele Dinge tun, fast ohne sich um das Löten, den Kauf eines Programmiergeräts und der Verdrahtungsplatinen zu kümmern. Es reicht aus, die Module miteinander zu verbinden.32-Bit-STM-Prozessoren
Für diejenigen, die etwas Stärkeres wollen, gibt es fertige Karten mit STM-Prozessoren, zum Beispiel eine Karte mit STM32F103RBT6 und einen TFT-Bildschirm. Foto von eBay:
Hier haben wir bereits ein vollständiges Debugging in einer vollwertigen IDE (ich mochte Coocox IDE am meisten), Sie benötigen jedoch einen separaten ST-LINK-Programmierer-Debugger mit einem JTAG-Anschluss (der Preis beträgt 20-40 USD bei eBay). Alternativ können Sie das STM32F4Discovery-Debugboard kaufen, auf dem dieser Programmierer bereits integriert ist, und es kann separat verwendet werden.Himbeer PI
Und schließlich gibt es für diejenigen, die eine vollständige Integration in die moderne Welt wünschen, Single-Board-Computer mit Linux, wahrscheinlich kennt jeder den Raspberry PI bereits. Foto von eBay:
Dies ist ein vollwertiger Computer mit Linux, einem Gigabyte RAM und einem 4-Kern-Prozessor an Bord. Am Rand der Platine wird ein Feld mit 40 Pins angezeigt, über das Sie verschiedene Peripheriegeräte anschließen können (Pins sind über Code zugänglich, z. B. in Python, ganz zu schweigen von C / C ++). Außerdem gibt es einen Standard-USB-Anschluss in Form von 4 Anschlüssen (Sie können WLAN verbinden). Es gibt auch Standard-HDMI.Das Board verfügt beispielsweise über genügend Strom, um nicht nur die Zeit anzuzeigen, sondern auch einen HTTP-Server zum Einstellen von Parametern über die Weboberfläche, zum Laden von Wettervorhersagen über das Internet usw. zu halten. Im Allgemeinen ist der Spielraum für einen Fantasy-Flug groß.Bei Raspberry- (und STM32-Prozessoren) gibt es nur eine Schwierigkeit: Die Pins verwenden 3-Volt-Logik, und die meisten externen Geräte (z. B. LCD-Bildschirme) arbeiten "auf die alte Art" mit 5 V. Natürlich können Sie es so anschließen, im Prinzip wird es funktionieren, aber dies ist nicht die richtige Methode, und es ist schade, die Gebühr für 50 US-Dollar zu verderben. Der richtige Weg ist die Verwendung des „Logic Level Converter“, der bei eBay nur 1-2 US-Dollar kostet.Foto von eBay:
Jetzt reicht es aus, unser Gerät über ein solches Modul anzuschließen, und alle Parameter werden vereinbart.ESP8266
Das Verfahren ist ziemlich exotisch, aber aufgrund der Kompaktheit und der geringen Kosten der Lösung vielversprechend. Für sehr wenig Geld (ca. 4 bis 5 US-Dollar bei eBay) können Sie ein ESP8266-Modul mit einem Prozessor und WLAN an Bord kaufen.Foto von eBay:
Ursprünglich waren solche Module als WiFi-Brücke für den Austausch serieller Schnittstellen gedacht, aber Enthusiasten haben eine Menge alternativer Firmware für die Arbeit mit Sensoren, i2c-Geräten, PWM usw. geschrieben. Es ist hypothetisch möglich, Zeit von einem NTP-Server und zu erhalten Zeigen Sie es über i2c auf dem Display an. Für diejenigen, die viele verschiedene Peripheriegeräte anschließen möchten, gibt es spezielle NodeMCU-Boards mit einer Vielzahl von Schlussfolgerungen. Der Fragenpreis beträgt ca. 500 Rubel (natürlich bei eBay):
Das einzig Negative ist, dass der ESP8266 sehr wenig RAM-Speicher hat (je nach Firmware von 1 bis 32 KB), aber die Aufgabe macht ihn noch interessanter. Die ESP8266-Module verwenden eine 3-Volt-Logik, daher ist der oben genannte Pegelwandler auch hier nützlich.Auf dieser einführenden Exkursion in die hausgemachte Elektronik kann abgeschlossen werden, der Autor wünscht allen erfolgreichen Experimenten.Anstelle einer Schlussfolgerung
Am Ende habe ich Raspberry PI mit einer Textanzeige verwendet, die für die Arbeit mit Pseudografien konfiguriert ist (die billiger als der grafische Bildschirm derselben Diagonale war). Schoss den Bildschirm der Desktop-Uhr, während dieser Artikel geschrieben wurde.
Die Uhr zeigt die genaue Zeit aus dem Internet und das Wetter an, das von Yandex aktualisiert wurde. All dies ist in Python geschrieben und funktioniert seit einigen Monaten. Gleichzeitig wird der FTP-Server auf der Uhr gestartet, wodurch (zusammen mit der Portweiterleitung auf dem Router) die Firmware nicht nur von zu Hause aus, sondern auch von jedem Ort mit Internetzugang aus aktualisiert werden kann. Als Bonus reichen die Ressourcen von Raspberry im Prinzip aus, um eine Kamera und / oder ein Mikrofon anzuschließen und eine Wohnung fernüberwachen oder verschiedene Module / Relais / Sensoren steuern zu können. Sie können alle Arten von "Brötchen" hinzufügen, z. B. LED-Anzeigen für eingehende E-Mails usw.PS: Warum eBay?Wie Sie sehen können, wurden für alle Geräte Preise oder Fotos von ebay angegeben. Warum so? Leider leben unsere Geschäfte oft nach dem Prinzip "für 1 Dollar gekauft, für 3 Dollar verkauft und ich lebe nach diesen 2 Prozent". Als einfaches Beispiel kostet der Arduino Uno R3 (zum Zeitpunkt des Schreibens) 3600 Rubel in St. Petersburg und 350 Rubel bei eBay mit kostenlosem Versand aus China. Der Unterschied ist wirklich eine Größenordnung ohne literarische Übertreibung. Ja, Sie müssen einen Monat warten, um das Paket per Post abzuholen, aber ich denke, es ist den Preisunterschied wert. Aber übrigens, wenn jemand es jetzt und dringend braucht, dann muss es eine Auswahl in den örtlichen Geschäften geben, dann entscheidet jeder für sich. Source: https://habr.com/ru/post/de383629/
All Articles