Den Traum, dass Maschinen menschliche Fähigkeiten besitzen und insbesondere menschlich handeln können, gibt es schon lange. Man denke an die vielen Science-Fiction Romane, in denen immer wieder intelligente, menschenähnliche Systeme auftreten, wenn auch meistens als böswillige Aggressoren. In der mobilen Robotik arbeitet man an Entwicklungen, um Roboter Aufgaben zukommen zu lassen, die bisher nur von Menschen ausgeführt werden konnten. Roboter gewinnen zunehmend an Bedeutung in Industrie- und Dienstleistungsbereichen. Dabei bilden die so genannten Roboterfahrzeuge eine wichtige Klasse. Für diese Roboter wird unter anderem gefordert, dass sie sich selbständig in einer unbekannten realen Umgebung bewegen und Aufträge ausführen können. „Um einen Roboterfahrzeug mit autonomen Fähigkeiten auszustatten, ist es das grundsätzlichste Problem, den Roboter in seiner Umgebung an-hand von Sensor-Daten zu lokalisieren. Roboterfahrzeuge haben Computer eingebaut, die ihnen dezentrale Intelligenz geben, und Sensoren, die die Grundlage der selbständigen Entscheidungsfindung sind.“
Inhaltsverzeichnis
2 Einleitung
3 Aufgabenstellung
4 Bestandteile des Roboterfahrzeugs
4.1 Robotergestell (Plattform)
4.2 Beschaltung der Bestandteile
4.3 Mikrocontroller
4.3.1 Eigenschaften des PK2100
4.3.2 Technische Daten des PK2100
4.3.3 Einsatz des PK2100
4.4 Optosensoren
4.4.1 Technische Daten des OPB718
4.4.2 Funktionsweise des OPB718
4.4.3 Steuerungskonzept auf Basis der Optosensoren
4.5 Multiplexer
4.5.1 Belegung
4.5.2 Funktionsweise
4.5.3 Beschaltung
4.6 Motorverstärker-Karten
4.6.1 Technische Daten
4.6.2 Verstärkerschaltung
4.6.3 Funktionsweise
4.6.4 Verstärkungseinstellung
4.7 Strom- und Spannungsversorgung
4.8 Getriebemotoren
4.9 LED-Anzeige-Karte
5 Regelung des Roboterfahrzeugs
5.1 Grundlagen der Regelungstechnik 7
5.2 P-Regler
5.3 I-Regler
5.4 PI-Regler
5.5 PID-Regler
5.6 Berechnung der PID-Regler-Koeffizienten mit Ziegler- Nichols Methode
6 Digitale Filterung der Messwerte
6.1 Filterung
6.2 Digitale Filter
6.3 Messwerte der Optosensoren
6.4 Filterentwurf
6.4.1 Überblick
6.4.2 Vorüberlegungen
6.4.3 Bestimmung der Grenzfrequenz
6.4.4 Berechnung der Filterkoeffizienten
7 Echtzeitsysteme
7.1 Betriebsystem
7.2 Multitasking
7.3 Task
7.4 Multitasking Betriebssystem
7.4.1 Taskverwaltung
7.4.2 Speicherverwaltung
7.4.3 Kommunikation zwischen Tasks
7.5 Echtzeitsysteme
8 Programmierung
8.1 Programmiersprache „Dynamic C“
8.2 „Dynamic C“- Installation
8.3 Programmierung des Mikrocontrollers PK2100
8.4 C-Programm
8.4.1 Liste der Variablennamen
8.4.2 Struktogramme der Module
8.4.3 Programm
8.4.4 kommentiertes Programm
9 Literaturverzeichnis
2 Einleitung
Den Traum, dass Maschinen menschliche Fähigkeiten besitzen und insbesondere menschlich handeln können, gibt es schon lange. Man denke an die vielen Science-Fiction Romane, in denen immer wieder intelligente, menschenähnliche Systeme auftreten, wenn auch meistens als böswillige Aggressoren. In der mobilen Robotik arbeitet man an Entwicklungen, um Roboter Aufgaben zukommen zu lassen, die bisher nur von Menschen ausgeführt werden konnten.1,2
Roboter gewinnen zunehmend an Bedeutung in Industrie- und Dienstleistungsbereichen. Dabei bilden die so genannten Roboterfahrzeuge eine wichtige Klasse. Für diese Roboter wird unter anderem gefordert, dass sie sich selbständig in einer unbekannten realen Umgebung bewegen und Aufträge ausführen können.
„Um einen Roboterfahrzeug mit autonomen Fähigkeiten auszustatten, ist es das grundsätzlichste Problem, den Roboter in seiner Umgebung anhand von Sensor-Daten zu lokalisieren.
Roboterfahrzeuge haben Computer eingebaut, die ihnen dezentrale Intelligenz geben, und Sensoren, die die Grundlage der selbständigen Entscheidungsfindung sind.“3
Es ist für einen Roboterfahrzeug sehr schwer, sich in seiner Umgebung zu orientieren. Selbst wenn das Umfeld bekannt ist, braucht er spezielle Sensoren, um sich zurechtzufinden. Die einfachste Möglichkeit zur Orientierung sind auf dem Boden aufgebrachten Markierungen. Indem ein Roboter einer Linie folgt, kann er sehr einfach und mit großer Sicherheit den Weg von einem Punkt zu einem anderen finden.
3 Aufgabenstellung
Unser Projektziel ist es, ein Roboterfahrzeug zu entwerfen und zu bauen, das einer weißen Linie auf einer schwarzen Oberfläche oder einer schwarzen Linie auf einer weißen Oberfläche so schnell wie möglich fol- gen kann. Die Bahn des Fahrzeugs soll so geregelt werden, dass es Kurven und Bogen ohne Zickzack oder Schwingungen folgen kann. Hierzu ist ein C-Programm zu entwickeln, das folgende Punkte berück- sichtigt:
- Regelung der Geschwindigkeit der beiden Rechts- und Linksmoto- ren,
- Digitale Filterung der Messwerte, die von den Optosensoren aus- gegeben werden.
- Ausführen des Programms in Echtzeit durch ein so genanntes „Multitasking-Betriebsystem“.
Als Hilfsmittel stehen zur Verfügung:
1. ein fertig aufgebautes Vierradfahrzeug, dessen Hinterräder mit zwei 12 V-Gleichstrommotoren angetrieben werden,
2. eine programmierbare CPU Controller-Karte des Typs PK2100 der Firma Z-World,
3. zwei Verstärker-Karten des Typs MICD9010,
4. zwölf Optosensoren (Reflexlichtschranken) des Typs OPB718 der Firma OPTEK,
5. zwei Batterien des Typs Yuasa 12 V-7 Ah.
Bestandteile des Roboterfahrzeugs 6
4 Bestandteile des Roboterfahrzeugs
4.1 Robotergestell (Plattform)
Das Robotergestell ist die wichtigste "Stütze" des Roboters, auf dem die Räder, die Sensoren, die elektronischen Karten, die Batterien usw.…montiert werden. Das Robotergestell wird aus einem stabilen, gleichzeitig leichten Werkstoff gebaut, z. B. Holz, Aluminium oder Plexi- glas.
Der im Rahmen der vorliegenden Diplomarbeit entwickelte Roboter ist aus Aluminium gebaut, er besteht nach Bild 4.1 und 4.2 aus einer vier- eckigen Plattform, an der in jeder Ecke ein Kunststoff-Rad montiert ist. Die Vorderräder sind leicht dreh- und lenkbar, und die Hinterräder sind durch 2 Achsen und Zahnriemen an je einem zwei Motor befestigt.
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.1: Vorderansicht des Roboters
Bestandteile des Roboterfahrzeugs 7
Tabelle 4.1: Schraubklemmenbelegung K01 und K02
Schraubklemmen K02 Schraubklemmen K01
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.2: Rückansicht des Roboters
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.3: Ansicht von rechts
+12 V
+24 V
Bezugspotential
Hinterräder
Bild 4.4: Ansicht von links
Bestandteile des Roboterfahrzeugs 9
4.2 Beschaltung der Bestandteile
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.5: Grundschaltung des Roboters
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.6: Sub-D1
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.7: Sub-D2
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.8: Sub-D3 Bild 4.9: Sub-D4 Bild 4.10: Sub-D5
Bestandteile des Roboterfahrzeugs 11
4.3 Mikrocontroller
Der Mikrocontroller ist der wichtigste Teil des Roboters. Er besteht aus einer programmierbaren elektronischen CPU-Karte,die den Mikroprozessor enthält. Eine solche Karte ist unerlässlich, wenn man einen Roboter "klug" machen will.
Hier kam eine CPU-Karte der Firma „Z-World“ zum Einsatz, ein Mikrocontroller des Typs PK2100, der frei programmierbar ist, insbesondere mit der Programmiersprache „Dynamic C“, eine Sprache, die von der Standard C-Sprache abgeleitet wurde.
4.3.1 Eigenschaften des PK2100
Das Bild 4.11 zeigt den PK2100 mit Gehäuse. Das Bild 4.12 zeigt die Platine.
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.11: Mikrocontroller PK2100 mit Gehäuse4
Bestandteile des Roboterfahrzeugs 12
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.12: Platine des Mikrocontrollers PK2100
Der PK2100 ist der am weitesten entwickelte Controller der
„Z-World“ Controller-Serien, der direkt mit vielen Sensoren und peripheren Geräten verbunden werden kann, ohne weitere Signalvorverarbeitung zu benötigen.
Eine typische Anwendung des PK2100 ist die Erkennung von Kontakten, Impulsen und die Messung analoger Werte, wie Temperatur oder Druck. Der PK2100 hat zwei eingebaute Relais und kann direkt 10 externe Re- lais oder Spulen steuern. Er kann analoge Signale ausgeben. Der PK2100 hat als Option ein eingebautes Tastenfeld und eine Flüssigkeits- Kristall-Anzeige (LCD).
Durch den PLC-Bus kann der PK2100 erweitert werden, d. h, er kann
mit anderen Mikrocontrollern kommunizieren. Dazu hat der PK2100 drei Kommunikationsmöglichkeiten über die seriellen Schnittstellen der Typen RS-232, RS-485 und RS-422.
4.3.2 Technische Daten des PK2100
Der PK2100 hat
- sieben digitale Eingänge ( „0“ = 0 V, „1“ = 5 V),
- sechs universelle Eingänge, die als Digital- oder Analogeingänge benutzt werden können,
- einen Analogeingang in Differenzschaltung mit hoher Verstärkung,
- zehn Hochstrom Ausgänge zur Ansteuerung induktiver Bauele- mente, wie Relais oder Spulen,
- zwei SPDT-Relais 3 A, 48 V (Single Pole Double Throw, siehe Bild 4.13),
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.13: SPDT-Relais5
- zwei analoge Ausgänge (Spannungsbereich: 0 bis 10 V),
- eine LCD-Anzeige mit 2×20 Zeichen,
Bestandteile des Roboterfahrzeugs 14
- ein Tastenfeld mit 2×6 Tasten,
- eine Schnittstelle als Erweiterung des PLC-Busses,
- eine RS-232 Schnittstelle oder eine RS-485/RS-422 Schnittstelle,
- eine Batterie für das 512 KBytes-RAM,
- ein EPROM bis zu 512 KBytes zur Speicherung von Programm und Daten,
- eine Batterie zur Pufferung von Zeit/Datum.
Das Bild 4.14 und die Tabelle 4.2 zeigen die Bedienelemente und Schraubklemmen des PK2100 und deren Belegung.
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.14: PK2100-Bedienelemente und Lage der Schraubklemmen
Bestandteile des Roboterfahrzeugs 15
Tabelle 4.2: Schraubklemmenbelegung des PK2100
Abbildung in dieser Leseprobe nicht enthalten
25 +10 V ref Referenzspannung 50 DC in Betriebsspannung
Bestandteile des Roboterfahrzeugs 16
4.3.3 Einsatz des PK2100
Der Mikrocontroller erhält die Signale von den Optosensoren C0…C11
und steuert die Motoren M1 und M2 an. Da 12 Optosensoren im Einsatz sind, braucht man 12 digitale Eingänge. Der PK2100 hat aber nur sieben digitale Eingänge, deshalb wurden zwei Multiplexer benutzt.
4.4 Optosensoren
4.4.1 Technische Daten des OPB718
Die Sensoren sollten so gewählt werden, dass sie einen TTL-Ausgang haben, dazu muss jeder Sensor zwischen schwarz und weiß unterscheiden können, d. h.,
- weiß (helle Oberfläche) ergibt 0 V am Ausgang,
- schwarz (dunkle Oberfläche) ergibt 5 V am Ausgang,
Von der Firma OPTEK liegen die gewünschten Reflexlichtschranken vor, und zwar der Typ OPB718 nach Bild 4.15.
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.15: OPB7186
Die technischen Daten des Typs OPB718 lauten:
- fokussiert für maximale Empfindlichkeit,
- maximale Empfindlichkeit liegt bei 12,7 mm (Brennweite),
- 114,3 mm Anschlussdrähte.
Bestandteile des Roboterfahrzeugs 17
4.4.2 Funktionsweise des OPB718
Jeder Sensor besteht aus einer Leuchtdiode (Sender), die nach Bild 4.16 einen IR-Strahl zum Boden sendet, der reflektiert wird, wenn die Oberfläche hell ist oder eine weiße Farbe hat. Der reflektierte IR-Strahl wird von einer zweiten IR-empfindlichen Diode empfangen.
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.16: IR-Reflexion des OPB718, nach Bild 4.18 beschaltet
Der Fotostrom steuert nach Bild 4.17 einen Operationsverstärker an und wird verstärkt. Durch den Schmitt-Trigger wird das verstärkte Signal in ein Rechtecksignal umgewandelt, so dass die beiden Schalttransistoren bei schwarz nicht durchschalten (Ausgang = 1) und bei weiß durchschal- ten (Ausgang = 0).
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.17: OPB718 „Open-Collector“-Ausgang
Um den gewünschten TTL-Ausgang zu bekommen, wird nach Bild 4.18 ein kleiner Widerstand R4=180 Ω zwischen die Betriebsspannung Us und den Ausgang geschaltet, so dass die Versorgungsspannung Us = 5 V am Ausgang liegt, wenn die Transistoren T1 und T2 nicht durchge- schaltet sind. Beim Einschalten der Transistoren liegt das Bezugspoten- tial am Ausgang.
Wegen des sehr kleinen Stroms am Ausgang (Ia = 20 mA) ist der Spannungsabfall am Widerstand vernachlässigbar:
Gleichung 4.1: VAbfall= 20 mA .180 Ω = 360 mV.
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.18: Einsetzen des Widerstands R4
Das Bild 4.19 zeigt die 12 Widerstände R4, die auf einer Platine zwi- schen zwei 15 poligen SUB-D Buchsen eingesetzt sind.
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.19: R4-Karte für “open collector“ -Widerstände
Die Belegung der beiden Buchsen SUB-D1 und SUB-D2 ist in Tabelle
4.3 gegeben:
Tabelle 4.3: Belegung der Buchsen SUB-D1 und SUB-D2
Abbildung in dieser Leseprobe nicht enthalten
Die 12 Sensoren sind nach Bild 4.5 parallel geschaltet und werden durch einen Spannungsregler des Typs L78S05CV mit 5V versorgt. Sie sind in einer Aluminium Profilleiste in U-Form in gleichen Zwischenabständen montiert. Der Abstand zwischen 2 benachbarten Sensoren ist 2 cm. Die Profilleiste ist durch zwei Distanzhülsen vorne auf der Roboterplatform fixiert. Durch zwei kleine Gewindestangen und 2 kleine Federn kann man den Abstand zwischen dem Boden und den Lichtschranken justie- ren, denn die Empfindlichkeit dieser Sensoren verändert sich stark mit diesem Abstand und ist maximal bei einer Höhe von etwa 12 mm. Von den Sensoren werden 12 TTL-Signale zu den beiden Multiplexern über- tragen.
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.20: R4-Karte, Bestückungsseite
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.21: R4-Karte, Lötseite
4.4.3 Steuerungskonzept auf Basis der Optosensoren
Mit Hilfe der 12 Optosensoren kann das Roboterfahrzeug den schwarzen Streifen folgen. Diese Sensoren geben dem Rechner durch das IR- Reflexionsverfahren (siehe Bild 4.16) ständig die Information über die Bodenfarbe schwarz oder weiß. Der PK2100 bearbeitet diese Informationen und steuert das Roboterfahrzeug.
Die Optosensoren haben eine maximale Empfindlichkeit gegenüber der Bodenfarbe bei einem Abstand von etwa 12,7 mm.
Durch die Programmierung des Roboters wird versucht, die beiden mittigen Sensoren C5 und C6 genau in der Mitte des schwarzen Streifens zu halten (siehe Bild 4.22).
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.22: Sensor-Ausgänge
4.5 Multiplexer
Unter einem Multiplexer (MUX) versteht man ein Gerät, das in der Lage ist, mehrere Nachrichten quasi gleichzeitig über eine Leitung zu übertra- gen. Wenn das Zusammenführen und die Aufspaltung der Datenströme nicht von einem Gerät erledigt wird, wird das Gerät, das die parallelen Datenströme des Senders mit den entsprechenden Kanälen des Über- tragungsmediums zusammenführt, als Multiplexer und das Gerät, das die Datenströme wieder aufspaltet und an den Empfänger weiterleitet, als Demultiplexer bezeichnet.
Hier wurde der Multiplexer vom Typ 74LS153 gewählt, da er preiswert und bewährt ist. Mit Hilfe des Multiplexers benötigt man nur vier digitale Eingänge des PK2100.
4.5.1 Belegung
Jeder Multiplexer 74LS153 hat nach Bild 4.23
- acht Eingänge 1A, 1B, 1C, 1D, 2A, 2B, 2C und 2D,
- zwei Datenausgänge 1Y und 2Y,
- zwei Strobe-Eingänge (Freigabe) 1G und 2G,
- zwei Selektoreingänge (Auswahl) A und B.
Die Selektoreingänge dienen der Auswahl (Selektion) des Dateneinganges, der mit dem Ausgang Y logisch verbunden werden soll. Der StrobeEingang hat die Aufgabe, die gesamte Funktion des Multiplexers frei- zugeben oder zu sperren, um z. B. das Zusammenschalten mehrerer Multiplexer zu erleichtern.
Die beiden Multiplexer werden vom Mikrocontroller PK2100 durch die Funktion up_setout angesteuert (PK2100 MUX), so dass jedes Mal nach Tabelle 4.5 vier MUX-Eingänge vom Mikrocontroller PK2100 abgefragt (MUX PK2100) werden können.
Die Funktion up_setout(x,y) ist in Dynamic C so definiert :
- x ist die Kanalnummer, welche die Werte 1 bis 10 annehmen kann.
- y ist der Wert, der diesem Kanal zugeführt wird, und zwar 1 („High“) oder 0 („Low“).
Vom Mikrocontroller PK2100 werden zwei Ausgangskanäle gebraucht, O1 und O2, die nachher die Werte 1 oder 0 annehmen können.
Bei der Codierung gibt es dann nach Tabelle 4.4 vier Fälle.
Tabelle 4.4: Codierung der digitalen Ausgänge
Abbildung in dieser Leseprobe nicht enthalten
up_setout(1,1) up_setout(1,1) up_setout(1,0) up_setout(1,0)
up_setout(2,1) up_setout(2,0) up_setout(2,1) up_setout(2,0)
Die Selektoreingänge der beiden Multiplexer erhalten dann eine der vier binären Codierungen:
Abbildung in dieser Leseprobe nicht enthalten
Der letzte binäre Code 00 wird nicht berücksichtigt, weil die MultiplexerEingänge 1D und 2D oder die Pins 3 und 13 an das Bezugspotential angeschlossen sind.
Der Dualcode (0,0), (0,1), (1,0) und (1,1) wird an die Selektoreneingänge (A = Pin 14, B = Pin 2) der beiden Multiplexer gegeben, und für jeden Fall nach Tabelle 4.5 vier Eingänge ausgewählt.
Tabelle 4.5: Multiplexer-Auswahl
Abbildung in dieser Leseprobe nicht enthalten
Das Bild 4.23 zeigt einen Multiplexer des Typs 74LS153 mit der Nummerierung der Pins und deren Benennung.
Abbildung in dieser Leseprobe nicht enthalten
Bild 4.23: Belegung des 74LS153-Multiplexers
[...]
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen.