\chapter{E-Stop e consola de controlo}\label{chapter:e_stop_cap}
\thispagestyle{myheadings}
% -------------------------------------------------------------
% intro
% -------------------------------------------------------------
Neste capitulo será apresentada a metodologia para criação e implementação do sistema E-STOP no veículo Atlascar.

% -------------------------------------------------------------
% Estudo do problema
% -------------------------------------------------------------
\section{Estudo do problema}\label{sec:estudo_estop}

Uma das imposições do \textbf{ELROB} é a existência, nos veículos participantes, de um sistema de atuação remota que possibilite a imobilização dos mesmos, se durante uma demonstração algo de errado aconteça, para evitar danos tanto nos veículos como nos espetadores. Assim a existência de um comando para atuação remota dos modos do E-Stop seja obrigatório.
Os modos de operação do sistema e as ações a tomar quando cada modo está ativo são imposições por parte da organização do evento. O sistema é constituído pelos seguintes modos:\citep{elrob_site}
\begin{itemize}
  \item \textbf{RUN}
  \item \textbf{PAUSE}
  \item \textbf{DISABLE}
\end{itemize}

O modo \textbf{RUN}, é o modo normal de operação do sistema, ou seja, o modo de normal funcionamento do carro.
O modo \textbf{PAUSE}, quando ativo tem de ser capaz de imobilizar totalmente o veiculo, mas o veiculo pode voltar novamente ao modo autónomo remotamente, ou seja, a comutação para o modo de \textbf{RUN}, tem de ser possível remotamente.
O modo \textbf{DISABLE}, sendo ativado o carro tem de ser imobilizado e a fonte de propulsão tem de ser desligada. Este modo não pode ser revertido remotamente, para o veiculo poder voltar ao modo automático o carro tem de ter intervenção humana. É um modo de emergência e a sua ativação deve ser o ultimo recurso.

\subsection{Soluções encontradas}\label{sec:estop_solucoes}
Depois de alguma pesquisa, foram encontradas duas soluções, que se adaptavam ao sistema a implementar. Uma delas um sistema de comando e servo recetor de modelismo, pois modelos mais recentes incluem telemetria, a outra solução passaria pela implementação de toda a rede sem fios, sobre Arduinos com módulos de Xbee.\citep{arduino_site}\citep{xbee_site}
%\pagebreak
%\newline

O sistema de radio modelismo com telemetria, é extremamente fiável e com alcance aceitável para o problema proposto. 
A telemetria seria para controlo de algumas variáveis de sistema do carro, pois o utilizador, estando o comando na mão e afastado um pouco do veículo continuaria a ter acesso a alguma informação relevante do mesmo. 
Mas sendo um sistema muito fiável, também é muito fechado, ou seja, tem protocolos de comunicação com os elementos e codificação de mensagens, logo a sua aplicação e adaptação para o problema proposto não seria trivial e de difícil expansão futura.
\newline
Em relação ao sistema sobre micro-controladores(\textit{$\mu C$}) com módulos Xbee para comunicação sem fios, existe a vantagem de ser totalmente configurável e de comunicação bidirecional, o que permite a monitorização do sistema; na tabela \ref{tbl:comp_sist} estão representados os sistemas tidos em conta para implementação do E-Stop. 
 
\begin{table}[h]
  \centering
  \begin{tabular}[!h]{  c  c  c  c  }
    \hline
    Modo de Comunicação & Rx/Tx & Imagens & Alcance \\ \hline
    
    \begin{minipage}[c]{.20\textwidth}
    \centering
     	Modulo de Rádio Modelismo
    \end{minipage}
    &
    \begin{minipage}[c]{.3\textwidth}
     	
     	
     	Sistema de comunicação totalmente fechado
     	\newline
     	Desconhecimento dos modos de 
     	comunicação entre o emissor e os sensores
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.25\textwidth}
\centering     	
     	\includegraphics[width=3cm]{Imagens/futaba_conj}
    \end{minipage}
        &
    \begin{minipage}[c]{.15\textwidth}
    \centering
      500m (em campo aberto)
    \end{minipage}
    
%%    %\end{minipage}
\\ \hline
	\begin{minipage}[c]{.20\textwidth}
     	
     	\centering
     	XBee-PRO® S2B
    \end{minipage}
    &
    \begin{minipage}[c]{.3\textwidth}
		
     	Totalmente configurável.
     	\newline
     	Comunicação digital
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.25\textwidth}
    \centering
     	\includegraphics[width=3cm]{Imagens/xbee_pro}
    \end{minipage}
        &
    \begin{minipage}{.15\textwidth}
		\centering    	  
    	  90m (\textit{Indoor})
      1500m (em campo aberto)
    \end{minipage}
    \\ \hline

%    \\ \hline
	\begin{minipage}[c]{.20\textwidth}
		\centering     	
     	XBee-PRO® 868
    \end{minipage}
    &
    \begin{minipage}[c]{.3\textwidth}
     	Totalmente configurável.
     	\newline
     	Comunicação digital.
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.25\textwidth}
     	\centering
     	\includegraphics[width=3cm]{Imagens/xbeepro_868}\label{fig:xbee_pro868}
    \end{minipage}
        &
    \begin{minipage}{.15\textwidth}
    \centering
    	  550m (\textit{Indoor})
      40km (em campo aberto c/ \textit{dipole antena})
    \end{minipage}
    \\ \hline
  \end{tabular}
  \caption{Comparação dos vários sistemas encontrados para implementação do E-Stop}\label{tbl:comp_sist}
\end{table} 

\subsection{Escolha de um módulo}\label{subsec:escolha_modulo}
Depois de uma análise cuidada da tabela \ref{tbl:comp_sist}, e tendo em linha de conta a aplicação, a escolha recai sobre os módulos Xbee Pro S2B. São módulos de fácil futura expansão e em comparação com o Xbee Pro 868 a diferença mais significativa, além do preço, é o alcance, que para o problema em questão não é muito significativo, e o sistema escolhido tem alcance suficiente para a aplicação.
\pagebreak




%####################################################
%			SISTEMA A IMPLEMENTAR
%######################################################
\section{Sistema a implementar}\label{sec:sist_implem}
Com a escolha efetuada no anteriormente, apenas ficou definido o modo de transmissão de dados sem fios; a organização de mensagem, envio e processamento fica a cargo de $\mu C$. Selecionando para o efeito sistemas de $\mu C$ Arduino, usando para o comando remoto um Arduino FIO e para unidade do veículo um Arduino Mega.



\begin{figure}[h!]
        \centering
        \begin{subfigure}[c]{0.3\textwidth}
                \centering
                \includegraphics[scale=1.2]{Imagens/fio_frente}
                \caption{Arduino Fio}
                \label{fig:fio_comando}
        \end{subfigure}
        ~ %add desired spacing between images, e. g. ~, \quad, \qquad etc.
          %(or a blank line to force the subfigure onto a new line)
        \begin{subfigure}[c]{0.3\textwidth}
                \centering
                \includegraphics[scale=0.3]{Imagens/xbee_pro}
                \caption{Xbee Pro S2B}
                \label{fig:xbee_comando}
        \end{subfigure}
        \caption{Imagens do Sistema a ser implementado no comando E-Stop.}\label{fig:arduino_xbee_comando}
\end{figure}

O sistema a implementar na unidade do veículo baseia-se no do comando remoto, apenas substituindo as placas de $\mu C$; esta escolha deve-se ao poder computacional do $\mu C$ do comando remoto não ser suficiente para processamento das mensagens enviadas, mas esse tema será mais aprofundado adiante.

\begin{figure}[h!]
        \centering
        \begin{subfigure}[c]{0.3\textwidth}
                \centering
                \includegraphics[scale=0.09]{Imagens/arduino_mega}
                \caption{Arduino Mega}
                \label{fig:mega_carro}
        \end{subfigure}
        ~ %add desired spacing between images, e. g. ~, \quad, \qquad etc.
          %(or a blank line to force the subfigure onto a new line)
        \begin{subfigure}[c]{0.3\textwidth}
                \centering
                \includegraphics[scale=0.2]{Imagens/xbeepro_rpsma}
                \caption{Xbee Pro S2B rpsma}
                \label{fig:xbee_carro}
        \end{subfigure}
        \caption{Imagens do Sistema a ser implementado no AtlasCar para o  E-Stop.}\label{fig:arduino_xbee_carro}
\end{figure}

%###############################################3
%#		FUNCIONAMENTO DO E-STOP
%###############################################



\subsection{Funcionamento do E-Stop}\label{subsec:funcionamento}
O funcionamento do sistema a implementar com os componentes escolhidos anteriormente, é o seguinte:
\begin{itemize}
\item O comando com três modos de atuação RUN, PAUSE e DISABLE, cuja ativação tem de ser traduzida de alguma forma para o comando remoto, ou seja, através de botões que estão ligados a entradas digitais $\mu C$.
\item Depois de interpretada a entrada digital que se encontra ativa, é construída uma mensagem, para ser enviada para a unidade do veículo.
\item A mensagem chega à unidade e aí é interpretada, ativando ou desativando as saídas correspondentes ao comando que é recebido.
\item Em seguida a unidade do carro faz uma verificação das portas que se encontram ativas, e constrói uma mensagem para ser devolvida ao comando remoto.
\item A mensagem que chega ao comando remoto é interpretada e é ativado um \textit{led} correspondente ao estado E-Stop, isto para ser possível informar o utilizador do estado do E-Stop.  
\end{itemize}

Sendo a figura \ref{fig:esq_estop}, o esquema do funcionamento do E-Stop

\begin{figure}[h!]
        \centering
        
                \includegraphics[scale=0.4]{Imagens/esquemacomunicacoes}
                \caption{Esquema de funcionamento do E-Stop}
                \label{fig:esq_estop}
      
\end{figure}
\pagebreak

%###############################################3
%#		SEC: CONFIGURAÇÃO DO SISTEMA
%###############################################


 \section{Configuração do sistema}\label{sec:conf_sistema}
 
 
 Nesta seção serão explicados todos os procedimentos e rotinas implementadas para a configuração do sistema.
 %\textbf{Será que é preciso por as configurações dos xbee's????}
 %\newline
% \textbf{As linhas que se cortaram no carro tem de se mostrar}
 
 \subsection{Rotinas de segurança}\label{subsec:rotina_seguranca}
 %\textbf{por aqui todas as seguranças que foram implementadas no sistema para prevenir falhas}
 Um sistema de segurança tem de ser fiável, não podendo falhar ou dar instruções erradas, para isso não acontecer neste caso em concreto foram introduzidas no sistema algumas rotinas de segurança, procurando dar ronutex ao sistema de E-Stop.\newline
\begin{description}
\item[E-Stop independente de software] \hfill \\
  Uma das medidas tidas em linha de conta para implementação deste sistema, foi de alguma forma conseguir que este fosse o mais independente possível do controlo já existente no AtlasCar, tentando que não dependesse, ao máximo, de rotinas de processamento internas do veículo. A única rotina que se depende para a ativação do E-Stop é a de emergência do PLC,\citep{tese_do_rocha_2011}, que quando ativada imobiliza o veículo. 
  \item[Envio de CRC \textit{cyclic redundancy check}] \hfill \\
   Cada mensagem enviada tem um código de verificação para garantir que esta chega ao destino sem erros de informação, e que todos os bits são enviados.

  \item[Falha na comunicação] \hfill \\
  Em caso de perda de comunicação o modo de \textbf{PAUSE} é ativado na unidade do veículo, enquanto no comado remoto todos os leds são acesos, alertando o utilizador para o problema. Entende-se como perda de comunicação entre módulos, a não confirmação de um CRC durante dois segundos de atividade (sendo este tempo configurável). 
  
  
%      ou seja, um tempo em que tanto no comando ou no carro se deixa de receber mensagens, rotinas de segurança são ativas, no lado do carro caso este não receba mensagens novas, e não basta um bit, necessita de uma mensagem completa para a considerar uma mensagem nova, num espaço de dois segundos o modo de pause é ativado. No comando se também não receber uma mensagem nova no espaço de dois segundo todas as luzes presentes no comando são acesas, alertando o utilizador. O tempo de ação em caso de falha é configurável.}

  \item[Taxa de transmissão de mensagens] \hfill \\
  As mensagens são trocadas entre os elementos do sistema a uma taxa de 5 Hz, foi escolhido este valor pois é o ponto de equilibrio para o tempo de atuação no carro, que se quer o mais rápido possível, e o tempo de interpretação de mensagens por parte dos $\mu C$.
   
   \item[Mensagens Dinâmicas] \hfill \\
  As mensagens enviadas do comando para o carro e vice-versa são cadeias de carateres, que contêm a informação necessária para serem tomadas ações.  Mesmo que a informação a ser transmitida entre dispositivos seja repetida, a string enviada nunca é igual; tornando o \textit{CRC} diferente em cada mensagem evitando falhas, a descrição das mensagens trocadas pode ser consultada \ref{subsec:mensagens}
  
  
   \item[Ações a tomar] \hfill \\
As ações a tomar por parte do elemento recetor de uma mensagem, só são efetuadas depois da verificação \textit{CRC}.



\end{description}
 
%%\begin{table}[!h]
%%\centering
%%	\begin{tabular}{c  c  c}
%%	\hline
%%		\textbf{Modo de comunicação} & \textbf{Rx / Tx} & \textbf{Alcance}  \\ \hline
%%		Xbee Pro S2 & totalmente configurável &  120m (out)  \\ 
%%		Xbee Pro  868 MHz & totalmente configurável & 20 km (out) \\ 
%%		Modulo RC & Sistema fechado  & 500m (out) \\
%%	\end{tabular}
%%	\caption{Comparação entre os vários sistemas para possível implementação}
%%	\label{tbl:comp_sist}
%%\end{table}


%###############################################
%#		SEC: ESTRUTURA DAS MENSAGENS
%###############################################
\subsection{Estrutura das mensagens}\label{subsec:mensagens}
Para ser trocada entre sistemas a informação tem de ser organizada de forma a poder ser transmitida numa \textit{string}, para quando interpretada uma mensagem a ação certa seja tomada.
\newline
Assim a mensagem enviada do comando para o carro é uma \textit{string} com o seguinte formato




\begin{itemize}

\tikzstyle{bit} = [minimum width=0.5cm, minimum height=2em, outer sep=0pt, draw=black, semithick]
\tikzstyle{textonly} = [minimum width=0.5cm, minimum height=1.5em, semithick]
\item [] \tikz{ \node [bit,fill=blue!20] at (0,0) (b1_1) {0x02};
\node [bit, anchor=west,fill=blue!20] at (b1_1.east) (b1_2) {STR1};
\node [bit, anchor=west,fill=red!20] at (b1_2.east) (b1_3) {COUNT};
\node [bit, anchor=west,fill=blue!20] at (b1_3.east) (b1_4) {STR1};
\node [bit, anchor=west,fill=red!20] at (b1_4.east) (b1_5) {ESTOP-STAT};
\node [bit, anchor=west,fill=blue!20] at (b1_5.east) (b1_6) {STR3};
\node [bit, anchor=west,fill=red!20] at (b1_6.east) (b1_7) {BAT-VAL};
\node [bit, anchor=west,fill=red!20] at (b1_7.east) (b1_8) {CRC16};
\node [bit, anchor=west,fill=blue!20] at (b1_8.east) (b1_9) {0x03};
 }

\begin{description}
\item [] \tikz{ \node [bit,fill=blue!20] at (0,0) (b1_1) {0x02};} \hfill \\
Caratere com o qual se dá início à string para se poder marcar o início de uma string e o fim.

\item[] \tikz{ \node [bit,fill=blue!20] at (0,0) (b1_1) {STR1};} \hfill \\
\textit{String: " Hello "}Elemento presente para separação da mensagem a enviar.

\item[] \tikz{ \node [bit,fill=red!20] at (0,0) (b1_1) {COUNT};} \hfill \\
Esta é uma variável muito importante na \textit{string} a construir; trata-se de um contador que a cada ciclo de código no comando remoto é incrementado. Implementando assim um sistema de segurança, pois o string a enviar é alterada a cada ciclo.

\item[]\tikz{ \node [bit,fill=blue!20] at (0,0) (b1_1) {STR2};} \hfill \\
\textit{String: " e-stop "} presente para separação da mensagem a enviar. 

\item[] \tikz{ \node [bit,fill=red!20] at (0,0) (b1_1) {ESTOP-STAT};} \hfill \\
Variável em que é inserido o estado do E-stop para ser transmitido para o carro
\begin{itemize}
\item \textit{15} - corresponde ao estado \textbf{RUN} do E-stop
\item \textit{25} - corresponde ao estado \textbf{PAUSE} do E-stop
\item \textit{35} - corresponde ao estado \textbf{DISABLE} do E-stop
 
\end{itemize}
Assim quando a mensagem é tratada a ação é tomada consoante o estado que é enviado para o carro. 
\item[] \tikz{ \node [bit,fill=blue!20] at (0,0) (b1_1) {STR3};} \hfill \\
\textit{String: " bat "} presente para separação da mensagem a enviar.

\item[] \tikz{ \node [bit,fill=red!20] at (0,0) (b1_1) {BAT};} \hfill \\
 Variável com o valor medido na entrada analógica referente ao divisor resistivo colocado no $\mu C$ do comando remoto para saber o estado da bateria\ref{subsec:comando_estop}.
 
 \item [] \tikz{ \node [bit,fill=red!20] at (0,0) (b1_1) {CRC16};} \hfill \\
Onde se encontra o \textit{Cyclic redundancy check}(verificação cíclica redundante), que é um código de deteção de erros nas mensagens, é calculado com base nos carateres da \textit{string} gerando uma string em \textit{HEX} que quando a mensagem é recebida, é calculado novamente para verificar se algum caratere da mensagem foi perdido durante a transmissão da mesma.
 \item[] \tikz{ \node [bit,fill=blue!20] at (0,0) (b1_1) {0x03};} \hfill \\
Caratere com o qual se termina a \textit{string} a enviar.
 
 
 
\end{description}
\end{itemize}




À semelhança do das mensagens trocadas entre o comando remoto e unidade do veiculo, também a unidade do veículo envia mensagens de estado para o comando remoto tendo a mensagem trocada a seguinte forma:

\begin{itemize}
\tikzstyle{bit} = [minimum width=0.5cm, minimum height=2em, outer sep=0pt, draw=black, semithick]
\tikzstyle{textonly} = [minimum width=0.5cm, minimum height=1.5em, semithick]
\item [] \tikz{ \node [bit,fill=blue!20] at (0,0) (b1_1) {0x02};
\node [bit, anchor=west,fill=red!20] at (b1_1.east) (b1_2) {COUNT};
\node [bit, anchor=west,fill=yellow!20] at (b1_2.east) (b1_3) {E-STOP};
\node [bit, anchor=west,fill=red!20] at (b1_3.east) (b1_4) {VAR1};
\node [bit, anchor=west,fill=red!20] at (b1_4.east) (b1_5) {VAR2};
\node [bit, anchor=west,fill=red!20] at (b1_5.east) (b1_6) {VAR3};
\node [bit, anchor=west,fill=red!20] at (b1_6.east) (b1_7) {CRC16};
\node [bit, anchor=west,fill=blue!20] at (b1_7.east) (b1_8) {0x03};
 }
\begin{description}

\item[]\tikz{ \node [bit,fill=blue!20] at (0,0) (b1_1) {0x02};} \hfill \\
Caratere com o qual se dá início à string para se poder marcar o início de uma string.

\item[]\tikz{ \node [bit, anchor=west,fill=red!20] at (0,0) (b1_1) {COUNT};} \hfill \\
Esta é uma variável muito importante na \textit{string} a construir; trata-se de um contador que a cada ciclo de código no comando remoto é incrementado. Implementando assim um sistema de segurança, pois o string a enviar é alterada a cada ciclo.



\item[]\tikz{ \node [bit, anchor=west,fill=yellow!20] at (0,0) (b1_1) {E-STOP};} \hfill \\
\textit{String} com o estado do e-stop, para ser enviado para o comando
\begin{itemize}
\item \textit{resume} - corresponde ao estado \textbf{RUN} do E-stop
\item \textit{pause} - corresponde ao estado \textbf{PAUSE} do E-stop
\item \textit{stop} - corresponde ao estado \textbf{DISABLE} do E-stop

\end{itemize}
\item[]\tikz{ \node [bit, anchor=west,fill=red!20]at (0,0) (b1_1) {VAR1};
\node [bit, anchor=west,fill=red!20] at (b1_1.east) (b1_2) {VAR2};
\node [bit, anchor=west,fill=red!20] at (b1_2.east) (b1_3) {VAR3};} \hfill \\

Espaço disponibilizado para futura monitorização de variáveis do Atlascar, não estando neste momento implementadas. Sendo uma das ideias iniciais a introdução de um \textit{lcd} para monitorização do estado da maquina.



\item[]\tikz{ \node [bit, anchor=west,fill=red!20] at (0,0) (b1_1) {CRC16};} \hfill \\
Onde se encontra o \textit{Cyclic redundancy check}(verificação cíclica redundante), que é um código de deteção de erros nas mensagens, é calculado com base nos carateres da \textit{string} gerando uma string em \textit{HEX} que quando a mensagem é recebida, é calculado novamente para verificar se algum caráter da mensagem foi perdido durante a transmissão da mesma.

\item[]\tikz{ \node [bit, anchor=west,fill=red!20] at (0,0) (b1_1) {0x03};} \hfill \\
Caráter com o qual se termina a \textit{string} a enviar.

\end{description}
\end{itemize}



%###############################################3
%#		SUBSEC: CONFIGURAÇÃO DOS XBEE'S
%###############################################


\subsection{Configuração dos Módulos Xbee}\label{sub:conf_xbee}
Os módulos Xbee são dispositivos de comunicação sem fios com diversas possibilidades de configuração. 
\newline
Neste projeto os dois módulos foram configurados para comunicarem entre si, evitando assim tentativas de conexão a outros elementos o que poderia originar interferências. Foram configurados usando o software \textit{X-CTU}, disponibilizado pela \textit{DIGI} \citep{xbee_site}, o qual permite configurar todos os campos necessários para a comunicação entre os módulos. Todos os passos de configuração podem ser reproduzidos recorrendo ao tutorial que se encontra em anexo \ref{appendix:conf_xbee}.
\newline
As configurações possíveis de implementar com estes sistemas são inúmeras, e esse também foi um dos fatores que originou a escolha. As configurações usadas estão descritas na tabela \ref{tbl:conf_xbee}. 


\begin{table}[h]
  \centering
  \begin{tabular}[!h]{  c  c  c }
    \hline
    Campo & Comando Remoto & Unidade do Atlascar \\ \hline
    
    
    \textbf{Modo} & Coordinator AT & End Device AT
    \\ \hline
    \textbf{ID}   &	1234  & 1234
    \\ \hline
    \textbf{SC} & FFFF & FFFF
    \\ \hline
    \textbf{SD} & 3 & 3
      \\ \hline
    \textbf{ZS} & 0 & 0
      \\ \hline
      \textbf{NI} & COMANDO & ATLASCAR
      \\ \hline
    \textbf{DH} & 13A200 & 13A200
	  \\ \hline
    \textbf{DL} & 408CBFFB & 40918B44
      \\ \hline
    \textbf{BD} & 4(19200 bit/s) & 4(19200 bit/s)
         \\ \hline
    \textbf{NB} & 0(sem paridade) & 0(sem paridade) 
      \\ \hline
  \end{tabular}
  \caption{Tabela dos campos usados para configuração dos \textit{Xbee's}}\label{tbl:conf_xbee}
\end{table}







%-------------------------------
%	Implementação do E-STOP
%----------------------------
\section{Implementação do E-Stop}\label{sec:implementação}
Nesta seção apresenta-se todo o trabalho desenvolvido para a implementação dos sistemas e procedimentos descritos nas seções anteriores. tanto na instalação do sistema no comando do E-Stop bem como no módulo instalado no AtlasCar.





%---------------------------------------------
% Secção do comando
%---------------------------------------------
\subsection{Comando do E-Stop}\label{subsec:comando_estop}
O AtlasCar pode ser controlado à distância por um comando da Xbox fig:\ref{fig:comando_xbox}.
\begin{figure}[h!]
        \centering
        
                \includegraphics[scale=0.30]{Imagens/comandoxbox}
                \caption{Comando usado no controlo remoto do Atlascar}
                \label{fig:comando_xbox}
      
\end{figure}
%\pagebreak
Assim depois de alguma pesquisa encontrou-se uma possível solução para o problema: o comando da Xbox tem um Chatpad fig:\ref{fig:comando_xbox_chatpad}, que pode ser adaptado para o sistema em causa. 


\begin{figure}[h!]
        \centering
                \includegraphics[scale=0.25]{Imagens/xboxchatpadcontroller}
                \caption{Comando Xbox com o chatpad}
                \label{fig:comando_xbox_chatpad}
      
\end{figure}

Assim pensou-se numa possível integração de todos os componentes usando o \textit{ChatPad Xbox 360}, e foi elaborado uma maqueta onde se integram todos os comandos e \textit{led's}. A solução inicial previa a inclusão de um \textit{LCD} no comando para disponibilizar algumas variáveis ao utilizador.
\begin{figure}[h!]
        \centering
                \includegraphics[scale=0.25]{Imagens/prototipo}
                \caption{Protótipo inicial do comando E-Stop para integração no AtlasCar}
                \label{fig:prototipo_estop}
\end{figure}
 
 Como o \textit{Chatpad} é um elemento com espaço reduzido para albergar os componentes necessários para implementação do E-Stop, então o espaço teve de ser aumentado, recorrendo-se  para isso a uma peça feita à medida, encontrando-se o seu desenho técnico em anexo\ref{anexo:desenho_comando}.\newline
 
 
 

A organização dos elementos que compõem o comando E-Stop foi inicialmente pensada da seguinte forma \ref{fig:primeiro_teste_estop}.

 \begin{figure}[h!]
        \centering
                \includegraphics[scale=0.1]{Imagens/placateste}
                \caption{Primeiro teste para organização dos elementos}
                \label{fig:primeiro_teste_estop}
\end{figure} 
 
 Tendo em conta que o sistema a desenvolver seria para utilização humana, além dos aspetos funcionais, teve-se em linha de conta a ergonomia do sistema, porque sendo um sistema de emergência os comandos teriam de ser posicionados num local de fácil acesso. Assim depois de criação do prototipo do comando, no laboratório foi dado o sistema a alguns colegas para testarem a disposição dos botões e dos \textit{leds}.
 \newline
Sendo que depois de debatermos os pontos de vista de cada um e qual a melhor disposição dos controlos, sendo unanime que seria mais facil a monutação entre o modo de \textit{PAUSE} e \textit{RESUME} deveria ser com um movimento vertical. Chegando-se assim ao resultado final\ref{fig:comando_final}.
  \begin{figure}[h!]
        \centering
                \includegraphics[width=8cm]{Imagens/comando_final}
                \caption{Comando remoto final}
                \label{fig:comando_final}
\end{figure} 

 
 
 %---------------------------------------
 %	Esquemas Eletricos
 %---------------------------------------
 \subsubsection{Esquemas elétricos}\label{subsubsec:comando_esquemas}
 O sistema implementado no comando é composto pelos seguintes elementos
 \begin{itemize}
 \item Botão de emergência -  quando pressionado ativa o modo \textit{DISABLE}
 \item Botão de 2 posições - para alternar entre o modo de \textit{RUN} e \textit{PAUSE}
 \item \textit{LED's}; verde (\textit{RUN}); amarelo (\textit{PAUSE}); vermelho (\textit{DISABLE})
 \item 3 Resistências de 120 Ohm - para polarizar os \textit{LED's}
 \item 2 Resistências de 430 Ohm - para fazer um divisor resistivo
 \end{itemize}
 
 A implementação de um divisor resistivo no comando remoto, prende-se com o fato da alimentação ser efetuada através de uma bateria, sendo necessária a monitorização do valor da tensão da bateria. Assim a única forma de o fazer é recorrendo a um divisor resistivo que se encontra conetado a uma entrada analógica do $\mu C$. Para o valor das resistencias foram tidos vários fatores em consideração o mais importante o consumo energético que isso implicaria para o sistema, mas também era necessário passar corrente suficiente para poder ser feita a leitura na porta analógica do  $\mu C$.
\newline
 
 O esquema elétrico dos elementos que constituem o comando do E-Stop podem ser consultados na figura seguinte \ref{fig:esquema_comando}.
 \begin{figure}[h!]
        \centering
                \includegraphics[width=12cm]{Imagens/esquema_comando}
                \caption{Esquema eléctrico do comando remoto}
                \label{fig:esquema_comando}
\end{figure}

 

 
 Depois da verificação do esquema elétrico e teste em bancada do sistema, passou-se para a fase de execução do projeto final, com o elemento de ampliação do \textit{Chatpad}, modelado e maquinado com os furos corretos para introdução dos elementos do comando


 \begin{figure}[h!]
        \centering
                \includegraphics[scale=0.1]{Imagens/comando_cabo}
                \caption{Comando E-Stop implementado no AtlasCar com o cabo de alimentação}
                \label{fig:comando_final_1}
\end{figure}

\begin{figure}[h!]
\centering
        \begin{subfigure}[c]{0.4\textwidth}
        \centering
                \includegraphics[width=6cm]{Imagens/tras_comando}
            
                 \end{subfigure}
        ~ 
 \begin{subfigure}[c]{0.4\textwidth}
                \includegraphics[width=6cm]{Imagens/comando_montado_comp}
               
                 \end{subfigure}
      
        \caption{Imagens de diferentes prespetivas do comando remoto}\label{fig:comando_remoto}        
        
\end{figure}

\pagebreak



%-----------------------------------------------
%	E-Stop no AtlasCar
%------------------------------------------------

\subsection{E-Stop no Atlascar}\label{sec:estop_atlascar}
Para o módulo instalado no AtlasCar e como descrito na secção \ref{sec:sist_implem}, usou-se um Arduino Mega com o módulo Xbee. O sistema no carro terá interromper algumas linhas já existentes no carro, descritas na secção \ref{sec:linhas_existentes_rocha}, como a linha responsável pela ativação da emergência no PLC e a linha de corte de energia ao motor.
\newline
A escolha destas duas linhas prende-se com o fato de serem a que melhor se adaptam às funcionalidades do E-Stop, pois como explicado na seção \ref{sec:estudo_estop}, o modo \textbf{PAUSE} terá apenas de imobilizar o veículo enquanto o \textbf{STOP} terá além de imobilizar desligar a fonte de propulsão do veículo.
\newline
A linha de emergência será cortada quando o modo de \textbf{PAUSE} for ativado, fazendo com que o carro seja imobilizado e podendo novamente voltar à ação quando esta deixar de estar interrompida. Enquanto o modo \textbf{STOP} além de interromper a linha de emergência do modo \textbf{PAUSE}, também interrompe a linha de alimentação do motor do veículo.
\newline




\subsubsection{Relés de atuação }\label{subsubsec:optocouplers}
	Para o corte das linhas usou-se relés, outras alternativas foram pesnadas, mas a que melhor se adequava ao problema em causa eram relés.
	\newline
	Para a criação do sistema de atuação com relés foi necessário o seguinte material:
	\begin{itemize}
	 \item Relés NO(normaly open);
	 \item Resistencias
	 \item Diodos
	\end{itemize}

	
	
 
 
 Em seguida será feita uma descrição de todos os componentes usados no sistema de atuação que se encontra implementado no veículo, bem como o que motivou a sua escolha.
 
\begin{description}
\item[\textit{Optocoupler}] \hfill \\
É um componente eletrónico capaz de comutar linhas com tens~ao elevada eletronicamente, funciona como isolamento galvanico, ou seja, é capaz de isolar o circuito comutador, que deve ser de baixa tensão, do circuito comutado, que pode ter tensões elevadas.  



\item[\textit{Relés}] \hfill \\
\textbf{o uso de relés para comutar as linhas mas para serem comutados os reles precisam de mais tensao do que os 5V}




\item[\textit{Resistencias}] \hfill \\
\textbf{descrever o porque se usar aquelas resistências por causa do optocoupler utilizar led's que tem de ter uma tensão aos terminais de 1.2V e a saída do Arduíno é de 5V para isso tem de se por umas resistências para baixar a tensão aos terminais para não existir sobretensão aos terminais dos \textit{led's}}

\item[\textit{Díodos}] \hfill \\
\textbf{os díodos para descarregar tensão em caso de retorno para não queimarem nenhum componente}



\end{description}





\subsubsection{Sistema manual em caso de falha do E-Stop}
Como as linhas em que o E-Stop vai atuar foram interrompidas e os relés de atuação são do tipo NO(\textit{Normaly Open} normalmente aberto), ou seja se não forem alimentados os relés interrompem o circuito, fazendo com que tanto a linha de emergência como a linha de alimentação do motor fiquem interrompidas e consequentemente o carro pode não funcionar corretamente. Para evitar que em caso de falha do sistema E-Stop o carro não funcione foram colocados 2 interruptores, que em caso de falha do E-Stop podem ser comutados fechando as linhas que estavam interrompidas pelos relés.
\textbf{por aqui alguma fotos da caixa do carro com os botões}









%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%ESTOU AQUI CONTINUAR



\subsubsection{\textit{Shield} para o Xbee}\label{subsubsec:shield}

Por motivos alheios ao decorrer normal desta dissertação, não foi possível em tempo útil integrar um \textit{Shield} para o Arduino Mega onde seria integrado o Xbee S2B, assim teve-se de desenvolver uma placa onde a comunicação do Arduino com o Xbee e vice-versa fosse possível. Assim depois de perceber quais os pinos necessários para a comunicação criou-se um em placa furada\ref{fig:shield_mega}.




\begin{figure}[h!]
        \centering
        \includegraphics[width=6cm]{Imagens/conjunto_shield_mega}
        \caption{Shield do sistema E-Stop instalado no carro}\label{fig:shield_mega}        
\end{figure}

\subsubsection{O uso de \textit{optocoupler}}\label{subsubsec:optocouplers}
 Em seguida será feita uma descrição de todos os componentes usados no sistema de atuação que se encontra implementado no veículo, bem como o que motivou a sua escolha.
 
\begin{description}
\item[\textit{Optocoupler}] \hfill \\
É um componente eletrónico capaz de comutar linhas com tens~ao elevada eletronicamente, funciona como isolamento galvanico, ou seja, é capaz de 
isolar o circuito comutador, que deve ser de baixa tensão, do circuito comutado, que pode ter tensões elevadas.  



\item[\textit{Relés}] \hfill \\
\textbf{o uso de relés para comutar as linhas mas para serem comutados os reles precisam de mais tensao do que os 5V}




\item[\textit{Resistencias}] \hfill \\
\textbf{descrever o porque se usar aquelas resistências por causa do optocoupler utilizar led's que tem de ter uma tensão aos terminais de 1.2V e a 
saída do Arduíno é de 5V para isso tem de se por umas resistências para baixar a tensão aos terminais para não existir sobretensão aos terminais dos \textit{led's}}

\item[\textit{Díodos}] \hfill \\
\textbf{os díodos para descarregar tensão em caso de retorno para não queimarem nenhum componente}



\end{description}





\subsubsection{Sistema manual em caso de falha do E-Stop}
Como as linhas em que o E-Stop vai atuar foram interrompidas e os relés de atuação são do tipo NO(\textit{Normaly Open} normalmente aberto), ou seja se não forem alimentados os relés interrompem o circuito, fazendo com que tanto a linha de emergência como a linha de alimentação do motor fiquem interrompidas e consequentemente o carro pode não funcionar corretamente. Para evitar que em caso de falha do sistema E-Stop o carro não funcione foram colocados 2 interruptores, que em caso de falha do E-Stop podem ser comutados fechando as linhas que estavam interrompidas pelos relés.
\textbf{por aqui alguma fotos da caixa do carro com os botões}

\textbf{cenas várias e variadas}




\clearpage
\thispagestyle{empty}