| |
ROBO LT Beginner Lab
|
Unter der Bezeichnung "ROBO LT Beginner
Lab" steht ein Komplettangebot für der Einstieg in das
fischertechnik Computing zu Verfügung. Er enthält außer den Teilen für
den Bau der Modelle einen einfachen Robo LT Controller (abgemagerte
Version der Robo I/O Extension) und ein Robo Pro Light (abgemagerte
Version von Robo Pro). Das LT Beginner Lab liegt preislich deutlich unter
dem vergleichbarer Einsteigerpakete.
Hinweis : Die M-Ausgänge können aus als O1 - O4 genutzt werden
(zweiter Stecker an Masse eines I-Eingangs, Methode setLamp). I1 - I2
können alternativ auch als AX / AY genutzt werden (Methode getAnalog) und
I3 kann alternativ auch als A1 genutzt werden (Methode getVoltage).
Da die realisierbaren Modelle für den Einsteiger recht attraktiv sind,
ist ein Einstieg über diesen Kasten interessant.
Hier werden die Programmiermöglichkeiten für unterschiedliche
Programmiersprachen vorgestellt :
- Java - BlueJ mit dem Package ftcomputing.robo.jar
- Visual Basic 2005 - 2008 - 2010 Express.
Genutzt wird dazu die vorhandene FishFace2005.DLL.
- Python mit der vorhandenen Klasse FishFa40.py
|
Java 6 - BlueJ 3.0
Waschmaschine - Version 4
import ftcomputing.robo.*;
public class Waschmaschine {
private FishFace fl;
final int Trommel = Mot.M1;
final int Anzeige = Mot.M2;
final int Starter = Inp.I1;
final int TuerZu = Inp.I2;
public Waschmaschine() {
fl = new FishFace();
fl.openInterface(0, 0);
}
public void Beenden() {
fl.closeInterface();
}
public void Waschmaschine4() {
do {
System.out.println("Start Waschgang : I1-Taster");
do {
fl.waitForInput(Starter);
} while (!fl.getInput(TuerZu));
System.out.println("Waschen");
fl.setMotor(Anzeige, Dir.On);
fl.setMotor(Trommel, Dir.Right, Speed.L2);
fl.pause(10000);
fl.setMotor(Trommel, Dir.Off);
fl.pause(1000);
System.out.println("Schleudern");
fl.setMotor(Trommel, Dir.Right, Speed.Full);
fl.pause(15000);
fl.setMotor(Trommel, Dir.Off);
fl.pause(1000);
System.out.println("Trocknen");
Trocknen(Dir.Right);
Trocknen(Dir.Left);
fl.setMotor(Anzeige, Dir.Off);
} while (!fl.finish());
}
private void Trocknen(int Richtung) {
fl.setMotor(Trommel, Richtung, Speed.L1);
fl.pause(10000);
fl.setMotor(Trommel, Dir.Off);
fl.pause(1000);
}
}
Nach Betätigen des Starttaster dreht die Trommel langsam 10 sec
(Zusätzliche Abfrage : Tür geschlossen), dann Schleudergang, Trockengang
und Anzeige Betriebszustand im "Terminal Window".
Python 3.1.1 Beispiel : Waschmaschine
from FishFa40 import *
mTrommel = 1
mAnzeige = 2
iStarter = 1
iTuerZu = 2
cLangsam = 2
cVoll = 7
cRechts = 2
cLinks = 1
def Waschmaschine1():
"Starter : Trommel langsam 10 sec"
while not fl.Finish():
-------
def Trocknen(richtung):
"Trockengang in Richtung"
fl.SetMotor(mTrommel, richtung, cLangsam)
fl.Pause(10000)
fl.SetMotor(mTrommel, fl.Aus)
fl.Pause(1000)
def Waschmaschine4():
"Starter : Trommel langsam 10 sec, Tür zu, Schleudergang, Trocknen"
while not fl.Finish():
print("Start Waschgang : I1-Taster")
if not fl.GetInput(iTuerZu):
print("Tür ZU")
fl.Pause(555)
continue
fl.WaitForInput(iStarter)
print("Waschen")
fl.SetMotor(mAnzeige, fl.Ein)
fl.SetMotor(mTrommel, fl.Rechts, cLangsam)
fl.Pause(10000)
fl.SetMotor(mTrommel, fl.Aus)
fl.Pause(1000)
print("Schleudern")
fl.SetMotor(mTrommel, fl.Rechts, cVoll)
fl.Pause(15000)
fl.SetMotor(mTrommel, fl.Aus)
fl.Pause(1000)
print("Trocknen")
Trocknen(cRechts)
Trocknen(cLinks)
fl.SetMotor(mAnzeige, fl.Aus)
fl = FishFace()
print("Waschmaschine wird gestartet")
fl.OpenInterface()
Waschmaschine4()
print("Waschmaschine wird beendet")
fl.CloseInterface()
Nach Betätigen des Starttaster dreht die Trommel langsam 10 sec
(Zusätzliche Abfrage : Tür geschlossen), dann Schleudergang, Trockengang
und Anzeige des Betriebszustandes.
VB 2005 Beispiel : Waschmaschine
Waschmaschine - Version 1 : Console Programm
Imports
FishFace40
Module
Waschmaschine1
Dim
fl As New Const
Trommel As Const
WaschAnzeige As Const
Starter As
Inp = Inp.I1
Sub
Main()
Console.WriteLine("---
Gestartet : Abbruch mit ESC-Taste ---")
fl.OpenInterface(IFTypen.ftROBO_first_USB,
0)
Do
Console.WriteLine("---
Start Waschgang : I1-Taster ---")
fl.WaitForInput(Starter)
fl.SetMotor(WaschAnzeige,
Dir.Ein)
fl.SetMotor(Trommel,
Dir.Rechts, Speed.L2)
fl.Pause(10000)
fl.SetMotor(Trommel,
Dir.Aus)
fl.SetMotor(WaschAnzeige,
Dir.Aus)
fl.Pause(1000) Loop
Until fl.CloseInterface()
Console.WriteLine("---
Schliessen : Return-Taste ---")
Console.ReadLine() End
Module
Verbindung zum LT Controller herstellen, in Endlosschleife (Abbruch über
ESC-Taste) Warten auf I1-Taster, Waschanzeige und Trommelmotor starten - 10
Sekunden Waschen - Warten auf eine neue Runde - bei ESC-Taste Ende des
Programms.
Waschmaschine - Version 4 : Windows Programm
|
4Win wie Console Version 4.
Das Programm läuft vollständig
in der Click-Routine, die zum START-Button (cmdAction) gehört und gleicht
dem ConsoleProgramm fast vollständig.
Unterschied :
Die Ausgaben werden hier nicht fortlaufend in das DOS-Fenster geschrieben,
sondern in den Label lblStatus.
Der laufende Betrieb wird ebenfalls über die ESC-Taste abgebrochen, die
Form wird wie üblich über X (rechts oben) geschlossen. Der START-Button
wird während des Betriebes deaktiviert.
|
Private Sub cmdAction_Click(ByVal
sender As System.Object, _
ByVal e As
System.EventArgs) Handles cmdAction.Click
fl.OpenInterface(IFTypen.ftROBO_first_USB,
0)
Do
lblStatus.Text
= "Starten : I1-Taster"
cmdAction.Enabled
= False
Do
fl.WaitForInput(Starter)
If
Not fl.GetInput(TuerZu) Then _
lblStatus.Text = "Tür ZU, nochmal"
Loop
Until fl.Finish() OrElse
fl.GetInput(TuerZu)
fl.SetMotor(WaschAnzeige, Dir.Ein)
lblStatus.Text = "Waschen"
fl.SetMotor(Trommel,
Dir.Rechts, Speed.L2)
fl.Pause(10000)
fl.SetMotor(Trommel,
Dir.Aus)
fl.Pause(1000)
lblStatus.Text = "Schleudern"
fl.SetMotor(Trommel,
Dir.Rechts, Speed.Full)
fl.Pause(15000)
fl.SetMotor(Trommel,
Dir.Aus)
fl.Pause(1000)
lblStatus.Text = "Trocknen"
Trocknen(Dir.Rechts)
Trocknen(Dir.Links)
fl.SetMotor(WaschAnzeige,
Dir.Aus)
Loop
Until fl.Finish()
cmdAction.Enabled
= True
lblStatus.Text = "Abbruch"
fl.CloseInterface()
End
Sub
Hinzu kommt noch die Routine Trocknen analog der DOS
Version.
Private fl.SetMotor(Trommel,
Richtung, Speed.L1)
fl.Pause(10000)
fl.SetMotor(Trommel,
Dir.Aus)
fl.Pause(1000)Sub
Downloads
Die VB-Dokumentation, Java-Dokumentation
und Python-Dokumentation für alle Robo Light-Programme des
Kastens im PDF-Format
Die VB-Beispiele, Java-Beispiele
und die Python-Beispiele dazu
(einschl. Anleitung.PDF und erforderlicher DLLs)
Stand : 07.10.2010
|