Bachelorarbeit 2009 Elektronik und Software für den

Transcription

Bachelorarbeit 2009 Elektronik und Software für den
Bachelorarbeit 2009
Elektronik und Software
für den nautical robot
Betreuung:
Studenten:
Ausgabe:
Abgabe:
Prof. Dr. Roland Büchi
Dipl.Ing. ETH Andreas Breitenmoser
Hauri Samuel ME06a
Stalder Christian ME06a
09.02.2009
28.05.2009
Abstract
The Nautical Robot (naro) is a joint project of the Swiss Federal Institute of Technology,
Zürich and the Zurich University of Applied Sciences, Winterthur.
The goal of the overall project was the realization of energy-efficient underwater propulsion.
This was achieved by designing and building a model of a one meter long robot fish that
imitates of natural swimming motion of a tuna.
NARO is divided into six watertight sub-elements, which are enclosed in a flexible hull. The
main drive consists of five electric motors which are position controlled by a microcontroller.
For static and dynamic diving it is necessary to fit pectoral fins and a diving cylinder to naro.
These are driven by servo motors. Furthermore, temperature, pressure, inclination and
moisture sensors are attached to the robot. The movement of naro is controlled by a PC via
a GUI (Graphical User Interface) which sends control commands to the microcontroller.
The main task of the students of Mechatronics was to write a software solution for the
microcontroller that enables the robot to move according to a calculated movement
sequence. The software includes programs for reading of analog and digital data,
communication with the motor controllers via the CAN bus, the calculation of the
movement, the controlling of the servo motors and the communication with the PC.
Elektronik und Software für naro
1
Zusammenfassung
Der nautical robot (naro) ist ein 1 Meter langer Roboterfisch. Er wurde im Rahmen eines
Fokusprojektes der ETH Zürich in Zusammenarbeit mit der ZHAW entwickelt.
Das Ziel des Gesamtprojekts war die Realisierung eines energieeffizienten
Unterwasserantriebs durch die Nachahmung einer natürlichen Fisch-Schwimmbewegung.
Das natürliche Vorbild ist der Thunfisch, mit seinen herausragenden Schwimmeigenschaften.
Naro ist in sechs wasserdichte Elemente aufgeteilt, die mit einer flexiblen Hülle umgeben
sind. Der Hauptantrieb besteht aus fünf Elektromotoren, die von einem Mikrokontroller
positionsgeregelt werden. Um statisch und dynamisch tauchen zu können sind Brustflossen
und Tauchzylinder eingebaut. Diese werden mit Servomotoren angetrieben. Zusätzlich sind
Druck, Neigung und Feuchtigkeitssensoren vorhanden, deren Messdaten verarbeitet werden
müssen.
Gesteuert wird naro mittels PC über eine grafische Benutzeroberfläche, welche
Steuerbefehle an den Mikrokontroller sendet.
Die Hauptaufgabe der Mechatronik- Studenten lag darin, eine Software für den
Mikrokontroller zu schreiben, die es ermöglicht, den Roboter nach den berechneten
Vorgaben bewegen zu lassen. Diese Software umfasst zusätzlich das Einlesen von analogen
und digitalen Daten, die Kommunikation mit den Motorkontrollern über den CAN-Bus, das
Berechnen der Bewegungsform, die Steuerung der Servomotoren und die Kommunikation
mit dem PC.
Abbildung 1 CAD Model von naro
Elektronik und Software für naro
2
Inhaltsverzeichnis
1
Einleitung......................................................................................................................................... 6
2
Anforderungen ................................................................................................................................ 6
3
Hardware ......................................................................................................................................... 7
3.1
Verkabelung ............................................................................................................................ 7
3.2
Antrieb von naro ..................................................................................................................... 8
3.3
Hardware Komponenten......................................................................................................... 9
3.4
Die Mikrokontrollerplatine.................................................................................................... 10
3.4.1
3.5
Die Versorgungsplatine ......................................................................................................... 11
3.5.1
Die Versorgungsspannung............................................................................................. 12
3.6
CAN- Adapter- Platine ........................................................................................................... 13
3.7
Sensoren................................................................................................................................ 13
3.8
Der Mikroprozessor AT90CAN128 ........................................................................................ 14
3.8.1
Reset .............................................................................................................................. 14
3.8.2
Externer Interrupt ......................................................................................................... 15
3.8.3
Display ........................................................................................................................... 15
3.8.4
LED ................................................................................................................................. 16
3.8.5
PWM, Servomotoren - Ansteuerung ............................................................................. 16
3.8.6
Analog-Digital Wandlung............................................................................................... 17
3.8.7
Can–Bus ......................................................................................................................... 18
3.9
RS232 Schnittstelle ................................................................................................................ 19
3.10
EPOS ...................................................................................................................................... 20
3.10.1
Inbetriebnahme............................................................................................................. 20
3.10.2
RS232/CAN .................................................................................................................... 21
3.12
4
Konfigurationen an der Mikrokontrollerplatine............................................................ 11
Computer .............................................................................................................................. 22
Kommunikation ............................................................................................................................. 23
4.1
Fernsteuerung ....................................................................................................................... 23
4.1.1
Kabelkommunikation via RS232 .................................................................................... 24
4.1.2
Kommunikationsprotokoll............................................................................................. 25
4.2
Controller Area Network (CAN) ............................................................................................. 26
4.2.1
Hardware Ebene ............................................................................................................ 26
4.2.2
CAN Kommunikation ..................................................................................................... 27
4.2.3
Kollisionsvermeidung .................................................................................................... 27
Elektronik und Software für naro
3
4.2.4
Bitarbitrierung ............................................................................................................... 28
4.2.5
Frame Aufbau ................................................................................................................ 29
4.2.6
Nachrichtenfilterung ..................................................................................................... 30
4.3
4.3.1
Objektverzeichnis .......................................................................................................... 31
4.3.2
Servicedatenobjekte...................................................................................................... 31
4.3.3
Prozessdatenobjekte ..................................................................................................... 32
4.3.4
Netzwerkverwaltungsobjekt ......................................................................................... 32
4.3.5
CAN Störungssicherheit................................................................................................. 32
4.4
7
Ansteuerung der EPOS über CAN .......................................................................................... 33
4.4.1
Initialisierung des EPOS ................................................................................................. 34
4.4.2
Geschwindigkeiten setzten ........................................................................................... 34
4.4.3
Positionen auslesen....................................................................................................... 34
4.5
5
CANopen ............................................................................................................................... 31
RS232 ..................................................................................................................................... 35
Software ........................................................................................................................................ 36
5.1
Programmierumgebung ........................................................................................................ 36
5.2
Hauptprogramm .................................................................................................................... 37
5.2.1
Initialisierung ................................................................................................................. 37
5.2.2
ADC Messung ................................................................................................................ 38
5.2.3
EPOS reset ..................................................................................................................... 38
5.2.4
Homing .......................................................................................................................... 38
5.2.5
Betriebs-MODE .............................................................................................................. 38
5.2.6
ADC Ausgabe ................................................................................................................. 38
5.2.7
Überwachung ................................................................................................................ 38
5.3
RS232 Interrupt ..................................................................................................................... 39
5.4
Globale Zeitvariablen ............................................................................................................ 40
5.5
Positionsberechnung ............................................................................................................. 41
5.6
Positions- Regelung ............................................................................................................... 41
5.7
Homing .................................................................................................................................. 42
5.8
Positionslimit ......................................................................................................................... 42
5.9
EPOS Bibliothek ..................................................................................................................... 43
5.10
PWM ...................................................................................................................................... 44
6.1
Trockentests .......................................................................................................................... 44
6.2
Nasstests ............................................................................................................................... 44
Schlussfolgerung /Resultate .......................................................................................................... 45
Elektronik und Software für naro
4
8
Ausblick ......................................................................................................................................... 47
8.1
RS232 Kommunikation .......................................................................................................... 47
8.2
Kabellose Kommunikation .................................................................................................... 47
8.3
Software ................................................................................................................................ 47
9
Quellen .......................................................................................................................................... 48
9.1
Abbildungsverzeichniss ......................................................................................................... 48
10
Inhalt DVD ................................................................................................................................. 49
11
Anhang ...................................................................................................................................... 50
Elektronik und Software für naro
5
1 Einleitung
Die Idee zum Bau eines Roboter-Fisches entstammt vom Projektleiter Céderic Siegenthaler.
Er machte in seiner Maturarbeit eine Analyse der Fischbewegung, welche als Grundlage zur
Entwicklung eines Unterwasserroboters dienen sollte.
Das Projekt zur Entwicklung eines Unterwasserroboters wurde 2008 im Rahmen des
Fokusprojektes der Maschinenbau- Studenten der ETH Zürich gestartet. Da dieses Projekt
Unterstützung im Bereich Elektrotechnik benötigte wurde es auch an der ZHAW für
Mechatronik- und Elektronik- Studenten ausgeschrieben.
Mit der Entwicklung des Unterwasserroboters waren 7 Studenten zwei Semester lang
beschäftigt. Es ergaben sich sechs verschiedene Bachelorarbeiten aus dem Gesamtprojekt.
Das Ziel der Arbeit „Software und Elektronik für den nautical robot“ war die Einbindung der
simulierten Bewegungsabläufe, sowie das Überwachen des Systems und die Kommunikation
mit dem Piloten.
2 Anforderungen
Die Elektronik und Software müssen es ermöglichen, naro nach den gewünschten
Bewegungsformen positionsgeregelt über eine Fernsteuerung zu bewegen. Die Vorgaben,
was das System alles umfassen soll, welche Bauteile verwendet werden und wie der Aufbau
aussieht, wurde in der vorhergehenden Arbeit „Antriebskonzept naro“ festgelegt. Folgende
Gesamtübersicht zeigt das geplante System, welches in der Bachelorarbeit zu realisieren
war.
Schema 1 Mikroprozessor mit Peripherie
Bei der Software stehen dabei die Anwenderfreundlichkeit und die Sicherheit im
Vordergrund. Zudem sollte sie einfach erweiterbar sein. Die Software soll auch eine
Überwachung der Zustände und Sensorwerte ermöglichen, damit man sofort auf wichtige
Elektronik und Software für naro
6
Ereignisse reagieren kann. Die zeitabhängigen Winkel aller Gelenke müssen in Echtzeit von
der Software berechnet werden.
Zum jetzigen Zeitpunkt sind keine autonomen Funktionen geplant, naro soll vollständig
ferngesteuert werden.
3 Hardware
Die Hardware von naro setzt sich aus sehr unterschiedlichen Komponenten zusammen.
Dabei müssen diese so gut auf einander abgestimmt sein, dass auch in einem
unvorhergesehenen Extremfall möglichst keine Schäden am System und an der Umwelt
entstehen. Durch den Unterwasserbetrieb der Elektronik besteht immer die Gefahr von
eintretendem Wasser, das Kurzschlüsse verursachen kann.
3.1 Verkabelung
Um das Ein- und Ausbauen der Hardware zu vereinfachen wurden alle Verbindungen mit
Steckern versehen. Dadurch ist der Ein- und Ausbau der Hardware trotz sehr engen
Platzverhältnissen in vernünftiger Zeit möglich. Durch die Steckverbindungen erhöhen sich
jedoch die Verwechslungsgefahren sowie die Fehlerquoten durch schlechte Kontakte.
Abbildung 2 Box Nr.2 randvoll mit Elektronik
Die elektronischen Hardwarekomponenten wurden zum Schutz vor Nässe mit einem
Schutzlack versiegelt.
Um Störeinflüsse abzudämpfen, wurden CAN- Bus Kabel mit Abschirmung verwendet. Diese
Abschirmung wurde zudem mit den Gehäusen der EPOS, der Masse des Akkus und mit den
metallischen Teilen der Konstruktion verbunden.
Elektronik und Software für naro
7
3.2 Antrieb von naro
Der Hauptantrieb von naro besteht aus fünf Bürstenlosen- DC Motoren mit jeweils 50 Watt
Leistung und einem 190: 1 Getriebe, die von fünf Motorkontrollern angesteuert werden.
Zusätzlich sind vier Servomotoren im Einsatz, zwei für die beiden Brustflossen und zwei für
die beiden Tauchzylinder. Mit den Tauchzylindern kann statisch, mit den Brustflossen kann
dynamisch getaucht werden. Alle Motoren, ausser den Tauchzylinder Servomotoren, sind
aus Platzgründen im zweiten Segment untergebracht. Die hinteren Elemente werden durch
Bowdenzüge aus dem zweiten Element bewegt. Die Tauchzylinder befinden sich im ersten
und dritten Segment.
•
•
•
•
•
Motor EC22 50W von Maxon
Motorkontroller EPOS 24/5 von Maxon
Getriebe 190:1 GP 32C von Maxon
Tauchzylinder Servomotor REGATTA von Graupner
Brustflossen Servomotor HS82MG Von HiTech
Abbildung 3 Antriebsübersicht von naro
Elektronik und Software für naro
8
3.3 Hardware Komponenten
Zur Steuerung von naro wird ein Mikrokontroller eingesetzt. Da bereits Erfahrungen mit
Atmega Mikrokontrollern bestanden, welche zudem unseren Anforderungen gerecht
wurden, fiel die Entscheidung bereits in der Konzeptphase auf diesen Mikrokontrollertyp.
Zur Verdeutlichung der verwendeten elektronischen Hardware von naro dient die folgende
Skizze.
Schema 2 Mikroprozessor mit Peripherie
Überblick über die Peripherie des Mikrokontrollers:
A:
Naro wird über einen Computer gesteuert. Die Datenübertragung erfolgt seriell
mittels eines etwa 30m langen Kabels. Es wird die RS232 Schnittstelle verwendet, sie
benötigt auf der Mikrokontrollerplatine ein Treiber- IC, welcher den TTL- Pegel des
Mikrokontrollers auf den 12 Volt Pegel des RS232 Standards anhebt.
Es ist eine bidirektionale Kommunikation möglich.
B:
Um naro in Notfällen kontrolliert auszuschalten, ist ein Notaustaster angeschlossen.
Dieser ist mit einem Interrupt- Eingang gekoppelt und damit immer ansprechbar.
Es kann auch ein Kabelunterbruch detektiert werden. Das Notaus- Kabel wird parallel
mit dem RS232 Kabel geführt.
C:
Für eine schnelle und günstige Betriebsüberwachungsfunktion wurde ein Display in
naro eingebaut. Um jedoch Rechenressourcen zu sparen, wurde es in der endgültigen
Softwareversion wieder entfernt. Die Statusausgabe erfolgt nun über zwei LEDs.
Die Ansteuerung erfolgt direkt mit einem I/O Pin pro LED.
Mit dem gleichen Prinzip wird auch ein Relais gesteuert, welches die
Gesamtversorgung von naro schaltet.
Elektronik und Software für naro
9
D:
Es sind zwei Servomotoren eingebaut, welche die Brustflossen bewegen. Diese
benötigen jeweils ein Steuersignal für die Position und eine 5 Volt Speisung. Das
Steuersignal wird in den meisten Fällen direkt vom Piloten vorgegeben.
E:
Zum Bewegen der beiden Tauchzylinder werden zwei Servomotoren benötigt. Es
werden spezielle Modellbau- Servomotoren eingesetzt, welche mehrere
Umdrehungen fahren können.
Damit werden bis zu 0.4 Liter Volumenunterschied ermöglicht, bei gleichbleibendem
Gewicht von naro.
F:
Die Akkuspannungen werden im Betrieb vom Mikroprozessor überwacht. Dies erfolgt
jeweils mit einem Analogeingang. Sobald die Spannung einen kritischen Wert
unterschreitet, wird dies über die LED- Statusausgabe angezeigt und über RS232
kommuniziert.
G:
Zusätzliche Sensoren nehmen im Betrieb verschiedene Messdaten auf, welche
unterschiedlich verarbeitet werden. Es wurde darauf geachtet, dass die Sensoren
einen analogen Ausgang besitzen, welcher eine Spannung von 0-5V proportional zur
Messgrösse liefert. Dadurch sind die Beschaltung und Auswertung einfacher
geworden.
H:
Den Motorkontrollern (EPOS) sendet der Mikrokontroller die Sollgeschwindigkeit über
den CAN-Bus. Für die Regelung werden die Positionsdaten ausgelesen. Für jeden
Motor wird ein Motorkontroller benötigt. Die Datenrate der Verbindung ist einstellbar
und wurde auf 1 MBit/s festgelegt.
3.4 Die Mikrokontrollerplatine
Die Entwicklung einer eigenen Mikrokontrollerplatine konnte aus Zeitgründen nicht
berücksichtigt werden. Dies wurde jedoch auch nicht angestrebt, da es bereits unzählige
Entwicklungsplatinen zu kaufen gibt, welche exakt unseren Anforderungen an Grösse und
vorhandene Zusatzkomponenten entsprechen.
In naro wird die
Mikrokontrollerplatine D071
vom Hersteller Display3000
eingesetzt.
Abbildung 4 Mikrokontroller- Platine
Elektronik und Software für naro
10
3.4.1 Konfigurationen an der Mikrokontrollerplatine
Dadurch, dass der Mikrokontroller sehr universell einsetzbar ist und auch die Platine
entsprechend aufgebaut ist, war es nötig einige Hardwarekonfigurationen vorzunehmen.
Zur Benutzung des CAN- Busses mussten die Lötbrücken J7 und J8 geschlossen werden.
Dadurch sind die beiden Datenleitungen CAN_H und CAN_L an den zusätzlichen CAN
Treiber-IC angeschlossen. Die gleiche Anpassung musste auch für die RS232 Schnittstelle
vorgenommen werden (Lötbrücke J5 und J6). Die Mikrokontrolleplatine besitzt zwei RS232
Schnittstellen (RS232_0 und RS232_1), wobei für naro nur RS232_1 verwendet wird.
Die Referenzspannung des AD- Wandlers des Mikroprozessors ist standartmässig bereits auf
die Versorgungsspannung (5V) gelegt. Es mussten hier keine Anpassungen vorgenommen
werden.
Das Display wurde vom Mikrokontrollerprint entfernt und mit einem Flachbandkabel
versehen, um es so an den vorgesehenen Ort in der Box Nr. 1 zu platzieren.
Die Mikrokontrollerplatine hängt direkt mit der Versorgungsplatine zusammen. Die
Datenleitungen der Sensoren werden auch über diese Versorgungsplatine geleitet. Dies hat
den Vorteil, dass alle Analogsignale über ein Flachbandkabel an den Mikrokontroller
angeschlossen werden.
3.5 Die Versorgungsplatine
Zur Spannungsversorgung der verschiedenen Komponenten wurde von der ETH eine
Versorgungsplatine nach unseren Wünschen entwickelt. Damit wird die Speisung über einen
zentralen Knotenpunkt geführt. Dies ermöglicht eine einfache und schnelle Fehlersuche,
sowie eine effizientere Ausnutzung der Platzverhältnisse. Die Versorgungsplatine liefert zwei
konstante 5V Spannungen, eine für den Mikrokontroller und die Sensoren, die zweite zur
Versorgung der Servomotoren. Durch die Trennung dieser Speisungen wird sichergestellt,
dass die Servomotoren keine Störsignale auf der Mikrokontrollerspeisung erzeugen. Die
Motorkontroller werden über die Versorgungsplatine direkt mit der Akkuspannung versorgt.
Elektronik und Software für naro
11
3.5.1 Die Versorgungsspannung
Die Versorgungsspannung für naro wird durch zwei Lithium-Polymer Akkus erzeugt, welche
über eine Sicherung an die Versorgungsplatine angeschlossen werden. Sie werden in Serie
geschaltet und erzeugen so eine Spannung von rund 24V. Zur vollständigen Abtrennung der
Speisung wird ein Halbleiterrelais in den Stromkreislauf eingesetzt, welches mit einem Taster
eingeschaltet werden kann. Zusätzlich ist auch der Mikrokontroller mit dem Steuereingang
verbunden.
Mit diesem Schaltaufbau ist es möglich,
die Versorgungsspannung für naro von
aussen, mit Hilfe eines Magneten, über
den Reed-Taster, einzuschalten. Sobald
der Mikroprozessor gespiesen wird,
wird der Pin D1 mittels Software auf 5V
geschaltet. Der Steuereingang des
Halbleiterrelais benötigt eine Spannung
von 3-30V. Durch die Diode wird der
Mikrokontroller vor Überspannung
geschützt.
Schema 3 Versorgungsspannungsbeschaltung
Elektronik und Software für naro
12
3.6 CAN- Adapter- Platine
Durch den Zusatz- IC von Phillips (PCA82C250) wird die CAN- Unterstützung der
Mikrokontrollerplatine vervollständigt. Diese befindet sich, bei der in naro verwendeten
Hardware, auf einem Zusatz- Print. Dieser wurde von der Firma Display3000 mitgeliefert.
Dieser Zusatz- Print benötigt eine stabilisierte 5 Volt Speisung und beinhaltet bereits einen
Abschlusswiderstand für den CAN-Bus (R4).
Schema 4 CAN- Adapter- Board
Mit R3 kann die Baudrate des Busses eingestellt werden. Für die in naro verwendeten
1MBit/s ist R3 = 0Ohm.
3.7 Sensoren
Es sind momentan drei verschiedene Sensortypen eingebaut. Diese dienen zur Überwachung
und Regelung des Systems.
Drucksensor: Honeywell 40PC Series 40PC01562A
Der Drucksensor wird für die Tiefen- Regelung der Tauchzylinder benötigt, er hat einen
Arbeitsbereich von 0 bis 1 bar und eine Auflösung von 7mbar, das analoge Ausgangssignal ist
proportional zum Druck zwischen 0.5 und 4.5V
Neigungssensor: KAS804 54 von Kelag
Der Neigungssensor wird auch zur Regelung der Tauchzylinder benötigt, durch diesen Sensor
kann sich naro in der horizontalen Ebene stabilisieren. Der Neigungssensor hat eine
Auflösung von 0.2° und ein Ausgangssignal zwischen 0 und 5V. Es werden zwei Achsen
gemessen.
Feuchtigkeitssensor: HIH-4000 Honeywell
Der Feuchtigkeitssensor dient zur Sicherheit des Roboters, sobald die Feuchtigkeit einen
Grenzwert überschreitet wird mittels Mikroprozessor die Stromversorgung unterbrochen.
Elektronik und Software für naro
13
3.8 Der Mikroprozessor AT90CAN128
Der verwendete Mirkoprozessor der Firma Atmel ist ein 8Bit- RISC- Prozessor. Er wird mit
einem 16MHz Quarz getacktet und benötigt eine stabilisierte 5 Volt Speisung. Beim
AT90CAN128 handelt sich um einen Prozessor mit zusätzlich integriertem CAN-Controller,
sowie einem128 kByte Flash- Speicher und über 50 programmierbaren IO Anschlüssen.
Zudem stellt dieser Mikroprozessor 8 separate AD- Wandlereingänge zur Verfügung, welche
mit einer Auflösung von 10Bit und einem Eingangsbereich von 0- 5 Volt arbeiten.
Damit können die verwendeten Sensoren mit einer Auflösung von bis zu 1024 Messpunkten
ausgelesen werden. Für den Anwendungsbereich von naro reicht diese Auflösung.
Es werden auch verschiedene Interrupt- Funktionen verwendet. Der Mikroprozessor hat 37
unterschiedliche Interrupt- Quellen. In naro wird ein Timer- Interrupt (SW), ein UARTInterrupt (für die RS232- Schnittstelle, SW) und ein externer Interrupt (HW) benutzt.
3.8.1 Reset
Sobald der Reset- Eingang des Mikrokontrollers auf Masse geschalten wird, wird der
Programmcounter auf die Startadresse 0x00 zurückgesetzt. Dies bewirkt, dass das Programm
von neuem gestartet wird. Alle Ausgänge des Mikrokontrollers werden während diesem
Vorgang zudem auf logisch Null gesetzt, also auf Ground- Potential.
Dies hat zur Folge, dass das Halbleiterrelais am Steuereingang keine Spannung hat, und so
die Versorgung unterbrochen wird. Somit kann die Stromversorgung von naro mit dem
Reset- Eingang ausgeschalten werden.
Durch die Verwendung eines Reed-Tasters erfolgt das Ausschalten wie auch der bereits
beschriebene Einschaltvorgang berührungslos mittels eines Magneten.
Der Reset- Taster ist direkt auf dem
Mikrokontroller- Board aufgelötet und wird nur zu
Testzwecken verwendet, wenn das Board
ausgebaut ist.
Schema 5 Reset Schaltung
Elektronik und Software für naro
14
3.8.2 Externer Interrupt
Der externe Interrupteingang detektiert das Potential am entsprechenden Eingang des
Mikrokontrollers. Dieser Pin wird dazu verwendet, um naro im Notfall oder im Falle einer
Unterbrechung des Kabels sofort in den Notauftauch- Modus zu versetzten. Dazu ist eine
parallele Leitung (Ext_Int) zu den Steuerleitungen (RS232) gelegt. Diese ist am
Mikrokontroller an den Pin PD0 angeschlossen. Sobald das Potential logisch Null entspricht
wird die entsprechende Interruproutine ausgeführt und dadurch das Notauftauch- Szenario
eingeleitet.
Auf der Piloten Seite von naro ist folgende Schaltung angeschlossen:
Dadurch wird die Ext_Int Leitung auf 5V
gehalten, bis der Taster gedrückt wird.
Zusätzlich kann mit dieser Beschaltung
auch ein Kabelbruch detektiert werden,
da in einem solchen Fall Ext_Int nicht
mehr auf 5V Potential ist.
Schema 6 Externer Interrupt
3.8.3 Display
Das Mikrokontroller- Board von Display3000 wurde mit einem 2.1 Zoll Display geliefert. Es ist
ein Farbdisplay mit einer Auflösung von 176 x 132 Pixel.
Das Display wird in erster Linie zur Fehleranalyse während der Software- Entwicklung
verwendet.
Weil das Display viel Rechenleistung des Mikrokontrollers benötigt, wurde es in der
endgültigen Schwimmsoftware nicht mehr verwendet. Zudem ist der Einbauort durch einen
Tauchzylinder versperrt.
Der Displaytreiber zum ansprechen des Displays wurde mit der Mikrokontrollerplatine
mitgeliefert und ist von auf der DVD aufgeführt.
Elektronik und Software für naro
15
3.8.4 LED
Die eingebauten Leuchtdioden werden zur Statusausgabe verwendet.
Eine rote (LED 1) und eine grüne (LED power) sind in naro eingebaut. Sie werden direkt mit
dem Mikrokontroller via Software angesteuert.
Mit der roten Leuchtdiode werden Fehler angezeigt,
die grüne wird für die Betriebsanzeige verwendet.
S
c
S
Schema 7 LEDs
3.8.5 PWM, Servomotoren - Ansteuerung
Es werden vier Servomotoren angesteuert, welche jeweils ein PWM Signal als Sollposition
benötigen. Diese Signale werden mit einem Timer erzeugt. Für eine genügend hohe
Auflösung werden zwei 10 Bit Timer verwendet.
Servomotoren benötigen wie in Abbildung 4 ersichtlich ein 50 Hz PWM Signal das während
1-2 ms auf logisch High ist. Die speziellen Servomotoren der Tauchzylinder können im
Gegensatz zu den Standard Servomotoren bis zu fünf Umdrehungen fahren (1800°)
benötigen aber das gleiche PWM Signal, 2ms entsprechen somit 1800° anstatt 180°.
Abbildung 5 Servomotor- Position und PWM Signal
Elektronik und Software für naro
16
3.8.6 Analog-Digital Wandlung
10
Der 10 Bit Analog Digital Wandler (ADC) hat eine Auflösung von 2 Bit= 1024 Messpunkte,
bei einer Referenzspannung von 5V bedeutet das eine Diskretisierung in 4.9mV Schritten.
Bei dem verwendeten Mikrokontroller stehen 8 ADC Eingänge zur Verfügung.
Mit diesen Eingängen werden die Sensoren und die Akkuspannungen überwacht.
Für das auslesen der beiden Akkuspannungen werden noch Spannungsteiler benötigt. Diese
wurden auf der Versorgungsplatine der ETH nicht korrekt aufgebaut. Die Verbesserung ist
aus dem folgenden Schema ersichtlich.
Schema 8 Analog Digital Wandlung der Akkuspannung
Elektronik und Software für naro
17
3.8.7 Can–Bus
Der AT90CAN128 unterstützt alle vier möglichen CAN - Nachrichten Arten (Data, Remote,
Error und Overload). Ausserdem ist er kompatibel zur CAN- Spezifikationen 2.0A und 2.0B
(extended Identifier) und unterstütz eine CAN Baudrate von bis zu 1 MBit/s (siehe Kapitel Nr
4.2 CAN).
Damit erfüllt er alle Anforderungen an einen CAN-Busteilnehmer. Zusätzlich besitzt der
Mikrokontroller 15 Message Objects mit jeweils einem eigenen 29 Bit Identifier, einer 29 Bit
Identifier Maske und einem 8 Byte Datenpuffer.
Die wichtigsten Register des Mikroprozessors in Bezug auf den CAN- Bus werden im
folgenden kurz erläutert. Die ausführliche Beschreibung aller Register und Funktionen findet
man im Datenblatt des AT90CAN128 auf den Seiten 232-266.
•
•
•
•
•
•
•
•
CAN General Control Register (CANGCON) S.250
Mit diesem Register wird zum Beispiel der CAN Transciever aktiviert, das heisst in den
Enable- oder Standby- Modus gesetzt.
CAN General Status Register (CANGSTA) S.251
Hier kann der Status des Transciever ausgelesen werden.
CAN Page MOb Register (CANPAGE) S.258
Hier wird das aktuelle Message Objekt (MOb) ausgewählt.
CAN Mob Status Register (CANSTMOB) S.259
Mit diesem Register kann anhand der RXOK und TXOK Bits überprüft werden ob der
Transciever erfolgreich eine Nachricht empfangen oder verschickt hat. Die restlichen
Bits enthalten verschiedene Error Flags.
CAN Mob Control and DLC Register (CANCDMOB) S.260
Hier wird der Data Length Code also die länge einer Nchricht für eine Übermittlung
festgelegt und das IDE (Identifier extension Bit) gesetzt, je nach dem ob ein 11 oder
29Bit Identifier gebraucht wird. Zusätzlich wird hier auch die Betriebsart des
aktuellen MObs eingestellt.
CAN Identifier Tag Registers (CANIDT1-4) S.261
Mit den CANIDT Register 1-4 wird der Identifier des ausgewählten MObs gespeichert.
CAN Identifier Mask Registers (CANIDM1-4) S.262
Mit den CANIDM Register 1-4 wird die Identifier Maske des ausgewählten MObs
gespeichert.
CAN Data Message Register (CANMSG) S.263
Hier werden die ein- und ausgehenden Nachrichten gespeichert. Nach einem
Schreib- oder Lesezugriff wird der Zeiger automatisch erhöht. Der Anwender muss
also, um eine Nachricht auszulesen, das CANMSG Register achtmal nacheinander
auslesen.
Elektronik und Software für naro
18
3.9 RS232 Schnittstelle
Der Mikrokontroller unterstützt, wie bereits mehrfach erwähnt, die Kommunikation mit dem
RS232 Standard. Die verwendete Schnittstelle wird auf Seiten des Kontrollers USART
genannt und ist Im Datenblatt ab Seite 177, Kapitel 17, beschrieben.
Die Schnittstelle muss vor der Benützung initialisiert werden. Dazu muss die verwendete
Baudrate, das Sende- Format und der, falls erwünscht, Interrupt konfiguriert werden. Dazu
stehen fünf verschiedene Register zur Verfügung (UBRR1H, UBRR1L, UCSR1A, UCSR1B,
UCSR1C).
In das Register UBRR wird die Baudrate geschrieben, dieser Wert berechnet sich mit
folgender Formel:
–1
16 · Es ist zu beachten, dass das Register UBRR1H vor UBRR1L beschrieben werden muss, da der
Schreibzugriff auf UBRR1L ein neusetzen des Prozessorinternen Vorteilers auslöst.
Die Fehlerrate welche sich durch den Verwendeten Systemtakt und die Baudrate ergibt,
berechnet sich wie folgt:
1
% " 1# · 100
! 1
Bei einer verwendeten Taktfrequenz von 16 MHz und einer Baudrate von 38400 Bit/s ist
UBRR = 25 und die Fehlerrate liegt bei 0.16 %.
Werte unter 1 % sind für die Kommunikation unkritisch.
Durch die starke Verbreitung der Schnittstelle gibt es im Internet eine grosse Anzahl
nützlicher Beispielprogrammen.
Elektronik und Software für naro
19
3.10 EPOS
Der EPOS 24-5 von Maxon ist ein digitaler Positionsregler für bürstenlose sowie normale
Gleichstrom- Elektromotoren mit digitalen Hall Sensoren und Encodern. Die integrierte
Position, Geschwindigkeits- und Strom- Regelung, ermöglicht dem Anwender eine Vielzahl
an Einsatzmöglichkeiten. Die EPOS sind für eine
Ansteuerung über CANopen entwickelt worden. Sie
unterstützen jedoch auch eine Ansteuerung über die
serielle RS232 Schnittstelle, wobei in diesem Fall ein
EPOS als Gateway dient. Es gibt ein Konfigurationstool
von Maxon mit dem alle Parameter mit einem PC
über die RS232 Schnittstelle eingestellt werden
können. Dies ist sehr nützlich, da es einige
Einstellungen gibt, welche nur einmal eingestellt
werden müssen, zum Beispiel, welcher Motor
angeschlossen ist, oder die Baudrate des CAN Busses.
Abbildung 6 EPOS Positionskontroller
3.10.1 Inbetriebnahme
Die Inbetriebnahme des EPOS 24-5 ist mit der Dokumentation
„EPOS 24-5 Getting Started.pdf“ gut beschrieben. Diese Anleitung wird vom EPOS Hersteller
Maxon zur Verfügung gestellt. Damit ist es möglich den EPOS in Betrieb zu nehmen und den
angeschlossenen Motor ein erstes Mal über die EPOS_User Interface Software in Betrieb zu
nehmen.
Über das EPOS_User Interface können alle Einstellungen des EPOS gemacht werden und die
verschiedenen Betriebsarten getestet werden. Mit einem Matlab- Programm von Dario
Schafroth (ETH- Zürich), welches die von Maxon zur Verfügung gestellte Windows DLL lädt,
war es möglich nach kleinen Modifikationen des Programms die Motoren auch mit Matlab
über RS232 anzusteuern.
Elektronik und Software für naro
20
3.10.2 RS232/CAN
Wie bereits erwähnt, können die EPOS über zwei verschiedene Arten angesteuert werden.
Aus Geschwindigkeitsgründen wurde entschieden, die Motoren über den CAN- Bus
anzusteuern. Mit einer maximalen CAN Baudrate von 1 Mbit/s dauert eine Positionsanfrage
260 µs, über die RS232 mit einer maximalen Geschwindigkeit von 115200 Bit/s dauert
dieselbe Anfrage mehr als 2 ms. Dies wäre für unsere Positionsregelung zu langsam.
Tabelle 1 Theoretische Übertragungs- Geschwindigkeiten von CAN und RS232
Elektronik und Software für naro
21
3.12 Computer
Es wurden im Verlauf der Arbeit mehrere Computer benötigt, einerseits um über ein Matlab
GUI naro fernzusteuern, aber auch um die Kommunikation zu testen und zu überwachen.
Die verwendeten Computer und Softwares laufen alle unter Windows XP. Hier eine kurze
Übersicht von den verwendeten Softwares.
• AVR Studio 4 als Programmierumgebung für den Mikrokontroller
• Code Vision AVR wurde als RS232 Terminal verwendet um die RS232 Kommunikation
zu überwachen und zu debuggen.
• EPOS_User Interface für die Konfiguration und Inbetriebnahme der EPOS
• EPOS Studio ist die erweiterte Version des EPOS_User Interface
• CAN232 Software für einen CAN- Adapter um CAN- Nachrichten zu Testzwecken vom
PC aus zu senden und zu empfangen.
Alle verwendeten Softwares sind auf der DVD zu finden.
Elektronik und Software für naro
22
4 Kommunikation
In diesem Kapitel wird beschrieben, wie die Verbindung zwischen einem Piloten und naro
funktioniert, aber auch wie einzelne Komponenten in naro untereinander Daten
austauschen. Dies geschieht auf sehr unterschiedliche Weise, einerseits die serielle RS232
Kommunikation sowie die Benutzung des CANopen Protokolls.
4.1 Fernsteuerung
Das Konzept sieht eine Kommunikation zwischen einem Piloten und naro vor. Dazu ist eine
universelle und stabile Kommunikationsverbindung erforderlich.
Für eine angenehme und „sanfte“ Steuerung wird eine Senderate von mindestens 10
Befehlen pro Sekunde benötigt.
Ein solcher Befehl muss die Schwimmfunktion für die EPOS, die zwei Positionen der
Brustflossen (B1 & B2) und die zwei Tauchzylinder (T1 & T2) beeinflussen können.
Um die Schwimmfunktion vollständig berechnen zu können, werden fünf Variablen benötigt.
Alle diese Daten können mit jeweils einem Byte pro Wert übertragen werden.
Die zu übertragende minimal- Message ist folglich 10 Byte gross. Die Übertragungszeit darf
dafür 0.1 Sekunden nicht überschreiten.
Ein wichtiges Kriterium für die Kommunikation ist neben der Geschwindigkeit die
Übertragungssicherheit. Deshalb werden zusätzlich noch Reserve- und Check- Bytes
zugefügt.
Somit werden für eine vollständige Kommunikation, zwei Messages mit jeweils 7 Bytes
Länge gesendet. Die Unterteilung in zwei einzelne Message- Pakete erhöht die
Übertragungssicherheit.
Abbildung 7 RS232 Messages
In einer ersten Version wird naro einen maximalen Abstand von etwa 30 Meter zum Piloten
haben.
Da bis zum Abschluss des Projekts nicht mit einer drahtlosen Kommunikation gerechnet
werden kann, wird ein Kabel eingesetzt. Dies ermöglicht zudem eine bidirekionale
Kommunikation. Bei der Entwicklung der Übertragungsart wurde darauf geachtet, dass die
drahtlose Kommunikationeinheit einfach adaptierbar ist und nur das momentan verwendete
Kabel ersetzt.
Elektronik und Software für naro
23
4.1.1 Kabelkommunikation via RS232
Aufgrund der folgenden Vorteile und den erwähnten Anforderungen wurde die
Kommunikation zwischen dem Piloten und naro mittels RS232 Standard erarbeitet.
Diese Übertragungsart bietet für unsere Zwecke die besten Voraussetzungen:
• Einfache Ansteuerung, da verbreitet und bewährter Standard
• Schnelle, byteweise Übertragung der Daten
• Einfache Erweiterung
• Stabile Verbindung
Rahmenbedingungen:
Kabellänge:
30 m
Datengrösse:
14 Byte
Prozessortakt:
16 MHz
Die RS232 Kommunikation wurde bei der Entwicklung für eine Kabellänge von 15 m
ausgelegt, dies jedoch bei einer Übertragungsrate von 20 kBit/s. Bei langsameren
Übertragungsraten kann die Kabellänge proportional dazu berechnet werden:
Dies ergibt eine Übertragungsrate von ca. 9600 Bit/s für 30m Kabellänge.
Bei den durchgeführten Tests wurde jeweils mit 38400 Bit/s gearbeitet, es gab keinerlei
Übertragungsprobleme und die theoretische Fehlerrate liegt unter 0.2%.
Da nicht genau vorhersagbar ist, wann der Pilot die Steuerdaten sendet, benötigen wir für
den Datenempfang einen Interrupt. Dieser wird ausgelöst, sobald der Empfangspuffer voll
ist. Da unsere Messages jeweils 7 Bytes lang sind, ist auch der Empfangspuffer 7 Bytes gross.
Die bei diesem Interrupt auszuführende Interrupt- Routine liest die Daten aus dem Puffer,
überprüft diese und löscht anschliessend den Puffer.
Elektronik und Software für naro
24
4.1.2 Kommunikationsprotokoll
Die Interruptroutine bei einem Puffer- Overflow- Interrupt welche bei einem vollen
Empfangspuffer ausgeführt wird enthält das Auslesen und die Überprüfung der Daten. Sind
die Daten korrekt, werden sie in die jeweiligen globalen Variablen zur Weiterverarbeitung
gespeichert. Liegt ein Fehler in den empfangenen Daten vor, werden diese verworfen und
ein Message- Error Zähler um eins erhöht. Dies ermöglicht eine Auswertung von falsch
übertragenen Daten
Das Protokoll der Daten:
Byte-Nr
1
2
3
4
5
6
7
Wert
0-254
0-254
0-254
0-254
0-254
0-254
255
Typ
Reserve 1
EPOS_A
EPOS_F
EPOS_P
EPOS_O
EPOS_5
Message-Check 1
Byte-Nr
1
2
3
4
5
6
7
Wert
0-254
0-254
0-254
0-254
0-254
0-254
255
Typ
Brustflosse L
Brustflosse R
Tauchzylinder 1
Tauchzylinder 2
Reserve 2
MODE
Message-Check 2
Tabelle 2 Das Datenprotokoll der zwei Messages
Die Auswertung der empfangenen Daten erfolgt durch byteweises Auslesen aus dem
Empfangspuffer. Es wird immer dieselbe Empfangsstruktur erwartet. Sollte sich diese
Vorgabe durch einen Fehler verschieben, wird die Message nicht ausgewertet. Die Detektion
einer fehlerhaften Message wird mit dem Message- Check- Byte ermöglicht. Dieses muss
zwingend den Wert 255 enthalten. Zudem müssen alle anderen Daten- Bytes ungleich 255
sein. Wird dies so detektiert, wird die Message als korrekt interpretiert.
Eine Erweiterung der Software ist hier noch nötig, um eine Neusynchronisation zwischen
Sender/Empfänger zu ermöglichen. Dies wird im Kapitel Ausblick beschrieben.
Elektronik und Software für naro
25
4.2 Controller Area Network (CAN)
Controller Area Network (CAN) ist ein asynchrones, serielles Feldbussystem. Grundsätzlich
arbeitet es nach dem Multi – Master - Prinzip bei welchem alle Busteilnehmer
gleichberechtig sind. Normalerweise werden die Daten über Kupferleitungen übertragen, es
gibt aber auch Licht- Wellen – Leiter, oder Funk - Lösungen.
Entwickelt wurde es ab 1983 von der Firma Bosch, um Steuergeräte in Autos zu vernetzen.
Das Hauptziel war es, die kilometerlangen Kabelbäume zu ersetzten. Heutzutage wird CAN
hauptsächlich in den Bereichen Automobil-, Transport-, Automatisierungs-, Roboter- und
Medizintechnik eingesetzt. Die Kommunikation erfüllt hohe Anforderungen an
Echtzeitfähigkeit, Prioritätssteuerung, automatisierte Fehlermeldungen und an die
Sicherheit. Die Anwenderschicht wird durch die auf CAN aufsetzenden Protokolle DeviceNet,
SDS, CAL und CANopen definiert.
4.2.1 Hardware Ebene
In der normalen Ausführung über Kupferdrähte, besteht der Bus aus zwei verdrillten Adern
und einer gemeinsamen Masse. Die Adern werden mit CAN_High und CAN_Low und Ground
bezeichnet. Es werden zudem zwei Abschlusswiderstände mit je 124 Ω benötigt. Ein Betrieb
mit nur zwei Adern (CAN_High und Ground) ist auch möglich und wird verwendet, wenn die
Übertragungsgeschwindigkeit gering bleibt oder als Notlösung, wenn eine Ader ausfällt. Bei
der üblichen Ausführung wird auf der CAN_Low Ader das invertierte CAN_High Signal
übertragen, durch diesen Aufbau werden Gleichtaktstörungen unterdrückt. Die maximale
Länge des Busses wird durch die Übertragungsgeschwindigkeit limitiert.
• 1MBit/s:
20…40m
• 100kBit/s:
bis 500m
• 10kBits/s:
bis 6300m
Schema 9 Hardware des CAN-Busses
Elektronik und Software für naro
26
4.2.2 CAN Kommunikation
Die Kommunikation zwischen zwei Busteilnehmern erfolgt auf dem Producer Consumer
Model. Ein Teilnehmer sendet seine Nachricht nicht wie üblich an eine bestimmte Adresse,
sondern nach dem Rundfunk Prinzip an alle. Jede Nachricht hat einen eigenen Identifier,
somit kann jeder Empfänger entscheiden, ob diese Nachricht für ihn relevant ist. Meistens
erfolgt das Versenden auf Anfrage, also zum Beispiel nur, wenn sich ein bestimmter Wert
ändert. Dies erlaubt eine prinzipiell geringere Busbelastung gegenüber dem zyklischen
Master- Slave Verfahren.
4.2.3 Kollisionsvermeidung
Der CAN-Bus arbeitet nach dem Carrier Sense Multiple Acces and Collison Resolution
(CSMA/CR) Verfahren, was soviel bedeutet wie Mehrfachzugriff mit Trägerprüfung und
Kollisionsvermeidung. Die Kollisionsvermeidung wird durch eine Bitarbitrierung erreicht.
Jede Nachricht auf dem Bus hat eine Priorität. Falls zwei Busteilnehmer gleichzeitig eine
Nachricht senden wollen, wird automatisch nur diejenige mit der höheren Priorität
gesendet, die andere kommt in eine Warteschlange und wird später gesendet. Diese
Priorität wird durch den Nachrichtenidentifier festgelegt. Daraus ergibt sich der grosse
Vorteil, dass besonders wichtige Nachrichten auch bei hoher Busbelastung mit kleiner
Latenzzeit übermittelt werden können. Dies ist mit anderen Bussystemen kaum möglich und
kann bei schwerwiegenden Fehlern sehr wichtig sein. Solange also nicht andauernd
Nachrichten mit hoher Priorität gesendet werden, kann eine Aussage über die maximale
Latenzzeit gemacht werden. Mit zunehmender Busbelastung wird das System aber immer
weniger deterministisch.
Elektronik und Software für naro
27
4.2.4 Bitarbitrierung
Die Arbitrierung ist ein Verfahren zur gerechten Verteilung von Ressourcen auf verschiedene
Geräte. Auf den CAN-Bus bezogen beschreibt es ein Verfahren zur Prioritätssteuerung, falls
mehrere Busteilnehmer gleichzeitig senden wollen.
Der Identifier jeder Nachricht besteht aus dominanten und rezessiven Bits. Falls mehrere
Teilnehmer gleichzeitig senden wollen werden die rezessiven von den dominanten Bits des
Identifiers überschrieben, die CAN- Kontroller erkennen das und wissen ob sie weiter senden
dürfen oder nicht. Die Nachricht mit dem kleinsten Identifier hat also die höchste Priorität
und darf als erstes gesendet werden.
Abbildung 8 Bitarbitrierung
Elektronik und Software für naro
28
4.2.5 Frame Aufbau
Der Aufbau einer CAN Nachricht ist in Abbildung 9 ersichtlich. Es gibt zwei verschiedene
Versionen für den Identifier, CAN 2.0A arbeitet mit einem 11 Bit Identifier, Version 2.0B mit
einem 29 Bit Identifier. Da diese beiden Versionen zueinander kompatibel sein sollen, gibt es
das Identifier Extension Bit (IDE) in welchem steht, ob der Identifier 11 oder 29 Bit hat. In
den vier „Data length Code“ (DLC) Bits steht, wie viele Nutzdaten übertragen werden, wobei
maximal acht Byte Daten pro Nachricht versendet werden können.
Es gibt vier verschieden Nachrichtentypen:
•
•
•
•
Data Frame (Datentelegramm) für die Übertragung von bis zu 8Byte Daten im
Broadcasting- Verfahren (Rundfunk-Verfahren)
RemoteFrame (Datenanforderungstelegramm) für das Anfordern von Nachrichten
Error Frame (Fehlertelegramm) für die Signalisierung eines vom Teilnehmer
erkannten Fehlers (hohe Priorität)
Overload Frame (Überlastungstelegramm)
Data Frame
Das Data Frame ist das am häufigsten verwendete Frame, es besteht aus mehren Feldern.
Auf das Start Bit folgt ein 11 oder 29Bit Identifier, falls ein 29Bit Identifier verwendet wird
muss das IDE Bit gesetzt sein. Das RTR wird nur für Remote Frames benötigt, im DLC Feld
muss die Anzahl folgender Daten Bytes stehen. Durch die Zyklische Redundanzprüfung wird
sichergestellt dass die Daten korrekt empfangen wurden.
Abbildung 9 CAN Data Frame nach Version 2.0A (11Bit Identifier)
•
•
•
•
•
•
•
•
•
•
SOF
ID
RTR
IDE
DLC
Data
CRC
ACK
EOF
IFS
Start of Frame
Identifier (11Bit Version 2.0A, 29Bit Version 2.0B „Extended Identifier“)
Remote Transmission Bit
Identifier Extension Bit (gesetzt bei Version 2.0B)
Data length Code
Nutzdaten
Cyclic Redundancy Check (Prüfsumme)
Acknowledge (Empfangsbestätigung)
End of Frame
Inter Frame spacing
Elektronik und Software für naro
29
Remote Frame
Der Aufbau eines Remote Frames ist grundsätzlich gleich wie der eines Data Frames. Die
Unterschiede sind das fehlende Datenfeld, sowie das gesetzte Remote Transmission Bit
(RTR). Die Datenlänge im DLC Feld muss auf die Anzahl erwarteter Bytes gesetzt werden.
Error Frame
Das Error Frame besteht aus zwei Feldern. Das erste Feld wird bestimmt durch die
Überlagerung von ERROR FLAGS, die von den verschiedenen Teilnehmern erzeugt werden
können. Das folgende Feld ist der ERROR DELIMITER (8 rezessive Bits). (Quelle Wikipedia)
Overload Frame
Das Overload Frame ist für ein zeitweiliges Anhalten der Kommunikation aufgrund einer
Busüberlastung gedacht. Falls der Busteilnehmer noch nicht bereit ist eine neue Nachricht zu
empfangen, kann er mit einem Overload Frame den Bus für kurze Zeit „blockieren“ und so
signalisieren, dass er noch nicht bereit ist.
4.2.6 Nachrichtenfilterung
Damit der Busteilnehmer entscheiden kann welche Nachrichten für ihn relevant sind,
werden die Identifier durch eine Maske gefiltert. Anhand eines Beispiels wird gezeigt wie
man den Bereich richtig einstellt.
Ein Busteilnehmer möchte zum Beispiel nur die Nachrichten mit den Identifier 580 - 587
empfangen. Dazu wird die Identifier Maske auf 111 1111 1000 eingestellt. Das bedeutet, die
drei niederwertigsten Bits der ID sind beliebig, die restlichen Bits müssen mit der
eingestellten ID des Empfängers übereinstimmen.
Elektronik und Software für naro
30
4.3 CANopen
CANopen ist ein Protokoll für den CAN- Bus, welches hauptsächlich für die
Automatisierungstechnik entworfen wurde. Das CANopen Protokoll beschreibt den
Austausch von Daten in einem CAN- basierenden Netzwerk. Dabei werden sowohl die
grundlegenden Kommunikationsmechanismen (Kommunikationsprofil) als auch die
Funktionalität der kommunizierenden Geräte (Geräteprofil) definiert. Das heißt, mit
CANopen wird auch die Interpretation von Prozessdaten, die über den Bus übertragen
werden festgelegt. Obwohl CAN als Multi- Master Bus entwickelt wurde arbeitet das
CANopen Protokoll der Einfachheit halber mit dem Master- Slave verfahren.
4.3.1 Objektverzeichnis
Alle Nutzdaten und Einstellungen eines CANopen Geräts sind in einem Objektverzeichnis
(Object Dictionary OD) abgespeichert.
Das OD ist im CANopen– Gerätemodell, die Schnittstelle zwischen der Anwendung und der
CANopen - Kommunikationseinheit. Jeder Eintrag im Objektverzeichnis steht für ein Objekt
und wird durch einen 16-Bit-Index und
einen 8-Bit Sub- Index gekennzeichnet.
Dadurch können unabhängig vom 11-BitIdentifier bis zu 65536 *254 Elemente
unterschieden werden. In Profilen ist die
Zuordnung von Kommunikations- und
Geräteprofilobjekten zu einem jeweiligen
Index genau definiert; somit wird mit
dem Objektverzeichnis eine eindeutige
Schnittstelle zwischen der Anwendung
und der Kommunikation nach außen
definiert.
Im CANopen Protokoll sind grundsätzlich
Tabelle 3 Indexbereich des Objektverzeichnis
vier verschiedene
Kommunikationsobjekte definiert:
• Servicedatenobjekte (SDO) zum Transport von Servicedaten
• Prozessdatenobjekte (PDO) zum Transport von Echtzeitdaten
• Netzwerkmanagement-Objekte (NMT) zur Steuerung der Zustände des CANopenGeräts und zur Überwachung der Knoten
• Synchronisationsobjekte um Beispiel Zeitstempel und Fehler-Nachrichten
4.3.2 Servicedatenobjekte
Die Servicedatenobjekte (SDO) werden benutzt um auf das Objektverzeichnis zuzugreifen.
Jedes Gerät benötigt mindestens einen SDO-Server welcher SDO-Anforderungen bearbeitet.
Bei einem SDO Transfer werden die 8 Byte Nutzdaten eines CAN Telegramms wie in
Abbildung 10 ersichtlich genutzt. Durch den Index und Sub- Index bleiben für die effektiven
Daten nur noch 4 Bytes übrig. Das Byte 0 setzt sich aus dem „client command specifier“
(CCS) und den Bits n, e und s zusammen.
Elektronik und Software für naro
31
Abbildung 10 SDO Frame
•
•
•
•
•
CCS
Bit 4
n
e
s
client command specifier
unbenutzt (immer 0)
Anzahl Daten bytes(number of Data Bytes)
Einzel Telegramm (expedited transfer)
Längenangabe von n gültig
4.3.3 Prozessdatenobjekte
Die Prozessdatenobjekte ermöglichen eine schnellere Übertragung von Prozessdaten. Bei
der Übertragung von Prozessdaten stehen immer 8 Bytes zu Verfügung, da kein Index
benötigt wird. Der Inhalt der Nachricht wird durch ein sogenanntes Mapping definiert,
welches beim Sender und Empfänger gespeichert ist. Dieses Mapping ist im
Objektverzeichnis abgespeichert und ist nichts anderes als eine Zuordnungstabelle. Die
Übertragung von PDO’s kann zyklisch, ereignisorientiert, oder synchronisiert geschehen.
4.3.4 Netzwerkverwaltungsobjekt
Netzwerkverwaltungsobjekte (NMT) werden zur Verwaltung des Netzes eingesetzt. Mit den
NMT werden zum Beispiel Zustandsänderungen der Geräte veranlasst, oder globale
Fehlermeldungen verbreitet.
4.3.5 CAN Störungssicherheit
Durch die kurze Datenlänge und die Sicherungsmassnahmen (Cyclic Redundancy Check)
eines CAN-Frames, wird eine korrekte Übertragung auch in gestörter Umgebung noch
gewährleistet.
Elektronik und Software für naro
32
4.4 Ansteuerung der EPOS über CAN
Die Kommunikation zwischen dem Atmega und den EPOS erfolgt momentan ausschliesslich
über Servicedatenobjekte (SDO). Diese Methode ist einfacher als über Prozessdatenobjekte,
weil kein PDO mapping gemacht werden muss. Im zeitkritischen Schwimmbetrieb müssen
nur Geschwindigkeiten gesendet- und Positionen ausgelesen werden. Das heisst pro EPOS
müssen theoretisch zwei Bytes gesendet- und eines ausgelesen werden. Es wird also eine
Positionsanfrage gesendet, die aktuelle Position vom EPOS zurück gesendet, die neue
Geschwindigkeit berechnet und wiederum zum EPOS zurück gesendet. Weil SDO’s immer
beantwortet werden, wird vom EPOS eine Bestätigung für den Erhalt der neuen
Sollgeschwindigkeit gesendet, was nicht unbedingt nötig, aber zur Fehlererkennung sehr
nützlich ist. Bei einer PDO Kommunikation würde man also keine Bestätigung der neuen
Sollgeschwindigkeit erhalten, was die Dauer der Kommunikation um 260 µs pro Anfrage
reduzieren würde. Weil aber das Berechnen der neuen Sollgeschwindigkeiten einiges länger
dauert (etwa 4 ms pro EPOS), kommt es auf die allenfalls eingesparten 260 µs nicht an.
Die minimale Dauer um die Position abzufragen und eine neue Geschwindigkeit zu schicken
ist wie in Abbildung 11 ersichtlich ca. 1 ms. Weil die EPOS eine gewisse Zeit zum Bearbeiten
der Nachrichten benötigen, dürfen die Nachrichten vom Atmega nicht zu schnell
nacheinander verschickt werden. Sobald die Nachrichten vom Atmega zu schnell
nacheinander gesendet werden gibt es eine Busüberlastung was dazu führt, dass einzelne
Nachrichten nicht mehr übertragen werden können.
Abbildung 11 Zeitlicher Ablauf der Kommunikation über CAN
Elektronik und Software für naro
33
4.4.1 Initialisierung des EPOS
Die EPOS sind eine Zustandsmaschine, die Zustände sind in folgender Grafik ersichtlich. Die
Zustände können durch das Schicken eines „Controlwords“ verlassen werden und durch das
„Statusword“ ausgelesen werden. Nach dem Starten der EPOS befinden sie sich nicht immer
im gleichen Zustand. Um Fehler zu vermeiden wird im Hauptprogramm jeder EPOS einzeln
geresetet und so in den „Switch on Disabled“ Zustand gebracht. Danach können alle EPOS in
den „Operation Enable“ Zustand gebracht werden.
4.4.2 Geschwindigkeiten setzten
Um die Sollgeschwindigkeit eines EPOS zu setzten, muss folgende Nachricht gesendet
werden:
Abbildung 12 Setzten der Soll- Geschwindigkeit über CAN
•
•
•
Gelb ID: 600+Node ID des gewünschten EPOS
Hellblau: 8 Datenbytes
o Byte0: 22 für das Schreiben von Daten mit unbestimmter länge
o Byte1+2: 6B 20 Hersteller spezifischer Code für Sollgeschwindigkeit
o Byte3: 0 Sub- Index (wird nicht benötigt)
o Byte4-7: 32Bit Integer mit der Sollgeschwindigkeit (hier 0)
Violett: Zeitstempel
4.4.3 Positionen auslesen
Um die Position eines EPOS auszulesen, muss folgende Anfrage geschickt werden:
Abbildung 13 Positionsanfrage über CAN
•
•
•
Gelb ID: 600+Node ID des gewünschten EPOS
Hellblau: 8 Datenbytes
o Byte0: 40 für das auslesen von Daten
o Byte1+2: 60 64 Hersteller spezifischer Code für Positionsanfrage
o Byte3: 0 Sub- Index (nicht benötigt)
o Byte4-7: 0 (wird nicht benötigt)
Violett: Zeitstempel
Elektronik und Software für naro
34
Die Antwort des EPOS sieht folgendermassen aus:
Abbildung 14 Antwort auf die Positionsanfrage
•
•
•
Gelb: COB ID 580+Node ID des EPOS
Hellblau: 8 Datenbytes
o Byte0: 43 für das senden von 4Byte Nutzdaten
o Byte1+2: 60 64 Code für Positionsanfrage (gleich wie bei der Anfrage)
o Byte3: 0 Subindex (nicht benötigt)
o Byte4-7: 32Bit Integer mit der aktuellen Position (hier dezimal 10002)
Violett: Zeitstempel
4.5 RS232
Obwohl die RS232 Schnittstelle bereits 47 Jahre alt ist, wird sie
immer noch häufig verwendet, die Gründe dafür sind die
geringen Ansprüche an die Hardware und Software. Die RS232
Schnittstelle verwendet für die Datenübertragung ein serielles
asynchrones Verfahren. Da es keine
Synchronisationsnachrichten gibt ist es wichtig, dass der Sender Abbildung 15 RS232-Kabel
und der Empfänger mit der gleichen Baudrate arbeiten. Für eine
minimalistische Bidirektionale Kommunikation reichen also theoretisch 3 Leitungen, um aber
zu vermeiden dass der Sender Daten sendet obwohl der Empfänger nicht bereit ist werden
zusätzlich zwei bis vier Handshake- Leitungen verwendet. Die RS232 Schnittstelle arbeitet
mit Spannungspegeln von +12V für logisch 0 und -12V für logisch 1. Der Empfänger erwartet
eine Spannung von mehr als +3V bzw. von weniger als -3V. Im Ruhezustand liegt der Pegel
auf -12V (logisch 1), eine Datenübertragung wird also durch das senden einer logischen 0
gestartet.
Abbildung 16 Frame Aufbau einer RS232 Nachricht
Elektronik und Software für naro
35
5 Software
In diesem Kapitel wird der Aufbau der geschriebenen Software dargestellt. Es wird der
theoretische Aufbau gezeigt, auf Code Beispiel wurde verzichtet, der gesamte C-Code
befindet sich auf der DVD.
5.1 Programmierumgebung
Als Programmieroberfläche wurde AVR Studio 4 verwendet. Diese Entwicklungsumgebung
wird von Atmel zur Verfügung gestellt und besteht aus einer Projektverwaltung, einem
Editor und einem Debugger.
Um in der Programmiersprache C zu programmieren, muss der GNU C Compiler für AVRs
installiert werden. Die komplette Software ist kostenlos und auch auf unserer DVD zu finden.
Um die aktuellste Version zu erhalten, sollte man jedoch den direkten Herstellerlink
benutzen:
AVR-Studio:
C-Compiler:
http://www.atmel.com/dyn/Products/tools_card.asp?tool_id=2725
http://winavr.sourceforge.net/download.html
Für einen reibungslosen Einstieg in AVR-Studio empfiehlt sich der folgende Link:
http://www.robomodules.de/portal/index.php?id=199&type=1
Elektronik und Software für naro
36
5.2 Hauptprogramm
Das Hauptprogramm initialisiert als erstes alle benötigten Komponenten. Danach muss das
Homing manuell vom Pilot gestartet werden, sobald der Pilot bestätigt hat dass das Homing
korrekt ausgeführt wurde, können über die grafische Benutzeroberfläche die verschiedenen
MODEs gestartet werden.
Das Flussdiagramm zeigt den Ablauf des Hauptprogramms von naro ab dem Zeitpunkt des
Einschaltens.
Initialisierung
EXT_INTERRUPT
UART
PWM
ADC
TIMER0
CAN
ADC Messung 0-7
EPOS 1-5 Reset
HOMING
EPOS 1-5
MODE 1
„halt“
MODE 5
„EPOS
deaktivieren“
MODE 200
„präsentation
mode“
MODE 201
„BV-Test“
MODE 202
„schwimmmode1“
MODE 203
„tauchen“
MODE 204
„tauchen2“
MODE 206
„schwimmmode2“
MODE 230
„reset“
ADC
Ausgabe
Überwachung
Unterspannung
Überwachung
Wassereinbruch
Überwachung
Kommunikation
Abbildung 17 Flussdiagramm des Hauptprogramms
5.2.1 Initialisierung
Die Initialisierung von naro beinhaltet das Starten aller verwendeten Zusatzkomponenten
wie beispielsweise der RS232 Kommunikation (UART) oder das Bereitstellen einer AnalogDigitalwandlung (ADC). Dies muss nur einmal, zu Beginn des Programmablaufs, durchgeführt
werden. Die Servomotoren der Brustflossen und Tauchzylinder befinden sich danach in
Mittelposition.
Elektronik und Software für naro
37
5.2.2 ADC Messung
Die ADC-Messung sendet bei jedem Neustart des Programms die aktuellen
Analogeingangswerte via RS232 an die grafische Benutzeroberfläche. Damit können die
momentanen Sensordaten und die Akkuspannungen sofort ausgelesen werden.
5.2.3 EPOS reset
Die fünf EPOS von naro werden in den „Operation Enable“ Zustand gebracht, von welchem
sie das Homing ausführen können.
5.2.4 Homing
Das Homing wird vom Piloten über RS232 aus für jeden EPOS einzeln gestartet. Es wird
zudem ein Wert für den Current-Treshhold des entsprechenden Gelenks übermittelt. Somit
kann, bei ändernden mechanischen Bedingungen auf diese entsprechend reagiert werden
(beispielsweise Homing im Wasser oder in der Luft).
Zyklische Programmteile
Die folgenden Programmteile werden periodisch bearbeitet. In einer Schwimmfunktion, bei
welcher der Prozessor viel rechnen muss, liegt die Durchlaufrate bei etwa 30Hz.
5.2.5 Betriebs-MODE
Der Betriebsmode wird durch die übertragene Variable MODE ausgewählt. Somit kann der
Betriebsmodus von naro während der Laufzeit geändert werden. Die Beschreibung und
Funktion der einzelnen Modes entnimmt man dem Quellcode von naro.
5.2.6 ADC Ausgabe
Die ADC-Ausgabe ermöglicht es dem Piloten während dem Betrieb von naro die einzelnen
Analogeingänge auszulesen.
5.2.7 Überwachung
In der Überwachung werden die zu überprüfenden Sensordaten direkt mittels Software mit
dem gespeicherten Grenzwert verglichen. Bei einem Überschreiten wird mit einem
entsprechenden Notfallszenario eingegriffen. Dies geschieht ohne den Einfluss des Piloten.
Zusätzlich wird die RS232 Kommunikation auf ihre korrekte Übertragungsfunktion geprüft.
Elektronik und Software für naro
38
5.3 RS232 Interrupt
Die Interrupt- Routine der RS232 Schnittstelle wird immer dann aufgerufen, sobald der
Empfangspuffer voll ist. Die Daten werden auf ihre korrekte Reihenfolge überprüft und für
die Weiterverarbeitung aufbereitet. Die gesamte Routine dauert für eine korrekte Message
etwa 2 µ Sekunden. Wird eine fehlerhafte Message übermittelt, dauert die Routine weniger
lang. Bei der Initialisierung des Hauptprogramms wird die Message Nr. auf 1 gesetzt.
START
1
Message
Nr
2
Nein
Byte 1
<255?
Ja
Ja
Nein
Byte 2
<255?
Byte 2
<255?
Ja
Ja
Byte 3
<255?
Byte 3
<255?
Ja
Ja
Byte 4
<255?
Byte 4
<255?
Ja
Ja
Byte 5
<255?
Byte 5
<255?
Ja
Ja
Byte 6
<255?
Byte 6
<255?
Ja
Ja
Byte 7
=255?
Byte 7
=255?
Nein
Nein
Nein
Nein
Nein
Byte 1
<255?
Nein
Nein
Nein
Nein
Nein
Nein
Nein
Message_Error +1
Message_Error +1
Byte 1-7 in
entsprechende globale
Variablen speichern
Byte 1-7 in
entsprechende globale
Variablen speichern
Message Nr = 2
Message Nr = 1
Puffer leeren
ENDE
Abbildung 18 Flussdiagramm der Puffer Overflow Interrupt Routine
Elektronik und Software für naro
39
5.4 Globale Zeitvariablen
Für die Regler wird eine globale Zeitvariable benötigt. Um eine exakte Systemzeit zu
erhalten, wird diese mit einer Interrupt - Routine erzeugt, die vom 8Bit Timer0 ausgelöst
wird. Dabei ist time die Systemzeit in Sekunden.
Es stehen zwei unterschiedlich exakte Zeitmessungen zur Verfügung:
• Systemzeit in 4ms Schritten = time
• System in 16 µs Schritten = time + (((TCNT0 -5) * 16) / 1000000);
Zusätzlich werden im Sekundentakt zwei Variablen gesetzt, welche für das Senden von
Warnungen an den Piloten sowie für den Regler der Tauchzylinder benötigt werden.
Elektronik und Software für naro
40
5.5 Positionsberechnung
Die Berechnung der Soll- Positionen für die Motoren kann auf unterschiedliche Arten
realisiert werden. Es ist denkbar, dass im Testbetrieb eine Verbindung zwischen
Mikroprozessor und Computer besteht und der leistungsstärkere Computer die
Positionsberechnungen der Aktoren durchführt. Dies hat den Vorteil, dass man sehr schnell
einzelne Parameter ändern kann, und so in der Verbesserung des Antriebs rasch Fortschritte
macht.
Bei einer kabellosen Verbindung unter Wasser ist die Übertragungsrate deutlich kleiner, dies
setzt voraus, dass der Mikroprozessor die Positionsdaten der Antriebsaktoren eigenständig
berechnen kann.
Hierfür haben wir folgende zwei Konzepte betrachtet:
•
•
Stationäre Berechnung; dem Mikroprozessor sind zeitabhängige Funktionen
vorgegeben mit welchen er die Position berechnet. Die Parameter des Piloten haben
direkten Einfluss auf diese Funktionen.
In einer Tabelle sind alle Positionswerte gespeichert, je nach Bewegungsart führt der
Mikroprozessor eine andere Tabelle aus, oder ändert einen Vorfaktor.
Es wurde entschieden die Berechnungen in Echtzeit auf dem Mikroprozessors zu machen.
Dies hat den Vorteil, dass die Parameter der zeitabhängigen Funktionen stufenlos verändert
werden können. Mit Tabellen würde zwar die zeitaufwendige Berechnung wegfallen, dafür
bräuchte man entweder viel Speicherplatz oder man müsste bei jeder Änderung der
Schwimmbewegung eine neue Tabelle vom PC auf den Mikrokontroller laden.
5.6 Positions- Regelung
Um sicherzustellen, dass sich alle Gelenke immer genau nach den berechneten
Bewegungsabläufen bewegen, wurde entschieden für jedes Gelenk eine Positionsregelung
zu machen. Weil das Berechnen der Soll- Positionen für alle fünf Gelenke etwa 20ms dauert,
können die Soll- Positionen nicht direkt an die EPOS gesendet werden, da sonst das
Bewegungsprofil Stufen aufweisen würde (siehe Abbildung 20). Deshalb wurde ein
überlagerter Positions- Regler entworfen der Soll- Geschwindigkeiten an die EPOS sendet.
Abbildung 19 Regelkreis
Elektronik und Software für naro
41
Abbildung 20 Unterschied zwischen eigener Positions- Regelung und der Positions- Regelung über die EPOS
5.7 Homing
Um eine absolute Position nach dem Start zu erhalten wird ein Homing durchgeführt. Die
EPOS unterstützen hierbei viele verschiedene Varianten. Betrachtet wurden die Endschalterund die „Current Treshhold“ - Variante. Die „Current Treshhold“ - Variante hat den Vorteil,
dass keine zusätzlichen Schalter benötigt werden, deshalb wird diese Variante auch
eingesetzt. Der Nachteil ist, dass die Stromgrenzen für die Motoren von den mechanischen
Randbedingungen abhängig sind.
5.8 Positionslimit
Damit naro bei Tests nicht beschädigt werden kann wurde ein Arbeitsbereich definiert, der
die maximalen Positionen der Motoren eingrenzt. Diese Eingrenzung wurde auf den EPOS
und in der Software des Atmega gesetzt. Damit diese Eingrenzung etwas nützt muss das
Homing zuverlässig die korrekte, absolute Position liefern. Durch das 190: 1 - Getriebe haben
die Motoren ein Drehmoment von mehr als 8 Nm und damit genügend Kraft, um die GFK
Box zu beschädigen.
Elektronik und Software für naro
42
5.9 EPOS Bibliothek
Um die EPOS möglichst einfach anzusteuern wurde eine C-Bibliothek mit den wichtigsten
Befehlen erstellt. Die erstellte Bibliothek „EPOS_lib.c“ benötigt selbst auch eine Bibliothek
für den Zugriff auf den CAN-Controller des Mikroprozessors. Dazu wurde die vorhandene
Bibliothek „can.c“ verwendet. Diese CAN Bibliothek musste leicht angepasst werden, um die
Kommunikation nach CAN Version 2.0A (11 Bit Identifier) zu ermöglichen. Beim verwenden
des CAN- Busses mit den EPOS muss unbedingt darauf geachtet werden, dass die
Nachrichten nicht zu schnell nacheinander verschickt werden, da sonst der Bus überladen
wird. Messungen haben gezeigt, dass vom Mikrokontroller die Nachrichten höchstens mit
einer Frequenz von 2500Hz (T = 400 µs) verschickt werden dürfen. Wenn die Nachrichten
schneller versandt werden, kann das zu einer Busüberlastung führen, und die Nachrichten
werden mit hoher Latenzzeit oder gar nicht mehr übermittelt.
Abbildung 21 CAN-Bus Timing
Elektronik und Software für naro
43
5.10 PWM
Zur Erzeugung eines PWM Signals wird ein Timer benötigt der die entsprechenden Ausgänge
in den gewünschten Zeitintervallen High und Low setzt. Um eine ausreichend hohe
Auflösung zu erhalten muss ein 10 Bit Timer verwendet werden.
Der Timer zählt mit einer Frequenz
%&16'(#
&)%*
das Register TCNT1 von Null beginnend nach oben bis der Wert im Register ICR1 erreicht ist
und dann wieder nach unten bis Null. Der Ausgang geht auf High, wenn der Timer beim
Runterzählen den Wert im Register OCR1A erreicht, und auf Low sobald, er beim
Hinaufzählen den Wert im Register OCR1A erreicht.
Es wurde ein prescaler von 8 gewählt, somit ist die Zählfrequenz
16'(
2'(
8
Damit bei einer Frequenz von 2 MHz eine Periodendauer von 20 ms entsteht, muss der
Timer von Null auf ICR1=20000 und wieder zurück zählen.
2 - 20000
20.)
Durch das Laden von Werten zwischen 1000 und 2000 in das Register OCR1A, entstehen am
Ausgang alle 20 ms Pulse zwischen 1ms und 2ms welche von den handelsüblichen
Servomotoren benötigt werden.
Abbildung 22 PWM Signal Entstehung
6 Tests
6.1 Trockentests
Bei den ersten Trockentests Anfang Mai 2009 ging es darum, die Elektronik zusammen mit
der Mechanik zu testen. Man wollte ein erstes Mal alle einzelnen Komponenten Schritt für
Schritt zusammenfügen und ihr Zusammenspiel testen und optimieren. Diese ersten
Trockentests waren mit viel Aufwand verbunden, weil parallel zu den Trockentests auch die
ersten Nasstests ohne Elektronik stattfanden. Dafür musste die ganze Elektronik mehrmals
in den Fisch ein- und ausgebaut werden.
6.2 Nasstests
Nach diversen erfolgreichen Trockentests konnten Mitte Mai 2009 erstmals Nasstests im
Hallenbad Bungertwies durchgeführt werden. Beim ersten Test schlug der eingebaute
Feuchtigkeitssensor schon nach wenigen Sekunden Alarm. Die automatische
Notausschaltung hätte sofort das Relais schalten sollen um die Speisung zu unterbrechen,
aber obwohl das bei allen Trockentests ohne Problem funktionierte, klappte es in diesem
Elektronik und Software für naro
44
Moment nicht, der Stromkreis wurde nicht unterbrochen. Sofort wurde naro an Land
gebracht, und alle 16 Schrauben der Luke wurden gelöst, um den Stromkreis so schnell wie
möglich manuell zu unterbrechen.
Zum Glück war der Wassereinbruch minim, es sind nur 2-3ml Wasser ins Innere der Box Nr. 2
eingedrungen. Diese 2-3ml Wasser haben jedoch ausgereicht um, auf der
Versorgungsplatine einen Kontakt zwischen dem Relais und der Speisung herzustellen,
dadurch konnte der Stromkreis nicht unterbrochen werden. Die Versorgungsplatine, die
EPOS und der Mikroprozessor wurden daraufhin mit einem Lack versiegelt. Alle anderen
Bauteile wurden nicht beschädigt.
Bei den weiteren Nasstests konnten die Schwimmbewegungen mit unterschiedlichen
Bewegungs- Parametern getestet werden.
7 Schlussfolgerung /Resultate
Der nautical robot kann für rund 20 min ferngesteuert in alle Richtungen schwimmen, bzw.
tauchen. Das Hauptziel, einen schwimmfähigen Unterwasser- Roboter, nach einem
natürlichen Vorbild zu bauen, wurde somit erreicht. Naro kann, auch ohne Hülle mit
maximaler Frequenz und Amplitude, deutlich schneller als einen Meter pro Sekunde
schwimmen.
Die Regelung der Gelenke funktioniert wie in Abbildung 23 ersichtlich sehr gut. Der zeitliche
Unterschied zwischen Soll- und Istwert beträgt 40 ms. Diese teilen sich auf den wirklichen
Regelfehler und die Übertragungsdauer der Daten (CAN-Bus und RS232) auf.
Abbildung 23 Messung der Soll- und Ist- Position bei hochfahren der Amplitude
Elektronik und Software für naro
45
Abbildung 24 zeigt den zeitlichen Verlauf aller fünf Gelenke während einer
Schwimmfunktion. Die Schwimmfrequenz lag bei 1 Hz und die Reglerparameter waren
KP = 3.2798 und KD = 0.039958;
Abbildung 24 Messung aller Soll- und Ist- Positionen während dem Betrieb
Elektronik und Software für naro
46
8 Ausblick
In diesem Kapitel werden Verbesserungen, welche hauptsächlich aus zeitlichen Gründen
während der Bachelorarbeit noch nicht realisiert werden konnten aufgeführt. Es sind
Vorschläge, welche meist bei der Resultatbetrachtung aufgetaucht sind.
8.1 RS232 Kommunikation
Das Kommunikationsprotokoll zwischen Pilot und naro sollte erweitert werden.
Damit würde es möglich, nach einer fehlerhaften Datenübertragung die Kommunikation neu
zu synchronisieren, und zudem die empfangenen Daten genauer zu überprüfen.
Dazu erforderlich wären eine eindeutige Identifikation der Message, sowie ein
Synchronisationsbyte und eine Checksumme. Die Identifikation und die Synchronisation
könnten zu einem Byte zusammengefasst werden. Dies würde bedeuten, dass in jeder
Message ein Byte steht, welches nur an diesem Ort auftreten kann. In der Message eins
beispielsweise Byte 7 = 255 und in der Message zwei Byte 7 = 254. Diese beiden Werte
dürften jedoch in keinem anderen Byte vorkommen. Damit nun überprüft werden kann, ob
die gesendeten Daten korrekt sind, wird zusätzlich noch eine zyklische Redundanzprüfung
(CRC) eingebaut (jeweils Byte 8).
Ist nun die Datenübertragung als nicht korrekt erkannt worden, Kann mit dem
Synchronisationsbyte der Empfangspuffer verschoben werden, so dass die nächste
ankommende Message wieder korrekt eingegliedert wird.
Abbildung 25 Optimierte Messages
8.2 Kabellose Kommunikation
Das Kabel sollte durch die Ultraschall Kommunikation von Elias Hagmann ersetzt werden,
damit die Reichweite und die Bewegungsfreiheit von naro erhöht werden.
8.3 Software
Es sollte ein GUI erstellt werden, welches nicht von einem anderen Programm (Matlab)
abhängig ist, da ein Benutzer sonst zur Steuerung eine Matlab-Lizenz benötigt.
Das Hauptprogramm auf dem Mikroprozessor ist, bezüglich Sicherheit, noch nicht optimiert,
es werden noch nicht alle möglichen Ereignisse abgefangen und sinnvoll verarbeitet.
Elektronik und Software für naro
47
9 Quellen
•
•
•
•
•
Die verwendeten PDF-Dateien sind auf der DVD.
Wikipedia: www.wikipedia.org
Maxon AG: www.maxonmotor.ch
Atmel, allgemein: www.atmel.com
Display3000: www.display3000.com
9.1 Abbildungsverzeichniss
Abbildung 1 CAD Model von naro ........................................................................................................... 2
Abbildung 2 Box Nr.2 randvoll mit Elektronik ......................................................................................... 7
Abbildung 3 Antriebsübersicht von naro ................................................................................................ 8
Abbildung 4 Mikrokontroller- Platine ................................................................................................... 10
Abbildung 5 Servomotor- Position und PWM Signal ............................................................................ 16
Abbildung 6 EPOS Positionskontroller .................................................................................................. 20
Abbildung 7 RS232 Messages................................................................................................................ 23
Abbildung 8 Bitarbitrierung................................................................................................................... 28
Abbildung 9 CAN Data Frame nach Version 2.0A (11Bit Identifier) ...................................................... 29
Abbildung 10 SDO Frame ...................................................................................................................... 32
Abbildung 11 Zeitlicher Ablauf der Kommunikation über CAN ............................................................ 33
Abbildung 12 Setzten der Soll- Geschwindigkeit über CAN .................................................................. 34
Abbildung 13 Positionsanfrage über CAN ............................................................................................. 34
Abbildung 14 Antwort auf die Positionsanfrage ................................................................................... 35
Abbildung 16 Frame Aufbau einer RS232 Nachricht............................................................................. 35
Abbildung 15 RS232-Kabel .................................................................................................................... 35
Abbildung 17 Flussdiagramm des Hauptprogramms ............................................................................ 37
Abbildung 18 Flussdiagramm der Puffer Overflow Interrupt Routine .................................................. 39
Abbildung 19 Regelkreis ........................................................................................................................ 41
Abbildung 20 Unterschied zwischen eigener Positions- Regelung und der Positions- Regelung über die
EPOS ...................................................................................................................................................... 42
Abbildung 21 CAN-Bus Timing............................................................................................................... 43
Abbildung 22 PWM Signal Entstehung.................................................................................................. 44
Abbildung 23 Messung der Soll- und Ist- Position bei hochfahren der Amplitude ............................... 45
Abbildung 24 Messung aller Soll- und Ist- Positionen während dem Betrieb ...................................... 46
Abbildung 25 Optimierte Messages ...................................................................................................... 47
Elektronik und Software für naro
48
10 Inhalt DVD
Elektronik und Software für naro
49
11 Anhang
Die folgende Tabelle zeigt die Anschlussbelegung der verwendeten IO-Pins des
Mikrokontrollers:
Pin
Mikrokontroller Bezeichnung
Angeschlossen
5
PE3
Tauchzylinder vorne
6
PE4
Brustflosse links
7
PE5
Brustflosse rechts
11
PB1
Display
12
PB2
Display
14
PB4
Display
15
PB5
Display
16
PB6
Display
17
PB7
Tauchzylinder hinten
20
Reset
Reset
25
PD0
Ext_Int 0
26
PD1
Relais
27
PD2
RS232_1 RX *
28
PD3
RS232_1 TX *
30
PD5
CAN H *
31
PD6
CAN L *
35
PC0
LED power (grün)
36
PC1
LED 1 (rot)
54
PF7
Neigungssensor 1
55
PF6
Neigungssensor 2
56
PF5
Feuchtigkeitssensor H2
57
PF4
Feuchtigkeitssensor H3
58
PF3
Drucksensor
59
PF2
Feuchtigkeitssensor H1
60
PF1
Akku 2
61
PF0
Akku 1
*via Zusatz- IC
Tabelle 4 Anschlussbelegung des Mikrokontrollers
Elektronik und Software für naro
50