\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 e a consola de controlo 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 sua imobilização 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 veículo, podendo este retomar novamente ao modo \textbf{RUN} 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  recetor de rádio 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 monitorização de algumas variáveis de sistema do carro, pois o utilizador, estando com 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 específicos 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]{.18\textwidth}
    \centering
     	Modulo de Rádio Modelismo
    \end{minipage}
    &
    \begin{minipage}[c]{.27\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]{.21\textwidth}
\centering     	
     	\includegraphics[width=3cm]{Imagens/futaba_conj}
    \end{minipage}
        &
    \begin{minipage}[c]{.12\textwidth}
    \centering
      500m (em campo aberto)
    \end{minipage}
    
    %\end{minipage}
\\ \hline
	\begin{minipage}[c]{.18\textwidth}
     	
     	\centering
     	XBee-PRO® S2B
    \end{minipage}
    &
    \begin{minipage}[c]{.27\textwidth}
		
     	Totalmente configurável.
%     	\newline
     	Comunicação digital
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.21\textwidth}
    \centering
     	\includegraphics[width=3cm]{Imagens/xbee_pro}
    \end{minipage}
        &
    \begin{minipage}{.12\textwidth}
		\centering    	  
    	  90m (\textit{Indoor})
      1500m (em campo aberto)
    \end{minipage}
    \\ \hline

%    \\ \hline
	\begin{minipage}[c]{.18\textwidth}
		\centering     	
     	XBee-PRO® 868
    \end{minipage}
    &
    \begin{minipage}[c]{.27\textwidth}
     	Totalmente configurável.
%     	\newline
     	Comunicação digital.
    \end{minipage}
    	 
    & 
    \begin{minipage}[c]{.21\textwidth}
     	\centering
     	\includegraphics[width=3cm]{Imagens/xbeepro_868}\label{fig:xbee_pro868}
    \end{minipage}
        &
    \begin{minipage}{.12\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, pois o módulo sobre o qual recaí a escolha tem um raio de alcance suficiente para uma segura operação do veículo.
%\pagebreak




%####################################################
%			SISTEMA A IMPLEMENTAR
%######################################################
\section{Sistema a implementar}\label{sec:sist_implem}
Com a escolha efetuada no capítulo anterior 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, foi decidido usar 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 mesmo 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 essa questão será mais aprofundada adiante.

\begin{figure}[H]
        \centering
        \begin{subfigure}[c]{0.3\textwidth}
                \centering
                \includegraphics[scale=0.08]{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.18]{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 A ação do utilizador seleciona um dos seguintes modos do E-Stop (RUN, PAUSE e DISABLE), que é traduzida para o $\mu C$ do comando através da seleção do botão apropriado.
\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 a)comando remoto b) sistema do carro}
                \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 fornecer instruções erradas; para isso não acontecer, neste caso em concreto, foram introduzidas no sistema algumas rotinas de segurança, procurando dar robustez 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 torna-lo o mais independente possível do controlo já existente no AtlasCar, tentando que não dependesse de rotinas de processamento internas do veículo. A única rotina de que se depende para a ativação de um modo 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 na subsecção \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 que 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};
 }

Definição de cada campo da mensagem mostrada anteriormente:
\begin{description}
\item [] \tikz{ \node [bit,fill=blue!20] at (0,0) (b1_1) {0x02};} \hfill \\
Código que dá início à mensagem.

\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 a 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.
 
 \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 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 à mensagem.

\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; seriam variáveis de monitorização para serem apresentadas na consola de controlo. Podem ser usadas para futura expansão do sistema.



\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 para este sistema 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 secção apresenta-se todo o trabalho desenvolvido para a implementação dos sistemas e procedimentos descritos nas secçõ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 figura \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 (figura \ref{fig:comando_xbox_chatpad}), que pode ser adaptado para implementação do 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}

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 figura \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
Depois de debatidos os pontos de vista de cada um e qual a melhor disposição dos controlos, foi unânime que seria mais fácil a comutação entre o modo de \textit{PAUSE} e \textit{RUN} recorrendo a um movimento vertical, bem como seria mais intuitivo a disposição dos leds ser vertical, o que permitia uma melhor consulta do estado. Chegando-se assim ao resultado final figura \ref{fig:comando_final}.
  \begin{figure}[H]
        \centering
                \includegraphics[width=8cm]{Imagens/comando_final1}
                \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 facto 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 ligado a uma entrada analógica do $\mu C$. Para o valor das resistências foram tidos vários fatores em consideração, sendo 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 \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[width=6cm]{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{minipage}{0.48\textwidth}
       \centering
                \includegraphics[height=4.7cm]{Imagens/tras_comando}

       \end{minipage}
       ~
       \begin{minipage}{0.48\textwidth}
       \centering
                \includegraphics[height=4.7cm]{Imagens/comando_montado_comp}
                
       \end{minipage}
\caption{Imagens de diferentes perspetivas do comando remoto}\label{fig:comando_remoto}        
 \end{figure}      


%-----------------------------------------------
%	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á de interromper algumas linhas já existentes, 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 facto de serem as 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{DISABLE} 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{DISABLE} além de interromper a linha de emergência do PLC, também interrompe a linha de alimentação do motor do veículo, desligando-o.
\newline




\subsubsection{Circuitos de atuação }\label{subsubsec:optocouplers}
	Para o corte das linhas usou-se relés; outras alternativas foram pensadas, como transístores, mas a que melhor se adequava ao problema em causa eram relés eletromecânicos. São equipamentos de custo reduzido e robustos. Uma das principais motivações para a escolha dos relés eletromecânicos com contacto normalmente aberto, prende-se com o facto de em caso de falha de energia e perda do controlo remoto o sistema ser capaz de imobilizar o veículo interrompendo as linhas. Também permite que o controlo de atuação sobre as linhas seja totalmente efetuado do lado do $\mu C$. No início de ciclo, por parte do $\mu C$, todos os contactos se encontram abertos, até à ordem de fecho dada pelo $\mu C$, evitando assim que o veículo entre em movimento sem ordem do utilizador.
	\newline
	Para a criação do sistema de atuação com relés foi necessário o seguinte material:
	\begin{itemize}
	\item acoplador ótico;
	 \item Relés NO(normaly open);
	 \item Resistências
	 \item Díodos de proteção
	\end{itemize}

 Em seguida será feita uma descrição de todos os componentes, bem como o que motivou a sua escolha.
 
%\begin{description}
%\item[\textit{Photocoupler}] \hfill \\
\textbf{Opto acoplador}
\newline
Este componente eletrónico foi usado como interruptor. É ativado pelo circuito digital de baixa tensão,  5V(Arduino Mega), e atua sobre a linha de tensão mais elevada 12V(linhas de 
energia do carro). Este componente é um isolador elétrico pois o acoplamento do circuito é efetuado por via ótica, existindo um led(emissor) do lado da linha de baixa tensão e um fototransistor que comuta o circuito de alta tensão.
\newline
Para o dimensionamento do circuito onde este componente se encontra, foram tidos em conta vários fatores, sempre orientados pelo \textit{datasheet} que se encontra no anexo \ref{anexo:datasheet_photo}.
\newline
Para ser usado como interruptor o transístor deve transitar entre o regime de saturação e o de corte. Para isso teve de ser efetuado um cálculo para verificação do regime de atuação do transístor e da potencia dissipada no opto-acoplador.
\newline
Assumindo que se deseja uma tensão de $V_{CE(sat)}=0.4V$ e usando o valor de resistência $R=1.2k\Omega$, valor resistência da bobine do relé,
então a corrente de coletor ($I_C$) é dada pela expressão:
\begin{center}
$V=R.I \Rightarrow I_C = \frac{12-0.4}{1.2} \Rightarrow I_C = 9.67 mA$
\end{center}
Com este valor de corrente no coletor do transístor e o $V_{CE(sat)}$ desejado, recorre-se à figura 12 do \textit{datasheet}, que se encontra em anexo \ref{anexo:datasheet_photo}. Verificando que a corrente do díodo $I_{F}$ deve ser superior a 12 mA. 
 \begin{center}
$ R_D \leq \frac{5-1.2}{12} \Rightarrow R_D \leq 310 \Omega$
\end{center}
Escolheu-se para isso uma resistência de 250 Ohm (R1 e R2)\ref{fig:photo_atuacao}, que garante o funcionamento do sistema para toda a gama de temperaturas desejadas e tendo em conta a tolerância dos componentes.
Com estes valores garante-se também que o valor da potência dissipada é inferior ao limite presente na figura 6 do \textit{datasheet}.
\newline
Os diodos de re-circulação(D1 e D2 figura\ref{fig:photo_atuacao}) são usados para impedir que quando a bobine é comutada, 
a sobretensão de interrupção de circuito danifique o transístor do opto acoplador. 
\newline
%%\newline
%%
%%
%%A tensão que surge aos terminais da bobine, quando esta passa do estado de condução para circuito interrompido, foi calculada obtendo um valor de aproximadamente 155 V. 
%%\newline
%%Este valor foi obtido recorrendo à medição experimental da impedância da bobine, fazendo isso com o recurso a um circuito\ref{fig:circ_bobine}, estes cálculos foram efetuados visto não haver qualquer referencia no \textit{datasheet} do relé a esse valor.
%%\newline
%%O calculo foi efetuado com recurso à medição do desfasamento entre o canal 1 e canal 2 do osciloscópio(CH1 e o CH2 \ref{fig:circ_bobine}), com esse valor e a resolução da seguinte formula em relação ao L, obteve-se o seguinte valor:
%%
%%\begin{center}
%%$\tan(\phi) = \frac{\omega.L.R_1}{(R_1+R_2).R_2+(\omega.L)^{2}}$
%%
%%\end{center}
%%Substituindo na equação os valores de $R_{1}=1k\Omega$,$ R_{2}=1.2 k\Omega$ (valor da resistência interna do relé) e $\omega = 2.\pi.f rad/s$ com f=100 kHz. Obtendo L=0.031 H.  
%%\newline
%%O valor da indutância da bobine foi calculado por uma questão de segurança, para ser conhecido o valor de tensão de comutação da bobine, justificando a utilização de um díodo de recirculação. 
%%O valor da tensão foi estimado com o tempo de comutação do transístor juntamente com a corrente que circula no mesmo, anexo\ref{anexo:datasheet_photo} fig.10, tendo o transístor um tempo de comutação de $\Delta t=20 \mu s$ e $\Delta i = 10 mA$, sendo $v=15,5 V$.
%%
\begin{figure}[H]
        \centering
                \includegraphics[width=10cm]{Imagens/circuito_opto}
                \caption{Circuito elétrico exemplificativo do opto acoplador}
                \label{fig:circ_bobine}
\end{figure}


%\end{description}
 \begin{figure}[H]
        \centering
                \includegraphics[width=10cm]{Imagens/esquema_photo}
                \caption{Esquema elétrico do sistema de atuação, sendo os \textit{inputs} as saídas digitais do $\mu C$}
                \label{fig:photo_atuacao}
\end{figure}
 \begin{figure}[H]
        \centering
                \includegraphics[width=12cm]{Imagens/octocopler_placa}
                \caption{Placa desenvolvida para o sistema de atuação}
                \label{fig:photo_atuacao_circ}
\end{figure}







\subsubsection{\textit{Shield} para o Xbee}\label{subsubsec:shield}
Para os equipamentos Arduino são desenvolvidas placas especificas para comunicação com outros equipamentos, essas placas para integração dão pelo nome de \textit{shield}, neste caso teria de ser usado um \textit{Shield}, existindo vários tipos para comunicação com os diferentes equipamentos como ethernet, xbee, RFID e etc.. Na figura \ref{fig:shield_xbee} está presente um \textit{shield} para integração do xbee no Arduino UNO.
\begin{figure}[H]
        \centering
                \includegraphics[width=6cm]{Imagens/shield_xbee}
                \caption{Exemplo de um \textit{shield} xbee para o Arduino UNO}
                \label{fig:shield_xbee}
\end{figure}

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 para garantir a comunicação do $\mu C$ com o Xbee e vice-versa. Assim depois de perceber quais os pinos necessários para a comunicação criou-se um em placa furada, figura \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{Sistema manual em caso de falha do E-Stop}
As linhas em que o E-Stop vai atuar foram interrompidas com relés do tipo NO (\textit{Normaly Open}, normalmente aberto), ou seja, se não forem alimentados os relés interrompem o circuito. Isto implica 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, uma fotografia da caixa instalada no veículo encontra-se na figura \ref{fig:estop_carro}.
\begin{figure}[H]
        \centering
        \includegraphics[width=14cm]{Imagens/estop_carro}
        \caption{Sistema E-Stop instalado no carro}\label{fig:estop_carro}        
\end{figure}









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






%\clearpage
%\thispagestyle{empty}