Der Tastenprogramm-Tippomat     

Elektronik-Labor  Literatur  Projekte  Lernpakete  TPS 




Bei der Entwicklung des Lernpakets zur Tastenprogrammierbaren Steuerung waren immer wieder umfangreiche Tests nötig. Wenn man nun einen Fehler entdeckte, war oft nicht gangz klar: Ist das wirklich ein Fehler oder hat man sich vertippt? Ein unfehlbarer Tippomat musste entwickelt werden! Und weil ja nur drei Tasten bedient werden müssen, war die Sache einfach: Die Leitungen TXD, DTR und RTS einer seriellen Schnittstelle steuern jeweils einen Transistor an, der pararllel zu der eigentlichen Tatse liegt. Ohne Ansteuerung ist der Transistor sozusagen garnicht da, an der übrigen Bedienung ändert sich also nichts. Erst wenn man die Schnttstelle anschließt und das Tippomatprogramm startet, tut sich was. Die Schaltung ist sehr einfach und konnte auf einer Elexs-Platine untergebracht werden. Ursprünglich wurden die vier Drähte in die Steckplatine gesteckt. Aber jetzt wurden sie an einen Pfostenverbinder gelötet, damit auch die Franzis-Platine bedient werden kann.



Die zugehörige Software wurde mit VB6 geschrieben. Man tippt oder kopiert das Programm in Fom von Hexadezimalzahlen in das obere Textfenster. Dann drückt man auf die Prog-Schaltfläche und startet damit die Übertraghung. An der TPS-Platine sieht man die einzelnen Eingaben genauso, als würde man sie selbst eintippen. Klar, der TPS-Controller kann nicht unterscheiden, wer da gerade tippt. Nach dem Ende der Übertragung startet das neue Programm, weil der Tippomat die Rest-Taste drückt. Bei Bedarf kann man auch im laufenden Betreib die Reset-Schaltfläche betätigen, um ein Programm neu zu starten. Noch ein besonderer Luxus: Das Programm muss nicht auf der Seite Null starten, sondern man kann z.B. ein Unterprograogramm weiter unten eingeben lassen. Dazu ändert man das Page-Textfenster.



Download: Tippomat.zip

22.10.12: Update, Version 2 mit angepasstem Timing für Mega8-TPS: Tippomat_2.zip

Video zum Tippomat in Aktion: http://youtu.be/c6oaJzAajE0

Private Sub Command1_Click()
Command1.Enabled = False
prog$ = Text1.Text
Text2 = ""
RTS 1 'Programmiermodus
TXD 1 'Reset
DELAY 200
TXD 0
DELAY 1000
RTS 0
DELAY 300

Page = Val(Text3.Text)
If Page > 0 Then
For n = 1 To Page
For i = 1 To 16
RTS 1
DELAY 100
RTS 0
DELAY 100
RTS 1
DELAY 100
RTS 0
DELAY 400
Next i
Next n
End If
p = 0
For n = 1 To Len(prog$)
z = Mid$(prog$, n, 1)
If z > " " Then
d = Asc(z)
If d > 64 Then d = d - 65 + 10 Else d = d - 48
If (d > -1) And (d < 16) Then
Text2 = Text2 + Str(d) + " "
DoEvents
DTR 1
DELAY 50
DTR 0
DELAY 50
If d > 0 Then
For j = 1 To d
DTR 1
DELAY 50
DTR 0
DELAY 50
Next j
End If
DELAY 80
RTS 1
DELAY 80
RTS 0
DELAY 200
p = p + 1
If p = 2 Then
p = 0
DELAY 800
End If
End If
End If
Next n

TXD 1
DELAY 200
TXD 0
Command1.Enabled = True
End Sub



Elektronik-Labor  Literatur  Projekte  Lernpakete  TPS