B. Kainka:

Lernpaket MSR mit dem PC

Franzis-Verlag, 2009


Vorwort

Der PC ist heutzutage nicht mehr wegzudenken. Internet, Bilder und Musik, Radio, Fernsehen und Spiele sowie natürlich die Büroarbeit, all dies prägt den Alltag und wird in den meisten Fällen mit dem PC verbunden. Gleichzeitig wird der Anwender immer häufiger zum Konsumenten der Multimedia-Welt. Nur noch eine Minderheit programmiert selbst oder entwickelt eigene Hardware. Aber das muss nicht sein! Der PC kann nämlich noch viel mehr.

Messen, Steuern und Regeln sind die Schlagworte der industriellen Nutzung des Computers. Aber auch im Hobbybereich spielt die MSR-Technik eine entscheidende Rolle. Manch einer entwickelt Roboter, automatische Steuerungen für Haus und Hof oder elektronische Schaltungen oder Mikrocontroller-Systeme für unterschiedliche Aufgaben. Nur, wie findet man den Anfang? Wie lernt man den Umgang mit elektronischen Bauteilen oder mit eigenen Programmen? Dieses Lernpaket will den Einstieg erleichtern.

Kleine elektronische Schaltungen werden direkt am PC betrieben und von einfachen Programmen gesteuert. Alles, was man dazu benötigt, ist im Lernpaket enthalten. Sie brauchen nicht einmal einen Lötkolben oder eine spezielle Stromversorgung. Die kleine Experimentierplatine wird über den USB-Anschluss mit dem PC verbunden. Damit hat man zugleich eine stabile Spannungsversorgung mit 5 V und zahlreiche digitale Ein- und Ausgänge, die von geeigneten Programmen bedient werden können. Mit geringstem Aufwand lassen sich LEDs schalten, Schalter abfragen und Messungen durchführen. Die möglichen Anwendungen sind schier endlos.

Eine Reihe nachvollziehbarer Versuche vermittelt Ihnen die erforderlichen Grundkenntnisse im Umgang mit einfachen elektronischen Bauteilen und Schaltungen. Zugleich erfahren Sie etwas über die erforderlichen Programmiertechniken. Nicht zuletzt bauen Sie einfache Anwendungen, die nicht nur nützlich sind, sondern auch Spaß und Freude bereiten. LED-Blinker, Zeitschaltuhr, Reaktionstester und Lügendetektor, Lichtsensoren, Frequenzmesser und vieles mehr vermitteln Ihnen einen Eindruck von den Möglichkeiten der Mess- Steuer- und Regelungstechnik. Und wenn Sie die vorbereiteten Versuche durchgeführt haben, werden Sie viele eigene Ideen entwickeln und Anwendungen finden, die nützlich und vielseitig eingesetzt werden können.

Anspruchsvolle Anwendungen kommen oft nicht mehr mit einer direkten Nutzung der vorhandenen Portleitungen aus. Die übliche Lösung ist ein Mikrocontroller als Interface zwischen PC und Außenwelt. Im zweiten Teil des Handbuchs wird der Umgang mit einem Mikrocontroller ATtiny13 vorgestellt. Sie brauchen sich nicht unbedingt selbst in die Mikrocontroller-Programmierung einzuarbeiten, da fertige Anwendungen auf der CD vorliegen. Die USB-Experimentierplatine wird zum Programmiergerät für den Tiny13 und dient zugleich als USB-Brücke für die serielle Kommunikation mit dem Controller.

Programmieren Sie z. B. eine universelle Interface-Software in den Mikrocontroller. Dann können kleine VB-Programme über serielle Kommandos mit dem Interface kommunizieren. Nutzen Sie auf diese Weise Ports, AD-Wandler und den PWM-Ausgang zum Messen, Steuern und Regeln. Lernen Sie die Grundbegriffe der Mikrocontroller-Programmierung mit Bascom, um Ihre eigenen Anwendungen zu entwickeln. Ein Blick auf die Hintergründe der Schnittstellenprogrammierung und die RSCOM.DLL rundet das Thema MSR ab.

 

Inhalt des Experimentierhandbuchs:

1 Einleitung 9
1.1 Experimentierplatine 9
1.2 Sicherheitshinweise 11
1.3 Bauteile im Lernpaket 12

2 Vorbereitungen 19
2.1 Treiber 19
2.2 MProg 20
2.3 Änderung der COM-Nummer 24
2.4 Erzeugen der INI-Datei 30
2.5 VB5CCE 32

3 Digitale Ausgänge 35
3.1 PC-Schalter 35
3.2 LED-Blinklicht 37
3.3 LED-Wechselblinker 39
3.4 Metronom  40
3.5 Transistorprüfer  41
3.6 Blitzlicht 44
3.7 Zeitgeber 46

4 Digitale Eingänge 49
4.1 PC-Eingang  49
4.2 Berührungssensor 51
4.3 Lichtschranke 52
4.4 Ereigniszähler 53
4.5 Zeitmessung 54
4.6 Reaktionszeit 57

5 Analoge Messungen 59
5.1 Widerstandsmessung 59
5.2 Helligkeitsplotter 60
5.3 Messung des Hautwiderstands 62
5.4 Lügendetektor 63
5.5 Transistor als Temperatursensor 65
5.6 Spannungsmessung 66
5.7 LED-Spannung messen 68
5.8 Diode als Temperatursensor 69
5.9 Messbereichserweiterung 70
5.10 Spannungsplotter 73

6. Serielle Datenübertragung 75
6.1 Textübertragung 75
6.2 Übertragung von Steuerbytes 77
6.3 Universelles Terminalprogramm 78
6.4 Morse-Ausgabe 79
6.5 Morse-Decoder 81

7 Zeitkritische MSR-Anwendungen 83
7.1 Rechteckgenerator 83
7.2 Rechteckgenerator über TXD-Datenstrom 84
7.3 Pulsweiten-Modulation 85
7.4 PWM-Softblinker 87
7.5 Servosteuerung 88
7.6 Frequenzmessung  89
7.7 Kurzzeitmessung bis 100 ms 91
7.8 Logikanalysator 92
7.9 Triggerung 93

8 Mikrocontroller ATtiny13  95
8.1 Initialisierung 95
8.2 Programm-Upload 100
8.3 Integriertes Terminal 104
8.4 Bootloader 106

9 Interfacefunktionen 109
9.1 Nutzung der Ports als Ausgänge 109
9.2 Ports als Eingänge 111
9.3 Spannungsmessung 113
9.4 Lichtmessung mit Fototransistor 118
9.5 Oszilloskop 119
9.6 PWM-Ausgang 124
9.7 Schaltschwellen 129
9.8 Pullup-Widerstände 130

10 Interface-Anwendungen 133
10.1 Digitalvoltmeter und PWM-Ausgabe 133
10.2 PWM-Softblinker 135
10.3 Transistormessungen 136
10.4 Spannungsplotter 140

11 Firmware für den Tiny13 143
11.1 Bascom-AVR 143
11.2 Höhere Messgenauigkeit 144
11.3 Zusätzliche Ausgänge 146
11.4 Zweikanal-Servosteuerung 147

12 Die RSCOM.DLL 149
12.1 RSCOM.PAS 149
12.2 DLL-Code 155

A Anhang
A.1 Literatur 159




Beispielkapitel 

1.1 Experimentierplatine


Grundlage des Lernpakets ist eine kleine Experimentierplatine mit dem USB/Seriell-Wandler FT232R. Sie erhalten damit die Anschlüsse einer seriellen Schnittstelle, allerdings mit etwas anderen Daten, nämlich mit TTL-Pegeln von 0V/5V statt der früher üblichen RS232-Pegel von ca. -12V/+12V. Zusätzlich liefert der USB auch eine Spannungsversorgung von +5 V, die Sie bis ca. 50 mA belasten können. Alle Anschlüsse sind über zweifache Präzisionskontakte erreichbar, in die direkt elektronische Bauteile gesteckt werden können. Zusätzlich besitzt die Platine ein kleines Experimentierfeld mit fünf Gruppen von je vier verbundenen Kontakten.

 Abb. 1.1: Die USB-Platine 

Die Stromversorgung am Pin VCC ist über einen Schutzwiderstand von 10 Ω mit dem Stromversorgungsanschluss am USB-Kabel verbunden. Falls Sie einmal versehentlich einen direkten Kurzschluss zwischen VCC und GND erzeugen, schützt dieser Widerstand den PC. Der maximale Strom ist auf 500 mA begrenzt. Für einen kurzen Moment hält der Schutzwiderstand die Belastung aus. Bei einem länger anhaltenden Kurzschluss würde der Widerstand wie eine Sicherung durchbrennen und dies mit einer kleinen Rauchwolke anzeigen. Das ist immer noch besser als eine Beschädigung am PC. Und Sie könnten mit etwas Geschick einen neuen Widerstand einlöten.

 

 Abb. 1.2: Das Schaltbild der Experimentierplatine 

Der FT232R setzt die USB-Signale mit geringster externer Beschaltung in eine serielle Schnittstelle um. Damit hat man die serielle Sendeleitung TXD, die serielle Empfangsleitung RXD und die üblichen Handshake-Leitungen, darunter zwei Ausgänge und vier Eingänge. Die Software verwendet alle Leitungen wie eine normale serielle Schnittstelle. Dadurch werden nur sehr einfache Befehle benötigt. DTR 1 schaltet z. B. die Leitung DRT ein. Dass dabei im Hintergrund viele Softwareschichten durchlaufen werden, muss man weder wissen noch beachten, wenn es um die eigentlichen Anwendungen geht. Wer sich genauer mit der Software beschäftigen und die zahlreichen erweiterten Möglichkeiten des Chips nutzen will, dem sei das Buch „USB in der Elektronik“ [1] empfohlen.

 

7.5 Servosteuerung

Fernsteuerservos benötigen Steuerimpulse mit Impulslängen zwischen 1 ms und 2 ms. Die genaue Impulsdauer steuert die Servoposition. Zwischen den einzelnen Impulsen sollte eine Wartezeit von 20 ms liegen.

Abb. 7.9: Die PC-Steuerung eines Fernsteuerservos 

Abb. 7.10: Die Ausgangsimpulse an TXD 

 

Bei einer Übertragungsrate von 4800 Baud beträgt eine Bitlänge 0,2083 ms. Beim Senden der passenden Bytes lassen sich einzelne 1-Bits hintereinander legen, sodass Impulse der Länge 5 * 0,2083 ms = 1,04 ms bis 9 * 0,2083 ms = 1,88 ms entstehen. Damit sind fünf diskrete Positionen einstellbar, die stabil stehen bleiben.

Private Sub Command3_Click()
OpenString = "COM" + Text1.Text + ":4800,N,8,1"
i = OPENCOM(OpenString)
If i = 0 Then MsgBox ("Schnittstelle nicht verfügbar")
End Sub

Private Sub Option1_Click()
Dat = 5
End Sub

Private Sub Option2_Click()
Dat = 6
End Sub

Private Sub Option3_Click()
Dat = 7
End Sub

Private Sub Option4_Click()
Dat = 8
End Sub

Private Sub Option5_Click()
Dat = 9
End Sub

Private Sub Timer1_Timer()
If Dat = 5 Then Byt = 240
If Dat = 6 Then Byt = 224
If Dat = 7 Then Byt = 192
If Dat = 8 Then Byt = 128
If Dat = 9 Then Byt = 0
If (Dat > 0) And (Dat < 10) Then SENDBYTE Byt
End Sub

Listing 7.5: Das Erzeugen von Servo-Impulsen



Tipps, Fragen und Antworten

Frage: Auf der Platine findet man einen Lötpunkt zwischen Pin 25 und 26 des FT232RL. Korrekt?
Antwort: Ja, leider hatte ich übersehen, dass der TEST-Pin an GND gehört. Es funktioniert zwar auch mit offenem Eingang, aber nicht ganz zuverlässig. Zum Glück liegt gleich nebenan ein GND-Pin, deshalb konnte das Problem mit einem Lötpunkt gelöst werden.

Tipp: An einigen älteren PCs meldet sich der FT232RL als  Lowspeed-Gerät an, damit sind alle Zugriffe auf die Handshake-Leituingen langsamer, nicht aber die serielle Datenübertragung. Siehe auch: USB 1.1 oder USB2.0?