Der kleine Pflanzengiesser für Pflanzen bis 10kg,
ist nun als Prototyp fertig. Das Gehäuse wurde mit meinem MyCubic 3D Drucker gedruckt. MyCubic deshalb, weil vom Orginal fast nur noch der Rahmen orginal ist.
Ein STM32L031 sorgt für die nötige Sparsamkeit im Stromverbrauch.
Eine Finite State Machine regelt den Programablauf
Der SourceCode ist auf meinem GitHub account unter https://github.com/artbody/pflamiku_3 einsehbar
Auch die Finite State Machine zur Steuerung
ist inzwischen mit dem FW profil framework https://github.com/pnp-software/fwprofile so gut wie fertig gestellt.
Hier die zugehörige State Machine welche als C Program, mit "function pointer" ausgeführt, im STM32L031 Mikrokontroller am arbeiten ist und damit sämtliche Funktionen steuert.
Zuvor hatte ich mit einer propriätären 30 Tage Testversion einer hier nicht weiter genannten Software gearbeitet. Aber da mich das Ergebnis nicht wirklich begeistert hatte, habe ich mit FW Profile welche unter der Mozilla Public Licence v2 veröffentlicht ist, sehr gute Erfahrungen gemacht. Man kann die State Machine zwar nicht so schön simulieren, aber dafür habe ich die Möglichkeit mit #include ... und extern FsmIFace* piface; extern void HX712_run(void); .. sehr flexible zu programmieren. Im Online Editor von FW profil kann man sogar direkt im Diagram Funktionen declarieren und Sourcecode eingeben. Dies macht FWprofil ganz klar zum Favoriten.
Dies ging mit der 30 TageProVersion der Testsoftware nicht wirklich, obwohl mit einer DeepC integration geworben wurde. Meistens blieb das Program hängen und nach ca 20 Restarts pro Stunde, ging mir das so gewaltig gegen den Geist, dass ich mich Stunden mit Alternativen beschäftigte, welche ja auch gefunden wurde.
Das pinzipielle Problem scheint hier nicht so sehr die grafische Seite zu sein, denn dazu findet man so manches. ABER für Mikrokontroller und C als Programmiersprache, da wird es äußerst dünn. Wahrscheinlich deshalb, weil die eine Seite Hardcore, von Hand "Spagetticode" erzeugt, Die andere Seite aber mit absoluten HightechIDE's (unbezahlbar) arbeitet. Dazwischen gibt es zwar so manche Lösung, aber diese ist meist schlecht oder gar nicht in die Entwicklungsumgebung zum Microcontroller integrierbar, zumindest nicht ohne Abstriche an anderen Stellen. Hier z.B. STMCubeMX zur configuration des Chips.
Nun aber zum Kern der Sache
Wieso eine State Machine ?
Die Erklärung ist einfach, man erhält einen klar strukturierten Code und zwar von Anfang bis Ende. Zuerst arbeit man die Logik des zu erstelleneden Programmes als Diagram aus. Sollte noch etwas fehlen oder ergänzt werden, so kann dies relativ einfach umgesetzt werden. Selbst im späteren Verlauf sind Änderungen ohne großen Aufwand einfügbar. Ein Kunde, welcher von Programmiersprachen keine Ahnung hat, erkennt über die grafische Darstellung trotz allem den logischen Programablauf. Er kann sich somit ein Bild der Sache machen.
Als Entwickler von Hard und Software, baut man sich selbst ein Gerüst, an dem man sich wesentlich schneller zum Ziel arbeiten kann, als wenn man, jeden einzelnen Teil, klassisch von Hand erstellt.
- Anmelden, um Kommentare verfassen zu können