Login
Newsletter
Werbung

Fr, 14. Januar 2011, 09:00

Heimautomatisierung für Hardwarebastler

Die Hardware-Anbindung

Was nun noch fehlt, ist die Verbindung zur Hardware, welche in diesem Fall per Parallelport realisiert werden soll. Dazu ist der Debugger zu schließen, da Änderungen am Blockschaltbild vorgenommen werden müssen. Hier soll erstmalig ein Element zum Einsatz kommen, welches in der eigentlichen Oberfläche nicht sichtbar ist, sondern vollständig im Hintergrund arbeitet.

Mit einem Rechtsklick im Flow-Editor öffnet sich wieder das Kontextmenü, welches unter Element hinzufügen Ein-Ausgang eine ganze Liste an unterschiedlichsten IO-Elementen anbietet. Für dieses Beispiel ist Parallelschnittstelle die richtige Wahl. Es wird dem Blockschaltbild ein neues Element hinzugefügt, welches per Doppelklick ein Konfigurationsfenster öffnet. Die Möglichkeiten hier sind recht übersichtlich: Dem Element kann ein anderer Name gegeben werden, die Abrufhäufigkeit der Parallelporteingänge kann festgelegt werden (welche bei 125 ms belassen werden kann) und die Basisadresse der Schnittstelle muss angegeben werden (diese ist rechnerabhängig und lässt sich aus den BIOS-Einstellungen ermitteln).

Als nächstes sind noch Verbindungen von den Buttonausgängen zum Parallelportelement herzustellen. War das Symbol für das Parallelschnittstellenelement in der Version 1.0 der Software noch fehlerhaft, so ist dieses Problem in der aktuellen Version 1.2 behoben worden: Das Element besitzt acht digitale Eingänge D0-D7 und fünf digitale Ausgänge, welche jetzt auch so im Flow-Editor angezeigt werden. Hier müssen nun Verbindungen von den Ausgängen der Buttons auf die Eingänge D0 und D1 gesetzt werden.

Der Flow-Editor: Der CLK-Eingang der ODER-Funktion ist hier als normaler Digitaleingang konfiguriert

Hans Müller

Der Flow-Editor: Der CLK-Eingang der ODER-Funktion ist hier als normaler Digitaleingang konfiguriert

Der Versuch, dieses Projekt jetzt im Debugger zu starten, führt zu einer Überraschung: Dieser meldet, dass nicht auf die Parallelschnittstelle zugegriffen werden kann. Des Rätsels Lösung: Direkte Portzugriffe sind unter Linux nur dem Benutzer root erlaubt, kein anderer Nutzer darf an echten Hardwareadressen herumpoken. Deshalb ist es an dieser Stelle erforderlich, das Projekt manuell und mit Root-Rechten zu starten. Ursache ist hier das Parallelschnittstellen-Plugin, welches auf die Basisadresse des Parallelports zugreifen muss. Wird dieses Plugin nicht verwendet, sind keine Root-Rechte erforderlich. Zum manuellen Starten ist in der Konsole entweder der Debugger mit

OpenDebugger test.apcp

oder aber der Player mittels

OpenPlayer test.apcp

aufzurufen. Sofern jetzt tatsächlich irgendetwas am Parallelport angeschlossen ist, mit dem sich die Schaltvorgänge überwachen lassen, kann man sehen, wie die einzelnen Bits entsprechend den Zuständen der beiden Togglebuttons ein- und ausgeschaltet werden.

Damit ist nun bereits das erste Projekt realisiert – und das komplett, ohne auch nur eine Zeile Code zu schreiben oder sich um das zu verwendende GUI-Toolkit zu kümmern.

Wie geht es weiter?

Die grundsätzliche Verwendung der OpenAPC-Software sollte anhand dieses kleinen Beispiels verdeutlicht worden sein. Es lohnt sich aber auf alle Fälle, noch ein wenig in der Software zu graben, zu testen, mit ihr zu spielen, zu experimentieren und Möglichkeiten auszuprobieren. Allein die Fülle an HMI- und Flow-Elementen, welche sich noch in den Kontextmenüs verstecken, lässt erahnen, was hier so alles machbar ist.

So finden sich für das GUI-Design die unterschiedlichsten Elemente: Buttons, Eingabefelder, Dreh- und Schieberegler, Checkboxen, Radiobuttons, Rohre, unterschiedlichste schaltbare Symbole, 2-D-Datenplotter, Textlabels, verschachtelbare Karteikartenreiter und anderes mehr. Mit dieser recht vollständigen Sammlung an GUI-Elementen sollte einer ansprechenden Oberfläche eigentlich nichts mehr im Wege stehen.

Ähnlich sieht es bei den Flow-Elementen aus, hier gibt es z.B. verschiedenste konfigurierbare Logikgatter, Konverterfunktionalitäten, um die verschiedenen Datentypen ineinander umwandeln zu können, Rechenoperationen, Elemente zur Steuerung und Beeinflussung des Programmablaufes und diverse Hardwaretreiber. Insbesondere letztere sind eine Fundgrube: Während Robotercontroller und Treiber zur Ansteuerung von Lasermaschinen für den Heimanwender eher uninteressant sind, gibt es hier auch die Möglichkeit, Stellmotoren einzubinden, auf MySQL- und PostgreSQL-Datenbanken zuzugreifen, mit einem LCDproc-Server zu kommunizieren, TCP/IP-Datenverbindungen herzustellen, Text als Sprache auszugeben und vieles mehr. Nicht unerwähnt bleiben sollen die ebenfalls bereits vorhandenen Treiber für das AVR Net-IO-Board, welches ob seines günstigen Preises gerade in Bastlerkreisen sehr beliebt ist.

Weiterführende Informationen bietet auch das Handbuch (PDF), welches ebenfalls auf der Downloadseite des Projektes heruntergeladen werden kann, aber leider nur in Englisch vorliegt. Dort finden sich auch andere interessante Ressourcen wie einige Beispielprojekte sowie das Software Development Kit, welches nicht nur Quellcodes enthält, sondern auch für all jene interessant ist, die eigene Plugins schreiben wollen, um damit selbst gebaute Hardware ansteuern zu können. Auch hier ist die Beschreibung der Programmierschnittstellen allerdings wieder komplett in Englisch gehalten.

Fazit

Die OpenAPC-Software hat durchaus noch Mängel und offensichtliche Bugs, auch ist die deutsche Übersetzung teilweise lückenhaft. Allerdings kann sie mit nur wenig Tüftel- und Bastelarbeit durchaus produktiv genutzt werden. Allein die Tatsache, dass es sowohl unter Windows als auch unter Linux kein vergleichbares freies Softwarepaket gibt, macht OpenAPC aus meiner persönlichen Sicht ganz klar zu einer Empfehlung.

Hier lassen insbesondere die offenen und gut dokumentierten Programmierschnittstellen hoffen: Wenn die Open-Source-Community diese einmal für sich entdeckt, kann innerhalb kürzester Zeit ein unschlagbar großer und hilfreicher Pool aus Plugins entstehen.

Ein anderes Highlight, das nicht unerwähnt bleiben soll, ist die Portabilität: So verspricht die OpenAPC-Software, dass es egal ist, auf welchem Betriebssystem und auf welcher Plattform ein Projekt erstellt wurde, es wird in jedem Fall auch in einer Runtime eines anderen Systems laufen. Zumindest für x86 und ARM kann ein kleiner Test das bestätigen: Ein OpenAPC-Projekt, welches auf einem x86-Fedora erstellt wurde, funktioniert im OpenPlayer problemlos unter ARM/Debian.

Autoreninformation

Hans Müller ist als Elektroniker beim Thema Automatisierung mehr der Hardware-Implementierung als dem Software-Part zugeneigt und hat demzufolge auch schon das ein oder andere Gerät in der privaten Wohnung verkabelt.

Dieser Artikel ist in freiesMagazin 01/2011 erschienen. Der Autor hat den Artikel für Pro-Linux nochmals aktualisiert.

  • Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.

    - Weitere Informationen
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung