Archived
- Grundlagen section Rover
This commit is contained in:
+9
-2
@@ -21,8 +21,15 @@
|
||||
|
||||
\section{Ausgangssituation}
|
||||
Diese Arbeit baut auf einer Projektarbeit auf, bei welcher ein Rover mit Skid-Antrieb zum autonomen navigieren mittels GNSS vorbereitet wurde. Dabei wurde ein erweiterbares System erschaffen, welches es erlaubt die für diese Arbeit notwendigen Implementierungen durchzuführen, eine abstrahierten Zugriff auf die Hardware bietet und eine Möglichkeit den Rover Fernzusteuern bereitstellt. Hardwareseitig wurden bereits Sensoren verbaut, die zur Ortung und Ausrichtung des Rovers beitragen. Eine detailliertere Beschreibung ist in der genannten Arbeit zu finden \cite{Klein2023}. Zusätzlich beschreibt der Abschnitt \ref{sec:rover} den Rover in zusammengefasster und für diese Arbeit angepasster Form.
|
||||
\par
|
||||
Dem Rover liegt eine Fernbedienung zur Steuerung des Systems bei, diese wurde ebenfalls in der genannten Arbeit entworfen und verfügt über 7 Taster, einem Joystick und einem Display. Dadurch kann die komplette Benutzerschnittstelle in der Fernbedienung zu integrieren werden.
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{img/rover.jpg}
|
||||
\caption{Abbildung des Rovers}
|
||||
\label{fig:rover}
|
||||
\end{figure}
|
||||
|
||||
|
||||
!!!Bild vom Rover!!!
|
||||
!!!Bild von der Fernbedienung!!!?
|
||||
|
||||
|
||||
+6
-4
@@ -3,15 +3,17 @@
|
||||
|
||||
\section{Rover}
|
||||
\label{sec:rover}
|
||||
Der Rover wird durch einen 3-Zellen Lithium-Ionen-Akkumulator mit Strom versorgt, dabei wird der Motortreiber und somit auch die beiden Motoren mit der anliegenden Spannung des Akkus von nominal !!!11,1V Mathe!!! versorgt. Je einer der beiden Motoren treibt eine der Fahrzeugseiten an, diese bestehen aus jeweils drei Rädern welche alle über einen Riemen mit der Ausgangswelle des Getriebes zur Untersetzung verbunden sind. An der dieser Ausgangswelle befindet sich ein Encoder-Rad welches durch eine einfache Gabellichtschranke ausgelesen wird, dafür wird der in Hardware implementierte Pulsecounter des verbauten Prozessors verwendet.
|
||||
Der Rover wird durch einen 3-Zellen Lithium-Ionen-Akkumulator mit Strom versorgt, dabei wird der Motortreiber und somit auch die beiden Motoren für den Skid-Antrieb mit der anliegenden Spannung des Akkus von nominal \(11,1V\) versorgt. Der Akkumulator und der Motortreiber befinden sich nebeneinander auf der Unterseite des Hauptträgers der Komponenten, auf dem Bild \ref{fig:rover} das blaue Plastik. Je einer der beiden Motoren treibt eine der Fahrzeugseiten an, diese bestehen aus jeweils drei Rädern welche alle über einen Riemen mit der Ausgangswelle des Getriebes zur Untersetzung verbunden sind. An der dieser Ausgangswelle befindet sich ein Encoder-Rad welches durch eine einfache Gabellichtschranke ausgelesen wird, dafür wird der in Hardware implementierte Pulsecounter des verbauten Prozessors verwendet.
|
||||
\par
|
||||
Die restlichen Komponenten werden mit !!!5V Mathe!!! versorgt, die !!!5V!!! werden über einen Spannungsregler mit einem maximalen dauerhaften Ausgangsstrom von !!!1A!!! bereitgestellt. Der Spannungsregler befindet sich auf der Hauptplatine. Diese Platine verbindet alle Komponenten mit dem auf einem aufgesteckten Entwicklungsboard verbauten ESP32 Prozessor. Der ESP32 stellt verschiedene Schnittstellen über die GPIO (General Purpose Input Output) Pins zur Verfügung, davon werden für den Rover die Bussysteme I2C und SPI, ein ADC Kanal (Analog Digital Converter) und PWM (Pulsweitenmodulation) genutzt. Weitere Kommunikation findet auf dem drahtlosen Weg statt, dafür wird das WiFi-Modul genutzt, mit diesem kann eine Verbindung zum einem !!!2,4 GHz MAthe!!! WLAN aufgebaut werden und es wird mit dem Protokoll ESPNow über das selbe Frequenzband eine Verbindung zu der Fernbedienung hergestellt. Zur Verwaltung des Funkmoduls und der anderen Aufgaben welche an den Prozessor gestellt werden verfügt dieser über zwei Xtensa 32bit LX6 Kerne, welche mit bis zu 240 MHz takten. Als SRAM stehen 540 KB bereit und der Flash-Speicher für das Programm ist 4 Megabyte groß.
|
||||
Die restlichen Komponenten werden mit \(5V\) versorgt, die \(5V\) werden über einen Spannungsregler mit einem maximalen dauerhaften Ausgangsstrom von \(1A\) bereitgestellt. Der Spannungsregler befindet sich auf der Hauptplatine, welche wiederrum auf der oberseite des Hauptträgers zentral verbaut ist. Diese Platine verbindet alle Komponenten mit dem auf einem aufgesteckten Entwicklungsboard verbauten ESP32 Prozessor. Der ESP32 stellt verschiedene Schnittstellen über die GPIO (General Purpose Input Output) Pins zur Verfügung, davon werden für den Rover die Bussysteme I2C und SPI, ein ADC Kanal (Analog Digital Converter) und PWM (Pulsweitenmodulation) genutzt. Weitere Kommunikation findet auf dem drahtlosen Weg statt, dafür wird das WiFi-Modul genutzt, mit diesem kann eine Verbindung zum einem \(2,4GHz\) WLAN aufgebaut werden und es wird mit dem Protokoll ESPNow über das selbe Frequenzband eine Verbindung zu der Fernbedienung hergestellt. Zur Verwaltung des Funkmoduls und der Bewältigung anderen Aufgaben, welche an den Prozessor gestellt werden, verfügt dieser über zwei Xtensa 32bit LX6 Kerne, welche mit bis zu \(240MHz\) takten. Als SRAM stehen 540 KB bereit und der Flash-Speicher für die Software ist 4 Megabyte groß.
|
||||
\par
|
||||
Mit auf der Hauptplatine befindet sich das ebenfalls aufgesteckte Entwicklungsboard von Sparkfun. Das Board nutzt den SPI-Bus um die Kommunikation zwischen dem ESP32 und dem ZED-F9K herzustellen. Bei dem ZED-F9K handelt es sich um einen hochpräziser multi-band GNSS Receiver, welcher die Signale von allen öffentlichen Satelliten gestützten Navigationssystemen verarbeiten kann. Zusätzlich können Korrekturdaten verarbeitet werden mit welchen die Genauigkeit der Positionsbestimmung auf den Bereich einstelliger Centimeter erhöht wird. An dem Board befindet sich eine SMA-Buchse mit welcher die GNSS-Antenne verbunden ist.
|
||||
Mit auf der Hauptplatine befindet sich das ebenfalls aufgesteckte Entwicklungsboard von Sparkfun. Das Board nutzt den SPI-Bus um die Kommunikation zwischen dem ESP32 und dem ZED-F9K herzustellen. Bei dem ZED-F9K handelt es sich um einen hochpräziser multi-band GNSS Receiver, welcher die Signale von allen öffentlichen Satelliten gestützten Navigationssystemen verarbeiten kann. Zusätzlich können Korrekturdaten verarbeitet werden mit welchen die Genauigkeit der Positionsbestimmung auf den Bereich einstelliger Centimeter erhöht wird. Auf der Platine befindet sich eine SMA-Buchse mit welcher die GNSS-Antenne verbunden ist. Die Antenne befindet sich am Heck des Rovers auf dem grünen T-Träger.
|
||||
\par
|
||||
Der I2C-Bus wird benutzt um den letzten Sensor und ein Display anzubinden. Bei dem Sensor handelt es sich um einen Kompass, welcher ganz oben auf dem Rover montiert ist und die aktuelle Himmelsrichtung bei richtiger Kalibrierung auf !!!2° Mathe!!! genau angeben kann. Bei dem Display handelt es sich um ein 16 x 2 Zeichen LCD, dieses wird von einem I2C-Seriell Adapterinterface betrieben.
|
||||
Der I2C-Bus wird benutzt um den letzten Sensor und ein Display anzubinden. Bei dem Sensor handelt es sich um einen Kompass, welcher möglichst weit entfernt von anderen Komponenten sein sollte und deshalb auf dem Mast der neben dem Display nach oben ragt montiert ist und die aktuelle Himmelsrichtung bei richtiger Kalibrierung auf \(2^{\circ}\) genau angeben kann. Bei dem Display auf dem Querbalken handelt es sich um ein 16 x 2 Zeichen LCD, dieses wird von einem I2C-Seriell Adapterinterface betrieben.
|
||||
\par
|
||||
Zu dem Rover gehört eine Fernbedienung, welche über sieben Tasten und einem Joystick als Eingabemöglichkeit verfügt. Vier Tasten bilden ein Steuerkreuz, um das navigieren im Menü zu ermöglichen. Zwei Weitere Tasten werden zum bestätigen und ablehnen genutzt. Die letzte Taste wird als Action-Button bezeichnet und wird betätigt, wenn der Joystick gedrückt wird. Die Taste ist für spezielle Aktionen der verschiedenen Betriebsmodi des Rovers vorgesehen. An der Fernbedienung wurde ebenfalls das zuvor genannte LCD verbaut, dieses spiegelt das Display am Rover. Die Fernbedienung wird ebenfalls von einem ESP32 gesteuert, dieser stellt die Kommunikation über das genannte ESPNow Protokoll zu dem Rover her. Um die Fernbedienung mit Energie zu versorgen wird eine Powerbank benötigt an der das heraushängende USB-Kabel vom Typ A angeschlossen werden kann.
|
||||
\par
|
||||
Die vorhandene Software für den Rover ist Objektorientiert und Modular aufgebaut. Zusätzlich ist Programmcode für die Benutzeroberfläche von dem restlichen Code getrennt. Die Struktur des Codes wird wesentlich durch zwei Interfaces bestimmt. Das erste wird als 'Component' bezeichnet und muss implementiert werden um eigenständige wiederkehrende Aufgaben zu implementieren. Das zweite Interface mit dem Namen 'DriveModi' definiert welche Mindestanforderungen an einen Betriebsmodus des Rovers gestellt werden und stellt die Komponenten für die Benutzereingaben, die Sensorverwaltung und die Bewegungsreglung zur Nutzung im Betriebsmodus bereit. Andere Komponenten überwachen den Akku, steuern das Display, verwalten die Benutzeroberfläche, überwachen Benutzereingaben oder verarbeiten Sensordaten.
|
||||
|
||||
\section{Protokolle}
|
||||
Dieser Abschnitt beschreibt die verschiedenen Protokolle, welche von unterschiedlichen Teilsystemen genutzt werden um die Funktionalität des Gesamtsystems zu ermöglichen.
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 275 KiB |
Reference in New Issue
Block a user