Ein Roboter mit bürstenlosem Antrieb, differenzial und NRF24L01 Funk. Großflächig gebaut um ein großes Solarpanel aufzunehmen. https://gitlab.informatik.hs-fulda.de/fdai5253/roboter
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

197 lines
7.2 KiB

  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. % Lachaise Assignment
  3. % LaTeX Template
  4. % Version 1.0 (26/6/2018)
  5. %
  6. % This template originates from:
  7. % http://www.LaTeXTemplates.com
  8. %
  9. % Authors:
  10. % Marion Lachaise & François Févotte
  11. % Vel (vel@LaTeXTemplates.com)
  12. %
  13. % License:
  14. % CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
  15. %
  16. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  17. %----------------------------------------------------------------------------------------
  18. % PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
  19. %----------------------------------------------------------------------------------------
  20. \documentclass{article}
  21. \input{structure.tex} % Include the file specifying the document structure and custom commands
  22. %----------------------------------------------------------------------------------------
  23. % INFORMATION
  24. %----------------------------------------------------------------------------------------
  25. \title{Open Source Roboter Plattform} % Title
  26. \author{Lukas Reichwein\\ Yves Ehrlich\\ Nick Gnoevoj}
  27. \date{University of Applied Science Fulda --- \today} % University, school and/or department name(s) and a date
  28. %----------------------------------------------------------------------------------------
  29. \begin{document}
  30. \maketitle % Print the title
  31. \tableofcontents % Inhaltsverzeichniss, Achtung zweimal Compilerien!
  32. \newpage
  33. %----------------------------------------------------------------------------------------
  34. % INTRODUCTION
  35. %----------------------------------------------------------------------------------------
  36. \section{Vorwort} % Unnumbered section
  37. \paragraph{Motivation}
  38. Eine Platform bieten ist etwas was momentan sehr stark im Trend liegt, sei es im Software oder im Hardware Bereich. Im Softwarebereich zeigt sich dies meist durch opensource Bibliotheken, welche möglichst variable einsetzbaren Code für jeden frei zugänglich machen. \\
  39. Ein solches Projekt war auch von einem der Projektmitglieder (Yves Ehrlich) als Privates Projekt geplant und so kahm die Überlegung dies innerhalb des Modules Embedded Networking zu wählen.\linebreak
  40. \paragraph{Basis des Projektes}
  41. Als Basis des Projektes dient einer schon bereits von Yves Ehrlich angefertigter Arduino Nano Shield samt Code,
  42. \cite{nanoGame} welcher als Fernsteuerung verwendet wird.
  43. \paragraph{Ziel des Projektes}
  44. Ziel des Projektes ist eine ferngesteuerte, Opensource basierende Roboterplattform.
  45. \newpage
  46. \section{SPI}%Lukas
  47. \newpage
  48. \section{Funksteuereung} %Lukas
  49. Wie schon zuvor erwähnt wird für die Basis der Funksteuerung das Arduino Shield verwendet, welches mit einem RF24 Chip erweitert wurde.
  50. \subsection{RF24} %Oder nur als paragraph je nachdem wie viel zusammen kommt.
  51. Die Opensoucre Bibliothek RF24 \cite{RF24_Lib} diente als Codebasis für die Funksteuerung. Da diese Bibliothek bei korrekter Verwendung genau auf die Kommunikation zwischen zwei nRF24L01 Chips abgestimmt ist.
  52. Zur Verwendung der Bibliothek muss sie nur inkludiert und Instanziiert werden dabei werden die Beiden Pins CE und CSN für das Hardware-SPI konfiguriert.
  53. \begin{file}[RF24 initialisieren]
  54. \begin{lstlisting}[language=C++]
  55. #include <RF24.h>
  56. RF24 radio(A2, A3); // CE, CSN
  57. \end{lstlisting}
  58. \end{file}
  59. Damit sind bereits Sämtliche Konfigurationen für die Hardware-SPI Kommunikation zwischen Arduino nano und dem nRF24L01 erledigt.
  60. Kommunizieren zwischen zwei dieser Setups wird dann durch die Funktionen read und wirite, jedoch muss vor dem Start einer Kommunikation die Methode begin() aufgerufen werden.
  61. \begin{file}[RF24 initialisieren]
  62. \begin{lstlisting}[language=C++]
  63. //An der Sender Seite
  64. radio.begin();
  65. radio.write(&payload, sizeof(payload));
  66. //An der Empfaenger Seite
  67. radio.begin();
  68. if (radio.available()) {
  69. radio.read(&payload, sizeof(payload));
  70. //Payload weiter verarbeiten.
  71. }
  72. \end{lstlisting}
  73. \end{file}
  74. \newpage
  75. \section{Arduino Libaries} %Lukas
  76. \newpage
  77. \section{Joystick Integration} %Lukas
  78. \newpage
  79. \section{Motorsteuerung} %Yves
  80. %Folgende beiden ließen sich auch durch subsections mittels sensoric als section realisieren, kommt aber auf die menge des textes an subsections sollten nicht über eine halbe seite lang sein.
  81. \newpage
  82. \section{Thermosensor} %Nick
  83. \newpage
  84. \section{Ultraschallsensor} %Nick
  85. \newpage
  86. %----------------------------------------------------------------------------------------
  87. % Latex Beispeiele
  88. %----------------------------------------------------------------------------------------
  89. \section{Beispiele für Spezielle LaTeX Strukturen}
  90. \begin{info} % Information block
  91. benutze den Info block um wichtige informationen hervorzuheben.
  92. \end{info}
  93. %----------------------------------------------------------------------------------------
  94. % Beispiel für Pseudo Code.
  95. %----------------------------------------------------------------------------------------
  96. \begin{center}
  97. \begin{minipage}{0.5\linewidth} % Adjust the minipage width to accomodate for the length of algorithm lines
  98. \begin{algorithm}[H]
  99. \KwIn{$(a, b)$, two floating-point numbers} % Algorithm inputs
  100. \KwResult{$(c, d)$, such that $a+b = c + d$} % Algorithm outputs/results
  101. \medskip
  102. \If{$\vert b\vert > \vert a\vert$}{
  103. exchange $a$ and $b$ \;
  104. }
  105. $c \leftarrow a + b$ \;
  106. $z \leftarrow c - a$ \;
  107. $d \leftarrow b - z$ \;
  108. {\bf return} $(c,d)$ \;
  109. \caption{\texttt{FastTwoSum}} % Algorithm name
  110. \label{alg:fastTwoSum} % optional label to refer to
  111. \end{algorithm}
  112. \end{minipage}
  113. \end{center}
  114. %----------------------------------------------------------------------------------------
  115. % Beispiel für Code Snippets.
  116. %----------------------------------------------------------------------------------------
  117. % File contents
  118. \begin{file}[hello.py]
  119. \begin{lstlisting}[language=Python]
  120. #! /usr/bin/python
  121. import sys
  122. sys.stdout.write("Hello World!\n")
  123. \end{lstlisting}
  124. \end{file}
  125. %----------------------------------------------------------------------------------------
  126. % Example for Console Prints (can also be usefull for displaying Serial monitor)
  127. %----------------------------------------------------------------------------------------
  128. % Command-line "screenshot"
  129. \begin{commandline}
  130. \begin{verbatim}
  131. $ chmod +x hello.py
  132. $ ./hello.py
  133. Hello World!S
  134. \end{verbatim}
  135. \end{commandline}
  136. % Warning text, with a custom title
  137. \begin{warn}[Notice:]
  138. Warungen könnten auch nützlich sein, immerhin braucht der RF24 3.3V und nicht 5V
  139. \end{warn}
  140. %----------------------------------------------------------------------------------------
  141. % Beispiel für ein Bild.
  142. %----------------------------------------------------------------------------------------
  143. \begin{figure}[h]
  144. \includegraphics[width=8cm]{fish.png}
  145. \centering
  146. \end{figure}
  147. %----------------------------------------------------------------------------------------
  148. % BIBLIOGRAPHY
  149. %----------------------------------------------------------------------------------------
  150. \bibliographystyle{unsrt}
  151. \bibliography{references.bib}
  152. %----------------------------------------------------------------------------------------
  153. \end{document}