uni

University stuff
git clone git://git.margiolis.net/uni.git
Log | Files | Refs | README | LICENSE

doc.tex (6324B)


      1 \documentclass{article}
      2 \usepackage[utf8]{inputenc}
      3 \usepackage[greek,english]{babel}
      4 \usepackage{alphabeta}
      5 \usepackage{fancyhdr}
      6 \usepackage{listings}
      7 \usepackage{mathtools}
      8 \usepackage{xcolor}
      9 \usepackage{graphicx}
     10 \usepackage{siunitx}
     11 \usepackage{float}
     12 
     13 \title{Ενσωματωμένα Συστήματα - Τελική Εργασία}
     14 \author{Χρήστος Μαργιώλης - 19390133}
     15 \date{Ιανουάριος 2022}
     16 
     17 \begin{document}
     18 
     19 \begin{titlepage}
     20         \maketitle
     21         \begin{figure}[t!]
     22         \begin{center}
     23         \includegraphics[scale=0.3]{./res/uniwalogo.png} \\
     24         \Large
     25         \textbf{Πανεπιστήμιο Δυτικής Αττικής} \\
     26         \large
     27         Τμήμα Μηχανικών Πληροφορικής και Ηλεκτρονικών Υπολογιστών
     28         \end{center}
     29         \end{figure}
     30 \end{titlepage}
     31 
     32 \renewcommand{\contentsname}{Περιεχόμενα}
     33 \tableofcontents
     34 \pagebreak
     35 
     36 \section{Πληροφορίες}
     37 \subsection{Λίστα υλικών -- BOM}
     38 \begin{itemize}
     39 	\item Microchip PIC16F877A - I/P μικροελεγκτής.
     40 	\item Adafruit BME280 σένσορας θερμοκρασίας, υγρασίας και πίεσης.
     41 	\item 16x2 LCD οθόνη.
     42 	\item 1x \SI{16}{\mega\hertz} κρυσταλλικός ταλαντωτής.
     43 	\item 2x \SI{10}{\kohm} αντίσταση.
     44 	\item 2x \SI{330}{\ohm} αντίσταση.
     45 	\item 1x \SI{10}{\kohm} ποτενσιόμετρο.
     46 	\item 2x \SI{22}{\pico\farad} κεραμεικός πυκωντής.
     47 	\item 2x LED
     48 	\item 2x κουμπί.
     49 	\item Καλώδια.
     50 	\item 3x AAA μπαταρίες (4.5V) ή μπαταρία 9V με 5V διαιρέτη τάσης.
     51 \end{itemize}
     52 
     53 \subsection{Κόστος παραγωγής}
     54 
     55 Οι τιμές υπολογίστηκαν με βάση τα τιμολόγια του https://www.digikey.com. \\
     56 
     57 Για 100 τεμάχια:
     58 \begin{center}
     59 \begin{tabular}{|l|l|}
     60 	\hline
     61 	\textbf{Μέρος} & \textbf{Τιμή} \\ 	
     62 	\hline
     63 	PIC16F877A	& \$706 \\
     64 	BME280		& \$1495 \\
     65 	LCD		& \$365 \\
     66 	\hline
     67 	Σύνολο		& \$2566 \\
     68 	\hline
     69 \end{tabular}
     70 \end{center}
     71 
     72 Για 1500 τεμάχια:
     73 \begin{center}
     74 \begin{tabular}{|l|l|}
     75 	\hline
     76 	\textbf{Μέρος} & \textbf{Τιμή} \\ 	
     77 	\hline
     78 	PIC16F877A	& \$10.590 \\
     79 	BME280		& \$22.420 \\
     80 	LCD		& \$5.470 \\
     81 	\hline
     82 	Σύνολο		& \$38.480 \\
     83 	\hline
     84 \end{tabular}
     85 \end{center}
     86 
     87 'Οχι και ό,τι πιο οικονομικό έχει βγει...
     88 
     89 \subsection{Θερμοκρασίες λειτουργίας}
     90 
     91 \begin{center}
     92 \begin{tabular}{|l|l|}
     93 	\hline
     94 	\textbf{Μέρος} & \textbf{Εύρος θερμοκρασίας} \\ 	
     95 	\hline
     96 	PIC16F877A	& $\SI{-40}{\celsius} \sim \SI{85}{\celsius}$ \\
     97 	BME280		& $\SI{-40}{\celsius} \sim \SI{85}{\celsius}$ \\
     98 	LCD		& $\SI{-20}{\celsius} \sim \SI{70}{\celsius}$ \\
     99 	\hline
    100 \end{tabular}
    101 \end{center}
    102 
    103 Οπότε, παίρνοντας υπόψη την οθόνη LCD η οποία έχει το μικρότερο
    104 εύρος θερμοκρασίας λειτουργίας, το σύστημα είναι ασφαλές να
    105 λειτουργήσει στους $\SI{-20}{\celsius} \sim \SI{70}{\celsius}$.
    106 
    107 \section{Ανάπτυξη συστήματος}
    108 
    109 Στο directory \lstinline{schem/} βρίσκονται όλα τα αρχεία
    110 σχετικά με το σχηματικό (αρχεία KiCAD και PDF).
    111 
    112 \subsection{Σχηματικό}
    113 \begin{center}
    114 	\includegraphics[width=\linewidth]{./res/schem.png}
    115 \end{center}
    116 
    117 \subsection{Κώδικας}
    118 Η ανάπτυξη του κώδικα έγινε σε λειτουργικό FreeBSD 13.0 με την χρήση του
    119 \lstinline{sdcc} C compiler, και το \lstinline{pk2cmd} για την
    120 επικοινωνία του μικροελεγκτή με το PICKit2 -- τον προγραμματιστή.
    121 'Εχω αναλύσει την διαδικασία αυτή σε μορφή οδηγού στην ιστοσελίδα
    122 μου και στο FreeBSD Wiki: https://wiki.freebsd.org/Microcontrollers/PIC.
    123 
    124 Στο directory \lstinline{src/} βρίσκεται όλος ο κώδικας του συστήματος.
    125 Το \lstinline{Makefile} είναι υπεύθυνο για την μεταγλώττιση και φόρτωση
    126 του προγράμματος στο PIC. Η επιλογές που μπορούν να δωθούν στο \lstinline{Makefile}
    127 είναι οι εξής:
    128 
    129 \begin{itemize}
    130 	\item Καμία επιλογή: Μεταγλωττίζει το πρόγραμμα.
    131 	\item \lstinline{clean}: Καθαρίζει το directory από τα αρχεία
    132 		που παράγει ο compiler.
    133 	\item \lstinline{erase}: Διαγράφει την μνήμη του PIC.
    134 	\item \lstinline{flash}: Φορτώνει το πρόγραμμα στο PIC.
    135 \end{itemize}
    136 
    137 Στον κώδικα έχει υλοποιηθεί ο Timer0 του PIC, driver για την οθόνη LCD,
    138 υλοποιήση του προτοκώλλου I$^2$C και driver για τον σένσορα BME280. 'Εχει
    139 υλοποιηθεί μόνο ό,τι είναι απολύτως απαραίτητο για το σύστημα.
    140 
    141 Αν και στην εκφώνηση αναφέρεται ότι ο σένσορας θερμοκρασίας και υγρασίας
    142 πρέπει να είναι αναλογικός, χρησιμοποίησα ψηφιακό, λόγω του ότι στο μαγαζί
    143 όπου προμηθεύτηκα τα υλικά δεν υπήρχε αναλογικός σένσορας σε απόθεμα.
    144 
    145 \subsection{Εικόνες}
    146 
    147 \begin{figure}[H]
    148         \centering
    149 	\rotatebox{270}{\includegraphics[width=\linewidth]{res/main.jpg}}
    150 	\caption{Βασική λειτουργία.}
    151 \end{figure}
    152 
    153 
    154 \begin{figure}[H]
    155         \centering
    156 	\includegraphics[width=\linewidth]{res/side.jpg}
    157 	\caption{Πλάγια λήψη.}
    158 \end{figure}
    159 
    160 \begin{figure}[H]
    161         \centering
    162 	\rotatebox{270}{\includegraphics[width=\linewidth]{res/button.jpg}}
    163 	\caption{Λειτουργία κατά την πίεση του κουμπιού.}
    164 \end{figure}
    165 
    166 \begin{figure}[H]
    167         \centering
    168 	\rotatebox{270}{\includegraphics[width=\linewidth]{res/pickit.jpg}}
    169 	\caption{Προγραμματισμός του συστήματος με το PICKit2.}
    170 \end{figure}
    171 
    172 \end{document}