Große Konfigurationsprobleme fĂŒr kleine GerĂ€te

Teil 1. Lyric


Die moderne Welt ist ohne eine Vielzahl elektronischer und elektrischer Assistenten nicht denkbar. Ausgehend von Computern und Smartphones, endend mit einem einfachen Lichtschalter in der KĂŒche und einem Eingangsschutzschalter. Auf die eine oder andere Weise mĂŒssen Sie mit allen GerĂ€ten interagieren. Bei einigen hĂ€ufiger, zum Beispiel einem Smartphone, das manche Menschen ĂŒberhaupt nicht außer Kontrolle geraten, bei einigen seltener dem gleichen automatischen ZugangsschutzgerĂ€t in die Wohnung, dessen Existenz manche gar nicht bemerken.

Bei GerĂ€ten der ersten Kategorie ist dort alles einfach. Die BenutzeroberflĂ€che ist in der Tat grafisch und wird von Designern und Programmierern festgelegt. Und mit den GerĂ€ten der zweiten, in Bezug auf die Interaktion, nicht von Bedeutung, ist der Plan viel komplizierter. Wir halten sie fĂŒr selbstverstĂ€ndlich, denselben Lichtschalter oder fĂŒr die Mutter, wenn sie ihre Arbeit erledigen, wie eine Eingabemaschine, die an Überlastung gearbeitet hat.

Bei sehr einfachen GerĂ€ten ist die Schnittstelle primitiv. Tasten- oder Kippschalter, zum Beispiel mehrere Tasten fĂŒr den Thermostat. Die Eigenschaften werden vom Hersteller festgelegt und vom Verbraucher nicht geĂ€ndert. Auslösestrom 10A, 16A, 25A ... Umschalten auf 6A 230V ... Aber wenn das GerĂ€t etwas komplizierter ist, wird alles sehr schlecht.

Ein wenig abgelenkt werde ich ĂŒber meinen Fehler nur wegen der Hardwareschnittstelle sprechen. Es gab eine Aufgabe des Lastausgleichs fĂŒr ein Privathaus. In der Tat - ein mehrkanal programmierbares Zeitrelais. Ich habe buchstĂ€blich abends einen Prototyp angefertigt, ihn an den Kunden geliefert, der Kunde, ein Mitbewohner, war zufrieden, ich habe mich entschlossen, eine kleine Produktion aufzubauen, ein kleines elektronisches Startup im Dorfmaßstab zu organisieren, da das Problem der mangelnden EingabekapazitĂ€t fĂŒr den privaten Sektor relevant ist. Ein Designproblem blieb bestehen - die Konfiguration des GerĂ€ts. Im Prototyp wurden die Intervalle einfach in die Firmware gepackt, wenn 200 Assembler-Anweisungen so genannt werden konnten. Ein paar Mal musste ich die Einstellungen anpassen, dies geschah einfach durch Zusammenstellen einer neuen Firmware und Aktualisieren mit Hilfe des ProgrammiergerĂ€ts. Es ist klar, dass diese Methode fĂŒr ein serielles, auch kleines GerĂ€t nicht geeignet ist.

Hier bin ich auf alle "Reize" der Entwicklung einer Hardware-BenutzeroberflĂ€che gestoßen ... Einfache Methoden wie das Aufschreiben von 16 Optionen fĂŒr Einstellungen und das Einstellen des Schiebeschalters haben nicht die erforderliche FlexibilitĂ€t geboten. Eine ernsthafte Schnittstelle fĂŒr die Kommunikation mit einem PC oder Smartphone ist eine ungerechtfertigte Komplikation, ein Preisanstieg. DarĂŒber hinaus besteht sofort die Notwendigkeit, eine einfache, aber plattformĂŒbergreifende Anwendung (Win / Linux / Android / iOs) zu entwickeln. Das ist aber nicht die Hauptsache. TatsĂ€chlich konfiguriert der Benutzer das GerĂ€t einmal wĂ€hrend der Installation und ruft es im Idealfall nicht mehr zurĂŒck.

Im Gegensatz zum Prototyp wurden auf der Vorderseite des GerĂ€ts eine 4-Bit-LED-Anzeige, Tasten und LEDs angezeigt. Es wurden auch Funktionen hinzugefĂŒgt, Merkmale von Verzögerungen beim Einschalten der Last nach einem Stromausfall, zusĂ€tzliche Modi fĂŒr die Stromversorgung ĂŒber eine Stromleitung oder einen Notstromaggregat, um die Gefriertemperatur aufrechtzuerhalten ...

Und hier ist das massendimensionale Layout dieses Frankenstein-Monsters



(Steuert SchĂŒtze in Schaltkreisen von Niederstromspulen)

Solange nur die FunktionalitĂ€t eines programmierbaren Relais vorhanden war, war es mit den Einstellungen nicht schwierig, die erstellte Hardwareschnittstelle zahlte sich aus. Aber irgendwann begann die Konfigurationsanweisung die GrĂ¶ĂŸe des Firmware-Codes zu ĂŒberschreiten. Erste Idee: Der Benutzer scannt den QR-Code auf der Instrumententafel und geht mit der Anweisung auf die Seite - fehlgeschlagen. Es bleibt entweder, ein sehr einfaches GerĂ€t herzustellen oder nach einer anderen Methode zur Kommunikation mit dem GerĂ€t zu suchen. Potenzielle KĂ€ufer (mutige Tester) haben die Konfiguration sehr lange nach den Anweisungen verstanden.

Das Traurigste ist, ich habe Prototypen mehrerer GerÀte, die einmal konfiguriert wurden und ihr Leben in einer Schalttafel leben. Konfiguration - ein Dutzend anderer Bytes. Es bleibt eine geeignete Schnittstelle zu finden.

Was haben wir heute? Vergleich der „klassischen“ Konfigurationsmethoden:

  • Die Auswahl der vorgefertigten Konfigurationen. PROS: Einfache Implementierung von Software und Hardware. ZusĂ€tzliche Hardware-Verbesserungen sind minimal. Der Benutzer benötigt keine spezielle AusrĂŒstung, genĂŒgend Anweisungen. Nachteile: Es gibt keine FlexibilitĂ€t, nicht intuitiv, Anweisungen sind erforderlich.
  • Eine Folge von Klicks mit RĂŒckmeldung ĂŒber eine einfache Anzeige (Ă€hnlich wie beim Einstellen einer normalen elektronischen Uhr). PROS: Es ist einfach programmgesteuert zu implementieren, der Benutzer benötigt keine spezielle AusrĂŒstung, genĂŒgend Anweisungen. Nachteile: Nicht intuitiv ist es schwierig, eine große Anzahl von Parametern zu konfigurieren. Die UnfĂ€higkeit, Einstellungen zu klonen, ist fĂŒr Installateurunternehmen von entscheidender Bedeutung.
  • Konfiguration ĂŒber eine Standard-Kabelschnittstelle. PROS: Intuitiv, wenn die Anwendung gut geschrieben ist, einfaches Klonen von Einstellungen, relativ einfache Implementierung, vielleicht nicht sehr teure Hardware-Verbesserungen, die Möglichkeit, Firmware zu aktualisieren. Nachteile: Der Benutzer sollte ĂŒber GerĂ€te verfĂŒgen, mindestens einen Computer oder Laptop mit USB-Anschluss und einen Schnittstellenkonverter, wenn Ihr GerĂ€t etwas anderes als USB oder Ethernet bietet. Die Notwendigkeit, eine Anwendung zu entwickeln.
  • WiFi + WEB - Schießen aus einer Kanone auf Spatzen und Terry Ardurinshchina. Aber die Idee ist nicht schlecht. PROS: Ähnlich wie bei einer Kabelverbindung muss keine plattformĂŒbergreifende Anwendung entwickelt werden, indem die integrierte WEB-Schnittstelle des Konfigurators bereitgestellt wird. Es reicht aus, wenn der Benutzer ĂŒber ein GerĂ€t mit WLAN-UnterstĂŒtzung und einen Browser verfĂŒgt. Der Zugriff auf das globale Netzwerk ist nicht einmal erforderlich. Vielleicht ist dieses Design billiger als Hardware-Tasten / Anzeigen, der Fall ist auch vereinfacht. Nachteile: Technisch gesehen eine Ă€ußerst hĂ€ssliche Lösung, die das Produkt auf eine völlig andere GerĂ€teklasse ĂŒbertrĂ€gt. Die ZuverlĂ€ssigkeit wird sowohl aufgrund der KomplexitĂ€t der Firmware als auch aufgrund der erhöhten Empfindlichkeit gegenĂŒber EMF verringert.

Ich fasse zusammen, dass eine der aus Sicht des Benutzers schönsten Lösungen die letztere ist. Aber es ist auch eines der schrecklichsten aus der Sicht eines Ingenieurs. Ich hÀtte fast damit aufgehört, aber ...
Technische KrĂŒmmung verfolgt. Um ein paar Bytes in das EEPROM zu schreiben, ist es irrational, einen Garten mit einem so umfangreichen Protokollstapel zu fechten. Aber es sieht so aus, als hĂ€tte ich eine Lösung fĂŒr mein Problem gefunden. Hier sind die Merkmale dieser Methode:

Vorteile:

  • Die WertschĂ€tzung der Hardwarekomponente ist vergleichbar mit der Entscheidung „Auswahl aus vorgefertigten Konfigurationen“ (10–15 Rubel). Die Möglichkeit, zusĂ€tzliche Tasten, Anzeigen usw. abzulehnen, fĂŒhrt eher zu einem gĂŒnstigeren Preis.
  • Die Implementierung der Software ist kein Problem.
  • Es ist nicht erforderlich, eine spezielle Anwendung zu entwickeln. Falls gewĂŒnscht, kann die Anwendung bereitgestellt werden.
  • Die IntuitivitĂ€t hĂ€ngt von der QualitĂ€t der Entwicklung des WEB-Konfigurators oder der Anwendung ab.
  • Galvanische Trennung mit dem GerĂ€t.

Nachteile:

  • Niedrige DatenĂŒbertragungsrate im Vergleich zu einer Kabel- oder Funkschnittstelle.
  • Physischer Kontakt mit dem GerĂ€t ist erforderlich.
  • Sie benötigen mindestens einen Zugriff auf das Netzwerk.

DarĂŒber hinaus ist diese Methode der InformationsĂŒbertragung in der Natur sehr verbreitet. Dies ist eine Schallwelle.

Jetzt hat vielleicht jeder ein Smartphone. Kein Smartphone - jedes GerÀt zum Abspielen von Ton, auch ein Kassettenrekorder, ist geeignet. Wie ich diese Schnittstelle in Aktion sehe:

  1. Der Benutzer installiert das GerĂ€t gemĂ€ĂŸ den Anweisungen.
  2. Die erforderliche Konfiguration des GerÀts wird erstellt, die erforderlichen Modi und Einstellungen werden registriert.
  3. Der Benutzer versetzt das GerĂ€t in den Konfigurationsmodus, z. B. durch eine spezielle Sequenz durch DrĂŒcken einer Taste. Das GerĂ€t zeigt einen Bereitschaftszustand an, z. B. durch Blinken einer LED mit einer Frequenz von 5 Hz.
  4. Im Konfigurator wird auf das Symbol „Übertragungsparameter“ geklickt, woraufhin die codierte Soundsequenz abgespielt wird (und wer hat sie in den 90er Jahren von Kassetten geladen?).
  5. Der Benutzer wartet darauf, dass die Daten in das GerĂ€t geladen werden (z. B. leuchtet die LED stĂ€ndig) und klickt auf das Symbol „Übertragung stoppen“.

Alles, neue Parameter werden auf das GerĂ€t ĂŒbertragen. Denken Sie, dass diese Konfigurationsmethode bequem genug ist?

Anstelle eines Nachwortes

Ich habe speziell nicht auf den technischen Teil der Implementierung eingegangen. Jeder Fall kann individuell sein, der Ansatz ist eine allgemeine Idee. Wenn der Artikel Interesse weckt, werde ich den zweiten Teil veröffentlichen. Praktisch. WĂ€hrend der Spoiler: Die Idee war erfolgreich, passte das Modell auf der 8-Bit-PIC16 + "Student" -Version des C-Compilers ohne Optimierung, einschließlich Handbuch, die Firmware leise sowohl in den Speicher (ca. 1KB) als auch in die Leistung. Die schwierigste mathematische Operation ist das HinzufĂŒgen von sint8_t und sint16_t. Nach vorlĂ€ufigen Berechnungen passt der in Assembler neu geschriebene Kern des Soundkonfigurators in weniger als 512 Kiloslov, und der PIC16F819 sollte eine ausreichende 2MIPS-Leistung aufweisen.

Alles Gute,
Konstantin.

Source: https://habr.com/ru/post/de468951/


All Articles