Skip to content

Commit f4e21ce

Browse files
committed
final touch up
1 parent 1a14b9b commit f4e21ce

File tree

2 files changed

+14
-27
lines changed

2 files changed

+14
-27
lines changed

Rapport/SwagwayRapport.pdf

2.04 KB
Binary file not shown.

Rapport/SwagwayRapport.tex

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
\documentclass[a4paper,11pt,oneside,article,danish,table]{memoir}
1+
\documentclass[a4paper,final,11pt,oneside,article,danish,table]{memoir}
22
\checkandfixthelayout
33
\XeTeXtracingfonts= 1
44
\usepackage{babel,microtype,verbatim,threeparttable,amsmath,amssymb,unicode-math,hyperref,siunitx,mhchem,tikz,pgfplots,tikz-timing,pdfpages}
@@ -9,7 +9,7 @@
99
\setmainfont{Linux Libertine O}
1010
\setmathfont{[Asana-Math]}
1111
%\hfuzz=1pt
12-
\usepackage[margin,draft]{fixme}
12+
\usepackage[margin]{fixme}
1313
\fxusetheme{color}
1414

1515
\newcommand{\authorvar}{Carl-Emil~Grøn~Christensen \& Mathias~Dannesbo}
@@ -22,10 +22,10 @@
2222
\newcommand{\teachervar}{Allan~Gilarska}
2323

2424
\makepagestyle{articlehead}
25-
\makeevenhead{articlehead}{}{\titlevar}{}
25+
\makeevenhead{articlehead}{}{\classvar\\\titlevar}{\datevar}
2626
\makeevenfoot{articlehead}{}{\thepage}{}
27-
\makeoddhead{articlehead}{}{\titlevar}{}
28-
\makeoddfoot{articlehead}{}{}{\thepage}
27+
\makeoddhead{articlehead}{}{\classvar\\\titlevar}{\datevar}
28+
\makeoddfoot{articlehead}{}{\thepage}{}
2929
\pagestyle{articlehead}
3030

3131
\usepackage{listings,textcomp}
@@ -98,10 +98,7 @@
9898
\end{center}
9999

100100
\vfill
101-
\begin{abstract} %------------------------------ Abstract
102-
\fxwarning{Skriv resume}
103-
104-
\end{abstract}\vfill
101+
105102
\noindent
106103
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} ll}
107104
\classvar&\subjectvar\\
@@ -154,7 +151,7 @@ \subsection{Sensor hardware}
154151
I dette projekt har vi arbejdet med gyroskoper og accelerometere, som vi også kender fra vores smartphones. Swagwayen skal, lige som en smartphone kan måle om den står eller ligger ned, måle i hvilken vinkel den står i.
155152

156153
\subsubsection{Gyroskop}
157-
Et gyroskop måler vinkelhastigheder, hvor hurtigt noget drejer om en akse. Hvis denne vinkelhastighed integreres over tid finder man vinklen som gyroskopet har flyttet sig. Problemet med at integrere gyroskopdata er, at pga. måleusikkerheder vil det målte nulpunkt drive væk fra det fysiske nulpunkt. Moderne gyroskoper er en MEMS. Det betyder, at det både er en mekanisk og elektrisk funktion i et system. /fxnote{hvordan fungerer MEMS i et gyroskop}
154+
Et gyroskop måler vinkelhastigheder, hvor hurtigt noget drejer om en akse. Hvis denne vinkelhastighed integreres over tid finder man vinklen som gyroskopet har flyttet sig. Problemet med at integrere gyroskopdata er, at pga. måleusikkerheder vil det målte nulpunkt drive væk fra det fysiske nulpunkt. Moderne gyroskoper er en MEMS. Det betyder, at det både er en mekanisk og elektrisk funktion i et system.
158155

159156
\subsubsection{Accelerometer}
160157
Et accelerometer kan måle accelerationer. Man kan med hjælp fra tangens og data fra to akser udregne den vinklen accelerometeret står i forhold til jordens tyngdekraft. Problemet med dette er at accelerometer måler alle accelerationer, ikke kun jordens tyngdekræft. Når Swagwayen fx accelerer, bremser eller køre over en sten bliver den udregnede vinkel forkert, da denne også frembringer en spike i accelerationsmålingen.
@@ -260,8 +257,8 @@ \subsubsection{readAccRaw()}
260257

261258
\section{Styring}
262259
Styringen af Swagwayen skulle være en længerevarende og holdbar løsning. Det ønskes ikke, at enheden efter forholdsvis kort tid skulle udskiftes eller repareres. Vi overvejede fem forskellige løsninger: En lineær potentiometer, et drejepotentiometer, gaffelsensor, strain-gate og stepper motor.
263-
\subsection{Lineær potentiometer} \fxnote{billede af linæert potentiometer fig:linpot}
264-
Et lieært potentiometer fungerer som et normalt potentiometer, dog trækkes "armen" i en sliske som set på figur \ref{fig:linpot}
260+
\subsection{Lineær potentiometer}
261+
Et lieært potentiometer fungerer som et normalt potentiometer, dog trækkes "armen" i en sliske.
265262
Potentiometret skal placeres i bunden af stangen, hvorefter potentiometrets arm trækkes med stangens bevægelse. Herefter vil man kunne ændre på PWM signalet til motorene, og på den måde dreje. Løsningen er simpel at udføre, og vil virke let i praksis.
266263

267264
Ulempen ved denne løsning er dog, at potentiometret hurtigt slides op ved brug, og det er derfor ikke en holdbar løsning.
@@ -317,7 +314,7 @@ \subsection{PID}
317314

318315
Disse tre dele gør op for PID, som sørger for, at fejlen justeres lige meget hvilken måde den ændres.
319316

320-
Vi startede med at implementere PID til at regulere den, men erfarede hurtigt at det ikke virkede.\fxwarning{insert old code} For at PID virker, er det vigtigt at den fejl man beregner, stammer fra kilden. Efter som vi ikke havde encodere på motorene kunne vi ikke bestemme hvordan motorene reagerede. Så i stedet for at beregne forskellen mellem den ønskede handling og den udførte, beregnede vi forskellen mellem den ønskede handling og den handling PWM signalet sendte. Se figur \ref{fig:pid} for en grafisk forklaring. For at PID kontrollen skal fungere, skal der foretages målinger efter motoren, vist med den blå linje, hvorimod vi foretog målingerne før motoren, vist med den røde linje.
317+
Vi startede med at implementere PID til at regulere den, men erfarede hurtigt at det ikke virkede. For at PID virker, er det vigtigt at den fejl man beregner, stammer fra kilden. Efter som vi ikke havde encodere på motorene kunne vi ikke bestemme hvordan motorene reagerede. Så i stedet for at beregne forskellen mellem den ønskede handling og den udførte, beregnede vi forskellen mellem den ønskede handling og den handling PWM signalet sendte. Se figur \ref{fig:pid} for en grafisk forklaring. For at PID kontrollen skal fungere, skal der foretages målinger efter motoren, vist med den blå linje, hvorimod vi foretog målingerne før motoren, vist med den røde linje.
321318
Da tiden var ved at løbe ud, bestemte vi os for at lade PID og encoderne ligge, og gå videre til en ny løsning.
322319

323320
\begin{figure}[htbp]
@@ -469,8 +466,6 @@ \subsubsection{Det var der galt}
469466

470467
Det viste sig efter megen debugging, at spændingen på gaten på P-kanal HEXFETerne (IRF4905) ikke gik \lstinline{HIGH} lige så hurtigt som ventet. Der blev opstillet et forsøg på et breadboard med en P-kanal HEXFET, en optocoupler og en Arduino, for at gennemskue problemet.
471468

472-
\fxwarning{Indsæt diagram over forsøg med optocoupler og HEXFET}
473-
474469
Forsøget viste, at når optocoupleren sad mellem HEXFETen og Arduinoen var der en ubekendt kapacitet mellem HEXFETens gate og source. Figur \ref{fig:stigetid} viser nederst PWM signalet fra Arduinoen og øverst signalet på P-kanal HTXFETens gate, hvor man tydeligt kan se, at det tager en ubelejlig tid før signalet på gaten stiger.
475470
\begin{figure}[htbp]
476471
\centering
@@ -489,13 +484,12 @@ \subsubsection{Det var der galt}
489484

490485
For ikke at tilføje flere optocouplere og bruge flere pins på Arduinoen blev der, på motorcontrolleren tilføjet to invertere.
491486
\subsubsection{Det blev der rettet}
492-
Vi byttede om på to P- og N-kanal HEXFETer, så der nu køres PWM på N-kanalen, og P-kanalen bestemmer retning. Derudover blev det tilføjet to invertere på motorcontrolleren. Se figur \fxwarning{ref: dia:v3.0}
487+
Vi byttede om på to P- og N-kanal HEXFETer, så der nu køres PWM på N-kanalen, og P-kanalen bestemmer retning. Derudover blev det tilføjet to invertere på motorcontrolleren.
493488

494489
\subsection{Motorcontroller v3.0}
495490
\boarddate{27. marts 2012}
496491
Se figur \ref{fig:oldmotor} øverst til højre.
497492
\subsubsection{Det var der galt}
498-
\fxwarning{Indsæt diagram over Motorcontroller v3.0 (Figur over printet kan findes i bilag)}
499493
Efter at der blev tilføjet en inverter på to af gatesne til P-kanal HEXFETerne er denne \lstinline{LOW} når der ikke er spænding på optocouplerne (for eksempel når den ikke er koblet til mainboardet). Det tænder HEXFETen sammen med N-kanal HEXFETerne, som også er tændt uden spænding på optocouplerne, hvilket kortslutter H-broen. Motorcontroller v3.0 var fungerede, men det var upraktisk, at den var kortsluttet uden at være koblet sammen med mainboardet.
500494

501495
\subsubsection{Det blev der rettet}
@@ -505,7 +499,7 @@ \subsection{Motorcontroller v4.0}
505499
\boarddate{12. april 2012}
506500
\subsubsection{Det var der galt}
507501
Dette board blev aldrig lavet færdigt.
508-
En stor del af boardet blev re-routed da der var blevet rodet efter mange versioner. Diagram og Figur over printet kan findes i bilag. \fxwarning{ref}
502+
En stor del af boardet blev re-routed da der var blevet rodet efter mange versioner.
509503
\subsubsection{Det blev der rettet}
510504
Boardet blev rerouted pga. rod.
511505

@@ -547,7 +541,7 @@ \subsection{Motorcontroller v5.2}
547541
\begin{figure}[htbp]
548542
\centering
549543
\includegraphics[width=0.8\textwidth]{pictures/fried.jpg}
550-
\caption[]{En HEXFET på Motorcontroller v5.2 der er brændt af}
544+
\caption{En HEXFET på Motorcontroller v5.2 der er brændt af}
551545
\label{fig:fried}
552546
\end{figure}
553547
\begin{figure}[htbp]
@@ -556,17 +550,15 @@ \subsection{Motorcontroller v5.2}
556550
\caption{Diagram over Motorcontroller v5.2}
557551
\label{fig:mosch5.2}
558552
\end{figure}
559-
\fxwarning{ref til fig:mosch5.2}
560553
\subsubsection{Det var der galt}
561-
Boardet v5.2 sidder i Swagwayen og fungerer. Den nuværende version er en erstatning af et magen til, da dette brændte af under en længerevarende, ellers succesfuld, prøvekørsel. Se figur \ref{fig:fried}. \fxnote{her kan skrived mere}
554+
Boardet v5.2 sidder i Swagwayen og fungerer. Den nuværende version er en erstatning af et magen til, da dette brændte af under en længerevarende, ellers succesfuld, prøvekørsel. Se figur \ref{fig:fried}.
562555

563556
Motorene danner strøm når de går i frigang, og hvis man derfor kører hurtigt fremad, og ændrer vinklen til et modsatgående fortegn, sendes strømmen tilbage igennem boardet. Der blev derfor tilføjet beskyttelses dioder for at tage strømmen.
564557
\subsubsection{Det blev der rettet}
565558
Der blev til v6.0 tilføjet beskyttelses dioder til kredsløbet, for at tage strømmen fra motorene.
566559
\subsection{Motorcontroller v6.0}
567560
\boarddate{24. april 2012}
568561
Se figur \ref{fig:oldmotor} nederst til højre.
569-
\fxnote{her kan skrives noget}
570562
\begin{figure}[htbp]
571563
\centering
572564
\includegraphics[width=\textwidth]{pictures/oldmotorboards.jpg}
@@ -691,11 +683,6 @@ \chapter{Arbejdsdeling}
691683
\item[Konklusion] Fælles
692684
\item[Perspektivering] Fælles
693685
\end{itemize}
694-
\fxerror{Tilføj arbejdsdeling}
695-
696-
\section{Udvikling}
697-
\section{Praktisk}
698-
\section{Skriftligt}
699686

700687
\chapter{Kildekode}
701688

0 commit comments

Comments
 (0)