Allgemeines
C# ist eine Sprache der .NET Framework Sprachfamilie und kommt mit einer
eigenen umfangreichen Klassenbibliothek und dem .NET Framework Laufzeitsystem.
Entwicklungsumgebung ist Visual Studio.NET. C# und alternativ die freie
Entwicklungsumgebung SharpDevelop. C# vereint die wesentlichen
Element von VC++ mit der Einfachheit von Visual Basic.
Die C# Ecke soll aufzeigen wo innerhalb der Site C#spezifische Themen zu
finden sind, aber auch die Programmierung der fischertechnik Interfaces mit C#
beschreiben.
Literatur :
Eric Gunnarson : C#, Galileo, zweite
Auflage, ISBN 3-89842-183-X (deutsch) als fundierte Einführung,
Nitty Gritty C#, Addison-Wesley (deutsch). Handfeste und preiswerte
Einführung/Übersicht für Programmierer mit Erfahrung.
O'Reilly : Programming C# 2. Auflage, ISBN 0-596-00309-9, als Übersicht und
O'Reilly : C# in a Nutshell, 0-596-00181-9, als Referenz neben der recht
ansprechenden Hilfe des Visual Studio.NET
Kühnel : Visual C# - Das umfassende Handbuch - Spracheinführung, OOP und
Windows-Programmierung. Sehr verständlich : Graphik / Drucken. Galileo
Computing. ISBN 3-89842-9 2.Auflage.
Frank Eller, Michael Kofler : Visual C# - Grundlagen, Programmiertechniken,
Windows-Programmierung. Addison-Wesley Verlag ISBN 3-8273-2073-9 und eine
Ausgabe speziell für C# 2005
Doberenz / Kowalski : Visual C#.NET - Grundlagen und Profiwissen. Hanser Verlag.
ISBN 3.446.22021-6.
In den drei letztgenannten Büchern wird ausführlich auf die
Programmierung mit Windows.Forms eingegangen.
Programmierung
Es wird unterschieden zwischen :
- Interfaces der ROBO Serie und dem Intelligent Interface : FishFace40 (csFish40Setup.EXE
einschl. Handbuch), Handbuch separat FishFa40CS.PDF
- Intelligent Interface und Universal Interface(an LPT) : FishFa30 (umFish30.ZIP
und csmodel.zip mit Handbuch und Assembly).
Handbuch separat : FishFa30CS.PDF
- FishFace40 wurde mit der C# Final Version (v1.0) erstellt. Eine
Konvertierung in .NET Version 1.1, 1.2 bzw. 2.0 ist problemlos
möglich. UND :
- Es gibt nun auch eine FishFace40-Ausgabe für .NET 2.0 und C#
2005 für die ROBO's und das Intelligent Interface.
Basis für die Programmierung ist die in VC++ 6.0 erstellte DLL umFish30.DLL
bzw. umFish40.DLL. In umFish40.DLL ist noch die FtLib von fischertechnik
integriert. Die erforderlichen USB-Treiber und Firmware Updates der ROBO
Interfaces sind von www.fischertechnik.de
(Software) zu beziehen. Die USB-Treiber Installation erfolgt automatisch, das
Firmware Download über ROBO Pro.
Der Funktionsumfang von FishFa30.DLL ist weitgehend aufwärtskompatibel zu
FishFace40.DLL. Änderungen gibt es beim Konstruktor und der Methode
OpenInterface. Die enum Nr ist in die enums Inp und Out gesplittet worden. Bei
FishFace40.DLL (und umFish40.DLL) sind Methoden für den IR-Sender (GetIRKeys
...) und die Analog-Eingänge A1 / A2 / AV (GetVoltage) hinzugekommen.
Vornehmlich die enums wurden den gestiegenen Ausbaumöglichkeiten der Hardware
angepaßt. Der Betrieb eines ROBO Interfaces über den RF Datalink ist
transpararent - d.h. das Programm tut's aber merkt's nicht. Mit FishFace2005.DLL
kann man dann auch noch Nachrichten zwischen C#-Programm auf dem PC und einem
ROBO Interface austauschen.
- Programmierung auf Basis der native Schnittstelle von umFish30.DLL
(cs-Variante) bzw. umFish40.DLL. Die erforderlichen Deklarationen sind in der Source
FishFa30.CS / FishFace40.CS (ganz am Anfang) zu finden, sie können 1:1 in eigene Klassen
übernommen werden. Die Programmierung auf Grundlage der native
Schnittstelle ist sinnvoll, wenn die Absicht besteht, eigene
Zugriffssoftware zu entwickeln.
- Die Klasse FishFace als Bestandteil der Assembly FishFa30.DLL /
FishFace40.DLL kapselt die Funktionen von umFish30/40.DLL in einer C#gerechten
Weise und bietet mit den Wait-Funktionen eine Abrundung insbesondere für
die (asynchronen) SetMotor(s) Methoden.
Für die Mehrzahl der Methoden gibt es eine Reihe von Überladungen, die
eine Übergabe der parameter sowohl als int-Wert (-> eigene Konstanten,
tabellarische Werte) wie auch enums erlauben. Meist werden so auch default
Parameter realisiert.
- Klasse FishRobot zu Programmierung von Robots a la "Industry
Robots" : Motor mit zugeordnetem Impulsrad/-taster und einem Endtaster.
- Klasse FishStep mit Methoden zur Programmierung einzelner Schrittmotoren
und von Schrittmotorpaaren im XY-Verbund (Plotter).
InterfacePanel / Installation
![](images/intpanel40.jpg) |
Das Interface Panel ist ein separates Tool zur Anzeige und Steuerung
eines Interfaces. Es kann besonders zum Test des Modellaufbaus und zum
"GeradeRücken" eines Modells eingesetzt werden. Das Interface Panel
sollte als erstes Programm zur Kontrolle der korrekten Installation von
Interface und Software eingesetzt werden. Es ist in zwei Versionen verfügbar
umFishDP30.EXE für das Intelligent / Universal Interface (in umFish30.ZIP)
und als umFishDP40.EXE für die Interfaces der ROBO Serie und das
Intelligent Interface (csFish40Setup.EXE).
|
Handbuch
Zur Einführung in die Programmierung der fischertechnik Interfaces mit C# unter
Nutzung der Assembly FishFa30.DLL bzw. FishFace40.DLL gibt es ein
ausführliches Handbuch mit den Abschnitten Einführung - Beispiel Riesenrad -
Referenz - Tips & Tricks. csModel.ZIP
(FishFa30) und csFish40Setup.EXE
(FishFace40).
Das Handbuch enthält neben dem obligatorischen HelloFish ein durchgehendes
Beispiel zum Betrieb eines Riesenrads (wahlweise mit einem kleinen
Simulationsmodell) Hinzu kommen die unten aufgeführten Modellprogramme. Alles
zusammen in : csModel.ZIP.
Experimente
Wer es gern noch OO-iger hätte : Jeder Eingang / Ausgang ein Objekt (in
Variante für die angeschlossene Hardware), kombinierte Ein- und Ausgänge als
Komplexe Objekte, Threads in Grenzen und jede Menge Ereignisse - es wäre ein
Traum für jeden Java-Programmierer - sollte mal bei OO-Interface
nachsehen.
ftTeachCS
![TeachIn für die fischertechnik Industry Robots](images/fttabout.jpg) |
Ein komplexe TeachIn-Programm
für die Industry Robots. |
Modelle
Die hier angeführten Modelle sind z.Zt. noch meist mit FishFa30.DLL für das
Intelligent bzw. das Universal Interface erstellt (Ein Betrieb des ROBO
Interfaces über die COM-Schnittstelle ist auch mit FishFa30 möglich). Eine Umstellung auf
FishFace40.DLL macht aber weiter keine Probleme s.o. (wurde bei der Umstellung
der Handbuch-Beispiele ausgiebig probiert).
AmpelThread
: Betrieb einer Fußgängerampel an einem Intelligent Interface mit mit
Extensionmodul. Die Auto- sowie die Fußgängerampel laufen in eigenen Threads.
Stanze : Betrieb des
Modells Stanzmaschine mit Transportband 51 663
RobStanze :Beschicken der
Stanze 51 663 durch einen Industry Robot (Knickarm- oder SäulenRobot). Die
Programmteile für den Betrieb von Stanze bzw. Robot laufen in eigenen Threads.
Die Sources der Programme sind in csModel.ZIP enthalten.
Der Turm von Hanoi
Programm
auf Basis der Klasse HanoiRob. In HanoiRob.ZIP
enthalten. Siehe auch die Seite Turm von Hanoi.
Die TaktStrasse
Eine MultiThreading-Lösung
auf der Seite TaktStrasse
Testroboter für Taschenrechner
![](images/robreadd.jpg)
Testroboter zur Lösung von Additionsaufgaben
mit dem Taschenrechner (FishFace40)
Raupen über Funk
Ein
einfaches Programm zur Steuerung einer Raupe (Power
Bulldozer Fahrgestell) wahlweise über Tastatur oder Maus bei Nutzung der der
Funkstrecke RF DataLink - ROBO Interface. Interessant ist besonders die Lösung
der Bedienerschnittstelle (FishFace40 und ROBO Interface)
Details / Hinweise
Stand : 18.08.2010 |