Donnerstag, 24. Mai 2018

Grafiken für Visualisierung gesucht

Abb. 1: Komponentensymbole in der Komponentenpalette von Lazarus

Abb 2: Komponenten ohne Symbol

Abb. 3: Komponenten mit und ohne Symbol im Formulardesigner
Für die von mir und eventuell weiteren Personen entwickelte Software suche ich Symbole und Grafiken, die zur Identifikation der Softwaremodule verwendet werden können. Aktuell fehlen Symbole für folgende Komponenten, um sie in der Komponentenpalette und im Formulardesigner anzuzeigen:
  • Chiptemperatursensor
  • Container aller Chiptemperatursensoren eines Computers
  • Binärer Ein-/Ausgang
  • LED (Leuchtdiode)
  • 4stellige BCD-Anzeige
Der Urheber der bereitgestellten Symbole (Grafiken) erklärt sich einverstanden, daß seine bereitgestellten Werke unter diegleiche Lizenz wie die Software, die sie enthält, gestellt werden. Der Urheber wird als Urheber seiner Werke oder als Mitwirkender an der Software, die sein Werk enthält, genannt. Zu Dokumentationszwecken können die Werke als Teile von Abbildungen vorkommen. Weitere Ansprüche können nicht erfüllt werden, oder sie müssen im Einzelfall verhandelt werden.
Die Grafiken sollen bei einer Verkleinerung auf 24 Pixel mal 24 Pixel noch ausreichend informativ sein. Beispiele findet man nach Installation der Lazarus-IDE in der Komponentenpalette (siehe Abbildungen 1 u. 2) des Hauptfensters am oberen Bildschirmrand. Das wird auch die Hauptverwendungsstelle der oben aufgezählten Komponenten sein, die in gleicher Größe in dem Fenster zu sehen sind, in das sie eingesetzt werden (Abb. 3).

Fragen und Einsendungen können auf allen bekannten Wegen erfolgen:

Warum und wie man die Temperatur elektronischer Bauteile überwacht

Anwendung für Linux zum Messen von Chiptemperaturen
Elektronische Geräte verbrauchen Energie. Sofern es sich um Geräte ohne mechanische Aktoren, Schallsender und Lichtquellen handelt, Wird die zugeführte elektrische Energie zu 100
% im Gerät in Wärme umgewandelt. Das geschieht, weil alle stromführenden Teile einen Wirkwiderstand haben. Das ist unvermeidlich, solange man nicht in der Lage ist, zu 100% elektrisch supraleitende und ideal isolierende Materialien einzusetzen, z.B. Transistoren, die im eingeschalteten Zustand keinen und im gesperrten Zustand einen unendlich großen Wirkwiderstand haben (ideale Schalter). Erwärmung ist also für vielleicht noch lange Zeit unvermeidlich.
Um zu verhindern, daß Wärme die Bauelemente zerstört, muß sie im Durchschnitt so schnell abgeführt werden, wie sie entsteht, ohne daß die Temperatur im Inneren des Geräts oder Bauelements zerstörerisch hoch wird. Gewöhnliche Halbleiterbauelemente vertragen in der Regel keine Erwärmung deutlich über 100 °C ohne Funktionsverlust. Wenn möglich, konstruiert man die Geräte so, daß unter den vorgesehenen Einsatzbedingungen keine zu hohe Temperatur auftritt, weil die Wärmeabfuhr über die Oberfläche oder durch aktive Kühlung optimiert werden kann. Das setzt voraus, daß die Umgebung einschließlich Kühlsystem immer so beschaffen ist, daß sie die umgesetzte Leistung aufnehmen kann, ohne daß es zur Überhitzung der Elektronik kommt.
Bei aktiver Kühlung (z.B. Kühlmittelpumpe, Gebläse oder Peltierelement) wird zusätzliche Energie verbraucht. Diese sollte möglichst niedrig sein. Zu diesem Zweck steuert man das Kühlsystem so, daß es immer ausreicht aber seine Leistung an den Bedarf angepaßt wird. Dafür ist es nötig, die Temperatur im Gerät oder in kritischen Bauelementen zu kennen, also zu überwachen.
Ein weiterer Anspruch - z.B. an mobile Geräte - ist, daß sie auch bei stark wechselnden Umweltbedingungen nicht überhitzt werden. Sie sollen in unterschiedlichsten Taschen (unterschiedlicher Wärmedurchgang) und möglichst auch unter starker Bestrahlung (direkte Sonneneinstrahlung, Hochofen, Heizung, ...) nicht zerstört, lieber abgeschaltet oder vorübergehend in der Funktion eingeschränkt werden, wenn nicht ausreichend gekühlt werden kann, um alle Funktionen aufrechtzuerhalten.
Es gibt Bauelemente, die bereits Sensoren und Schaltungen zur Auswertung und Notabschaltung enthalten, z.B. Leistungstransistoren. Für Computer können flexiblere Lösungen sinnvoll sein, die man als Software programmiert und die in der Lage sind Temperatursensoren in Prozessoren und Peripherie auszuwerten und mittels Aktoren intelligente Reaktionen auszulösen. So könnten Taktfrequenzen reduziert werden, was proportional dazu Schalthäufigkeiten und damit die Häufigkeit von Leistungsspitzen reduziert. Programme könnten das tun, wenn sie gerade nicht mit höchstmöglicher Geschwindigkeit arbeiten müssen, weil sie auf ein zeitunkritisches Ereignis warten. Zum Beispiel könnte ein Prozeßrechner seine Taktfrequenz oder ein Programm seine Zykluszeit reduzieren, wenn der Anwendungsfall zeitweilig keine schnellen Aktionen erfordert. So bleibt das System in Funktion, bis es unter besseren Umgebungsbedingungen bei Bedarf wieder mit voller Leistung arbeiten kann.
Zusammenfassung: Man kann in einem Mikrorechnersystem durch Programmierung die Wärmeerzeugung und die Kühlung nach Erfordernis oder zur Erhöhung der Energieeffizienz steuern.
Dieser Blog enthält leicht nachzuvollziehende Beispiele zum Messen von Temperaturen in CPU u.a. integrierten Schaltungen, die Sensoren enthalten und für die Treiber im Linux-Kernel installiert sind. Man kann die Anwendung für den PC, den Raspberry Pi und vermutlich manche andere Hardware kompilieren. Auf vielen PC findet man mehrere integrierte Temperatursensoren, die mit der dort vorgestellten Komponente TChipTempSensor ausgewertet werden können. Im Beispiel wird die Temperatur des ausgewählten Sensors nur angezeigt. Der Programmierer könnte entscheiden, sie während eines Versuchs aufzuzeichnen - auch in Verbindung mit anderen Daten - oder bedingte Schaltvorgänge auszulösen (z.B. ein Gebläse einzuschalten), wenn die CPU-Temperatur sich einem kritischen Wert nähert. Beim Nachrüsten eines Kühlsystems an einem Rechner, der dafür keine Systemschnittstelle hat, fehlen entsprechende Programme im System, weil sie abhängig von der anzuschließenden Hardware programmiert werden müssen. Deshalb ist das Energiemanagement einschließlich Kühlung in der Anwendung zu programmieren. Das kann, wie in Beispielen in diesem Blog gezeigt, mit geeigneten Komponentenklassen durch stark vereinfachte Anwendungsprogrammierung (Rapid Application Development, RAD) gelöst werden.

Montag, 14. Mai 2018

CPU-Temperaturfernanzeige für Raspberry Pi u.a.




Beispiel mit nur 1 Zeile Quelltext und der RAD-Umgebung Lazarus, um eine CPU-Temperaurmessung lokal oder über ein Netzwerk durchzuführen

Gemessen wird die CPU-Temperatur des Computers, auf dem die Anwendung läuft. Die Anwendung kann für jede Hardware kompiliert werden, für die es einen Free Pascal Compiler gibt. Das Lazarus-Package "computer" in der bereitgestellten Software kann nur für Linux kompiliert werden, wodurch die Anwendung nur für einen Linux-Computer geeignet ist, z.B.  Raspberry Pi oder PC. Um die Anwendung über ein Netzwerk zur Fernmessung zu verwenden, muß der Rechner, auf dem sie läuft, ein SSH-Server und der anzeigende Computer ein SSH-Client mit X-Server sein. Ein X-Server für Windows ist z.B. in Cygwin-X enthalten. Dieser konnte bereits erfolgreich mit dieser Anwendung verwendet werden. Der Computer, auf dem die Anwendung läuft (Meßort), braucht keinen X-Server, wenn die Temperatur nicht lokal angezeigt werden soll.


Die GUI-Anwendung ist nur ein Beispiel für den Einsatz der TChipTempSensor-Komponente aus dem Lazarus-Package "computer". Sie kann ebenso in Services (Daemons), Webanwendungen oder Konsolenanwendungen verwendet werden (= andere Projekttypen, die mit Lazarus erstellt werden können).

Weitere Packages mit Komponenten, die den Zugriff auf Raspberry Pi-Hardware und -Peripherie oder auf Peripherie anderer Linux-Computer ebenso vereinfachen, sind geplant. Genauere Auskünfte erteile ich, soweit möglich, auf Anfrage oder auf meiner Website.

Demnächst werde ich ein Package veröffentlichen, das die Verwendung von CGI und SSI in Lazarus-Projekten sehr vereinfachen wird (fast nur Prototyping + HTML für einfache Webanwendungen). In Verbindung mit Apache den Lazarus-Packages "computer", "raspi" u.a. geplanten oder existierenden Packages werden sich dann mit wenig portablem Quelltext und ohne die Notwendigkeit externer Services mit mobilen Geräten fernsteuerbare Hausautomatisierungen und andere weltweite Fernsteuerungen durchführen lassen - auch mit selbstgebauter Hardware und ohne KI (Kopplung vermutlich trotzdem leicht möglich).

Wer JavaScript trotzdem lieber hat, vergnüge sich gern mit meiner sympathischen Freundin Amy.




Andreas Jakobsche
Web: www.jakobsche.de
WhatsApp-Gruppe: Raspberry Pi