Der Ardunio und direkte Ausgaben vom ZusiServer über TCP
Verfasst: 13.01.2014 22:12:06
Moin,
seit über zwei Jahren beschäftige ich mich nun mit der Frage wie man Ausgaben in Zusi einfach, aber ohne große Kompromisse realisieren kann mit möglichst wenig Programmierkenntnissen. Die Beschäftigung mit dem Arduino lohnt sich dabei wirklich, weil die freie Programmierbarkeit selbst mit geringem Wissen gefühlt unendlich viele Einsatzmöglichkeiten beim Pultbau bietet.
Ich habe selber damals wegen Zusi bei Null Ahnung mit dem Arduino angefangen. Sehr dankbar war ich hier für geleistete Vorarbeit mit dem Arduino von Andreas Karg und nonesense, allerdings wollte ich noch einen Schritt weiter gehen und den -für mich (als Nicht-Programmiererfahrenen) eher unübersichtlichen- Teil der Konfiguration des Verbindungsaufbaus über USB mittels .NET komplett loswerden. Vielleicht ist das nichts ganz neues und der eine oder andere hier schon mit so einer Lösung unterwegs. Bislang fand ich allerdings keine Veröffentlichungen dazu.
Das Ergebnis ist also nun, per TCP-Client auf dem Arduino über die Ethernetschnittstelle eine ähnliche Funktionalität allein in der C++ änlichen Arduino-Sprache Processing zu erreichen. Im Grundzustand kann das Script die Werte für den PZB-Leuchtmelder direkt am Server abfragen und am Arduino angeschlossene LEDs ansteuern, siehe https://vimeo.com/71993509 (wurde testweise auch schon erweitert auf Anzeige anderer Werte wie z.B. Manometer über Schrittmotoren, siehe https://vimeo.com/79030868).
Der bisherige Weg über
ZusiServer -> .NET-Client -> Arduino über USB
verkürzt sich also auf
ZusiServer -> Arduino über Ethernet
Was soll das bringen?
- erstens muß ich mich -gerade als Einsteiger- nur noch mit einer Baustelle beschäftigen, dem Arduino. Sämtliche Einarbeitung in weitere Programme wie VisualBasic wird überflüssig
- zweitens halte ich diesen Weg für zukunftsfähig im Bezug auf Zusi3. Das derzeitige Script ist zwar nur für Zusi 2, aber das Prinzip dürfte sich später ähnlich auf Z3 anwenden lassen mit der zusätzlichen Option auf Eingaben über ein und denselben Arduino als Interface direkt mittels TCP-In.
Nachteilig ist höchstens, das man sich ev. einen Moment mit den Netzwerkeinstellungen in Windows beschäftigen muß damit sich der Arduino auch korrekt anmelden kann.
ACHTUNG, ich hab mich inzwischen wohl zwar einige 100 mal mit dem Zusi-Server problemlos auf diese Art über Stunden verbunden und Werte für diverse Ausgaben abgefragt, trotzdem gebe ich natürlich keinerlei Garantie auf die einwandfreie Funktionalität meiner Lösung. Das ganze ist eher als ein funktionierendes, ausbaufähiges Testscript zu betrachten. Ich kein Programmierer, lediglich ausdauernd in Trial-and-error...
1.: das benötigte Material
Hardware:
- einen Arduino mit dem üblichen (5V)-Shield-Design.
Ich hatte diesen TCP-Sketch schon auf dem Freeduino Serial, Arduino UNO und MEGA zum laufen, empfehle aber den MEGA zu verwenden. Der ist vom Preis/Leistungsverhältnis derzeit die erste Wahl. Die Preise beginnen bei Kauf in China um 13, in der BRD um 17 Euro. Zum Beispiel: http://www.ebay.de/itm/MEGA-2560-R3-ATM ... 1319684513
- der Arduino muß um eine Ethernetschnittstelle erweitert werden. Das geht mit dem ebenso überall erhältlichen W5100 Shield. Preis ab 5 Euro in China, ab ca. 10 Euro in der BRD. Zum Beispiel: http://www.ebay.de/itm/Ethernet-Shield- ... 1228626396
- selbstredent einen netzwerkfähigen PC, optional mit DHCP Router sowie zum Arduino passendes USB-Kabel zum Upload der Scripte und zum Netzwerk passende, übliche Ethernetkabel.
- für erste Ausgaben sechs normale LEDs mit passenden Vorwiderständen zum Betrieb an 5V am Arduino mit z.B. einem Steckbrett verdrahtet
Software:
- derzeit Zusi 2 (ist klar)
- Zusi-Server 1.4a
- die aktuelle, kostenlose Arduino IDE unter http://arduino.cc/en/Main/Software
- mein Ethernet-Client-Script für den Arduino http://www.ki.tng.de/~oellermann/zusi/E ... ultV22.zip
Aufbaubeispiel mit Freeduino Serial (statt Arduino MEGA), Ethernetshield W5100 und einem Nachbau des PZB-Würfels mit normalen LED samt Vorwiderständen:
Im nächsten Teil folgt, wie ich das Script auf den Arduino bekomme und für meinen Rechner anpasse.
seit über zwei Jahren beschäftige ich mich nun mit der Frage wie man Ausgaben in Zusi einfach, aber ohne große Kompromisse realisieren kann mit möglichst wenig Programmierkenntnissen. Die Beschäftigung mit dem Arduino lohnt sich dabei wirklich, weil die freie Programmierbarkeit selbst mit geringem Wissen gefühlt unendlich viele Einsatzmöglichkeiten beim Pultbau bietet.
Ich habe selber damals wegen Zusi bei Null Ahnung mit dem Arduino angefangen. Sehr dankbar war ich hier für geleistete Vorarbeit mit dem Arduino von Andreas Karg und nonesense, allerdings wollte ich noch einen Schritt weiter gehen und den -für mich (als Nicht-Programmiererfahrenen) eher unübersichtlichen- Teil der Konfiguration des Verbindungsaufbaus über USB mittels .NET komplett loswerden. Vielleicht ist das nichts ganz neues und der eine oder andere hier schon mit so einer Lösung unterwegs. Bislang fand ich allerdings keine Veröffentlichungen dazu.
Das Ergebnis ist also nun, per TCP-Client auf dem Arduino über die Ethernetschnittstelle eine ähnliche Funktionalität allein in der C++ änlichen Arduino-Sprache Processing zu erreichen. Im Grundzustand kann das Script die Werte für den PZB-Leuchtmelder direkt am Server abfragen und am Arduino angeschlossene LEDs ansteuern, siehe https://vimeo.com/71993509 (wurde testweise auch schon erweitert auf Anzeige anderer Werte wie z.B. Manometer über Schrittmotoren, siehe https://vimeo.com/79030868).
Der bisherige Weg über
ZusiServer -> .NET-Client -> Arduino über USB
verkürzt sich also auf
ZusiServer -> Arduino über Ethernet
Was soll das bringen?
- erstens muß ich mich -gerade als Einsteiger- nur noch mit einer Baustelle beschäftigen, dem Arduino. Sämtliche Einarbeitung in weitere Programme wie VisualBasic wird überflüssig
- zweitens halte ich diesen Weg für zukunftsfähig im Bezug auf Zusi3. Das derzeitige Script ist zwar nur für Zusi 2, aber das Prinzip dürfte sich später ähnlich auf Z3 anwenden lassen mit der zusätzlichen Option auf Eingaben über ein und denselben Arduino als Interface direkt mittels TCP-In.
Nachteilig ist höchstens, das man sich ev. einen Moment mit den Netzwerkeinstellungen in Windows beschäftigen muß damit sich der Arduino auch korrekt anmelden kann.
ACHTUNG, ich hab mich inzwischen wohl zwar einige 100 mal mit dem Zusi-Server problemlos auf diese Art über Stunden verbunden und Werte für diverse Ausgaben abgefragt, trotzdem gebe ich natürlich keinerlei Garantie auf die einwandfreie Funktionalität meiner Lösung. Das ganze ist eher als ein funktionierendes, ausbaufähiges Testscript zu betrachten. Ich kein Programmierer, lediglich ausdauernd in Trial-and-error...
1.: das benötigte Material
Hardware:
- einen Arduino mit dem üblichen (5V)-Shield-Design.
Ich hatte diesen TCP-Sketch schon auf dem Freeduino Serial, Arduino UNO und MEGA zum laufen, empfehle aber den MEGA zu verwenden. Der ist vom Preis/Leistungsverhältnis derzeit die erste Wahl. Die Preise beginnen bei Kauf in China um 13, in der BRD um 17 Euro. Zum Beispiel: http://www.ebay.de/itm/MEGA-2560-R3-ATM ... 1319684513
- der Arduino muß um eine Ethernetschnittstelle erweitert werden. Das geht mit dem ebenso überall erhältlichen W5100 Shield. Preis ab 5 Euro in China, ab ca. 10 Euro in der BRD. Zum Beispiel: http://www.ebay.de/itm/Ethernet-Shield- ... 1228626396
- selbstredent einen netzwerkfähigen PC, optional mit DHCP Router sowie zum Arduino passendes USB-Kabel zum Upload der Scripte und zum Netzwerk passende, übliche Ethernetkabel.
- für erste Ausgaben sechs normale LEDs mit passenden Vorwiderständen zum Betrieb an 5V am Arduino mit z.B. einem Steckbrett verdrahtet
Software:
- derzeit Zusi 2 (ist klar)
- Zusi-Server 1.4a
- die aktuelle, kostenlose Arduino IDE unter http://arduino.cc/en/Main/Software
- mein Ethernet-Client-Script für den Arduino http://www.ki.tng.de/~oellermann/zusi/E ... ultV22.zip
Aufbaubeispiel mit Freeduino Serial (statt Arduino MEGA), Ethernetshield W5100 und einem Nachbau des PZB-Würfels mit normalen LED samt Vorwiderständen:
Im nächsten Teil folgt, wie ich das Script auf den Arduino bekomme und für meinen Rechner anpasse.