banner
Nachrichtenzentrum
Wählen Sie aus unserem breiten Angebot an erstklassigen Produkten und Dienstleistungen für ein wirklich bemerkenswertes Erlebnis.

Parkscheibe mit E

Jul 16, 2023

Die Entwicklung des Automobilsektors hat im Hinblick auf die Integration elektronischer Technologie in Fahrzeuge ein äußerst hohes Niveau erreicht. Nahezu jeder funktionale Aspekt wird durch hochentwickelte Sensoren, digitale Schnittstellen, Mikroprozessoren und zugehörige Software optimal verwaltet. Im Cockpit dessen, was man heute als „Computer auf Rädern“ bezeichnen kann, ist es jedoch immer noch leicht, ein unverzichtbares Instrument zu finden, das oft aus bescheidenem Karton besteht und manuell bedient wird. Dabei handelt es sich um die Zeitscheibe, ein Gerät, das benötigt wird, um den Beginn des Parkens in regulierten Bereichen anzuzeigen. Im Laufe der Jahrzehnte ist dieses Accessoire fast unverändert geblieben – hergestellt aus Pappe, Kunststoff oder anderen edleren Materialien – und erst seit kurzem sind einige digitale Modelle auf dem Markt. Das im Artikel vorgeschlagene Modell verwendet ein modernes E-Paper-Display mit einigen besonderen Funktionen, wie z. B. dem Einstellen der Ankunftszeit mit einer einzigen Taste, einer Nachricht in vier Sprachen zur Auswahl und der On-Demand-Anzeige der aktuellen Uhrzeit und des aktuellen Datums , die Umgebungstemperatur und den Akkuladestand.

Eine relativ neue Erfindung (1996), die E-Ink-Technologie (elektrophoretische Tinte), allgemein als E-Paper bezeichnet, verdankt ihren Erfolg hauptsächlich ihrer Verwendung in E-Book-Readern, den tragbaren Geräten, die eine elektronische Alternative zu herkömmlichen Büchern bieten sein papierähnliches Leseerlebnis und die perfekte Sicht auch bei starken Lichtverhältnissen. Das Alleinstellungsmerkmal, das zur Verbreitung dieser Technologie in anderen Bereichen geführt hat, ist jedoch die Fähigkeit, die Anzeige von Informationen auch ohne Stromversorgung über einen langen Zeitraum aufrechtzuerhalten, was die Realisierung von Geräten ermöglicht, die potenziell nur Strom benötigen die Dauer, die zum Aktualisieren des Bildschirms (Refresh) erforderlich ist. Typische Anwendungen, die in Einzelhandelsgeschäften immer beliebter werden, sind elektronische Etiketten und Preisschilder, die oft schwer von denen auf Papier zu unterscheiden sind und bei Bedarf auch aus der Ferne mithilfe drahtloser Technologien aktualisiert werden können. Um besser zu verstehen, wie elektronische Tinte funktioniert,Figur1hilft uns.

In der einfachsten Schwarz-Weiß-Anzeigeversion sind positiv (weiß) und negativ (schwarz) geladene Pigmente in einer Flüssigkeit suspendiert, die in Mikrokügelchen enthalten ist, die Pixel darstellen. Aufgrund der durch ein geeignetes elektrisches Feld erzeugten Polarisation positionieren sich die Pigmente, angezogen durch die Ladung mit entgegengesetztem Vorzeichen (Elektrophorese), so, dass sie schwarze oder weiße Pixel erzeugen und so das gewünschte Bild zusammensetzen. Selbst wenn das elektrische Feld entfernt wird, bleiben die Pigmente zu diesem Zeitpunkt an ihrer Position, bis eine neue Ladung angelegt wird. Die Sichtbarkeit aus dem besonders weiten Winkel wird durch die Reflexion des Umgebungslichts erreicht, und wenn diese nicht vorhanden ist, ist eine spezielle Lichtquelle erforderlich. Interessanterweise erfolgt die Bildschirmaktualisierung jedoch bei direkter Sonneneinstrahlung nicht korrekt. Auf der Grundlage dieses Funktionsprinzips wurden zahlreiche Arten von Displays realisiert, auch große und vollfarbige, die jedoch immer noch sehr teuer sind. Gleichzeitig ist das erschwingliche Angebot kleinerer Displays in Schwarz-Weiß, Graustufen oder limitierten Farben im Fachhandel gestiegen. Andererseits ist das Interesse der Heimwerker an diesen Bauteilen nicht so stark gestiegen, wie ich im Internet sehen konnte. Meiner Meinung nach liegt der Grund dafür in verschiedenen kritischen Punkten, die sich auch während der Entwicklung dieses Projekts herauskristallisierten, beispielsweise aufgrund der übermäßigen Anzahl an Modellen, Versionen, Größen, Treibern und Farbkombinationen auf dem Markt , der Mangel an gut dokumentierten und einfach zu implementierenden Bibliotheken für die verschiedenen Entwicklungsplattformen sowie oft lückenhafte und unzureichende Informationen und Unterstützung durch die Hersteller selbst. Dennoch war es durch die Auswahl der am besten unterstützten Produkte und den beharrlichen Einsatz als Macher möglich, ein Ergebnis zu erzielen, das meiner Meinung nach interessant sein könnte. Fahren wir daher mit der Analyse des Schaltplans fort, der in dargestellt istFigur2.

Für die Verwaltung der Anzeige wurde ein ATmega328P-Mikrocontroller ausgewählt, der auch auf dem Arduino UNO-Board verwendet wird, da eine vielseitige Bibliothek speziell für diese Plattform verfügbar ist. Dank des externen Keramikresonators arbeitet die MCU mit einer Taktfrequenz von 8 MHz und befindet sich normalerweise in einem Energiesparzustand (SLEEP_MODE_PWR_DOWN), um nur dann aufzuwachen, wenn die Anzeige aktualisiert werden muss. Der integrierte Schaltkreis der DS3231M-Echtzeituhr (RTC) hingegen bleibt jederzeit aktiv und kann Datum und Uhrzeit mit einer Genauigkeit von ±5 ppm (±0,432 Sekunden/min) aufrechterhalten, solange er mit Strom versorgt wird. Tag). Weitere bemerkenswerte Merkmale sind ein Temperatursensor, ein Doppelalarm und ein extrem niedriger Stromverbrauch in der Größenordnung von Mikroampere (µA) in der verwendeten Konfiguration, Single Supply (nur VBAT). Die Kommunikation mit dem Mikrocontroller erfolgt über eine I2C-Schnittstelle und eine dedizierte Bibliothek. Die SW2-Taste (im Prototyp blau) „weckt“ die MCU auf, die so Daten zur aktuellen Uhrzeit empfangen und diese zusammen mit der Meldung „TIME OF ARRIVAL“ und dem „P“-Logo auf dem Display anzeigen kann, bevor sie zurückkehrt in den Schlafmodus. Ein kurzer Piepton des Summers bestätigt die Betätigung der Taste, während die blaue LED D2 für die Dauer des Ereignisses leuchtet. SW1 (im Prototyp rot) hingegen bewirkt einen Hardware-Reset des ATmega328P, woraufhin sofort ein Bildschirm mit dem „P“-Logo, dem Batteriesymbol und der Spannung, der Umgebungstemperatur, der aktuellen Uhrzeit usw. angezeigt wird Datum und die für die Nachricht ausgewählte Sprache, wie im Beispiel inFigur3.

Derselbe Bildschirm wird automatisch alle 24 Stunden angezeigt (zur gewünschten Zeit, dank der RTC-Alarmfunktion), um eine vollständige Aktualisierung des Displays durchzuführen, wie vom Hersteller empfohlen, und um den Batteriestatus und den korrekten Betrieb des zu überprüfen ganzes System. Daher können wir SW2 als „Parktaste“ und SW1 als „Infotaste“ definieren. Die Widerstände R1 und R10 mit den Kondensatoren C1 und C5 tragen dazu bei, Störungen durch Prellen der Tastenkontakte zu unterdrücken, wohingegen R2, R4, R5 und R6 Pull-up-Widerstände sind. C2, C3 und C4 sind die üblichen Stromversorgungs-Bypass-Kondensatoren der ICs. R11 begrenzt den vom Reset-Anschluss des jeweiligen verwendeten Displays aufgenommenen Strom. JP2 ist der Anschluss zum Display, während JP1 das Hochladen von Firmware durch den Anschluss eines USBasp-Programmierers ermöglicht. Aufgrund des geringen Stromverbrauchs erfolgt die Stromversorgung des Prototyps über einen kleinen 3,6 V Ni-MH-Akku mit 40 mAh Kapazität. Der aus Q1, Q2, R8, R9 gebildete Schaltkreis ist ein Konstantstromregler mit geringem Spannungsabfall, der den Ladestrom auf etwa 6 mA begrenzt, ein Wert, dem dieser Batterietyp problemlos standhalten kann, selbst wenn die erwarteten 14 mA erreicht werden. ..16 Stunden Ladezeit überschritten sind. Eine Micro-USB-Buchse ermöglicht den Anschluss eines herkömmlichen 5-V-Ladegeräts über eine rücksetzbare Schutzsicherung, während die D1-Diode den „Rückfluss“ von Strom aus der Batterie verhindert. LED D3 zeigt an, dass das Gerät geladen wird. Auf das Thema Stromversorgung gehen wir jedoch später noch genauer ein.

Der Prototyp der Parkscheibe mit E-Paper-Anzeige wurde wie gewohnt auf einer Prototypenplatine hergestellt, wie in zu sehen istFigur4 . Dies ist natürlich nur eine von vielen Möglichkeiten; Durch die Verwendung von SMD-Bauteilen und einer speziellen Leiterplatte könnte man vermutlich eine kleinere Größe erreichen, etwas größer als das Display. Die Batterie und der Summer befinden sich unter dem E-Paper-Modul, während der achtpolige Anschluss desselben aus einem Abschnitt männlicher und weiblicher Streifenkontakte besteht. Die integrierten Schaltkreise sind auf Sockel montiert und für den DS3231M wurde ein leicht erhältlicher Adapter in einem SO-8-Gehäuse verwendet. Maximale Freiheit bei der Wahl des Gehäuses, sofern es natürlich mit einem transparenten Fenster ausgestattet ist!

Was das E-Paper-Modul angeht, fällt es, wie bereits erwähnt, mitunter schwer, sich in dem sehr großen Angebot an scheinbar ähnlichen Komponenten zurechtzufinden. Der im Prototyp verwendete ist in sichtbarFigur5. Es handelt sich um einen Waveshare mit einer Diagonale von 2,9 Zoll, Schwarzweiß und einer Auflösung von 296 x 128. Es verfügt über einen integrierten Logikpegelwandler und unterstützt die teilweise Aktualisierung, eine unverzichtbare Funktion in diesem Projekt. Andere Modelle als dieses garantieren möglicherweise nicht die gleichen Ergebnisse, die ich erzielt habe, oder erfordern möglicherweise Änderungen an der Firmware oder dem Schaltplan. Zu berücksichtigen ist auch der zulässige Betriebstemperaturbereich, der in diesem Fall von 0 bis 50 °C reicht.

Figur6zeigt die Lötseite des Prototyps, auf der sich auch die D1-Diode (SMD-Typ) und der Micro-USB-Ladeanschluss befinden.

Zurück zum Thema Stromversorgung: Die Wahl eines wiederaufladbaren Ni-MH-Akkus, einer nicht ganz neuen Technologie, ist hauptsächlich auf die Suche nach höherer Sicherheit und Zuverlässigkeit unter den nicht immer optimalen Einsatzbedingungen in einem Fahrzeug zurückzuführen. Im Vergleich beispielsweise zu Li-Ion-Akkus ist die zwar geringe Explosionsgefahr gleich Null und auch die Leistung bei niedrigen Temperaturen ist besser. Das Standardladen ist sicherlich langsamer, aber einfacher zu handhaben. Angesichts der minimalen Ströme und der Betriebsspannung des Stromkreises, die problemlos zwischen 3,3 V und 5,0 V schwanken kann, sollte in jedem Fall auch eine Lösung mit drei in Reihe geschalteten AAA-Alkalibatterien in Betracht gezogen werden, wodurch das Aufladen entfällt Rennstrecke und kann sich trotzdem auf eine Dauer verlassen, die die des Autos wahrscheinlich übersteigt! Es ist nicht einfach, den „Verbrauch“ immer beliebter werdender batteriebetriebener Geräte, die zwischen Aktivitätsphasen und Pausen im Energiesparmodus (auch als Schlafmodus, Ausschaltmodus, Ruhezustand oder Energiesparmodus bezeichnet) wechseln, genau zu quantifizieren. Leider reicht es nicht aus, ein Multimeter in Reihe mit der Stromversorgung zu schalten und den Strom abzulesen. Die grundlegende Berechnung, die durchgeführt werden muss, um den Durchschnittswert des entnommenen Stroms und damit eine Schätzung der Batterielebensdauer zu erhalten, kann mit der folgenden Pseudoformel dargestellt werden:

Dabei steht IAVG für den durchschnittlichen Strom, ION für den Aktivitätsstrom, ISBY für den Standby-Strom, TON für die Aktivitätszeit und TSBY für die Standby-Zeit. Den Trend des aktiven Stroms habe ich mit dem Oszilloskop „erfasst“ (sieheFigur7) durch Erkennen des Spannungsabfalls an den Enden eines niederohmigen Präzisionswiderstands in Reihe mit der Stromversorgung, wodurch mit akzeptabler Näherung der Wert von 10 mA für eine Zeit von 7,5 Sekunden erhalten wird, was der Dauer eines Anzeigezyklus entspricht.

Der Ruhestrom, gemessen mit einem Digitalmultimeter, beträgt lediglich 3 µA. Unter der Annahme, dass wir die Parkscheibe viermal am Tag nutzen, plus Aktualisierungszyklus, erhalten wir eine Gesamtverfügbarkeit von 7,5 x 5 = 37,5 Sekunden und eine Ruhezeit von (24 x 3600) – 37,5 = 86.362,5 Sekunden über 24 Stunden. Wir erhalten daher:

Eine 40-mAh-Batterie – wenn man der Einfachheit halber die Verringerung der Kapazität aufgrund von Selbstentladung, einem Abfall der Nennspannung, Temperaturschwankungen und anderen Faktoren außer Acht lässt – könnte bei einem durchschnittlichen Strom von 0,008 mA den Schaltkreis idealerweise etwa 40 / 0,008 = 5.000 h (also mehr als 200 Tage oder mindestens sechs Monate)! Realistisch gesehen wäre sogar eine Verkürzung der Dauer auf die Hälfte ein gutes Ergebnis. Für diese Art der Berechnung stehen mittlerweile auch komfortable Online-Anwendungen zur Verfügung. Ich stelle einen Link zu einem bereit, der meiner Meinung nach zu den effektivsten und praktischsten gehört.

In diesem Projekt wird der Quellcode 008000"> mit der Arduino IDE 1.8.19 geschrieben und erfordert für eine ordnungsgemäße Kompilierung die Installation des Arduino-Kerns MiniCore v2.1.3 und einiger spezifischer Bibliotheken. Der verwendete Kern ermöglicht einen effizienteren und vielseitigeren Betrieb Verwaltung des ATmega328P-Mikrocontrollers und optimiert vor allem die Speichernutzung des kompilierten Codes, der 31.264 der 32.768 Bytes Programmspeicher (Flash) und 1.501 der 2.048 Bytes dynamischen Speichers (SRAM) belegt, fast an der Grenze von Die Möglichkeiten dieser MCU. Es ist zu beachten, dass dieses Projekt mit einem Arduino Uno-Board selbst durch Versuch und Irrtum nicht realisierbar ist, da ein Teil des Speichers des letzteren vom Bootloader für die direkte Programmierung verwendet wird, während ein Teil des Speichers für den „Barebone“-Mikrocontroller verwendet wird Wir verwenden einen externen USBasp-Programmierer. Apropos Speicher: Das Schlüsselwort PROGMEM erscheint mehrmals in der Auflistung und bezieht sich auf die Byte-Arrays der Bitmap- und Textzeichenfolgen, bei denen es sich um schreibgeschützte Daten handelt. Durch die Deklaration dieser Arrays als PROGMEM können Funktionen dies tun Greifen Sie auf diese Daten zu, indem Sie sie direkt aus dem Flash-Speicher lesen, ohne sie zuerst in den viel kleineren SRAM zu kopieren, der dann für die „dynamische“ Ausführung des Programms verfügbar bleibt. Die DS3231M 1.0.6-Bibliothek wird für die Kommunikation mit der integrierten Echtzeituhr (RTC) verwendet, während die GxEPD2 1.3.6-Bibliothek, unterstützt von der GFX_Root 2.0.0-Grafikbibliothek, für die grundlegende Verwaltung des e- Papieranzeige. Letztere muss mit der mit dem Projekt gelieferten überschrieben werden, die geänderte Schriftarten aufweist. Die GxEPD2-Bibliothek ist ein riesiges Stück Arbeit und leider fehlt eine strukturierte Dokumentation, die stattdessen im Code der verfügbaren Beispiele zu finden ist, die sehr zahlreich, aber auf den ersten Blick aufgrund ihrer scheinbaren Komplexität, die man dann entdeckt, abschreckend wirken Dies liegt an dem Versuch, die Kompatibilität auf möglichst viele Display-Modelle auszudehnen. Ich habe daher versucht, eine Zusammenfassung zu erstellen und nur die Funktionen und Definitionen zu extrapolieren, die für den im Projekt verwendeten Anzeigetyp erforderlich sind. Diese sind in der Datei Waveshare_29_BW_avr.h zu finden, während die Datei ParkBitmap128x128.h das mit einem speziellen Konverter erhaltene Byte-Array enthält, das das Bitmap-Bild des Parkplatzlogos darstellt (Großbuchstabe P in einem Quadrat mit abgerundeten Ecken, Größe 128 x 128 Pixel, schwarz/weiß). Diese zum Herunterladen verfügbaren Dateien befinden sich im Skizzenordner zusammen mit der Hauptquellcodedatei Disco_Orario_e-Paper.ino, in der sich auch Links zu den Kern- und Bibliotheksseiten, ausführliche Kommentare zum Code und andere Hinweise darauf befinden, dass ich nützlich gefunden. Ich empfehle Lesern, die sich für die Details der Auflistung interessieren, diese zu prüfen, indem sie sie mit der Arduino IDE (oder ihrem Lieblingseditor) öffnen. Stattdessen möchte ich hier die Funktionsweise des Programms anhand des Flussdiagramms in anschaulicher veranschaulichenFigur8.

Beachten Sie, dass der Stromkreis immer mit der Batterie verbunden ist. Beim ersten Einschalten (Power-Up) werden die Initialisierungsvorgänge und die Funktion setup() ausgeführt, wobei ein Interrupt aktiviert wird und dann die Schleife( ) wird ausgeführt. Zu Beginn der Schleife wird die Umgebungstemperatur überprüft. Liegt er nicht im erwarteten Bereich, ertönt ein akustisches und leuchtendes Alarmsignal, anschließend wird der Mikrocontroller in den maximalen Energiesparmodus (SLEEP_MODE_PWR_DOWN) versetzt. Andernfalls fährt die Schleife() fort, indem sie die Anzeige initialisiert, das „P“-Logo, den Batteriestatus, das aktuelle Datum und die aktuelle Uhrzeit, die Temperatur und die für die eingehende Nachricht ausgewählte Sprache anzeigt und den sogenannten Infomodus anzeigt. Anschließend wird die Anzeige angezeigt 'Ruhezustand' (wiederum zur Energieeinsparung), die MCU ausgeschaltet und die Schleife() abgebrochen. Aus diesem Zustand kann der Mikrocontroller durch einen Hardware-Reset (mit der Taste SW1) oder durch einen Interrupt, ein Ereignis, das in diesem Fall durch die tägliche Alarmfunktion der RTC oder durch die Taste SW2 erzeugt wird, „aufgeweckt“ werden (Wake Up). Wenn die Wiederaufnahme durch den Reset oder den Alarm verursacht wird, beginnt die Schleife() von vorne und endet immer im Infomodus. Wenn andererseits der Mikrocontroller über SW2 reaktiviert wird, startet die Schleife() neu, initialisiert die Anzeige, zeigt das Logo an und wenn die Taste gedrückt und sofort wieder losgelassen wurde, zeigt sie die Ankunftsmeldung und die aktuelle Uhrzeit an, wie wir sie nennen werden Parkmodus. Wenn Sie dagegen SW2 gedrückt halten, werden die Meldungen nacheinander in den vier Sprachen angezeigt. Lassen Sie einfach die Taste los, wenn die gewünschte Einstellung erscheint, und die Einstellung wird bis zur nächsten Änderung im EEPROM gespeichert. Anschließend erscheint die aktuelle Uhrzeit und der Zyklus endet immer im Parkmodus. Ein Beispiel für die Screenshots ist in Abbildung 3 zu sehen. Wir haben gesehen, wie das aktuelle Datum und die aktuelle Uhrzeit vom integrierten Schaltkreis RTC DS3231M bereitgestellt und beibehalten werden, der nach dem ersten Anlegen der Versorgungsspannung und bei Ausfall der Versorgung noch programmiert werden muss Spannung fällt aus. Um die Firmware und die Schaltung zu vereinfachen und das Hinzufügen weiterer Tasten zu vermeiden, erfolgt die Programmierung von Datum und Uhrzeit gleichzeitig mit dem Laden der Skizze über eine spezielle Codezeile, die im Setup eingefügt wird( ) routine:DS3231M.adjust(DateTime(2022, 03, 02, 19, 10, 00)); Das zu verwendende Format ist vom Typ „JJJJ, MM, TT, hh, mm, ss“. Sobald Sie die richtigen Daten eingegeben haben, können Sie die Skizze laden, Datum und Uhrzeit überprüfen, die Zeile auskommentieren (doppelten Schrägstrich am Anfang hinzufügen) und die Skizze neu laden, um zu verhindern, dass die Uhr auf ihre Anfangseinstellungen zurückgesetzt wird bei jedem Reset. Um eine ausreichende Genauigkeit zu erreichen, messen Sie einfach die Zeit, die zum Hochladen des Codes benötigt wird, beispielsweise 30 Sekunden, und starten Sie dann den ersten Upload 30 Sekunden im Voraus. Mit ein paar Versuchen kann eine Synchronisierung pro Sekunde erreicht werden, und zwar kostenlos! Die tägliche Aktualisierungszeit wird ebenfalls per Code eingestellt, indem einfach die gewünschte Zeit eingegeben wird. Abschließend noch ein Hinweis zur Methode zur Messung der Batteriespannung. Es ist mit einigen Variationen häufig im Internet zu finden und Microchip selbst dokumentiert es in einer eigenen Notiz. Der „Trick“ besteht darin, über die entsprechenden Register die interne Referenzspannung (1,1 V) als Eingangswert des ADC und die zu messende Spannung (VCC) als Referenz festzulegen. Jede Änderung des VCC verändert den ADC-Wert, sodass der Spannungswert mit ausreichender Genauigkeit berechnet werden kann.

Obwohl die E-Paper-Technologie zweifellos interessante Funktionen bietet, die sie für das vorgestellte Projekt besonders geeignet machen, weist sie auch bestimmte Einschränkungen auf, von denen die offensichtlichste die niedrige Bildwiederholfrequenz ist. Das hier verwendete Modell führt den vollständigen Aktualisierungszyklus in 2 Sekunden und die teilweise Aktualisierung in 0,3 Sekunden durch. Diese Werte können daher bei der Visualisierung sich schnell ändernder Bilder, Grafiken und Texte nicht mit anderen Darstellungsarten konkurrieren. Abschließend hoffe ich, dass Sie, wie ich oft sage, über den tatsächlichen Nutzen des vorgeschlagenen Objekts hinaus einige interessante Ideen gefunden haben, die Sie mit der Haltung eines Machers ausarbeiten und wiederverwenden können, und dass dieser Artikel Ihren Wunsch und Ihre Neugier geweckt hat, mit z. B. zu experimentieren -Papierdisplays!

Dieser Artikel erscheint im Elektor Mai/Juni 2023. Haben Sie technische Fragen oder Kommentare zu diesen E-Paper-Anzeigen oder anderen Themen, die in diesem Artikel behandelt werden? Gerne können Sie sich an den Autor oder die Elektor-Redaktion wenden.

Figur1Figur2Figur3Figur4Figur5.Figur6Figur7Figur8