TPS steuert Fischertechnik-Schiffschaukel        

von Stefan Hamm                  
              
Elektronik-Labor  Literatur  Projekte  Lernpakete  TPS



Die nachfolgende Schaltung basiert auf dem TPS-Modul aus dem Projekt „TPS steuert Fischertechnik-Karussell“ und kann mit den unten stehenden Programmen z.B. das Modell „Schiffschaukel“ aus dem Baukasten „Profi Electronics“ von Fischertechnik steuern. Die erweiterte TPS übernimmt dabei die Steuerungsaufgaben des electronics Modul aus dem Baukasten.
Hinweis: Die Programme sind eine eigenständige Entwicklung, in Anlehnung an die Funktionalität des electronics-Moduls. Das Fischertechnik-Modell wird nur als Beispiel verwendet, um die Möglichkeiten des TPS-Moduls zu demonstrieren. Der Hardware-Aufbau und die Software des Fischertechnik-Moduls sind dem Autor unbekannt.

 

Allgemeine Funktionsweise TPS-Modul: siehe Projekt „TPS steuert Fischertechnik-Karussell“.


Beide Modelle „Schiffschaukel ohne Blinklicht“ und „Schiffschaukel mit Blinklicht“:

An den Eingängen ID1 und ID3 werden Taster als Schließer angeschlossen, ID2 wird mit einem Fototransistor verbunden, ID4, IA1 und IA2 bleiben unbeschaltet. Der Schiebeschalter DIP2 wird in Stellung „ON“ gebracht. Am Ausgang M1 wird der Motor angeschlossen. Das Potentiometer wird nicht angeschlossen und hat daher keine Funktion, die Motordrehzahl ist konstant. Solange der Taster I3 geschlossen ist, bewegt sich die Schiffschaukel vor- und wieder zurück. Bei Maximalauslenkung (Wendepunkt) wird jeweils der Taster I1 kurz gedrückt und eine Richtungsänderung der Schaukel ausgelöst. Ist der Taster I3 geöffnet, fährt die Schaukel mit etwa halber Drehzahl in die Ausgangsposition zurück und bleibt dann stehen (Unterbrechung der Lichtschranke). Erneutes Drücken und Halten des Tasters I3 startet die Schaukel erneut.


a) Modell „Schiffschaukel ohne Blinklicht“ (https://youtu.be/NLQtlLNxIDo):

Zusätzlich wird am Ausgang M2 die LED2 für die Lichtschranke angeschlossen, sie leuchtet ständig, sobald das Programm gestartet wird. Wer mag, kann das Modell um einen separaten Wechselblinker ergänzen, wie im Fischertechnik-Baukasten vorgesehen.

b) Modell „Schiffschaukel mit Blinklicht“ (https://youtu.be/R6CirboiLco):


Am Ausgang M2 werden zwei parallel mit umgekehrter Polarität geschaltete LEDs, LED1 und LED2, für das Blinklicht angeschlossen. Die LED3 für die Lichtschranke wird direkt mit der 9V-Spannungsversorgung verbunden. Die Blinkfrequenz ist konstant und synchron zur Schaukelbewegung, das Potentiometer hat keine Funktion. In der Ausgangsstellung ist das Blinklicht aus. Es ist eine Erweiterung gegenüber dem Modell aus dem Fischertechnik-Baukasten und ersetzt den separaten Wechselblinker.

 

Die nachfolgenden Schaltpläne zeigen den Anschluss der Sensoren und Aktoren an das TPS-Modul sowie die Stellung der DIP-Schalter:

Schiffschaukel ohne Blinklicht:



 

Schiffschaukel mit Blinklicht:

 

 

Hardware TPS-Modul: siehe Projekt „TPS steuert Fischertechnik-Karussell“

 

Software: siehe nachfolgende Tabellen
Die im TPS-Mikrocontroller bereits programmierte Sprungtabelle (Adressen 00 bis 2F) mit sechs möglichen Programmen, die adressiert werden können, wurde auf drei Programme gekürzt. Dadurch wurde eine zusätzliche Programmseite gewonnen, der Programmcode kann bereits ab Adresse 10 hinterlegt werden:


Adresse

Befehl

Daten

Kommentar

00

6

4

A = Din

01

5

1

B = A

02

4

E

A = 14 “1110”

03

8

0

AdrHi = 0 (Seite 0)

04

C

3

Skip if A = B

05

9

8

Springe 08

06

8

4

AdrHi = 4 (Seite 4)

07

9

5

Springe 45 “Schiffschaukel”

08

4

D

A = 13 “1101”

09

8

1

AdrHi = 1 (Seite 1)

0A

C

3

Skip if A = B

0B

9

0

Springe 10 “Basisprogramm”

0C

8

6

AdrHi = 6 (Seite 6)

0D

9

X

Springe 6X “Anderes Programm”

0E

F

F

leer

0F

F

F

leer

 

Es ist absehbar, dass nicht mehr als drei Programme für das TPS-Modul gleichzeitig im Controller hinterlegt werden können. Der Einfachheit halber beginnen die Programme für die Schiffschaukel ab Adresse 10 an der Position, die für das Basisprogramm (siehe Projekt „TPS steuert Fischertechnik-Karussell“) vorgesehen ist. Wer möchte, kann aber sowohl das Basisprogramm als auch ein Schaukelprogramm gleichzeitig im Controller programmieren. Für diesen Fall müssen beim Starten des TPS-Moduls oder nach einem Reset für die Auswahl des Schiffschaukel-Programms die DIP-Schalter wie nachfolgend gestellt werden:

 

Programm

DIP1

DIP2

DIP3

DIP4

DIP5

DIP6

Schiffschaukel

0

0

0

1

X

X

Hinweis: X: 0 oder 1 (ohne Einfluss)

 

Die Schiffschaukel-Programme sind soweit kommentiert, dass es nicht schwer fallen sollte, sie nachzuvollziehen, daher nachfolgend nur ein paar allgemeine konzeptionelle Anmerkungen. Das Programm ohne Blinklicht kommt ohne Einzel-Bit-Verarbeitung aus und ist daher deutlich kürzer und einfacher. Wird zusätzlich eine Blinkfunktion programmiert, ist die Einzel-Bit-Verarbeitung unumgänglich. Dadurch wird der Programmcode länger. Jeder möge für sich entscheiden, welche Variante ihm besser gefällt.

Bei Abfrage des Endschalters I1 für die Richtungsumkehr der Schaukel muss zuvor sichergestellt sein, dass der Schalter nicht mehr gedrückt ist. Wegen der zeitverzögerten, mechanischen Freigabe des Schalters wäre die Reaktion auf die Schaukel sonst unvorhersehbar (in Endstellung verharren, über Endstellung hinaus fahren (Looping) oder Richtung wechseln).

 

Programm1: Schiffschaukel ohne Blinklicht

 

Adresse

Befehl

Daten

Kommentar

 

 

 

Programm Schiffschaukel als Basisprogramm

10

1

4

Port = 4 (0100) “LED an”

11

C

A

Skip if Din.2 = 0 (Falls gedrückt)

12

3

1

Springe -1

13

4

F

A = 15 (maximale Geschwindigkeit)

14

5

9

PWM.1 = A

15

8

2

AdrHi = 2 (Seite 2)

16

1

6

Port = 6 (0110) “LED an, Motor rechts an”

17

C

A

Skip if Din.2 = 0

18

9

5

Springe 25 (Fahre in Ausgangsposition)

19

C

4

Skip if Din.0 = 1 (Falls nicht gedrückt)

1A

3

1

Springe -1

1B

C

8

Skip if Din.0 = 0 (Falls gedrückt)

1C

3

1

Springe -1

1D

1

5

Port = 5 (0101) “LED an, Motor links an”

1E

C

A

Skip if Din.2 = 0 (Falls gedrückt)

1F

9

5

Springe 25 (Fahre in Ausgangsposition)

20

C

4

Skip if Din.0 = 1 (Falls nicht gedrückt)

21

3

1

Springe -1

22

C

8

Skip if Din.0 = 0 (Falls gedrückt)

23

3

1

Springe -1

24

3

E

Springe -14

25

4

8

A = 9 (Fahre in Ausgangsposition, halbe Geschwindigkeit)

26

5

9

PWM.1 = A

27

C

9

Skip if Din.1 = 0 (Falls Lichtschranke unterbrochen)

28

3

1

Springe -1

29

8

1

AdrHi = 1 (Seite 1)

2A

9

0

Springe 10

 


 

Programm2: Schiffschaukel mit Blinklicht

 

Adresse

Befehl

Daten

Kommentar

 

 

 

Programm Schiffschaukel als Basisprogramm

10

C

A

Skip if Din.2 = 0 (Falls gedrückt)

11

3

1

Springe -1

12

4

F

A = 15 (Maximale Geschwindigkeit)

13

5

9

PWM.1 = A

14

8

2

AdrHi = 2 (Seite 2)

15

4

0

A = 0

16

5

5

Dout.0 = A.0, “Motor links aus”

17

5

8

Dout.3 = A.0, “Lampe an A4 aus”

18

4

1

A = 1

19

5

6

Dout.1 = A.0, “Motor rechts an”

1A

5

7

Dout.2 = A.0, “Lampe an A3 an”

1B

C

A

Skip if Din.2 = 0

1C

9

F

Springe 2F (Fahre in Ausgangsposition)

1D

C

4

Skip if Din.0 = 1 (Falls nicht gedrückt)

1E

3

1

Springe -1

1F

C

8

Skip if Din.0 = 0 (Falls gedrückt)

20

3

1

Springe -1

21

4

1

A = 1

22

5

5

Dout.0 = A.0, “Motor links an”

23

5

8

Dout.3 = A.0, “Lampe an A4 an”

24

4

0

A = 0

25

5

6

Dout.1 = A.0, “Motor rechts aus”

26

5

7

Dout.2 = A.0, "Lampe an A3 aus"

27

C

A

Skip if Din.2 = 0

28

9

F

Springe 2F (Fahre in Ausgangsposition)

29

C

4

Skip if Din.0 = 1 (Falls nicht gedrückt)

2A

3

1

Springe -1

2B

C

8

Skip if Din.0 = 0 (Falls gedrückt)

2C

3

1

Springe -1

2D

8

1

AdrHi = 1 (Seite 1)

2E

9

4

Springe 14

2F

4

9

A = 9 (Fahre in Ausgangsposition, halbe Geschwindigkeit)

30

5

9

PWM.1 = A

31

C

9

Skip if Din.1 = 0 (Falls Lichtschranke unterbrochen)

32

3

1

Springe -1

33

1

0

Port = 0 (LEDs aus, Motor aus)

34

8

1

AdrHi = 1 (Seite 1)

35

9

0

Springe 10

 


 



Elektronik-Labor  Literatur  Projekte  Lernpakete  TPS