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.

195 lines
7.1 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 libaries, welche möglichst varriable 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 Roboterplatform.
  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 Open Soucre Libarie RF24 \cite{RF24_Lib} diente als Codebasis für die Funksteuerung. Da diese Libarie bei korrekter Verwendung genau auf die Kommunikation zwischen zwei nRF24L01 Chips abgestimmt ist.
  52. Zur verwendung der Libarie muss sie nur includiert 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
  61. \begin{file}[RF24 initialisieren]
  62. \begin{lstlisting}[language=C]
  63. //An der Sender Seite
  64. radio.write(&payload, sizeof(payload));
  65. //An der Empfaenger Seite
  66. if (radio.available()) {
  67. radio.read(&payload, sizeof(payload));
  68. //Payload weiter verarbeiten.
  69. }
  70. \end{lstlisting}
  71. \end{file}
  72. \newpage
  73. \section{Arduino Libaries} %Lukas
  74. \newpage
  75. \section{Joystick Integration} %Lukas
  76. \newpage
  77. \section{Motorsteuerung} %Yves
  78. %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.
  79. \newpage
  80. \section{Thermosensor} %Nick
  81. \newpage
  82. \section{Ultraschallsensor} %Nick
  83. \newpage
  84. %----------------------------------------------------------------------------------------
  85. % Latex Beispeiele
  86. %----------------------------------------------------------------------------------------
  87. \section{Beispiele für Spezielle LaTeX Strukturen}
  88. \begin{info} % Information block
  89. benutze den Info block um wichtige informationen hervorzuheben.
  90. \end{info}
  91. %----------------------------------------------------------------------------------------
  92. % Beispiel für Pseudo Code.
  93. %----------------------------------------------------------------------------------------
  94. \begin{center}
  95. \begin{minipage}{0.5\linewidth} % Adjust the minipage width to accomodate for the length of algorithm lines
  96. \begin{algorithm}[H]
  97. \KwIn{$(a, b)$, two floating-point numbers} % Algorithm inputs
  98. \KwResult{$(c, d)$, such that $a+b = c + d$} % Algorithm outputs/results
  99. \medskip
  100. \If{$\vert b\vert > \vert a\vert$}{
  101. exchange $a$ and $b$ \;
  102. }
  103. $c \leftarrow a + b$ \;
  104. $z \leftarrow c - a$ \;
  105. $d \leftarrow b - z$ \;
  106. {\bf return} $(c,d)$ \;
  107. \caption{\texttt{FastTwoSum}} % Algorithm name
  108. \label{alg:fastTwoSum} % optional label to refer to
  109. \end{algorithm}
  110. \end{minipage}
  111. \end{center}
  112. %----------------------------------------------------------------------------------------
  113. % Beispiel für Code Snippets.
  114. %----------------------------------------------------------------------------------------
  115. % File contents
  116. \begin{file}[hello.py]
  117. \begin{lstlisting}[language=Python]
  118. #! /usr/bin/python
  119. import sys
  120. sys.stdout.write("Hello World!\n")
  121. \end{lstlisting}
  122. \end{file}
  123. %----------------------------------------------------------------------------------------
  124. % Example for Console Prints (can also be usefull for displaying Serial monitor)
  125. %----------------------------------------------------------------------------------------
  126. % Command-line "screenshot"
  127. \begin{commandline}
  128. \begin{verbatim}
  129. $ chmod +x hello.py
  130. $ ./hello.py
  131. Hello World!S
  132. \end{verbatim}
  133. \end{commandline}
  134. % Warning text, with a custom title
  135. \begin{warn}[Notice:]
  136. Warungen könnten auch nützlich sein, immerhin braucht der RF24 3.3V und nicht 5V
  137. \end{warn}
  138. %----------------------------------------------------------------------------------------
  139. % Beispiel für ein Bild.
  140. %----------------------------------------------------------------------------------------
  141. \begin{figure}[h]
  142. \includegraphics[width=8cm]{fish.png}
  143. \centering
  144. \end{figure}
  145. %----------------------------------------------------------------------------------------
  146. % BIBLIOGRAPHY
  147. %----------------------------------------------------------------------------------------
  148. \bibliographystyle{unsrt}
  149. \bibliography{references.bib}
  150. %----------------------------------------------------------------------------------------
  151. \end{document}