REJ changes Allgemein

This commit is contained in:
Andreas Mieke 2018-03-28 17:10:29 +02:00
parent 68983a0922
commit 5807710bb6
5 changed files with 43 additions and 34 deletions

View file

@ -7,12 +7,12 @@
Seit mehreren Jahren wird in der HTBL-Hollabrunn, ein \gls{ARM} Cortex-M3 \gls{Minimalsystem}, für die Ausbildung unserer Schüler, im Bereich \enquote{embedded Systems} eingesetzt.
Wie schon im Abstract beschrieben geht es bei dem neuen System darum, sich neunen Technologien und Anwenderszenarien zu öffnen beziehungsweise schnelles Prototyping zu ermöglichen. Mit Hilfe des Nextion-Touchscreen-Displays wird ein modernes \gls{MMI} bereitgestellt, um Anwendungen leichter und interaktiv bedienbar zu machen. Das Audio-Interface ermöglicht es, Anwendungen für digitale Signalverarbeitung (z.B. digitale Filter) zu realisieren. Das Arduino-Interface ermöglicht es, verschiedenste Arduino-Shields für den Unterricht einzusetzen. Diese Schnittstellen, sowie die Schnittstellen für WLAN, Bluetooth und Funkmodule ermöglichen es auf schnelle Art und Weise Konzepte für Diplomarbeiten zu evaluieren.
Wie schon im Abstract beschrieben geht es bei dem neuen System darum, sich neuen Technologien und Anwenderszenarien zu öffnen beziehungsweise schnelles Prototyping (Rapid Protoyping) zu ermöglichen. Mit Hilfe des Nextion-Touchscreen-Displays wird ein modernes \gls{MMI} bereitgestellt, um Anwendungen leichter und interaktiv bedienbar zu machen. Das Audio-Interface ermöglicht es, Anwendungen für digitale Signalverarbeitung (z.B. digitale Filter) zu realisieren. Das Arduino-Interface ermöglicht es, verschiedenste Arduino-Shields für den Unterricht einzusetzen. Diese Schnittstellen, sowie die Schnittstellen für WLAN, Bluetooth und Funkmodule ermöglichen es auf schnelle Art und Weise Konzepte für Diplomarbeiten zu evaluieren.
\subsection{Anwendungsszenarien}
\label{sec:anwendungsszenarien}
Das gesamte \gls{ARM}-\gls{Minimalsystem} soll dazu beitragen, mit Hilfe einer Vielzahl an Schnittstellen, hardwarenahe Programmierung zu erlernen, sowie das bauen und testen von Prototypen zu erleichtern. Weiters kann aufgrund, des auf der \gls{Basisplatine} vorhandenen Arduino-Sockels eine Kompatibilität zu allen Arduino-Shields erreicht werden, welche nun über das \gls{Core-Modul} angesteuert werden können.
Das gesamte \gls{ARM}-\gls{Minimalsystem} soll dazu beitragen, mit Hilfe einer Vielzahl an Schnittstellen, hardwarenahe Programmierung zu erlernen, sowie das Bauen und Testen von Prototypen zu erleichtern. Weiters kann aufgrund, des auf der \gls{Basisplatine} vorhandenen Arduino-Sockels eine Kompatibilität zu allen Arduino-Shields erreicht werden, welche nun über das \gls{Core-Modul} angesteuert werden können.
Das Hauptaugenmerk wurde jedoch auf folgende Anwendungen gelegt:
@ -23,9 +23,13 @@ Das Hauptaugenmerk wurde jedoch auf folgende Anwendungen gelegt:
\item \gls{GUI}
\end{itemize}
\pageauthor{Mieke}
\input{Mieke/Theorie}
\pageauthor{Schuh}
\subsection{Systemaufbau}
\label{sec:systemaufbau}
Das neue \gls{ARM}-\gls{Minimalsystem} kann prinzipiell in drei voneinander getrennten Platinen unterteilt werden. Diese Module wären die \gls{Basisplatine}, das \gls{Core-Modul} und der \gls{USB-to-UART} Adapter. Jedes dieser Module erfüllt einen bestimmten Zweck, welcher schlussendlich zum Gesamtsystem beträgt.
Das neue \gls{ARM}-\gls{Minimalsystem} kann prinzipiell in vier voneinander getrennten Platinen unterteilt werden. Diese Module wären die \gls{Basisplatine}, das \gls{Core-Modul}, der \gls{USB-to-UART} Adapter und der Audioadapter. Jedes dieser Module erfüllt einen bestimmten Zweck, welcher schlussendlich zum Gesamtsystem beträgt.
\fig{gesamtsystem}{Gesamtsystem}{Gesamtsystem}{\textwidth}{Allgemein/img/Gesamtsystem}

View file

@ -57,9 +57,9 @@
\aufgabenstellung{Aufgabe soll es sein, eine neue Version für das HTL eigene ARM Minimalsystem zu realisieren. Zunächst soll ein Touchscreen-Display zur Ein- und Ausgabe unterstützt werden. Des Weiteren soll eine Arduino-UNO kompatible Schnittstelle zur Verfügung gestellt werden, um Arduino Shields von verschiedenen Herstellern einsetzen zu können. Darüber hinaus soll das neue System verschiedene Funkmodule unterstützen, um damit eine Kommunikation mit anderer Peripherie zu erleichtern. Ein Audiomodul, welches bereits bei einer Diplomarbeit aus dem Jahre 2015/16 entwickelt wurde, soll ebenso unterstützt werden. Zusätzlich soll noch ein Z80 Minimalsystem, welches im Rahmen mehrerer Diplomarbeiten entstanden ist, für den Einsatz im Laborunterricht vervollständigt werden.}
\realisierung{Zuerst sollen die einzelnen Arbeitsaufträge entwickelt und überprüft werden. Anschließend sollen die einzelnen Systemkomponenten zum fertigen System zusammengefügt und in Betrieb genommen werden. Die Funktion und die einzelnen Entwicklungsschritte zum fertigen Prototypen sollen anschließend durch eine umfangreiche Dokumentation und eine Bedienungsanleitung vervollständigt werden.}
\realisierung{Ziel des Projekts war ein neues modulares HTL ARM-Minimalsystem für den Unterricht im Bereich embedded Systems zu entwickeln. Zu diesem Zweck wurden mehrere Leiterplatten entwickelt. Ein Core-Modul für den Microcontroller welches auf eine Basisplatine gesteckt werden kann sowie ein USB-to-UART Konverter um mit einem PC kommunizieren zu können. Für die Inbetriebnahme bei Fertigung wurde eine Testsoftware sowie Beispielapplikation entwickelt. Weiters wurden mehrere Leiterkarten für ein Z80 Minimalsystem gefertigt, die für den Laborunterricht dienen.}
\ergebnisse{Es wurden funktionsfähige Prototypen aller Leiterkarten gefertigt. Darüber hinaus wurde eine Testsoftware zur Überprüfung der Prototypen geschrieben.}
\ergebnisse{Es wurden 2 Komplettsysteme des ARM-Minimalsystems gefertigt und erfolgreich in Betrieb genommen. Die Testsoftware und die Demolibrary wurden erfolgreich demonstriert. Weiters wurden 4 Z80 Minimalsysteme gefertigt und erfolgreich in Betrieb genommen.}
\grafikname{Gesamtsystem}
\grafikinhalt{\includegraphics[width=\textwidth]{Allgemein/img/Gesamtsystem}}
@ -70,9 +70,9 @@
\tasks{The task should be to realize a new version for the HTL (secondary technical college) own ARM minimal system. At first, a touchscreen display for input and output should be supported. Furthermore, an Arduino-UNO compatible interface should make it possible to use Arduino shields from different manufacturers. In addition, the new system should support various wireless modules to facilitate communication with other peripherals. An audio module, which was already developed in a diploma thesis from the year 2015/16, should also be supported. In addition, a Z80 minimal system, which was created in the context of several diploma theses, should be finalised for the use in laboratory lessons.}
\realisation{At first, the individual work orders should be developed and checked. Subsequently, the individual system components were to be assembled into the finished system and put into operation. The function and the individual development steps for the finished prototype should be completed with a documentation and a user manual.}
\realisation{Goal of the project was to develop a new modular HTL ARM minimal system for embedded systems classes. For this purpose multiple PCBs were developed. A core-module, housing the microcontroller, which can be connected to the basis board as well as a USB-to-UART converter which allows simple communication with a PC. For testing while manufacturing the board a test software and example application was developed. Moreover, multiple PCBs for a Z80 minimal system for usage in laboratory classes was developed.}
\results{Working prototypes of all printed circuit boards have been developed. Moreover, a test software to prove the functionality of the prototype has been written.}
\results{Two complete ARM minimal systems were built and tested successfully. The test software as well as the demo library were demonstrated successfully. Last but not least, four Z80 minimal systems were built and tested successfully.}
\graphname{System overview}
\graphcontent{\includegraphics[width=\textwidth]{Allgemein/img/Gesamtsystem}}
@ -104,6 +104,7 @@
\newcommand*{\IIC}{I$^2$C}
\newcommand*{\IIS}{I$^2$S}
\newcommand*{\uVision}{$\mu$Vision}
\renewcommand{\fancyrefdefaultformat}{plain}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Titlepage, DA database and TOC
\maketitle{}
\makedadb{pdfs/DADB}{pdfs/DADBErklarung}
@ -112,10 +113,6 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% First real page
\input{Allgemein/Allgemein}
\clearpage
\pageauthor{Mieke}
\input{Mieke/Theorie}
\clearpage
\pageauthor{Schuh}
\input{Schuh/Core-Modul}

View file

@ -1,18 +1,16 @@
\section{Theorie}
\label{sec:theorie}
\subsection{Versionierung}
Das Kapitel Versionierung teilt sich in zwei große Teile auf, Semantic Versioning, was die Vergabe der Versionsnummer an sich behandelt und Git, was im generellen Workflow zur Versionskontrolle benutzt wurde.
\subsubsection{Semantic Versioning}
Semantic Versioning, oder auch semantische Versionierung bezeichnet ein Verfahren zur Vergabe von Versionsnummern welches sich als sehr praktisch zum Versionieren von Softwarekomponenten herausgestellt hat. Heute benutzen sehr viele große Softwareprojekte, vor allem im Open Source Bereich, Semantic Versioning für die Versionierung von Releases.
Bei Semantic Versioning setzt sich die Versionsnummer aus drei Hauptgruppen welche aus Ziffern bestehen und durch einen Punkt getrennt sind zusammen. Jede dieser Gruppen hat eine festgelegte Bedeutung, von links nach rechts heißen die Gruppen \enquote{Major}, \enquote{Minor} und \enquote{Patch}.
Bei Semantic Versioning setzt sich die Versionsnummer aus drei Hauptgruppen, welche aus Ziffern bestehen und durch einen Punkt getrennt sind, zusammen. Jede dieser Gruppen hat eine festgelegte Bedeutung, von links nach rechts heißen die Gruppen \enquote{Major}, \enquote{Minor} und \enquote{Patch}.
Ein Produkt mit der Versionsnummer \textbf{2.5.15} hat also die Major-Version \textbf{2}, Minor-Version \textbf{5} und Patch-Level \textbf{15}.
Will man nun eine neue Version der Software (oder des Produkts) veröffentlichen, so muss man, je nach Änderung, die Versionsnummer erhöhen. Hierbei wird meist nach \fref{tab:versionierung} vorgegangen.
\tab{versionierung}{Semantic Versioning Zifferngruppen}{Zifferngruppen}{|c|p{10cm}|}{
\ltab{versionierung}{Semantic Versioning Zifferngruppen}{Zifferngruppen}{|c|p{10cm}|}{
\hline
\textbf{Gruppe} & \textbf{Bedeutung}\\
\hline
@ -40,7 +38,10 @@ Um nun die gemachten Änderungen in den Staging-Bereich hinzuzufügen führt man
\subsubsubsection{Zurück zu einer alten Version}
Wenn man nun feststellt, dass das, was man programmiert hat nicht zielführend ist oder sich gar negativ auf das Projekt ausgewirkt hat, kann man relativ einfach wieder auf eine funktionierende Version zurück kehren. Hierzu führt man zuerst \texttt{git log} aus, was dann die IDs aller Commits und die erste Zeile der Commit-Nachricht anzeigt, hier sucht man sich nun die ID heraus, zu der man zurück kehren will, und gibt diese bei \texttt{git checkout <commitid>} ein. Nun stellt Git wieder die Version her, wie sie zum Zeitpunkt des Commits existierte.
\subsection{Nextion Editor} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{\LaTeX{}}
Zum setzen der Dokumentation und anderer aus dieser Diplomarbeit resultierenden Dokument wurde \LaTeX{} verwendet. Die Verwendung von \LaTeX{} bietet im Gegensatz zu anderer Software einige Vorteile, wie zum Beispiel die einfacher Literaturverwaltung mittels BiB\LaTeX{} und das einfache erstellen von Tabellen und ähnlichem direkt in einem handelsüblichen Texteditor. Des weiteren ist es möglich ganze Dokumente in quasi unendlich kleine Teile aufzuteilen, sodass mehrere Leute parallel an einem Gesamtdokument arbeiten können.
\subsection{Nextion Editor}
Das Interface für das Display kann neben den zur verfügung stehenden Befehlen auch mit einem grafischen Editor erstellt werden. Die Software die dafür genutzt werden muss ist der Nextion Editor. Damit können auch Bitmap-Schriftarten für das
Display erstellt werden. Das Display wird mit einer eigenen Programmiersprache programmiert, die simple Befehle ausführen kann, wie Wechsel von Display-Seiten, User-Interface Elemente beeinflussen und verschiedene Modi des Displays aktivieren
oder deaktivieren.
@ -52,6 +53,3 @@ Ein simples Projekt kann mit den in \fref{fig:nextion-1} gezeigten Einstellungen
Um ein fertiges Programm auf das Display zu flashen muss das Display mit dem \gls{USB-to-UART}-Adapter mit dem Computer verbunden werden und dann im Nextion Editor das Programm übertragen werden. Die Baudrate und der Port werden vom Editor im Normalfall autoamtisch ermittelt und müssen nicht eigestellt werden. Des weiteren ist zu beachten, das beim flashen des Programms unter anderem die Display Firmware aktualisiert werden kann und somit andere Programme nicht mehr auf dem Display ausführbar sind, wenn die Firmware die Befehle der Nextion Programmiersprache ändert. Dies kann ggf. den Editor-Changelogs entnommen werden.
\fig{nextion-2}{Nestion Editor Hauptoberfläche}{Die Nextion Editor Oberfläche}{\textwidth}{Mieke/Nextion/editor}
\subsection{\LaTeX{}}
Zum setzen der Dokumentation und anderer aus dieser Diplomarbeit resultierenden Dokument wurde \LaTeX{} verwendet. Die Verwendung von \LaTeX{} bietet im Gegensatz zu anderer Software einige Vorteile, wie zum Beispiel die einfacher Literaturverwaltung mittels BiB\LaTeX{} und das einfache erstellen von Tabellen und ähnlichem direkt in einem handelsüblichen Texteditor. Des weiteren ist es möglich ganze Dokumente in quasi unendlich kleine Teile aufzuteilen, sodass mehrere Leute parallel an einem Gesamtdokument arbeiten können.

View file

@ -323,7 +323,7 @@ Auf der \gls{Basisplatine} wurde auch ein Beschleunigungssensormodul mit dem Bes
\end{figure}
\subsubsection{IR-Receiver}
Um die Platine auch mit einer Fernbedienung oder einem Mobiltelefon steuern zu können würde ein IR-Receiver verbaut. Dieser Sensor wurde hardwaremäßig unter dem NEXTION-Display angebracht. Der IR-Receiver arbeitet mit einer Wellenlänge von 850nm bis 1000nm und einer Trägerfrequenz von 38kHz. Das vom IR-Receiver empfangene Signal wird direkt im Receiver demoduliert und anschließend zu der zweireihigen Stiftleiste (\fref{fig:basisplatine-ssel}, X9) weitergeleitet. Um den IR-Receiver verwenden zu können muss lediglich der Pin7 mit dem Pin8, der Stiftleiste (\fref{fig:basisplatine-ssel}, X9), gejumpert werden.
Um die Platine auch mit einer Fernbedienung oder einem Mobiltelefon steuern zu können würde ein IR-Receiver verbaut. Dieser Sensor wurde hardwaremäßig unter dem NEXTION-Display angebracht. Der IR-Receiver arbeitet mit einer Wellenlänge von 850nm bis 1000nm und einer Trägerfrequenz von 38kHz. Das vom IR-Receiver empfangene Signal wird direkt im Receiver demoduliert und anschließend zur Stiftleiste X9 (\fref{fig:basisplatine-ssel}) weitergeleitet. Um den IR-Receiver verwenden zu können muss lediglich der Pin7 mit dem Pin8, der Stiftleiste (\fref{fig:basisplatine-ssel}, X9), gejumpert werden.
\begin{figure}[htb]
\centering
@ -533,7 +533,7 @@ Um mit Messgeräten oder PCs zu kommunizieren unterstützt die \gls{Basisplatine
\end{figure}
\subsubsection{NE555}
Der auf der \gls{Basisplatine} verbaute NE555 kann als externer Taktgenerator verwendet werden. Die Periodendauer von diesen, kann mit Hilfe des Verhältnisses der beiden Potentiometer (\fref{fig:basisplatine-ne555}, R13 und R14) verändert werden. Für die Realisierung von großen Zeitkonstanten, kann man durch verbinden der beiden Pins auf der Stiftleiste (\fref{fig:basisplatine-ne555}, X15), mit einem Jumper, einen größeren Kondensator (\fref{fig:basisplatine-ne555}, C13) parallel zum kleineren Kondensator (\fref{fig:basisplatine-ne555}, C12) schalten. Möchte man einen kleineren Widerstand erzielen, kann man das durch einen Jumper auf der Stiftleiste (\fref{fig:basisplatine-ne555}, X14) erzielen. Um den NE555 verwenden zu können muss lediglich der Pin11 mit dem Pin12, der Stiftleiste (\fref{fig:basisplatine-ssel}, X9), mit einem Jumper verbunden werden.
Der auf der \gls{Basisplatine} verbaute NE555 kann als externer Taktgenerator verwendet werden. Die Periodendauer von diesen, kann mit Hilfe des Verhältnisses der beiden Potentiometer (\fref{fig:basisplatine-ne555}, R13 und R14) verändert werden. Für die Realisierung von großen Zeitkonstanten, kann man durch verbinden der beiden Pins auf der Stiftleiste (\fref{fig:basisplatine-ne555}, X15), mit einem Jumper, einen größeren Kondensator (\fref{fig:basisplatine-ne555}, C13) parallel zum kleineren Kondensator (\fref{fig:basisplatine-ne555}, C12) schalten. Möchte man einen kleineren Widerstand erzielen, kann man das durch einen Jumper auf der Stiftleiste (\fref{fig:basisplatine-ne555}, X14) erzielen. Um den NE555 verwenden zu können muss lediglich der Pin11 mit dem Pin12, der Stiftleiste X9 (\fref{fig:basisplatine-ssel}), mit einem Jumper verbunden werden.
\begin{figure}[htb]
\centering

View file

@ -277,6 +277,16 @@
% Listing extension for fancyref using the prefix "lst".
\newcommand*{\fancyreflstlabelprefix}{lst}
% Plain format
\frefformat{plain}{\fancyreflstlabelprefix}{%
\MakeUppercase{\freflstname}\fancyrefdefaultspacing#1#2%
}%
\Frefformat{plain}{\fancyreflstlabelprefix}{%
\MakeUppercase{\Freflstname}\fancyrefdefaultspacing#1#2%
}%
\Frefformat{plain}{\fancyreflstlabelprefix}{Listing~#1}
\frefformat{plain}{\fancyreflstlabelprefix}{Listing~#1}
% Main format
\frefformat{main}{\fancyreflstlabelprefix}{%
\MakeUppercase{\freflstname}\fancyrefdefaultspacing#1#2%
@ -360,11 +370,11 @@
}%
\newcommand*{\maketoc}{%
\cleardoublepage
\pagestyle{empty}
\centering
\textbf{\Huge \@title}
\raggedright
%\cleardoublepage
%\pagestyle{empty}
%\centering
%\textbf{\Huge \@title}
%\raggedright
\cleardoublepage
\tableofcontents
\cleardoublepage
@ -542,11 +552,11 @@
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][3.5cm]{5cm}%
\begin{minipage}[c][5cm]{5cm}%
\textsf{Realisierung}%
\end{minipage}%
&%
\begin{minipage}[c][3.5cm]{\textwidth - 5.8cm}%
\begin{minipage}[c][5cm]{\textwidth - 5.8cm}%
\textsf{\@realisierung{}}%
\end{minipage}\\%
\hline%
@ -554,11 +564,11 @@
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][2cm]{5cm}%
\begin{minipage}[c][2.5cm]{5cm}%
\textsf{Ergebnisse}%
\end{minipage}%
&%
\begin{minipage}[c][2cm]{\textwidth - 5.8cm}%
\begin{minipage}[c][2.5cm]{\textwidth - 5.8cm}%
\textsf{\@ergebnisse{}}%
\end{minipage}\\%
\hline%
@ -685,11 +695,11 @@
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][3.5cm]{5cm}%
\begin{minipage}[c][5cm]{5cm}%
\textsf{Realisation}%
\end{minipage}%
&%
\begin{minipage}[c][3.5cm]{\textwidth - 5.8cm}%
\begin{minipage}[c][5cm]{\textwidth - 5.8cm}%
\textsf{\@realisation{}}%
\end{minipage}\\%
\hline%
@ -697,11 +707,11 @@
\vfill%
\begin{tabularx}{\textwidth}{| p{5cm} | X |}%
\hline%
\begin{minipage}[c][2cm]{5cm}%
\begin{minipage}[c][2.5cm]{5cm}%
\textsf{Results}%
\end{minipage}%
&%
\begin{minipage}[c][2cm]{\textwidth - 5.8cm}%
\begin{minipage}[c][2.5cm]{\textwidth - 5.8cm}%
\textsf{\@results{}}%
\end{minipage}\\%
\hline%