Tauchroboter

 Abstract:

The focus of this Blog lies on the development and construction of a control and communication module for a remotely operated vehicle (ROV).

In the context of this development, the mbed microcontroller board was used as a central control unit and further developed. Furthermore, a self-designed and built dedicated extension board, for the purpose of control of DC-Motors, as well as the measurement and the evaluation of temperature signals, will be demonstrated. In addition an LCD module, which is connected with the microcontroller board via a parallel interface, has been integrated for the visualization of recorded signals. For the data exchange with the control unit a broadband and future-proof communication interface was selected and implemented.

In orderto allow the useracomfortable remote control of theROV, a user-friendlyandat the same timecross-platform hostapplicationwas in Javadeveloped. This user interface receives the control commands sent from the joystick over Bluetooth and forwards it to the control unit of the ROV over the connection-oriented TCP protocol. Also the signals measured by the temperature and pressure sensors can be plotted.

Finally,sufficient testingof the developedhardware and softwarehave been carried outand these are put into operation.


Zusammenfassung:

Der Schwerpunkt dieses Beitrags liegt in der Entwicklung und dem Aufbau eines Steuerungs- und Kommunikationsmoduls für einen Tauchroboter.

Im Rahmen dieser Entwicklung wurde das mbed µControllerboard als zentrale Steuereinheit eingesetzt und erweitert. Ferner wird gezeigt, wie mithilfe einer selbst entworfenen und aufgebauten Steuerplatine eine dedizierte Steuerung von Gleichstrommotoren sowie die Auswertung und die Bereitstellung von Temperatursignalen erfolgen können. Für die Visualisierung von Mess- und Steuerdaten wurde eine LCD-Anzeige integriert, welche mit dem µControllerboard über das parallele Interface angeschlossen ist und von ihm aus angesteuert wird. Im Anschluss wurde für den Datenaustauch mit der Steuereinheit des Tauchroboters eine breitbandige, zukunftssichere Kommunikationsschnittstelle ausgewählt und implementiert.

Um dem Benutzer eine komfortable Fernsteuerung des Tauchroboters zu ermöglichen, wurde weiterhin auf dem Host-PC eine benutzerfreundliche und zugleich plattformunabhängige Bedienoberfläche in Java entwickelt. Sie nimmt zum einen die vom Gamepad über Bluetooth gesendeten Steuerbefehle entgegen und leitet sie anschließend über das verbindungsorientiere TCP/IP-Protokoll an die Steuerungseinheit des Tauchroboters weiter. Zum anderen stellt sie die vom Temperatur- und Drucksensor gemessenen Signale grafisch dar.

Zum Schluss wurden ausreichende Tests der entwickelten Hard- und Software durchgeführt und diese in Betrieb genommen.

Linie

I. Hardware-Entwicklung:

1. Konzept:

Abbildung 1 zeigt das Hardwarekonzept der zu entwickelnden Steuerungs- und Kommunikationseinheit, dessen Kernstück das von NXP Semiconductors entwickelte NXP PLC1768-Mikrocontroller-board darstellt.

MA_Hardwarekonzept_ohne_PoE

Abbildung 1Hardwarekonzept

Um ein möglichst kostengünstiges Prototypsystem zu erhalten, wird das mbedNXP PLC1768-Mikrocontrollerboard verwendet, welches neben dem auf ARM-Architektur basierten PLC1768-µCrocontroller, über zahlreiche analoge und digitale Schnittstellen verfügt. Dazu zählen unter andrem ein sechskanaliger AD-Wandler mit einer Wortbreite von zwölf Bit und einer Abtastrate von bis zu 1 MSPS, sechs PWM-Ausgänge, ein Ethernet-Interface, zwei I2C-Interface und insgesamt 28 GPIO-Pins. Auf dem Mikrocontroller wird die noch zu implementierende Firmware ausgeführt, die einerseits die Kommunikation mit dem Host-PC über das TCP/IP-Protokoll übernimmt und andererseits die Ansteuerung der Elektromoren sowie die Auswertung und Visualisierung von Temperaturwerten auf dem LCD-Display durchführt.

Die zwei Motortreiber-ICs sind an die PWM-Ausgänge des Mikrocontrollers angeschlossen und werden vom Mikrocontroller aus angesteuert. Hierbei wird sowohl die Geschwindigkeit, als auch die Drehrichtung der Motoren gesteuert.

Der digitale Temperatursensor dient zur Messung der Außentemperatur des Tauchroboters. Die gemessenen analogen Temperatursignale werden zunächst im IC digitalisiert und anschließend über sein digitales Zwei-Draht-Interface zur Verfügung gestellt. Dieses Interface ist mit der I2C-Schnittstelle kompatibel und kann direkt mit dem Mikrocontroller verbunden werden.

Das LCD-Display ist mit dem Mikrocontrollerboard über Standard-I/O-Pins verbunden und wird vom PLC1768-Mikrocontroller aus, mit Hilfe der zu implementierenden Treibersoftware, angesteuert. Die Ansteuerung erfolgt im 4-Bit-Modus, um möglichst wenig I/O-Pins zu belegen.

Auf dem Host-PC läuft eine Java-Applikation, die mit der Steuerungseinheit des Tauchroboters über die Ethernet-Schnittstelle kommuniziert und dem Benutzer eine einfache Fernsteuerung des Tauchroboters ermöglicht.


2. Schaltpläne

2.1 Motorsteuerung

Für die Motoransteuerung kommt der bereits im Abschnitt 3.2.4 beschriebene L293D-Treiber zum Einsatz. Abbildung 3.10 stellt die notwendige Beschaltung dar, um den L293D-Treiber betreiben zu können.


3. Platinenlayout

 

Linie

II. Software-Entwicklung:

4. µController-Firmware:

In Abbildung 2 ist das Softwarekonzept für die Mikrocontroller-Firmware grafisch dargestellt. Wie man erkennen kann, soll die Software modular und in verschiedenen Schichten, die miteinander kommunizieren, aufgebaut werden.

Bild1

Abbildung 2Softwarekonzept der Mikrocontroller-Firmware

Die unterste Schicht des Softwarekonzepts stellt die bei der Realisierung dieser Arbeit verwendeten Hardwareschnittstellen dar. Zu denen gehören folgende Kommunikationsschnittstellen: Ethernet-Schnittstelle, Standard-I/O-Pins und – Schnittstelle.

Die erste Schicht bilden die Treiber für die Hardwareschnittstellen, die direkt auf die internen Register des Mikrocontrollers zugreifen und der darüber liegenden Schicht Funktionen zur Nutzung der Hardware bereitstellen.

Als zentraler Bestandteil des Softwarekonzepts ist die Steuerungs-schicht zu sehen. Sie enthält die wichtigsten Module, die sowohl für die Kommunikation mit der Host-Software als auch für die Steuerung von Sensoren und Aktoren zuständig sind. Dafür nutzen alle Modulen die von der Treiber-Schicht bereitgestellten Funktionen.

In der Anwendungsschicht werden beim Programmstart zunächst alle Module initialisiert. Danach beginnt die Ausführung der Hauptschleife. Hierin werden die über die Ethernet-Schnittstelle empfangenen Befehls- und Datenpakete zwischengespeichert und ausgewertet, ehe anschließend die entsprechende Funktion aufgerufen wird.


5. PC-Software:

Es wurde weiterhin eine Java-Applikation entwickelt, die mit der Steuerungseinheit des Tauchroboters über die Ethernet Schnittstelle kommuniziert, und dem Benutzer eine einfache und komfortable Steuerung des Tauchroboters ermöglicht.Abbildung 3 zeigt die Softwarearchitektur des entwickelten PC-Software.

PC_Softwarearchitektur

Abbildung 3Softwarekonzept der Mikrocontroller-Firmware

Die Softwarearchitektur gliedert sich entsprechend dem oben dargestellten Modell in drei aufeinander aufbauende Module. Diese wurden so konzipiert, dass die einzelnen Komponenten leicht erweiterbar und wiederverwendbar sind. Darüber hinaus garantiert dieser modulare Aufbau der Software ein hohes Maß an Flexibilität im Hinblick auf die verwendete Kommunikations-schnittstelle mit dem Tauchroboter (z.B. USB, RS-232, Ethernet, etc…). Die Pfeile stehen für den Zugriff auf bzw. die Verwendung einer Komponente von einer anderen.


6. Prototypische Implementierung:

  • Hauptfenster

mainWindows

  • Sensors

sensor_window_2

sensor_window_1

  • Motor Control: Das Motor Control Panel dient zur Steuerung von DC-Motoren. Die Moren können einzeln oder in Kombination angesteuert werden, abhängig von das eingestellte Fahrmodi.

motor_window

  • Camera

camera_window

  • Settings

setting_window_1

setting_window_2

  • Help

 

 

salah@azzouzi.de