Python-Ecke

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

 

Allgemeines

Python ist eine Sprache, die von Praktikern für Praktikern entwickelt wurde. Sie läßt alldas linksliegen über das man bei Java so schön und weltanschaulich diskutieren kann. Variablen-Deklarationen : wozu?, explizite Typkonversionen warum, Klammernzählen nee : Man muß halt ein wenig aufpassen, wenn mans bequem haben will. Trotzdem gibts OO-satt, sogar mehrfach. Und weil Python sich nun mal so einfach  und kostenlos anläßt sieht man auch Möglichkeiten für den Einsatz im Informatik-Unterricht an Schulen.

Python-SymbolDiese Seite gibt einen Überblick auf die Zugriffsmöglichkeiten aus Python in der Version 3.1.1 auf die fischertechnik Robo- und Intelligent Interfaces. Sie bietet keine Einführung in Python.

Dazu wird die werden die in FishFa40.py zusammengefaßten Klassen FishFace, FishStep und FishRobot angeboten. Zum Zugriff auf den neueren ROBO TX Controller siehe die ROBO TX Seiten. Ältere Versionen und Beispiele sind auf PythonALT zu finden.

FishFa40.py basiert auf umFish40.DLL, das dazu im Verzeichnis \Windows\System32 (Win7/64 : in \SYSWOW64) abgestellt werden sollte. umFish40.DLL wird aus FishFa40.py über die ctypes angesprochen, das ist ggf. noch zu installieren. In der oben angegebenen Python v3.1.1 ist es bereits enthalten.

Mit Win7/64bit erfolgreich getestet

Das Python-System bekommt man bei www.python.org/download
Für Win7/64bit wurde Python32 - Windows x86 Installer genutzt. 
FishFa40.py in das Unterverzeichnis \Lib von Python32
umFish40.DLL nach SYSWOW64 kopieren.

Downloads

Für FishFa40.py und Python v3.1.1 PythonFish311.ZIP und das Handbuch separat. Das Päckchen enthält außerdem die Software für den Robo TX Controller (läuft nicht mit Win7/64bit).

Programmierung

Hier ein kleines Blinker-Beispiel mit einer Lampe an Ausgang M2 und zum Start einem Taster an I1

from FishFa40 import *

print ("------ Blinker wird gestartet ------")
ft = FishFace()
try:
  ft.OpenInterface()
  print ("Zum Starten des Blinkers I1 Druecken")

  ft.WaitForInput(1)
  Runde = 1

  while not ft.Finish():
    print ("Runde : ", Runde)
    ft.SetMotor(2, ft.Ein)
    ft.Pause(555)
    ft.SetMotor(2, ft.Aus)
    ft.Pause(333)
    Runde += 1
  except FishFaceException:
    print ("FishFace Fehler")
  print ("------- Blinker wird beendet -------")
  ft.CloseInterface()

ft.OpenInterface() : Genutzt wird das erste Robo Interface an USB
                            für ein Intelligent Interface an COM3 : ft.OpenInterface(ft.ftIntelligent_IF, 3)
ft.WaitForInput(1) : Warten auf Taster an I1
while : Endlosschleife, Abbruch durch ESC-Taste
ft.SetMotor(.. : Schalten Lampe an M2
ft.CloseInterface() : Beenden der Verbindung zum Interface

Hinweis Python v3.1.1 erfordert für die Parameterliste von print jetzt Klammern. Alte Beispiele entsprechend umstellen.

Robo LT Beginner Lab

Für den Kasten gibt es einen kompletten Satz der Robo Prog Light Beispielprogramme in Python 3.1.1

Stand : 23.07.2011