ROBO LT Beginner

ftComputing : Programme für die fischertechnik-Interfaces und -konstruktionskästen
  
ftComputing.de
Home
Back
Sitemap
Index
Links
Impressum
Mail

 

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

Windows-Version

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-BeispieleJava-Beispiele und die Python-Beispiele dazu (einschl. Anleitung.PDF und erforderlicher DLLs)

Stand : 07.10.2010