controle de trajetórias embarcado - up...o sistema embarcado é responsável por receber as...
TRANSCRIPT
UNIVERSIDADE POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
CURSO DE ENGENHARIA DA COMPUTAÇÃO
ANTONIO JOAQUIM FERREIRA SOARES NETO
Controle de Trajetórias Embarcado
Prof. Valfredo Pilla Junior
Orientador
Curitiba, dezembro de 2010.
iii
UNIVERSIDADE POSITIVO
Reitor: Prof. José Pio Martins
Vice-Reitor: Prof. Arno Antonio Gnoatto
Pró-Reitor de Graduação: Prof. Renato Casagrande
Diretor Acadêmico: Prof. Marcos José Tozzi
Coordenador do Curso de Engenharia da Computação: Prof. Edson Pedro Ferlin
iv
v
Agradecimentos
Agradeço a todos que cooperaram para o desenvolvimento do projeto diretamente
ou indiretamente, colegas de classe, colegas de curso, a todos os professores, e em
especial aqueles que me deram essa oportunidade e trabalharam duro para isso: meus
pais.
vi
vii
SUMÁRIO
LISTA DE ABREVIATURAS E SIGLAS ...................................................... IX
LISTA DE FIGURAS .................................................................................... XI LISTA DE TABELAS ................................................................................. XIII RESUMO ................................................................................................... XV ABSTRACT ............................................................................................. XVII 1 INTRODUÇÃO ........................................................................................... 1
2 ESPECIFICAÇÃO DO PROJETO ............................................................. 3 2.1 Características do Projeto ............................................................................. 3 2.1.1 Requisitos .................................................................................................... 3 2.2 Arquitetura ..................................................................................................... 4 2.2.1 Sistema Usuário .......................................................................................... 4 2.2.2 Sistema Embarcado .................................................................................... 4 2.3 Testes de Validação do Sistema ..................................................................... 5 2.4 Planejamento do Projeto ................................................................................ 5 3 PROJETO .................................................................................................. 7 3.1 Hardware Embarcado .................................................................................... 7 3.1.1 Controlador ................................................................................................. 7 3.1.2 Posicionamento Inercial ............................................................................. 8 3.1.3 Transreceptor wireless ............................................................................... 8 3.1.4 Driver de Potência ....................................................................................... 9 3.2 Firmware ........................................................................................................ 10 3.2.1 Cálculo da Posição Instantânea ............................................................... 10 3.2.2 Cálculo da Interpolação ........................................................................... 12 3.2.3 Controle do Veículo .................................................................................. 15 3.3 Protocolo de Comunicação entre os transreceptores ................................ 15 3.4 Hardware Usuário ......................................................................................... 16 3.5 Software Usuário ........................................................................................... 17 4 RESULTADOS ......................................................................................... 19 4.1 Validação do Algoritmo de Interpolação.................................................... 19 4.2 Validação da Comunicação Sem-fio ........................................................... 22 4.3 Validação do Controle do Veículo ............................................................... 23 4.4 Validação do Algoritmo de Posicionamento Inercial ................................ 25 5 CONCLUSÃO .......................................................................................... 29 REFERÊNCIAS........................................................................................... 31 ANEXO A .................................................................................................... 33 ANEXO B .................................................................................................... 41 ANEXO C .................................................................................................... 53
viii
ix
LISTA DE ABREVIATURAS E SIGLAS
ARM Advanced RISC Machine (Maquina RISC Avançada)
RISC Reduced Instruction Set Computer (Computador com Set de Instruções
Reduzido)
E/S Entrada/Saída
V Volts
A Ámpere
m mili
x
xi
LISTA DE FIGURAS
Figura 2.1: Arquitetura do Sistema..............................................................................4
Figura 2.2: Fluxograma................................................................................................5
Figura 2.3: Cronograma...............................................................................................6
Figura 3.1: Hardware Embarcado...............................................................................7
Figura 3.2: Esquemático Acelerômetro.......................................................................8
Figura 3.3: Circuito Ponte-H.......................................................................................9
Figura 3.4: Fluxograma da Leitura do Acelerômetro................................................11
Figura 3.5: Fluxograma do cálculo de Interpolação..................................................12
Figura 3.6: Encontrar ponto F....................................................................................13
Figura 3.7: Relação Trigonométrica...........................................................................14
Figura 3.8: Curva Interpolada....................................................................................14
Figura 3.9: Controle do Veículo................................................................................15
Figura 3.10: Interface Humano-Computador............................................................17
Figura 4.1: Curva Teste 01........................................................................................19
Figura 4.2: Curva Teste 02........................................................................................20
Figura 4.3: Curva Teste 03........................................................................................21
Figura 4.4: Movimentação Veículo...........................................................................24
Figura 4.5: Medidas do Veículo..............................................................................25
Figura 4.6: Trajetória Calculada x Trajetória Controlada.........................................26
Figura 4.7: Trajetória Calculada x Trajetória Realizada...........................................27
xii
xiii
LISTA DE TABELAS
Tabela 2.1: Resumo dos Recursos...............................................................................6
Tabela 3.1: Ligação entre placa eLPC64 e Processador.............................................7
Tabela 3.2: Ligação entre eLPC64 e Acelerômetro....................................................8
Tabela 3.3: Interligação ZigBee e Controlador..........................................................9
Tabela 3.4: Interligação Ponte-H e Controlador.......................................................10
Tabela 4.1: Tabela Teste 01......................................................................................20
Tabela 4.2: Tabela Teste 02......................................................................................21
Tabela 4.3: Tabela Teste 03......................................................................................22
Tabela 4.4: Leituras Offset........................................................................................25
Tabela 4.5: Tabela Valores Lidos Posicionamento Inercial.....................................27
xiv
xv
RESUMO
Um sistema de orientação é importante para um sistema móvel se localizar sem
necessitar de referências externas, como o sistema de GPS (Global Positioning System)
que em áreas fechadas ou em condições desfavoráveis do tempo não tem uma boa
visibilidade dos satélites. Este trabalho se dedica a um controle de trajetórias embarcado
que controla os movimentos do veículo de acordo com os parâmetros de entrada em um
ambiente previamente mapeado. As trajetórias estabelecem uma conexão através de
uma curva interpolada entre dois pontos, podendo esta curva ser uma reta ou um arco,
artifício necessário para contornar obstáculos conhecidos. A partir das coordenadas de
chegada escolhidas pelo usuário em uma tela de configuração, os dados são enviados
através de uma comunicação serial para o microcontrolador. Durante o percurso do
veículo, o sistema de posicionamento inercial estima as coordenadas atuais do veículo
para se ter um melhor controle e para a validação do resultado obtido.
Palavras-Chave: Acelerômetro, Interpolação de Curvas, Posicionamento Inercial,
Cálculo de Trajetória, Veículo Rádio-Controlado.
xvi
xvii
ABSTRACT
An orientation system is important to a mobile system for locating himself without
the requirement of external references, as the GPS (Global Positioning System) does not
have good visibility of satellites in enclosed areas or in adverse weather conditions. This
paper focus on an embedded trajectory controller that performs the vehicle's movements
according to input parameters in a previously mapped environment. The trajectories
establish a connection through interpolated curve between two points, this curve may be
a straight line or a bowed curve, a subterfuge necessary to circumvent known obstacles.
From destination coordinates chosen by the user in a configuration screen, the data is
sent via serial communication to the microcontroller. During the course of the vehicle,
the inertial positioning steering system the current coordinates of the vehicle to have
better control and to validate the outcome.
Keywords: Accelerometer, Interpolation Curves, Inertial Positioning, Trajectory
Calculation, Radio-Controlled Vehicle.
1
1 INTRODUÇÃO
Um sistema de orientação é importante para um sistema móvel se localizar sem
necessitar de referências externas, podendo essas referências externas serem um
comando enviado por uma pessoa ou um computador. Este sistema é importante em
diversas áreas, como a área industrial (FERREIRA, 2004), busca de sobreviventes em
acidentes (WOLF et al, 2003), e atualmente tem-se uma ampla pesquisa para controle
autônomo de veículos pessoais (OSÓRIO et al, 2001).
Este trabalho trata-se de um projeto de controle de trajetórias embarcado. O controle
de trajetórias é usado para direcionar o movimento de um veículo elétrico com
configuração remota em um ambiente previamente mapeado. Definida uma trajetória
(reta ou curva) determinam-se as ações de movimentação do veículo. As trajetórias
estabelecem uma conexão através de curva interpolada entre dois pontos do mapa. A
curva pode ser uma reta, um arco ou composição de arcos, artifício necessário para
contornar obstáculos conhecidos. A partir das coordenadas de partida e chegada e da
seleção da curva (ou curvas) um algoritmo de interpolação determina a trajetória do
veículo. O cálculo de interpolação, que é uma forma de representar dados em uma
função, é realizado para se ter a aproximação da função da curva desejada que não se
pode ter previamente (BARROSSO et al, 1987), pois pode-se gerar curvas diferentes
para cada tipo de situação com poucos dados de entrada.
Durante o percurso do veículo o sistema de posicionamento inercial (CAMPOS et
al, 2003) faz a aproximação das coordenadas atuais para um melhor controle do veículo
assim como para validação do resultado obtido. O Controlador é embarcado em
microcomputador dedicado com microcontrolador ARM, que tem como características
principais o baixo consumo de energia e o alto poder de processamento (SOUSA,
2006), onde a trajetória de um veículo configurado remotamente é realizada segundo a
trajetória definida pela equação de interpolação.
Palavras-Chave: Acelerômetro, Interpolação de Curvas, Posicionamento Inercial,
Cálculo de Trajetória, ARM, Veículo Rádio-Controlado.
2
3
2 ESPECIFICAÇÃO DO PROJETO
O controle de trajetórias embarcado viabiliza a locomoção de um veículo
configurado remotamente em um ambiente previamente mapeado, de forma a desviar de
obstáculos e assim chegar à coordenada determinada previamente. Com isto, tem-se um
veículo capaz de se locomover sem nenhuma interferência externa, fazendo um
processamento completamente autônomo.
Este pode ser utilizado onde a atuação de eventos externos (controle humano e
outros) não pode ser utilizada ou onde não é possível fazê-lo, desta forma o controle de
trajetórias embarcado comanda o veículo em um ambiente predeterminado para chegar
a um destino final, podendo ser este destino um ambiente de difícil acesso ou até
mesmo um local de grande risco para seres-humanos.
2.1 Características do Projeto
Processamento de cálculo de curvas por interpolação.
Controle de veículo-rádio controlado.
Microcomputador – Central de Comando.
2.1.1 Requisitos
Ambiente amplo e previamente mapeado.
Veículo para controle.
4
2.2 Arquitetura
A arquitetura é dividida em duas partes, para facilitar o entendimento do sistema.
A primeira parte trata do sistema embarcado no veículo, a segunda trata sobre o sistema
comandado pelo usuário. A Figura 2.1 elucida estas duas partes do projeto.
Figura 2.1: Arquitetura do Sistema
2.2.1 Sistema Usuário
O sistema do usuário é dividido em duas partes, o software de controle e a
comunicação wireless.
O software consiste em uma tela para a entrada da coordenada final da trajetória e
configuração da serial. Também é responsável por mostrar a curva a ser realizada que é
calculada pelo próprio software, através do cálculo de interpolação, e a curva que o
veículo realizou.
O hardware do sistema do usuário é composto de um transreceptor wireless, para a
interligação entre o transreceptor e o computador pessoal é utilizada apenas uma
interface USB sem a necessidade de configurações adicionais. A Figura 2.1 mostra o
hardware necessário.
2.2.2 Sistema Embarcado
O sistema embarcado é responsável por receber as coordenadas do ponto final,
realizar o cálculo de interpolação, fazer o controle do veículo a partir do cálculo
realizado, e por fim fazer a leitura do posicionamento inercial e enviar os pontos para o
software do usuário. O cálculo de interpolação é o mesmo utilizado no software do
usuário. A Figura 2.2 apresenta o que foi descrito em forma de fluxograma.
O hardware deste sistema é composto pelo controlador, que centraliza o
processamento, um driver de potência para controle dos motores através do controlador,
um sistema de posicionamento inercial, que é responsável pela leitura da posição atual
do veículo, e um transreceptor wireless que recebe e envia mensagens ao computador
pessoal. A Figura 2.1 mostra o diagrama em blocos do hardware.
5
Figura 2.2: Fluxograma
2.3 Testes de Validação do Sistema
Os testes de validação do sistema foram divididos em etapas, fazendo assim o teste
de cada parte isoladamente, teste do cálculo de interpolação, utilizando a simulação do
ambiente de desenvolvimento, e comparando com resultados esperados para aqueles
dados inseridos; teste de comunicação entre módulos transreceptores wireless, para
verificar a integridade dos dados, assim como sua ordem de chegada e teste do sistema
completo em um ambiente fechado e previamente mapeado, comparando a trajetória do
veículo com a trajetória esperada anteriormente calculada pela Interpolação.
2.4 Planejamento do Projeto
Na Figura 2.3 é mostrado o cronograma para o desenvolvimento do trabalho de
conclusão de curso, ele foi divido em 3 partes principais, sendo a primeira a
Documentação, composta por todas as entregas e documentos elaborados durante o
trabalho, assim como as datas de entrega e o tempo empregado para desenvolver cada
etapa.
Outra divisão foi a do Software, mostrando todos os passos principais para o
desenvolvimento do firmware utilizado no sistema de Controle de trajetória embarcado.
E por último a parte do Hardware, onde mostra o tempo que se levou para fazer a
adaptação do controle do veículo configurado remotamente.
6
Figura 2.3: Cronograma
Na Tabela 2.1 está o resumo dos recursos necessários para o desenvolvimento do
Controle de Trajetórias embarcado.
Tabela 2.1: Resumo dos Recursos
Descrição Total
Mão-de-obra R$ 43.300,00
Software e desenvolvimento R$ 561,67
Equipamentos e Insumos R$ 495,68
Espaço físico R$ 392,00
Documentação e gastos extras R$ 250,00
Custo estimado para Produção do Protótipo R$ 1.000,00
Impostos R$ (392,00)
TOTAL R$ 45.607,35
7
3 PROJETO
3.1 Hardware Embarcado
O Hardware é composto por 5 módulos, sendo 3 coordenados pelo controlador do
sistema. A Figura 3.1 ilustra o esquemático geral do hardware embarcado, que será
explicado em partes a seguir.
Figura 3.1: Hardware Embarcado
3.1.1 Controlador
O controlador é um microcontrolador ARM7 responsável pelo processamento do
sistema, controle de entrada e saída, e comunicação com a Central de Comandos para
validação dos resultados.
O microcontrolador utilizado é o LPC2148 [PHILIPS, 2005] que está em uma placa
nomeada eLPC64 produzida pela eSystech, esta placa é acoplada no kit da eSystech
chamado ELPC2122 [ESYSTECH, 2008] para fins de debug, conexões com o
computador e outras funções. No projeto a placa utilizada é a eLPC64, que contém o
processador ARM e fornece uma barra de pinos para acesso total ao microcontrolador, a
Tabela 3.1 mostra a pinagem utilizada entre as conexões do ARM7 e a barra de pinos da
placa eLPC64.
Tabela 3.1: Ligação entre placa eLPC64 e Processador
Placa eLPC64 ARM7 Descrição
01 VSS Terra digital.
03 VDD Alimentação.
25 P 0.1 Rx, receptor comunicação serial.
26 P 0.0 Tx, transmissor comunicação serial.
27 P 0.9 Pino bidirecional (E/S) com controle individual.
28 P 0.8 Pino bidirecional (E/S) com controle individual.
29 P 0.11 Pino bidirecional (E/S) com controle individual.
47 VSSA Terra analógico.
52 P 0.23 Conversor AD1.
54 P 0.8 Conversor AD2.
8
3.1.2 Posicionamento Inercial
O módulo do Posicionamento Inercial é composto por um acelerômetro de 3 eixos
da empresa Freescale Semicondutor, sendo o modelo utilizado o MMA7260QT
[FREESCALE, 2008]. A cada intervalo de tempo, o microcontrolador faz a leitura das
entradas do conversor AD, que estão ligadas diretamente aos eixos X e Y do
acelerômetro, recebendo assim a aceleração naquele instante. Através de duas integrais
tem-se a posição do veículo naquele instante de tempo. O algoritmo de aquisição
implementado no Controlador pode ser visto com mais detalhes no item 3.2.1.
A alimentação do acelerômetro é feita por uma fonte de 3,3V e a sensibilidade
configurada é de +-1,5G, que corresponde a uma variação típica de 800 mV/G.
A Figura 3.2 mostra o esquemático da montagem do acelerômetro.
Figura 3.2: Esquemático Acelerômetro
A ligação do acelerômetro é feita diretamente aos pinos da placa eLPC64 na Tabela
3 é mostrado as conexões entre o kit e o acelerômetro, assim como descrito as funções
dos pinos do acelerômetro.
Tabela 3.2: Ligação entre eLPC64 e Acelerômetro
eLPC64 Acelerômetro Descrição
52 Xout Conversor AD - Tensão de saída do eixo X
54 Yout Conversor AD - Tensão de saída do eixo Y
3.1.3 Transreceptor wireless
O módulo transreceptor wireless é responsável pela comunicação entre o controlador
e a Central de Comando. A tecnologia de radiofrequência utilizada foi o ZigBee. ZigBee
é uma associação de empresas que trabalham para permitir comunicação sem fio
confiáveis, eficazes, de baixo consumo e que possam ser utilizados em monitoramento e
controle de produtos baseado em uma forma de padrão aberto e de acesso global
[ZIGBEE ALLIANCE, 2010], a ZigBee Alliance determina o padrão a ser utilizado na
tecnologia ZigBee, e as fabricantes montam os chips baseados nesse padrão. O
9
componente utilizado é o fabricado pela empresa MaxStream, o XBee Pro
[MAXSTREAM, 2006] tem como principais características uma comunicação em área
urbana de até 100m, e em campo aberto de até 1500m, um consumo de transmissão de
até 235mA e de recepção até 55mA, e em modo de baixo consumo de apenas 10µA. A
comunicação é dividida em duas: ZigBee-Controlador e ZigBee-Central.
Ambos os ZigBee, assim como a serial do controlador, são configurados com uma
taxa de transferência de 38400b/s, 8bits, nenhum bit de paridade, e 1 bit de parada.
O ZigBee-Central é conectado ao computador através da USB, isto é possível graças
a um adaptador Serial-USB (RS232-USB) que foi adquirido junto ao XBee Pro. A
conexão entre o ZigBee e o controlador é feito diretamente por meio dos canais de
comunicação Rx e Tx, os pinos interligados podem ser vistos na Tabela 3.3.
Tabela 3.3 – Interligação ZigBee e Controlador
eLPC64 ZigBee Descrição
25 DOUT Recepção de dados.
26 DIN Transmissão de dados.
3.1.4 Driver de Potência
O driver de potência é necessário para o acionamento e controle dos motores de
direção e avanço do veículo, pois a corrente consumida pelos motores, que é de 400mA,
é superior a corrente que o controlador pode fornecer nos pinos de I/O. Neste projeto
utiliza-se uma ponte-H, que tem a direção controlada pelos pinos de I/O do controlador,
cuja finalidade é acionar uma fonte de alimentação adicional, específica para os
motores, fazendo com que o consumo dessa fonte adicional não influencie o
funcionamento dos outros módulos envolvidos, tais como controlador, transreceptor
wireless e o sistema de posicionamento inercial, garantindo uma maior autonomia ao
sistema. A Figura 3.3 mostra o circuito utilizado e a Tabela 3.4 indica as interligações
entre o controlador, o driver de potência e o motor.
Figura 3.3: Circuito Ponte-H
10
Tabela 3.4: Interligação Ponte-H e Controlador
eLPC64 Ponte-H
27 Dir_0
28 Dir_1
3.2 Firmware
O firmware do sistema embarcado foi divido em 3 partes: a primeira que realiza o
cálculo da posição instantânea (tópico 3.2.1), a segunda que efetua o cálculo da
interpolação (tópico 3.2.2), a terceira responsável pelo controle do veículo (tópico
3.2.3).
Esta divisão foi feita apenas para um melhor detalhamento e entendimento dos
algoritmos, pois são executados de forma concorrente no microcontrolador e são
detalhadas a seguir.
3.2.1 Cálculo da Posição Instantânea
A leitura do acelerômetro é realizada a cada 10ms, para assim atualizar a posição do
veículo em um curto espaço de tempo e ter maior precisão. O dado lido pelos canais AD
sofre uma operação matemática para ser transformado em posição. A operação
matemática é descrita a seguir:
1ª Etapa – Cálculo de transformação da leitura do AD em tensão
VoltsRx = AdcRx * VRef / 1023 (Eq. 01)
AdcRx – Corresponde a leitura feita pelo AD em 10 bits.
VRef – Tensão de referencia do AD, no caso é utilizada uma tensão de 3,5V.
1023 – Corresponde a resolução do AD, que é 10 bits, logo 2^(10 -1.)
VoltsRx – Terá o valor em Volts da leitura feita pelo AD.
2ª Etapa – Cálculo da Variação de Tensão
Esta etapa calcula a diferença (offset) da tensão no equilíbrio, o ideal seria 0, mas
existe uma diferença, e para determina-la é realizado este cálculo.
DeltaVoltsRx = VoltsRx - (VRef/2,0) (Eq. 02)
VoltsRx – Corresponde ao valor lido pelo AD em Volts.
VRef – Tensão de referência do AD (3,5V).
2,0 – Divisor, ele tem como valor padrão 2.0, pois o acelerômetro na posição de
equilíbrio tenderia a 0, logo ele varia de +1,5G até -1,5G, no caso aplicado, essa
variação é 0 até Vref.
DeltaVoltRx – terá o valor transformado, onde o +1,5G corresponde a 3,5V e o
-1,5G corresponde a 0V.
3ª Etapa – Aceleração
Esta etapa faz o cálculo da aceleração instantânea do acelerômetro.
Rx = (DeltaVoltsRx / Sensitivity) (Eq. 03)
11
DeltaVoltsRx – É o valor lido do acelerômetro na escala de 0 a Vref.
Sensitivity – É a sensibilidade com que o acelerômetro foi configurado, esta
configuração é de 800mV/G, ou seja a cada G (aceleração) em um eixo, é aumentado ou
diminuído 800mV da saída do acelerômetro.
Rx – Terá o valor da aceleração em m/s ao final desse cálculo.
4ª Etapa – Cálculo da Velocidade
Esta etapa realiza uma integral a partir da aceleração, obtendo assim o valor da
velocidade naquele instante de tempo.
vel_x = vel_x + 0,4*Rx (Eq. 04)
Rx – é o valor da aceleração instantânea, medida naquele instante de tempo.
0,4 – é o período com que é realizada a leitura do acelerômetro. No caso é de 400ms
Vel_x – é a soma de todas as velocidades desde o tempo inicial (0).
5ª Etapa – Cálculo da Posição
Esta etapa realiza uma integral a partir da velocidade, obtendo assim o valor da
posição naquele instante de tempo.
pos_x = pos_x + 0,4*vel_x (Eq. 05)
vel_x – é o valor da velocidade que foi acumulada até o instante de tempo atual.
0,4 – é o período com que é realizada a leitura do acelerômetro. No caso é de 400ms.
pos_x – é a soma de todas as posições desde o tempo inicial (0).
O fluxograma deste tratamento sobre a leitura do acelerômetro pode ser visto na
Figura 3.4.
Figura 3.4: Fluxograma da Leitura do Acelerômetro
12
3.2.2 Cálculo da Interpolação
Calcula-se a interpolação a partir das coordenadas x e y inseridas no módulo, com
isso, este módulo de software, faz o cálculo da interpolação, que corresponde a curva
desejada, o que o veículo deve replicar na forma real. Um y positivo indica que a curva
será para a direita, e um y negativo implica em uma curva para a esquerda. O valor de x
não pode ser negativo, pois o veículo deve andar somente para frente. K1 e k2 são duas
constantes que implicam na curvatura do trajeto feito pelo veículo. A Figura 3.5 ilustra
o fluxograma deste módulo.
Figura 3.5: Fluxograma do cálculo de Interpolação
A seguir são mostrados todos os cálculos efetuados para a interpolação de forma
mais detalhada.
A primeira coisa a ser fazer é encontrar um ponto intermediário, este ponto indica o
tamanho da curvatura e onde esta curva será mais acentuada. Para isso foi necessário a
inserção de 2 parâmetros, k1 e k2.
O ponto intermediário é calculado a partir da relação entre a distância dos pontos
iniciais e finais, e de k1 e k2. A Figura 3.6 mostra de forma gráfica este problema.
13
Figura 3.6: Encontrar ponto F
O ponto a, aqui será tratado como ponto inicial, que nesta implementação será
sempre considerado com coordenadas 0,0. O ponto b é o nosso ponto final, onde o
veículo chega ao final do processamento. O ponto f é o nosso ponto intermediário, que
deve ser calculado a partir das relações de k1 e k2.
O primeiro cálculo efetuado é a distância entre os pontos iniciais e finais (a e b).
Para isso foi utilizada a equação 06:
D = √ ((bx-ax)2 + (by-ay)
2) (Eq. 06)
Onde bx é o valor de x do ponto b, ax o valor de x do ponto a, by o valor de y do
ponto b e ay o valor de y do ponto a.
Encontrado a distância, pode-se encontrar os valores de d1 e d2 mostrados na Figura
3.7, segundo as equações 07 e 08:
d1 = k1*D (Eq. 07)
d2 = k2*D (Eq. 08)
Agora o valor de δ deve ser encontrado, para assim, encontrarmos d3. Seguindo
estas equações 09 e 10:
δ = arc tg (by / bx) (Eq. 09)
d3 = √ ((d1-d2)2) (Eq. 10)
O próximo passo é encontrar α e θ para se calcular o ponto intermediário.
Para isso foi utilizado as equações 11, 12 e 13:
θ = arc tg (d2/d1) (Eq. 11)
α = 90 – δ – θ, para curvas a direita e (Eq. 12)
α = 90 – δ + θ, para curvas a esquerda. (Eq. 13)
Com isto, o valor de fx e fy pode ser encontrado por meio das equações 14 e 15:
fy = cos α * d3 (Eq. 14)
fx = sem α * d3 (Eq. 15)
A Figura 3.7 mostra as relações trigonométricas utilizadas para encontrar o ponto
intermediário.
14
Figura 3.7: Relação Trigonométrica
Com os valores dos pontos iniciais, finais e intermediários (a, b e f respectivamente),
podemos encontrar a equação de Interpolação, partindo da equação 16, de Lagrange,
onde:
y0 = a0 + a1x0 + a2x02 + ... + anxn
2 (Eq. 16)
Substituindo pelos pontos encontrados temos:
ay = a0 + a1ax + a2ax2 (Eq. 17)
by = a0 + a1bx + a2bx2 (Eq. 18)
fy = a0 + a1fx + a2fx2 (Eq. 19)
Resolvendo a equação 17, encontra-se a0 com valor 0, isso faz com que as outras
equações não tenham o termo a0, tendo assim 2 equações e duas incógnitas, podendo
resolver o sistema pelo método de substituição, obtendo como resultado as seguintes
equações:
a1 = (fx*bx2 – by*fy
2) / (fx*bx
2 – fx
2*bx) (Eq. 20)
a2 = (by – a1*bx) / bx2 (Eq. 21)
Com as equações 20 e 21, a curva já pode ser encontrada, a Figura 3.8 mostra uma
simulação desta curva.
Figura 3.8: Curva Interpolada
15
3.2.3 Controle do Veículo
O controle do veículo é obtido por meio de dois limites para a curva calculada, esses
limites são criados com uma diferença de 0,5 para a direita e de -0,5 para a esquerda. O
controlador envia comandos para virar para a direita ou para a esquerda dependendo da
situação do cruzamento entre a curva calculada, e a curva que está sendo gerada através
dos dados recebidos pelo acelerômetro, a Figura 3.9 mostra o fluxograma deste
controle.
Figura 3.9: Controle do Veículo
3.3 Protocolo de Comunicação entre os Transreceptores
A comunicação feita com a Central de Comando é realizada nas duas direções, o
controlador irá receber as coordenadas finais, e o comando de iniciar a trajetória.
16
A Central de Comando recebe os dados do controlador para atualizar o gráfico
gerado na tela para acompanhamento do usuário.
O protocolo de comunicação é descrito a seguir:
Central de Comando envia para o Controlador
Comando: Entrada da Posição Final
Central: @ | dadosX | # | dadosY | # | dadosk1 | # | dadosk2 | ? |!
Controlador: @|? |!
Descrição: A Central envia a posição Final para o controlador, e aguarda uma
mensagem de confirmação.
Comando: Inicia Trajetória
Central: @ | iniciar | % |!
Controlador: @ | % |!
Descrição: A Central envia um comando para iniciar a trajetória e aguarda uma
mensagem de confirmação do controlador.
Controlador envia para a Central de Comando
Comando: Envio Posições do Acelerômetro
Controlador: @ | dadosX | # | dadosY | $ |!
Descrição: Controlador envia posições recebidas do acelerômetro de tempo em
tempo para a Central de Comando.
Comando: Trajetória Finalizada
Controlador: @ | * |!
Descrição: O controlador envia uma mensagem para A Central, indicando que a
trajetória foi efetuada.
3.4 Hardware Usuário
O hardware do usuário é composto apenas por um transreceptor wireless com
comunicação serial por meio da conexão USB. Toda a conversão USB-Serial é feita
diretamente pelo modulo usado, pois este já vem de fabrica com um conversor USB-
Serial.
17
3.5 Software Usuário
O software do usuário é composto por uma tela de configuração, e uma outra parte
importante desde software é o cálculo de interpolação de curva, que já foi explicado no
tópico 3.2.2.
A interface homem-maquina é feita exclusivamente na Central de Comando, pois
aqui existe uma interação entre uma pessoa e o computador, que está transmitindo
mensagens com o controlador, para isso foi desenvolvida uma interface onde é inserido
os dados iniciais, tais como xFinal, yFinal, k1 e k2, e o comando de Calcular e Iniciar
trajetória.
Existem também outras configurações, como a configuração da interface de
comunicação serial. E foi implementado uma função onde o usuário pode criar uma
trajetória composta, para isso deve-se inserir todas as coordenadas que compõem a
trajetória requerida, para cada trecho da trajetória composta é necessário clicar no botão
“Adicionar”, assim o software entende como sendo uma trajetória composta e acumula
os dados inseridos em um vetor, realiza o envio das coordenadas uma a uma
automaticamente depois do comando de iniciar a trajetória, e por fim aguarda a
conclusão de cada uma e avisa ao usuário que a trajetória foi efetuada com sucesso.
Outro botão “Reta” foi adicionado, permitindo ao usuário fazer com que o veículo se
locomova em uma reta por um intervalo de tempo pré-tederminado, esse intervalo é de
200ms, ou seja, o veículo percorre uma reta por 200ms. A Figura 3.10 mostra a
interface utilizada.
Figura 3.10: Interface Humano-Computador
18
19
4 RESULTADOS
O sistema foi inicialmente testado em partes que são descritas a seguir:
4.1 Validação do Algoritmo de Interpolação
Foram feitos diversos testes do algoritmo de interpolação, primeiramente estes testes
foram feitos no software da Central de Comando, para gerar as curvas e ter uma analise
melhor do algoritmo utilizado para o cálculo da interpolação da curva. Aqui foi testado
apenas o funcionamento do algoritmo. Em todos os testes, foi utilizado uma diferença
de 0,1 para cada ponto.
A seguir é mostrado 3 cálculos com parâmetros de entrada diferentes:
1º Cálculo: xFinal = 2; yFinal = 2; k1 = 0,5; k2 = 0,25
Figura 1.1: Curva Teste 01
Conforme o algoritmo mostrado no tópico 3.2.2, seguem os valores calculados:
D = 2,828 δ = 0,785 α = 0,321 B = 3,666 by = 2,016
d1 = 1,414 d3 = 1,581 fx = 0,499 A = -1,333
d2 = 0,707 θ = 0,463 fy = 1,500 bx = 1,99
A Tabela 4.1 mostra todos os valores que foram plotados no gráfico da Figura 4.1
gerados pelo software através do cálculo de interpolação.
20
Tabela 4.1: Tabela Teste 01
x y x y
0,1 0,353 1,1 2,420
0,2 0,680 1,2 2,480
0,3 0,980 1,3 2,513
0,4 1,253 1,4 2,520
0,5 1,500 1,5 2,500
0,6 1,720 1,6 2,453
0,7 1,913 1,7 2,380
0,8 2,080 1,8 2,280
0,9 2,220 1,9 2,153
1,0 2,333
Como pode-se observar tanto na Tabela 4.1 quanto na Tabela 4.2 que contém os
valores utilizados para plotagem do gráfico, o valor de y passa o limite imposto (yFinal)
que seria de 2, na Tabela isso pode ser visto no valor de x igual a 0,8, onde o y é igual a
2,080, e mais claramente no valor de x igual a 1,4 onde o valor de y é igual a 2,52, isso
se deve ao fato de que o algoritmo utilizado para o cálculo de interpolação usar como
base para cálculos uma equação de parábola. Se o cálculo continuasse seria possível
verificar que o ponto Máximo da parábola se encontra exatamente no ponto x igual a
1,4 e y igual a 2,52.
2º Cálculo: xFinal = 1; yFinal = 5; k1 = 0,9; k2 = 0,1
Figura 4.2: Curva Teste 02
Conforme o algoritmo mostrado no tópico 3.2.2, seguem os valores calculados:
D = 5,099 δ = 1,374 α = 0,086 B = 15,833 by = 5,057
d1 = 4,589 d3 = 4,617 fx = 0,399 A = -10,833
d2 = 0,509 θ = 0,110 fy = 4,600 bx = 0,990
A Tabela 4.2 mostra todos os valores plotados no gráfico da Figura 4.2 gerados pelo
software através do cálculo de interpolação.
21
Tabela 4.2: Tabela Teste 02
x (cm) y (cm)
0,1 1,475
0,2 2,733
0,3 3,775
0,4 4,600
0,5 5,208
0,6 5,600
0,7 5,775
0,8 5,733
0,9 5,475
1,0 5
Pode-se observar o mesmo problema encontrado no 1º Cálculo, onde valores do y
acabam ultrapassando o limite estipulado.
3º Cálculo: xFinal = -4; yFinal = 9; k1 = 0,4; k2 = 0,1
Figura 4.3: Curva Teste 03
Conforme o algoritmo mostrado no tópico 3.2.2, seguem os valores calculados:
D = 9,848 δ = -1,152 α = -0,173 B = -6,449 by = 9,000
d1 = 3,939 d3 = 4,060 fx = -0,699 A = -1,049
d2 = 0,948 θ = 0,244 fy = 4,000 bx = -3,999
A Tabela 4.3 mostra todos os valores plotados no gráfico da Figura 4.3 gerados pelo
software através do cálculo de interpolação.
22
Tabela 4.3: Tabela Teste 03
x (cm) y (cm) x (cm) y (cm)
-0,1 0,634 -2,1 8,913
-0,2 1,247 -2,2 9,107
-0,3 1,840 -2,3 9,279
-0,4 2,411 -2,4 9,431
-0,5 2,962 -2,5 9,561
-0,6 3,491 -2,6 9,671
-0,7 4,000 -2,7 9,759
-0,8 4,487 -2,8 9,827
-0,9 4,953 -2,9 9,873
-1,0 5,399 -3,0 9,899
-1,1 5,823 -3,1 9,903
-1,2 6,227 -3,2 9,887
-1,3 6,609 -3,3 9,850
-1,4 6,971 -3,4 9,791
-1,5 7,311 -3,5 9,712
-1,6 7,631 -3,6 9,611
-1,7 7,929 -3,7 9,490
-1,8 8,207 -3,8 9,347
-1,9 8,463 -3,9 9,184
-2,0 8,699
Pode-se observar o mesmo problema encontrado no 1º Cálculo e 2º Cálculo, em que
valores do y acabam ultrapassando o limite estipulado.
Para solucionar esse problema foram tentados dois tipos de ajustes. O primeiro foi
criar outro ponto, próximo ao ponto final para forçar com que o ponto Máximo da
parábola ficasse nesse novo ponto, não foi obtido o resultado esperado, pois o ponto
Máximo da parábola continuava no mesmo lugar. A outra alternativa foi forçar a curva
a ser suavizada, fazendo com que quando ultrapassasse o ponto yFinal estabelecido, a
curva iria diretamente para o ponto final em x em forma de reta, esta também não foi
uma solução viável, pois em alguns casos o ponto de ultrapassagem em y era muito
distante do ponto final desejado, fazendo assim uma trajetória bem diferente da
esperada.
Então foi optado por deixar este algoritmo, pois com ele se tem um bom controle das
curvas e bastante possibilidade de curvas, mas em contrapartida ele sempre passa do
ponto y final e assim fazer um retorno até o ponto final.
4.2 Validação da Comunicação Sem-fio
O primeiro teste da comunicação sem-fio utilizando dois módulos ZigBee foi feita
pelo próprio módulo. Utilizando o programa X-CTU para configurações e transmissão
de mensagem da própria MaxSream, fabricante dos módulos, foi possível fazer um
canal de transmissão para testes do módulo. Feito este teste inicial, partiu-se então para
a comunicação efetiva, entre um módulo conectado via USB na Central de Comando e o
23
outro módulo interfaceado com o controlador pela interface de comunicação serial, mais
precisamente pelos canais de comunicação Rx e Tx.
O primeiro teste de comunicação entre o controlador e o módulo ZigBee foi feito por
meio do kit ELP2122, neste teste ocorreu o funcionamento correto e sem nenhum
problema, não houve perda de dados ou dados corrompidos na transmissão. A distância
máxima de transmissão testada foi de 10 metros, nesse teste também não houve nenhum
problema com os dados.
O segundo teste de comunicação entre o controlador e o módulo ZigBee foi feito
diretamente na placa eLPC2164, sem o auxilio do kit de desenvolvimento, neste teste
foi encontrado um problema, a taxa de transmissão dos dados era diferente da
configurada e também da taxa medida utilizando o kit de desenvolvimento. Este
problema ainda não foi solucionado, pois com os dados do manual do kit não foi
possível localizar uma possível solução. Este problema também pode ser devido a
alguma interferência sofrida durante a montagem do protótipo em protoboard, portanto
este problema pode vir a ser solucionado a partir do momento em que for confeccionada
a placa definitiva do projeto.
4.3 Validação do Controle do Veículo
A validação do controle do veículo foi possível logo no inicio do desenvolvimento,
onde foi verificado se o algoritmo de controle desenvolvido foi executado corretamente.
No inicio do projeto foi utilizado o controle de radiofrequência do próprio veículo, onde
o controlador estava conectado ao controle, que por sua vez transmitia se o carro
deveria ir para frente e/ou fazer curvas para a esquerda ou direita. Esta validação foi
feita por meio de inferência visual, pois por motivos que será explicado adiante, o
sistema que faria a validação através de aquisição da posição do veículo e estes dados
seriam desenhados em um gráfico para comparação não funcionou corretamente. Um
dos problemas encontrados no controle do veículo foi a velocidade do carro, pois
quando a bateria usada para a alimentação dos motores estava com carga máxima, a
velocidade do carro era alta, quando a bateria estava com meia carga o veículo se
locomovia mais devagar, e isso influencia diretamente no controle do veículo, pois
dependendo da velocidade do carro a trajetória realizada varia. Uma solução para
minimizar esse problema é um limitador de corrente para o motor de avanço, ir para
frente, o resistor utilizado foi calculado a partir dos seguintes dados:
Corrente do Motor = 260mA
Tensão do Motor = 4V
Utilizando a lei de Ohm em que V = R * I, temos:
4 = R * 260m, logo
R = 4 / 260m = 15,38Ω
O resistor utilizado foi o de 15 Ω, com isso a velocidade do veículo se manteve mais
constante, obtendo uma melhor trajetória e sofrendo poucas alterações devido à carga da
bateria.
A Figura 4.4 mostra algumas fotos tiradas do veículo se movimentando.
24
Figura 4.4: Movimentação Veículo
Nas imagens 01 até 06 da Figura 4.4 é possível verificar a movimentação do veículo.
No tópico 4.4 é mostrado os gráficos que resultaram dessa movimentação.
O veículo utilizado em todo o projeto tem as seguintes características mecânicas:
Comprimento: 23cm;
Largura do Corpo: 6,2cm;
Distância entre os pneus traseiros: 9,4cm;
Distância entre os pneus dianteiros: 8,7cm;
Ângulo de curvatura: 25º;
Peso total do veículo (com baterias, e o sistema embarcado): 320g.
A Figura 4.5 ilustra as medidas do veículo.
25
Figura 4.5: Medidas do Veículo
4.4 Validação do Algoritmo de Posicionamento Inercial
A validação do algoritmo de posicionamento inercial foi o ultimo a ser feito, por
encontrar diversos problemas na programação do ARM e depois o problema com a
comunicação entre o controlador e o módulo ZigBee, acabou restando pouco tempo
para trabalhar em cima do algoritmo de posicionamento inercial.
Um dos problemas encontrados foram os diversos fenômenos que influenciam
diretamente na leitura do acelerômetro, estes fenômenos são listados a seguir.
1º) Offset do acelerômetro
Durante os testes observou-se que o acelerômetro apresentava valor diferente de
zero mesmo em estado de repouso, isso se deve primeiramente a posição do
acelerômetro no veículo, mas também ao local onde ele se encontra, pois dependendo
da localização, diferença de níveis a leitura é diferente. Um exemplo pode ser visto na
Tabela 4.4.
Tabela 4.4: Leituras Offset
x (cm) y (cm)
0,050403226 0,0625
0,058467742 0,0625
0,058467742 0,0625
0,050403226 0,058468
0,058467742 0,0625
0,054435484 0,074597
0,050403226 0,0625
0,054435484 0,054435
0,0625 0,058468
0,0625 0,0625
26
Conforme pode ser visto na Tabela 4.4, os valores lidos variam, mas o veículo
durante a leitura estava parado, mostrando a influencia do offset no algoritmo de
posicionamento inercial.
2º) Instabilidade do veículo
Outro problema encontrado foi a instabilidade do veículo, para fazer determinadas
curvas é necessária a rápida transição em virar para um lado e deixar reto, essa transição
é feita em pequenos intervalos de tempo, como fazer 8 viradas para a direita em um
intervalo de 20ms por exemplo, as vibrações derivadas destas curvas no corpo do
veículo faz com que a leitura cause uma instabilidade na leitura do acelerômetro,
dificultando o processo de tratamento da leitura, pois não é uma variação constante e
conhecida. Com o problema da vibração adquirida pelo algoritmo de controle, o veículo
cria uma trajetória com ruídos, a Figura 4.6 mostra o que o veículo precisa fazer para
conseguir fazer uma curva.
Figura 4.6: Trajetória Calculada x Trajetória Controlada
Como pode ser visto na Figura 4.6, para o veículo realizar uma curva é necessário
com que haja uma grande variação no controle da direção, criando assim vibrações no
carro, e essas vibrações interferem diretamente na aquisição da posição do veículo.
Um teste realizado para validar o algoritmo de posicionamento inercial foi feito
realizando a mesma trajetória 14 vezes, a trajetória esperada é mostrada na Figura 4.7.
A Figura 4.7 mostra também a trajetória realizada pelo veículo, tirando uma média dos
valores lidos e desenhados em um gráfico utilizando o software Microsoft Excel. A
Figura 4.7 mostra um gráfico utilizando os valores da Tabela 4.5 e os valores de entrada
calculados por meio da interpolação.
Os parâmetros de entrada foram: xFinal = 2; yFinal = 2; k1 = 0,5; k2 = 0,25
0
0,5
1
1,5
2
2,5
3
-0,5 0 0,5 1 1,5 2
Trajetória Calculada
y(cm)
x(cm)
27
Figura 4.7: Trajetória Calculada x Trajetória Realizada
Na Tabela 4.5 tem-se os valores tratados pelo algoritmo de posicionamento inercial
usados no gráfico da Figura 4.7.
Tabela 4.5: Tabela Valores Lidos Posicionamento Inercial
x (cm) y (cm) x (cm) y (cm)
0,036 0,009 2,528 0,360
0,089 0,042 2,931 0,367
0,167 0,077 3,341 0,358
0,284 0,070 3,801 0,334
0,395 0,074 4,314 0,307
0,560 0,107 4,863 0,265
0,740 0,156 5,439 0,245
0,961 0,221 6,079 0,227
1,227 0,266
1,493 0,328
1,805 0,361
2,154 0,362
Como pode ser visto na Figura 4.7, a trajetória em si é parecida com a trajetória
desejada, mas ao comparar a escala é possível ver que no eixo x o limite deveria ser 2
mas na trajetória realizada esse valor é de aproximadamente 6, já o eixo y que deveria
ser 2 é de aproximadamente de 0,2. Isso se deve principalmente ao fato do ruído gerado
pela mecânica do veículo interferir aumentando ou diminuindo o valor lido pelo
posicionamento inercial. Foi realizado um teste 14 vezes seguidas, com a mesma
trajetória e sob os mesmas restrições e parâmetros, sendo 5 delas conforme o esperando,
tendo um erro médio de +-0,8cm em cada ponto da trajetória estipulada, tendo assim
uma porcentagem de 35,71 de acerto na trajetória. Os dados das 14 leituras usadas para
gerar o gráfico da Figura 4.7 e do cálculo da porcentagem de acerto pode ser visto no
anexo A.
0
0,5
1
1,5
2
2,5
3
0 1 2 3 4 5 6 7
y (cm)
x (cm)
Curva Calculada
Curva Realizada
28
29
5 CONCLUSÃO
Os resultados obtidos durante os testes foram satisfatórios, pois o sistema se mostrou
capaz de executar as curvas estipuladas sem maiores problemas, o algoritmo de controle
do veículo se mostrou eficiente, tendo um índice de trajetória correta em 35%, mas o
grande problema encontrado foi a leitura do sistema de posicionamento inercial, pois
este era muito influenciado pela movimentação do veículo ocasionada pela
movimentação do motor de direção, pois este tem apenas 3 posições, reto, totalmente
para a direita e totalmente para a esquerda, criando assim uma grande vibração na hora
do controle para realizar as curvas.
O sistema também se mostrou bastante flexível, pois após a implementação
proposta, foi possível criar uma nova implementação onde é possível criar uma
trajetória composta de diversas curvas e então enviar ao veículo, podendo assim fazer
uma trajetória fechada, que para o usuário parece ser uma forma, sem a necessidade de
fazer diversas realimentações, como mostrado no item 3.2.5.
Melhorias podem ser realizadas no sistema, tais como criar filtros para o sistema de
posicionamento inercial, para retirar o offset e diminuir os erros de leitura realizados
pelas vibrações do veículo, mudar o veículo em si, trocando para um com mecânica
mais apropriada podendo conter molas ou outros sistemas mecânicos que diminuam as
vibrações de movimentação e terreno.
30
31
REFERÊNCIAS
BARROSO, L. C.; BARROSO, M. M. de A.; FILHO, F. F. C.; CARVALHO, M. L. B.
de; MAIA, M. L. Cálculo Numérico: com aplicações. 2.ed. São Paulo: Harbra, 1987.
CAMPOS, Alexandre; SILVA, André L. da. Desenvolvimento de um sistema de
navegação inercial de baixo custo para uso no registro de trajetórias planas. 2003.
XVIII Congresso Regional De Iniciação Científica e Tecnológica (Engenharia
Mecânica) – Universidade Federal de Santa Maria.
ESYSTECH, eLPC-Main 2122: ARM Evaluation Board for eLPC SOM. Manual do
Usuário. Rev. 08/2008.
FERREIRA, Alysson Sarmento. Protótipo de Veículo Autônomo – PVA. 2004. Pós-
Graduação em Engenharia Eletrônica e Computação (PG/EEC) - Instituto Tecnológico
de Aeronáutica, São José dos Campos.
FREESCALE SEMICONDUTOR, MMA7331L. Datasheet. Rev 0, 04/2008.
LINDEN, Ricardo. Algoritmos Genéticos: uma importante ferramenta da Inteligência
Computacional. 2.ed. Rio de Janeiro: Brasport, 2008.
MAXSTREAM, XBee/XBee-PRO OEM RF Modules. Datasheet. Rev. 13/10/2006.
OSÓRIO, Fernando; HEINEN, Falei; FORTES, Luciane. Controle Inteligente de
Veículos Autônomos: Automatização do Processo de Estacionamento de Carros. 2001.
Mestrado em Computação Aplicada - Universidade do Vale do Rio dos Sinos, São
Leopoldo, RS.
PHILIPS SEMICONDUCTORS, LPC2210/2220. Datasheet. Rev. 02,30/05/2005.
SOUSA, Daniel Rodrigues de. Microcontroladores ARM7 (Philips, Família
LPC213X): o poder dos 32 bits. 1.ed. São Paulo: Editora Érica, 2006.
WOLF, A; BROWN, H. B.; CASCIOLA, R.; COSTA, A. ; SCHWERIN, M.;
SHAMAS, E.; CHOSET, H. A Mobile Hyper Redundant Mechanism for Search and
Rescue Tasks. 2003. Department of Mechanical Engineering - Carnegie Mellon
University, Pittsburgh, USA.
ZIGBEE ALLIANCE, Misão, Disponivel em <
http://www.zigbee.org/About/OurMission.aspx>. Acesso em: ago. 2010.
32
33
ANEXO A
Aqui é mostrado as tabelas de diversas leituras realizadas durante o teste, destes
valores lidos foi calculado uma média, que foi utilizada para o desenho do gráfico da
figura 4.8 no tópico 4.4.
Tabela 1: Teste 01
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)
0,223790323 0,074596774 0,035806452 0,011935484
-0,631048387 0,445564516 -0,029354839 0,09516129
0,159274194 0,534274194 -0,069032258 0,263870968
-1,022177419 -0,002016129 -0,272258065 0,432258065
0,776209677 -0,590725806 -0,351290323 0,506129032
0,788306452 0,389112903 -0,304193548 0,642258065
-0,219758065 0,243951613 -0,292258065 0,817419355
0,54233871 0,155241935 -0,193548387 1,017419355
0,643145161 -0,421370968 0,008064516 1,15
0,147177419 0,530241935 0,233225806 1,367419355
0,256048387 0,16733871 0,499354839 1,611612903
-0,308467742 -0,147177419 0,716129032 1,832258065
1,155241935 0,594758065 1,117741935 2,148064516
0,272177419 -0,320564516 1,562903226 2,412580645
-0,175403226 -0,502016129 1,98 2,596774194
-0,018145161 0,514112903 2,394193548 2,863225806
0,276209677 -0,530241935 2,852580645 3,04483871
0,288306452 -0,909274194 3,357096774 3,080967742
-0,272177419 -0,651209677 3,818064516 3,012903226
0,296370968 0,614919355 4,326451613 3,043225806
34
Tabela 2: Teste 02
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)
0,211693548 0,058467742 0,033870968 0,009354839
0,905241935 0,0625 0,212580645 0,028709677
-0,360887097 -0,227822581 0,333548387 0,011612903
-0,356854839 -0,050403226 0,397419355 -0,01354839
0,618951613 0,038306452 0,560322581 -0,03258065
-0,6875 0,356854839 0,613225806 0,005483871
0,659274194 -0,0625 0,771612903 0,033548387
0,8125 0,340725806 1,06 0,116129032
0,131048387 0,122983871 1,369354839 0,218387097
0,969758065 0,050403226 1,833870968 0,328709677
-0,45766129 -0,497983871 2,22516129 0,359354839
0,897177419 -0,0625 2,76 0,38
0,014112903 -0,20766129 3,297096774 0,367419355
-1,139112903 0,179435484 3,651935484 0,383548387
0,465725806 0,481854839 4,081290323 0,476774194
0,433467742 -0,006048387 4,58 0,569032258
-1,139112903 0,050403226 4,896451613 0,669354839
1,231854839 0,256048387 5,41 0,810645161
0,002016129 0,159274194 5,923870968 0,977419355
0,256048387 -0,272177419 6,478709677 1,100645161
Tabela 3: Teste 03
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y
(cm)
0,227822581 0,054435484 0,036451613 0,008709677
0,122983871 0,227822581 0,092580645 0,053870968
-0,195564516 0,006048387 0,117419355 0,1
0,546370968 0,038306452 0,229677419 0,152258065
-0,485887097 -0,377016129 0,264193548 0,144193548
0,836693548 -0,175403226 0,432580645 0,108064516
0,41733871 0,122983871 0,667741935 0,091612903
-0,034274194 0,316532258 0,897419355 0,125806452
0,316532258 0,622983871 1,177741935 0,259677419
-0,635080645 0,143145161 1,356451613 0,416451613
0,252016129 -0,026209677 1,575483871 0,569032258
0,594758065 0,276209677 1,889677419 0,765806452
-0,824596774 0,91733871 2,071935484 1,109354839
0,735887097 0,320564516 2,371935484 1,504193548
-0,030241935 -0,110887097 2,667096774 1,881290323
0,45766129 0,143145161 3,035483871 2,281290323
0,659274194 1,094758065 3,509354839 2,856451613
0,485887097 -0,0625 4,060967742 3,421612903
0,530241935 -0,143145161 4,697419355 3,963870968
0,808467742 0,054435484 5,463225806 4,51483871
35
Tabela 4: Teste 04
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)
0,227822581 0,058467742 0,036451613 0,009354839
-0,195564516 0,29233871 0,041612903 0,065483871
-0,679435484 -0,030241935 -0,061935484 0,116774194
0,905241935 0,256048387 -0,020645161 0,209032258
-0,756048387 0,8125 -0,100322581 0,431290323
0,320564516 0,328629032 -0,128709677 0,706129032
1,046370968 -0,014112903 0,010322581 0,978709677
-0,239919355 0,106854839 0,110967742 1,268387097
0,272177419 0,441532258 0,25516129 1,628709677
-0,179435484 0,014112903 0,370645161 1,991290323
-0,0625 -0,909274194 0,476129032 2,208387097
1,139112903 0,243951613 0,763870968 2,464516129
-0,20766129 -0,163306452 1,018387097 2,694516129
0,058467742 0,546370968 1,282258065 3,011935484
0,969758065 -0,159274194 1,701290323 3,303870968
0,643145161 -1,127016129 2,223225806 3,415483871
1,272177419 -0,578629032 2,948709677 3,434516129
-1,465725806 0,0625 3,439677419 3,463548387
0,195564516 -0,010080645 3,961935484 3,490967742
0,514112903 -0,941532258 4,566451613 3,367741935
Tabela 5: Teste 05
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y
(cm)
0,223790323 0,050403226 0,035806452 0,008064516
0,4375 -0,256048387 0,141612903 -0,02483871
0,647177419 -0,211693548 0,350967742 -0,0916129
-1,647177419 0,159274194 0,296774194 -0,13290323
0,969758065 0,514112903 0,397741935 -0,09193548
0,546370968 -0,058467742 0,586129032 -0,06032258
-0,776209677 -0,340725806 0,650322581 -0,08322581
0,933467742 -0,143145161 0,863870968 -0,12903226
-0,546370968 0,389112903 0,99 -0,11258065
-0,401209677 -0,663306452 1,051935484 -0,20225806
0,683467742 -0,256048387 1,223225806 -0,33290323
0,304435484 -0,014112903 1,443225806 -0,46580645
0,719758065 -0,328629032 1,778387097 -0,65129032
0,663306452 0,566532258 2,219677419 -0,74612903
0,530241935 -0,776209677 2,745806452 -0,96516129
-0,195564516 -0,659274194 3,240645161 -1,28967742
-0,514112903 0,711693548 3,653225806 -1,50032258
0,941532258 -0,4375 4,216451613 -1,78096774
0,098790323 0,026209677 4,795483871 -2,05741935
0,4375 -0,344758065 5,444516129 -2,38903226
36
Tabela 6: Teste 06
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)
0,223790323 0,058467742 0,035806452 0,009354839
-0,058467742 -0,098790323 0,062258065 0,002903226
0,965725806 0,002016129 0,243225806 -0,00322581
0,703629032 0,219758065 0,536774194 0,025806452
-0,272177419 -0,566532258 0,786774194 -0,03580645
1,006048387 0,102822581 1,197741935 -0,08096774
-0,993951613 0,106854839 1,449677419 -0,10903226
-0,320564516 -0,114919355 1,650322581 -0,15548387
0,219758065 -0,683467742 1,886129032 -0,31129032
-0,715725806 0,461693548 2,007419355 -0,39322581
0,381048387 -0,905241935 2,189677419 -0,62
-0,102822581 -0,933467742 2,355483871 -0,99612903
0,473790323 -0,4375 2,597096774 -1,44225806
0,659274194 -0,743951613 2,944193548 -2,00741935
-0,546370968 0,288306452 3,203870968 -2,52645161
0,985887097 -0,300403226 3,621290323 -3,09354839
0,627016129 0,328629032 4,139032258 -3,60806452
-0,425403226 -0,453629032 4,588709677 -4,19516129
0,171370968 -0,078629032 5,065806452 -4,79483871
0,510080645 0,360887097 5,624516129 -5,33677419
Tabela 7: Teste 07
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y
(cm)
0,227822581 0,054435484 0,036451613 0,008709677
0,953629032 0,050403226 0,225483871 0,025483871
-0,675403226 0,300403226 0,306451613 0,090322581
1,070564516 0,090725806 0,558709677 0,169677419
1,050403226 0,485887097 0,979032258 0,326774194
-0,199596774 0,247983871 1,367419355 0,523548387
0,655241935 0,352822581 1,860645161 0,776774194
0,030241935 0,211693548 2,358709677 1,063870968
0,445564516 0,389112903 2,928064516 1,413225806
0,828629032 -0,211693548 3,63 1,728709677
-0,179435484 -0,195564516 4,303225806 2,012903226
0,356854839 -0,453629032 5,033548387 2,224516129
-0,066532258 -0,45766129 5,753225806 2,362903226
-0,118951613 -0,247983871 6,453870968 2,461612903
0,243951613 -0,336693548 7,193548387 2,506451613
-1,413306452 0,058467742 7,707096774 2,560645161
1,094758065 -0,102822581 8,395806452 2,598387097
0,010080645 -0,473790323 9,086129032 2,560322581
0,195564516 -0,195564516 9,807741935 2,490967742
0,909274194 0,276209677 10,67483871 2,465806452
37
Tabela 8: Teste 08
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)
0,219758065 0,070564516 0,03516129 0,011290323
-0,328629032 0,356854839 0,017741935 0,079677419
1,171370968 0,010080645 0,187741935 0,149677419
0,752016129 -0,360887097 0,478064516 0,161935484
-0,272177419 0,046370968 0,72483871 0,181612903
1,0625 -0,038306452 1,141612903 0,19516129
-0,485887097 0,122983871 1,480645161 0,228387097
0,671370968 0,195564516 1,927096774 0,292903226
0,836693548 -0,45766129 2,507419355 0,284193548
-1,058467742 0,20766129 2,918387097 0,308709677
0,885080645 -0,227822581 3,470967742 0,296774194
0,514112903 0,030241935 4,105806452 0,289677419
-0,078629032 0,227822581 4,728064516 0,319032258
0,739919355 0,574596774 5,468709677 0,440322581
-0,723790323 -0,16733871 6,093548387 0,53483871
0,675403226 0,002016129 6,826451613 0,629677419
0,788306452 -0,747983871 7,685483871 0,60483871
-0,094758065 1,227822581 8,529354839 0,776451613
0,401209677 -0,090725806 9,437419355 0,933548387
0,804435484 -0,776209677 10,47419355 0,966451613
Tabela 9: Teste 09
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y
(cm)
0,231854839 0,0625 0,037096774 0,01
-0,514112903 -0,127016129 -0,008064516 -0,00032258
0,610887097 0,45766129 0,044516129 0,062580645
-0,183467742 -0,618951613 0,067741935 0,026451613
-0,614919355 -0,143145161 -0,007419355 -0,03258065
0,800403226 0,401209677 0,045483871 -0,02741935
-0,808467742 -0,20766129 -0,030967742 -0,05548387
0,256048387 0,256048387 -0,066451613 -0,04258065
0,820564516 -0,264112903 0,029354839 -0,07193548
-0,328629032 0,272177419 0,072580645 -0,05774194
1,127016129 0,08266129 0,296129032 -0,03032258
-0,530241935 -0,215725806 0,43483871 -0,03741935
0,514112903 0,643145161 0,655806452 0,058387097
1,340725806 -0,723790323 1,091290323 0,038387097
-0,485887097 0,743951613 1,449032258 0,137419355
1,034274194 0,227822581 1,972258065 0,272903226
1,433467742 -0,231854839 2,72483871 0,371290323
0,094758065 -0,078629032 3,492580645 0,457096774
0,578629032 0,356854839 4,352903226 0,6
-1,352822581 0,5625 4,996774194 0,832903226
38
Tabela 10: Teste 10
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)
0,227822581 0,0625 0,036451613 0,01
0,038306452 0,546370968 0,079032258 0,107419355
0,308467742 -0,288306452 0,170967742 0,158709677
0,91733871 -0,493951613 0,409677419 0,130967742
-0,828629032 0,546370968 0,515806452 0,190645161
0,574596774 0,078629032 0,713870968 0,262903226
0,372983871 0,195564516 0,971612903 0,366451613
-0,058467742 -0,070564516 1,22 0,458709677
0,094758065 -0,836693548 1,483548387 0,417096774
-1,066532258 0,401209677 1,576451613 0,439677419
0,711693548 -0,328629032 1,783225806 0,409677419
0,590725806 -0,461693548 2,084516129 0,305806452
0,014112903 -0,175403226 2,388064516 0,173870968
0,20766129 0,594758065 2,72483871 0,137096774
-0,127016129 -0,0625 3,041290323 0,090322581
0,683467742 0,389112903 3,467096774 0,105806452
1,002016129 0,143145161 4,053225806 0,144193548
-0,300403226 0,497983871 4,591290323 0,262258065
1,272177419 0,151209677 5,332903226 0,404516129
0,514112903 0,122983871 6,156774194 0,566451613
Tabela 11: Teste 11
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)
0,227822581 0,050403226 0,036451613 0,008064516
0,453629032 0,127016129 0,145483871 0,036451613
-0,651209677 0,195564516 0,150322581 0,096129032
0,131048387 -1,239919355 0,176129032 -0,04258065
0,760080645 0,114919355 0,323548387 -0,16290323
-0,780241935 -0,014112903 0,346129032 -0,28548387
0,969758065 0,171370968 0,523870968 -0,38064516
0,389112903 0,320564516 0,763870968 -0,42451613
-0,014112903 -0,510080645 1,001612903 -0,55
1,320564516 -0,296370968 1,450645161 -0,72290323
-0,590725806 0,0625 1,80516129 -0,88580645
0,159274194 -0,231854839 2,18516129 -1,08580645
-0,090725806 -0,627016129 2,550645161 -1,38612903
-1,110887097 -0,227822581 2,738387097 -1,72290323
0,461693548 0,566532258 3 -1,96903226
0,195564516 0,256048387 3,292903226 -2,17419355
-0,54233871 0,308467742 3,499032258 -2,33
1,110887097 -0,413306452 3,882903226 -2,55193548
-0,502016129 1,260080645 4,186451613 -2,57225806
0,719758065 -0,602822581 4,60516129 -2,68903226
39
Tabela 12: Teste 12
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)
0,227822581 0,046370968 0,036451613 0,007419355
0,647177419 0,256048387 0,176451613 0,055806452
0,639112903 -0,340725806 0,418709677 0,049677419
-0,356854839 -1,489919355 0,603870968 -0,19483871
0,566532258 -0,195564516 0,879677419 -0,47064516
-1,191532258 0,389112903 0,96483871 -0,68419355
0,614919355 -0,030241935 1,148387097 -0,90258065
0,739919355 0,453629032 1,450322581 -1,0483871
-0,639112903 -0,195564516 1,65 -1,22548387
0,683467742 -0,389112903 1,959032258 -1,46483871
-0,489919355 0,546370968 2,189677419 -1,61677419
0,211693548 -0,659274194 2,454193548 -1,87419355
0,356854839 -0,643145161 2,775806452 -2,23451613
-0,961693548 0,33266129 2,943548387 -2,5416129
0,768145161 0,135080645 3,234193548 -2,82709677
0,320564516 0,159274194 3,576129032 -3,08709677
-0,4375 0,272177419 3,848064516 -3,30354839
0,881048387 0,276209677 4,260967742 -3,47580645
-0,981854839 0,973790323 4,516774194 -3,49225806
0,288306452 -0,481854839 4,818709677 -3,58580645
Tabela 13: Teste 13
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y
(cm)
0,227822581 0,050403226 0,036451613 0,008064516
-0,058467742 0,320564516 0,063548387 0,067419355
0,804435484 -0,030241935 0,219354839 0,121935484
0,852822581 -0,086693548 0,511612903 0,162580645
-1,002016129 -0,514112903 0,643548387 0,120967742
0,852822581 0,377016129 0,911935484 0,139677419
-0,502016129 0,421370968 1,1 0,225806452
0,018145161 -0,199596774 1,290967742 0,28
1,058467742 -0,316532258 1,651290323 0,283548387
-0,046370968 0,534274194 2,004193548 0,372580645
0,735887097 0,336693548 2,47483871 0,515483871
-0,554435484 -0,227822581 2,856774194 0,621935484
-0,143145161 0,618951613 3,215806452 0,827419355
0,933467742 0,316532258 3,724193548 1,083548387
-0,320564516 -0,256048387 4,181290323 1,298709677
0,195564516 -0,606854839 4,669677419 1,416774194
0,485887097 -0,602822581 5,235806452 1,438387097
0,256048387 -0,768145161 5,842903226 1,337096774
0,735887097 -0,489919355 6,567741935 1,157419355
0,195564516 1,034274194 7,323870968 1,143225806
40
Tabela 14: Teste 14
Acelerações X (cm/s²) Acelerações Y (cm/s²) Posições X (cm) Posições Y (cm)
0,227822581 0,058467742 0,036451613 0,009354839
-0,227822581 -0,098790323 0,036451613 0,002903226
-0,622983871 -0,195564516 -0,063225806 -0,03483871
1,058467742 -0,203629032 0,006451613 -0,10516129
-0,9375 0,877016129 -0,073870968 -0,03516129
0,683467742 0,195564516 -0,04483871 0,066129032
0,485887097 0,195564516 0,061935484 0,198709677
-0,243951613 -0,372983871 0,129677419 0,271612903
0,288306452 0,054435484 0,243548387 0,353225806
0,502016129 0,308467742 0,437741935 0,484193548
0,788306452 -0,284274194 0,758064516 0,569677419
-0,006048387 -0,026209677 1,077419355 0,650967742
0,372983871 -0,159274194 1,456451613 0,706774194
0,159274194 -0,453629032 1,860967742 0,69
-0,393145161 -1,1875 2,202580645 0,483225806
0,405241935 -0,356854839 2,609032258 0,219354839
-0,320564516 -0,469758065 2,964193548 -0,11967742
0,098790323 0,102822581 3,33516129 -0,44225806
-0,118951613 0,514112903 3,687096774 -0,68258065
0,788306452 0,675403226 4,16516129 -0,81483871
41
ANEXO B
Neste anexo encontra-se o artigo desenvolvido nas normas da revista Da Vinci, que
tem sua publicação na Universidade Positivo.
42
43
Controle de Trajetórias Embarcado Antonio Joaquim Ferreira Soares Neto – [email protected] Egresso do Curso de Engenharia da Computação da Universidade Positivo Valfredo Pilla Júnior – [email protected] Professor do Curso de Engenharia da Computação da Universidade Endereço para contato: Universidade Positivo - UP, Curso de Engenharia da Computação Rua Prof. Pedro Viriato Parigot de Souza, 5300 – Campo Comprido 81280-330, Curitiba – PR Tel.: (+55) 41 3317-3270 Fax:(+55) 41 3317-3270 Resumo:
Um sistema de orientação é importante para um sistema móvel se localizar sem necessitar de referências externas, como o sistema de GPS (Global Positioning System) que em áreas fechadas ou em condições desfavoráveis do tempo não tem uma boa visibilidade dos satélites. Este trabalho se dedica a um controle de trajetórias embarcado que controla os movimentos do veículo de acordo com os parâmetros de entrada em um ambiente previamente mapeado. As trajetórias estabelecem uma conexão através de uma curva interpolada entre dois pontos, podendo esta curva ser uma reta ou um arco, artifício necessário para contornar obstáculos conhecidos. A partir das coordenadas de chegada escolhidas pelo usuário em uma tela de configuração, os dados são enviados através de uma comunicação serial para o microcontrolador. Durante o percurso do veículo, o sistema de posicionamento inercial estima as coordenadas atuais do veículo para se ter um melhor controle e para a validação do resultado obtido. Palavras-Chave: Acelerômetro, Interpolação de Curvas, Posicionamento Inercial, Cálculo de Trajetória, Veículo Rádio-Controlado.
Abstract:
An orientation system is important to a mobile system for locating himself without the requirement of external references, as the GPS (Global Positioning System) does not have good visibility of satellites in enclosed areas or in adverse weather conditions. This paper focus on an embedded trajectory controller that performs the vehicle's movements according to input parameters in a previously mapped environment. The trajectories establish a connection through interpolated curve between two points, this curve may be a straight line or a bowed curve, a subterfuge necessary to circumvent known obstacles. From destination coordinates chosen by the user in a configuration screen, the data is sent via serial communication to the microcontroller. During the course of the vehicle, the inertial positioning steering system the current coordinates of the vehicle to have better control and to validate the outcome. Keywords: Accelerometer, Interpolation Curves, Inertial Positioning, Trajectory Calculation, Radio-Controlled Vehicle. 1 INTRODUÇÃO
Um sistema de orientação é importante para um sistema móvel se localizar sem
necessitar de referências externas, podendo essas referências externas ser um comando enviado por uma pessoa ou um computador. Este sistema é importante em diversas áreas, como a área industrial (FERREIRA, 2004), busca de sobreviventes em acidentes (WOLF et al, 2003), e atualmente tem-se uma ampla pesquisa para controle autônomo de veículos pessoais (OSÓRIO et al, 2001).
Este trabalho trata-se de um controle de trajetórias embarcado. O controle de trajetórias é usado para direcionar o movimento de um veículo de acordo com os parâmetros de entrada em um ambiente previamente mapeado. Definida uma trajetória (reta ou curva) determinam-se as ações de movimentação do veículo. As trajetórias estabelecem uma
44
conexão através de curva interpolada entre dois pontos do mapa. A curva pode ser uma reta, um arco ou composição de arcos, artifício necessário para contornar obstáculos conhecidos. A partir das coordenadas de partida e chegada e da seleção da curva (ou curvas) um algoritmo de interpolação determina a trajetória da curva (ou curvas). O cálculo de interpolação que é uma forma de representar dados em uma função, para a aproximação da função analítica que não se pode ter previamente (BARROSSO et al, 1987) é a melhor escolha, pois pode-se gerar curvas diferentes para cada tipo de situação.
Durante o percurso do veículo o sistema de posicionamento inercial (CAMPOS et al, 2003) envia as coordenadas atuais para um melhor controle do veículo assim como para validação do resultado obtido. O Controlador é embarcado em microcomputador dedicado com microcontrolador ARM, que tem como características principais o baixo consumo de energia e o alto poder de processamento (SOUSA, 2006), onde a trajetória de um veículo rádio-controlado é realizada segundo a trajetória definida pela equação de interpolação.
Neste contexto, o presente trabalho apresenta um sistema composto de 2 duas partes, a primeira um programa em um computador pessoal, que tem como finalidade a entrada das coordenadas finais, os parâmetros da curva a ser realizada pelo veiculo e o desenho do gráfico referente ao movimento realizado, a segunda parte consiste em um sistema embarcado capaz de se comunicar com o computador pessoal para atualizar a posição do veiculo, nele consta o controle do veiculo e é responsável pelo posicionamento inercial que será explicado em detalhes, assim como o algoritmo de interpolação de curvas, responsável pelo calculo da curva a ser realizado pelo veiculo. A Figura 1 mostra a arquitetura geral do sistema, que é explicado com maiores detalhes no tópico 2.
2 ARQUITETURA
O sistema foi dividido em 2 blocos, o sistema do usuário onde existe a intervenção de uma pessoa para configurações e acompanhamento, e o sistema embarcado, onde algoritmos e sensores fazem todo o controle. 2.1 CONTROLADOR
O controlador é responsável pelo controle de todo o sistema embarcado, ele faz a leitura e conversões necessária do posicionamento inercial (explicado no subtopico 2.2), também realiza o calculo de interpolação de curva (explicado no subtopico 2.3), faz tratamento e envio de mensagens através do modulo transceptor wireless, e por fim faz o controle dos motores do veiculo se baseando nos cálculos executado e dados recebidos.
O controlador utilizado é um ARM7, mais especificamente o componente LPC2148 (PHILIPS, 2005) que está em uma placa nomeada eLPC64 produzida pela eSystech, esta placa é acoplada no kit da eSystech chamado ELPC2122 (ESYSTECH, 2008) para fins de debug, conexões com o computador e outras funções. 2.2 POSICIONAMENTO INERCIAL
O posicionamento inercial é parte fundamental do projeto, pois a partir dele é possível determinar a posição em que o veiculo se encontra em determinado instante de tempo, permitindo assim com que o sistema possa fazer um controle mais exato sobre o veiculo fazendo com que a trajetória realizada seja a mais próxima da desejada.
O acelerômetro é o dispositivo eletrônico por trás do posicionamento inercial, pois através dele é possível mensurar a aceleração nos eixos x, y e z. O dispositivo oferece como saída uma leitura na unidade de medida gravidade (G), podendo ser essa saída positiva ou negativa, por esse motivo foi necessário a criação de um algoritmo de conversão de medida para transformar a gravidade lida em posição instantânea do veiculo, essa conversão é mostrada adiante e está dividida em 5 etapas.
1ª Etapa – Cálculo de transformação da leitura do AD em tensão VoltsRx = AdcRx * VRef / 1023
(1) AdcRx – Corresponde a leitura feita pelo AD em 10 bits. VRef – Tensão de referencia do AD, no caso é utilizada uma tensão de 3,5V.
45
1023 – Corresponde a resolução do AD, que é 10 bits, logo 2^(10 -1.) VoltsRx – Terá o valor em Volts da leitura feita pelo AD.
2ª Etapa – Cálculo da Variação de Tensão Esta etapa calcula a diferença (offset) da tensão no equilíbrio, o ideal seria 0, mas
existe uma diferença, e para determina-la é realizado este cálculo. DeltaVoltsRx = VoltsRx - (VRef/2.0)
(2) VoltsRx – Corresponde ao valor lido pelo AD em Volts. VRef – Tensão de referência do AD (3,5V). 2,0 – Divisor, ele tem como valor padrão 2.0, pois o acelerômetro na posição de
equilíbrio tenderia a 0, logo ele varia de +1,5G até -1,5G, no caso aplicado, essa variação é 0 até Vref.
DeltaVoltRx – terá o valor transformado, onde o +1,5G corresponde a 3,5V e o -1,5G corresponde a 0V.
3ª Etapa – Aceleração Esta etapa faz o cálculo da aceleração instantânea do acelerômetro. Rx = (DeltaVoltsRx / Sensitivity)
(3) DeltaVoltsRx – É o valor lido do acelerômetro na escala de 0 a Vref. Sen sitivity – É a sensibilidade com que o acelerômetro foi configurado, esta
configuração é de 800mV/G, ou seja a cada G (aceleração) em um eixo, é aumentado ou diminuído 800mV da saída do acelerômetro.
Rx – Terá o valor da aceleração em m/s ao final desse cálculo.
4ª Etapa – Cálculo da Velocidade Esta etapa realiza uma integral a partir da aceleração, obtendo assim o valor da
velocidade naquele instante de tempo. vel_x = vel_x + 0.4*Rx
(4) Rx – é o valor da aceleração instantânea, medida naquele instante de tempo. 0,4 – é o período com que é realizada a leitura do acelerômetro. No caso é de 400ms Vel_x – é a soma de todas as velocidades desde o tempo inicial (0).
5ª Etapa – Cálculo da Posição Esta etapa realiza uma integral a partir da velocidade, obtendo assim o valor da
posição naquele instante de tempo. pos_x = pos_x + 0.4*vel_x
(5) vel_x – é o valor da velocidade que foi acumulada até o instante de tempo atual. 0,4 – é o período com que é realizada a leitura do acelerômetro. No caso é de 400ms. pos_x – é a soma de todas as posições desde o tempo inicial (0).
2.3 INTERPOLAÇÃO DE CURVA
O cálculo da Interpolação é feito a partir de coordenadas x e y inseridas no programa pelo usuário, o resultado desde calculo corresponde a curva desejada, que o veículo deve replicar na forma real. Um y positivo indica que a curva será para a direita, e um y negativo implica em uma curva para a esquerda. O valor de x não pode ser negativo, pois o veículo deve andar somente para frente. K1 e k2 são duas constantes que implicam na curvatura do trajeto feito pelo veículo. A seguir são mostrados todos os cálculos efetuados para a interpolação de forma mais detalhada.
A primeira coisa a ser fazer é encontrar um ponto intermediário, este ponto indica o tamanho da curvatura e onde esta curva será mais acentuada. Para isso foi necessário a inserção de 2 parâmetros, k1 e k2.
O ponto intermediário é calculado a partir da relação entre a distância dos pontos iniciais e finais, e de k1 e k2. A Figura 2 mostra de forma gráfica este problema.
46
O ponto a, aqui será tratado como ponto inicial, que nesta implementação será sempre considerado com coordenadas 0,0. O ponto b é o nosso ponto final, onde o veículo chega ao final do processamento. O ponto f é o nosso ponto intermediário, que deve ser calculado a partir das relações de k1 e k2.
O primeiro cálculo efetuado é a distância entre os pontos iniciais e finais (a e b). Para isso foi utilizada a seguinte equação:
D = √ ((bx-ax)2 + (by-ay)
2)
Onde bx é o valor de x do ponto b, ax o valor de x do ponto a, by o valor de y do ponto b e ay o valor de y do ponto a.
Encontrado a distância, pode-se encontrar os valores de d1 e d2 mostrados na Figura 3, segundo esta equação:
d1 = k1*D d2 = k2*D Agora o valor de δ deve ser encontrado, para assim, encontrarmos d3. Seguindo estas
equações: δ = arc tg (by / bx) d3 = √ ((d1-d2)
2)
O próximo passo é encontrar α e θ para se calcular o ponto intermediário.Para isso foi utilizado estas equações:
θ = arc tg (d2/d1) α = 90 – δ – θ, para curvas a direita e α = 90 – δ + θ, para curvas a esquerda. Com isto, o valor de fx e fy pode ser encontrado por meio das seguintes equações: fy = cos α * d3 fx = sem α * d3 A Figura 3 mostra as relações trigonométricas utilizadas para encontrar o ponto
intermediário. Com os valores dos pontos iniciais, finais e intermediários (a, b e f respectivamente),
podemos encontrar a equação de Interpolação, partindo da equação de Lagrange, onde: y0 = a0 + a1x0 + a2x0
2 + ... + anxn
2
Substituindo pelos pontos encontrados temos: 1º ay = a0 + a1ax + a2ax
2
2º by = a0 + a1bx + a2bx2
3º fy = a0 + a1fx + a2fx2
Resolvendo a 1ª equação, encontra-se a0 com valor 0, isso faz com que as outras equações não tenham o termo a0, tendo assim 2 equações e duas incógnitas, podendo resolver o sistema pelo método de substituição, obtendo como resultado as seguintes equações:
a1 = (fx*bx2 – by*fy
2) / (fx*bx
2 – fx
2*bx)
a2 = (by – a1*bx) / bx2
2.4 DRIVER DE POTÊNCIA E MOTORES
O driver de potência é necessário para o acionamento e controle dos motores de direção e avanço do veículo, pois a corrente consumida pelos motores, que é de 400mA, é superior a corrente que o controlador pode fornecer nos pinos de I/O. Assim, foi utilizada uma ponte-H, que tem a direção controlada pelos pinos de I/O do controlador, cuja finalidade é acionar uma fonte de alimentação adicional, específica para os motores, fazendo com que o consumo dessa fonte adicional não influencie o funcionamento dos outros módulos envolvidos, tais como controlador, transreceptor wireless e o sistema de posicionamento inercial, garantindo uma maior autonomia ao sistema. 2.5 TRANSCEPTOR WIRELESS
O módulo transreceptor wireless é responsável pela comunicação entre o controlador e o computador pessoal. A tecnologia de rádiofrequência utilizada foi o ZigBee, ZigBee é uma associação de empresas que trabalham em conjunto para permitir a troca de mensagens sem fio confiáveis, eficazes, de baixo consumo e que possam ser utilizados em monitoramento e controle de produtos baseado em uma forma de padrão aberto e de acesso global (ZIGBEE
47
ALLIANCE, 2010), a ZigBee Alliance determina o padrão a ser utilizado na tecnologia ZigBee, e as fabricantes montam os chips baseados nesse padrão. O componente utilizado é o fabricado pela empresa MaxStream, o XBee Pro (MAXSTREAM, 2006) tem como principais características uma comunicação em área urbana de até 100m, e em campo aberto de até 1500m, um consumo de transmissão de até 235mA e de recepção até 55mA, e em modo de baixo consumo de apenas 10µA. A comunicação é dividida em duas: ZigBee-Controlador e ZigBee-Central.
Ambos os ZigBee, assim como a serial do controlador, são configurados com uma taxa de transferência de 38400b/s, 8bits, nenhum bit de paridade, e 1 bit de parada. O ZigBee-Central é conectado ao computador através da USB, isto é possível graças a um adaptador Serial-USB (RS232-USB) que foi adquirido junto ao XBee Pro. 2.6 COMPUTADOR PESSOAL
O computador pessoal, denominado de Central de Comando, possui um software que é composto por uma tela de configuração, e uma outra parte importante desde software é o cálculo de interpolação de curva, que já foi explicado no tópico 2.3.
A interface homem-maquina é feita exclusivamente no computador pessoal, pois aqui existe uma interação entre uma pessoa e o computador, que está transmitindo mensagens com o controlador, para isso foi desenvolvida uma interface onde é inserido os dados iniciais, tais como xFinal, yFinal, k1 e k2, e o comando de Calcular e Iniciar trajetória.
Existe também outras configurações, como a configuração da interface de comunicação serial. E foi implementado uma função onde o usuário pode criar uma trajetória fechada, inserindo as coordenadas desejadas e apertando o botão “Adicionar”, o software entende como sendo uma trajetória fechada e acumula os dados inseridos em um vetor e faz o envio das coordenadas uma a uma, esperando a conclusão de cada uma e então avisando ao usuário que a trajetória foi efetuada com sucesso. Outro botão “Reta” foi adicionado, permitindo ao usuário fazer com que o veículo se locomova em uma reta por um intervalo de tempo pré-tederminado, esse intervalo é de 200ms, ou seja, o veículo percorre uma reta por 200ms. A Figura 4 mostra a interface utilizada. 4 RESULTADOS
O sistema foi capaz de realizar diferentes formas de curvas de forma satisfatória, mas
um problema encontrado que não permitiu uma execução próxima das curvas desejadas foi a dificuldade em se ler os valores do posicionamento inercial sem os ruídos gerados pela movimentação da direção do veiculo, o offset (leitura diferente de zero) intrínseco a fabricação do componente, assim como a oscilação do terreno, pois mesmo que seja uma reta planificada haverá leituras diferente de zero quando o veiculo está em repouso, isso causa um erro na leitura, que por sua vez influencia no controle do veiculo, fazendo assim com que a trajetória realizada e mostrada pelas posições lidas sejam diferentes do desejado.
Um teste realizado para validar o sistema. Foi realizado a mesma trajetória 14 vezes, a trajetória esperada. Fazendo uma média dos valores lidos e desenhando um gráfico utilizando os valores da trajetória esperada e da trajetória realizada obteve-se o gráfico de curva da Figura 5.
Os parâmetros de entrada foram: xFinal = 2; yFinal = 2; k1 = 0,5; k2 = 0,25 Na Tabela 1 tem-se os valores tratados pelo algoritmo de posicionamento inercial
resultantes do movimento realizado pelo veiculo. Como pode ser visto na Figura 5, a trajetória em si é parecida com a trajetória
desejada, mas ao comparar a escala é possível ver que no eixo x o limite deveria ser 2 mas na trajetória realizada esse valor é de aproximadamente 6, já o eixo y que deveria ser 2 é de aproximadamente de 0,2. Esse erro gerado é em função do problema encontrado no sistema de posicionamento inercial.
5 CONCLUSÃO
Os resultados obtidos durante os testes foram satisfatórios, pois o sistema se mostrou capaz de executar as curvas estipuladas sem maiores problemas, o algoritmo de controle do veículo se mostrou bastante eficiente, mas o grande problema encontrado foi a leitura do
48
sistema de posicionamento inercial, pois este era muito influenciado pela movimentação do veículo ocasionada pela movimentação do motor de direção, pois este tem apenas 3 posições, reto, totalmente para a direita e totalmente para a esquerda, criando assim uma grande vibração na hora do controle para realizar as curvas.
O sistema também se mostrou bastante flexível, pois após a implementação proposta, foi possível criar uma nova implementação onde é possível criar uma trajetória composta de diversas curvas e então enviar ao veículo, podendo assim fazer uma trajetória fechada, que para o usuário parece ser uma forma, sem a necessidade de fazer diversas realimentações.
Melhorias podem ser realizadas no sistema, tais como criar filtros para o sistema de posicionamento inercial, para retirar o offset e diminuir os erros de leitura realizados pelas vibrações do veículo, mudar o veículo em si, trocando para um com mecânica mais apropriada podendo conter molas ou outros sistemas mecânicos que diminuam as vibrações de movimentação e terreno. 6 REFERENCIAS
BARROSO, L. C.; BARROSO, M. M. de A.; FILHO, F. F. C.; CARVALHO, M. L. B. de; MAIA, M. L. Cálculo Numérico: com aplicações. 2.ed. São Paulo: Harbra, 1987.
CAMPOS, Alexandre; SILVA, André L. da. Desenvolvimento de um sistema de navegação inercial de baixo custo para uso no registro de trajetórias planas. 2003. XVIII Congresso Regional De Iniciação Científica e Tecnológica (Engenharia Mecânica) – Universidade Federal de Santa Maria.
ESYSTECH, eLPC-Main 2122: ARM Evaluation Board for eLPC SOM. Manual do Usuário. Rev. 08/2008.
FERREIRA, Alysson Sarmento. Protótipo de Veículo Autônomo – PVA. 2004. Pós-Graduação em Engenharia Eletrônica e Computação (PG/EEC) - Instituto Tecnológico de Aeronáutica, São José dos Campos.
FREESCALE SEMICONDUTOR, MMA7331L. Datasheet. Rev 0, 04/2008.
MAXSTREAM, XBee/XBee-PRO OEM RF Modules. Datasheet. Rev. 13/10/2006.
OSÓRIO, Fernando; HEINEN, Falei; FORTES, Luciane. Controle Inteligente de Veículos Autônomos: Automatização do Processo de Estacionamento de Carros. 2001. Mestrado em Computação Aplicada - Universidade do Vale do Rio dos Sinos, São Leopoldo, RS.
PHILIPS SEMICONDUCTORS, LPC2210/2220. Datasheet. Rev. 02,30/05/2005.
SOUSA, Daniel Rodrigues de. Microcontroladores ARM7 (Philips, Família LPC213X): o poder dos 32 bits. 1.ed. São Paulo: Editora Érica, 2006.
WOLF, A; BROWN, H. B.; CASCIOLA, R.; COSTA, A. ; SCHWERIN, M.; SHAMAS, E.; CHOSET, H. A Mobile Hyper Redundant Mechanism for Search and Rescue Tasks. 2003. Department of Mechanical Engineering - Carnegie Mellon University, Pittsburgh, USA.
ZIGBEE ALLIANCE, Misão, Disponivel em < http://www.zigbee.org/About/OurMission.aspx>. Acesso em: ago. 2010.
49
Figura 1: Arquitetura do sistema
Figura 2: Encontrar ponto F
Figura 3: Relação Trigonométrica
50
Figura 4: Interface Humano-Computador
Figura 5: Trajetória Calculada x Trajetória Realizada
0
0,5
1
1,5
2
2,5
3
0 1 2 3 4 5 6 7
y (cm)
x (cm)
Curva Calculada
Curva Realizada
51
TABELA 1: Tabela Valores Lidos Posicionamento Inercial
x (cm) y (cm)
0 0
0,036 0,009
0,089 0,042
0,167 0,077
0,284 0,070
0,395 0,074
0,560 0,107
0,740 0,156
0,961 0,221
1,227 0,266
1,493 0,328
1,805 0,361
2,154 0,362
2,528 0,360
2,931 0,367
3,341 0,358
3,801 0,334
4,314 0,307
4,863 0,265
5,439 0,245
6,079 0,227
52
53
ANEXO C
Neste anexo encontra-se o manual técnico do sistema, mostrando como utilizar o
sistema, configurar e resolver eventuais problemas encontrados.
54
55
CONTROLE DE TRAJETÓRIAS EMBARCADO
Manual Técnico
Antonio Joaquim Ferreira Soares Neto
UNIVERSIDADE POSITIVO/NCET
Curitiba
2010
56
57
SUMÁRIO
1 - INTRODUÇÃO .................................................................................................................. 59
2- REQUISITOS ...................................................................................................................... 61
2.1 – REQUISITOS DE HARDWARE ................................................................................... 61
2.2 – REQUISITOS DE SOFTWARE .................................................................................... 63
3 – CONFIGURAÇÕES DO SISTEMA ................................................................................. 65
3.1 – CONFIGURAÇÕES DE HARDWARE ........................................................................ 65
3.2 – CONFIGURAÇÃO DE SOFTWARE ............................................................................ 66
3.2.1 – CONFIGURANDO A COMUNICAÇÃO DO TRANSRECEPTOR ......................... 66
3.2.2 – CONFIGURAOS DADOS PARA CONTROLE E REALIZANDO A
TRAJETÓRIA ............................................................................................................................... 68
4 – RESOLUÇÃO DE PROBLEMAS .................................................................................... 71
4.1 – RESOLUÇÃO DE PROBLEMAS DE HARDWARE ................................................... 71
4.2 – RESOLUÇÃO DE PROBLEMAS DE SOFTWARE .................................................... 71
58
59
1 - INTRODUÇÃO
Este manual tem por objetivo mostrar os requisitos necessários, as configurações
dos componentes do sistema e como realizar uma trajetória utilizando o sistema.
Entende-se que o projeto é o controle de trajetória embarcado, desta forma não há
usuário final do projeto, podendo ser utilizado para diversos fins, assim como para ser
utilizado como base para novas implementações. As informações deste manual devem
ser utilizadas por um conhecedor de linguagem C++ e C, assim como da arquitetura
ARM.
60
61
2- REQUISITOS
São necessários alguns requisitos e configurações do sistema para que todos os
módulos do projeto possam ser configurados e funcionem adequadamente. Estes
requisitos de software e hardware estão descritos nas seções abaixo.
2.1 – Requisitos de hardware
Para o funcionamento do projeto é necessário da placa adaptadora ARM da empresa
EsysTech, o modelo utilizado é o ELPC64, mostrada na Figura 01, que deve conter as
seguintes características:
Microprocessador ARM NXP LPC2148
Header de 60 pinos para acesso ao ARM
Alimentação externa de 5 V +/-1V
Cristal de 16MHz para o processador
Cristal para o RTC de 32,768kHz
Figura 01: Placa ELPC64
62
É necessário também a placa “3 Axis Acceleration Sensor Board” fabricada pela
Sure Electronics, mostrada na Figura 02, que contém o acelerômetro utilizado para a
aquisição da posição do veículo e deve conter as seguintes características:
Acelerômetro MMA7260Q da empresa Freescale
Alimentação externa de 5V até um máximo de 9V, ou alimentada diretamente a
3,3V
Figura 02: Placa “3 Axis Acceleration Sensor Board”
E para a comunicação é necessário o transreceptor XBee Pro da empresa
MaxStream, ilustrada na Figura 03. Para a utilização na central de comandos é preciso
ter o adaptador USB fabricado pela RogerCom, ilustrada na Figura 04.
Figura 03: XBee Pro
Figura 04: Adaptador USB
Para funcionamento adequado do software é necessário um computador com a
configuração mínima abaixo:
Processador AMD K-7 ou Intel Pentium III com pelo menos 1000MHz;
512 MB de memória RAM;
10MB de memória livre em disco;
63
Leitor de CD/DVD-ROM de 4x ou superior;
Porta USB;
Sistema Operacional Windows XP ou superior.
2.2 – Requisitos de software
Para o funcionamento do sistema é necessário que o usuário execute o programa
Central de Comandos, e insira a USB, assim como efetue as configurações que são
explicadas passo a passo no tópico 3.2.1.
64
65
3 – CONFIGURAÇÕES DO SISTEMA
As configurações abaixo dos componentes do sistema são necessárias para que
possam ser realizados os procedimento descritos no capítulo quatro.
3.1 – Configurações de Hardware
É necessário que o sistema embarcado seja alimentando pelas fontes externas:
Bateria de 9V localizada na parte frontal do veículo;
3 pilhas de 1,5V localizadas na parte inferior do veículo;
Deve-se também ligar as respectivas chaves das alimentações, garantindo assim que
o sistema esteja alimentado corretamente. As figuras 05 e 06 ilustram a localização das
baterias e chaves.
Figura 05: Localização da bateria de 9V e chave
66
Figura 06: Localização das pilhas de 1,5V e chave
3.2 – Configuração de software
Após as configurações de hardware terem sido realizadas, é necessário garantir que
o software esteja configurado corretamente para enviar e receber dados do sistema
embarcado, para isso é necessário configurar os dados da comunicação. Essa
configuração e outras são mostradas a seguir, assim como os passos para efetuar um
comando para o veículo se movimentar.
3.2.1 – Configurando a comunicação do transreceptor
Depois de conectar o transreceptor a USB do computador utilizando a placa
adaptadora da RogerCom, em seguida abra o gerenciador de dispositivo, uma maneira
de fazer isso é ir no menu iniciar, depois executar e digitar: “devmgmt.msc”, de forma
que apareça a imagem ilustrada na Figura 07.
67
Figura 07: Gerenciador de Dispositivos
Em seguida vá na aba “Portas (COM e LPT)” ver qual porta foi reconhecida pelo
seu sistema operacional, como mostrado na Figura 08.
Figura 08: Porta Reconhecida pelo Sistema Operacional
Conforme a Figura 08, a porta reconhecida neste caso foi a COM5.
68
Em seguida execute o programa “Central de Comando” e clique no botão
“Configurar Serial” e configure da seguinte forma:
Port: A porta que o sistema operacional reconheceu como sendo o transreceptor,
no caso COM5;
Baud rate: 38400, pois é a configuração utilizada pelo sistema embarcado;
Data bits: 8;
Stop bits: 1;
Parity: None;
Flow Control: None;
A Figura 09 ilustra essa configuração no programa, em seguida clique em OK para
salvar as configurações.
Figura 09: Configuração transreceptor
Verifique se a luz ao lado de “Status Serial” na tela do programa está “acessa”, caso
não esteja clique em “Abrir Serial”, se já estiver acessa você irá encontrar um botão
chamado “Fechar Serial”.
As configurações de comunicação já estão feitas, agora deve-se inserir os dados para
o controle, que é explicado no tópico seguinte.
3.2.2 – Configurando os dados para controle e realizando a trajetória
69
Realizada as configurações de comunicação, deve-se então efetuar as entradas para o
controle do veículo. Para isso é necessário preencher 4 campos que sçao descritos a
seguir:
Posição Final X: é a posição de destino no eixo x, o valor deve ser sempre
positivo (maior ou igual a 0);
Posição Final Y: é a posição de destino no eixo y, define também se a curva será
para a direita ou esquerda. Para curvas a direita o valor deve ser positivo e para
curvas a esquerda o valor deve ser negativo.
k1: é um dos coeficientes da curva, o valor deve estar entre o intervalo de 0,5 a
0,9, valores fora desse intervalo poderão gerar erro no sistema.
k2: é o outro coeficiente da curva, o valor deve estar entre o intervalo de 0,1 e
0,3, valores fora desse intervalo poderão gerar erro no sistema.
Preenchidos estes campos, clique no botão calcular, assim o programa irar gerar
um gráfico a esquerda, nomeado de “Trajetória Calculada”. A Figura 10 ilustra uma
configuração para o controle de trajetória.
Figura 10: Configuração dos dados e curva
Em seguida é necessário enviar estes dados ao sistema embarcado, para isso
basta clicar no botão “Enviar”, se a mensagem for recebida corretamente, irá
aparecer uma mensagem confirmando o envio, como mostrado na Figura 11.
70
Figura 11: Envio dos dados e confirmação do recebimento
Após o envio correto para o sistema embarcado, o botão “Iniciar” será
habilitado, permitindo assim o inicio da trajetória pelo veículo. Durante a execução
da trajetória o veículo atualizará o gráfico “Trajetória Real” com as suas posições,
permitindo assim a comparação entre a trajetória desejada e a trajetória permitida
em tempo real. Após o término da execução, o sistema alerta com uma nova janela
mostrando que o controle foi realizado com sucesso, conforme mostrado na Figura
12.
Figura 12: Controle Concluído
Feito essas operações sobre o programa, é possível realizar trajetórias de formas
independentes e receber o resultado. Após cada execução, o programa retorna para a
tela inicial, e deve ser feita todos os passos.
71
4 – RESOLVENDO PROBLEMAS
Este capítulo trata de exemplificar e mostrar como resolver eventuais problemas
tanto de software quanto de hardware.
4.2 – Resolvendo problemas de software
Os possíveis problemas no software poderão ser:
Não instalação ou má instalação do adaptador USB;
Configuração errada da comunicação do transreceptor;
Para solucionar o problema do adaptador USB (caso não seja reconhecido
corretamente pelo Sistema Operacional), é a instalação manual do adaptador, realizada
executando o driver correto para o sistema operacional utilizado, para isso entre na
pasta: “Programas/Diver USB/Seu Sistema”. Após instalado o adaptador deve ser
reconhecido corretamente.
Para solucionar o problema da configuração errada da comunicação do transreceptor
efetue os passos mostrados no tópico 3.2.1 (Configurando a comunicação do
transreceptor).
4.2 – Resolvendo problemas de hardware
Os possíveis problemas o hardware poderão ser:
Falta da alimentação do sistema;
Falta da alimentação dos motores;
72
Para identificar e solucionar o problema da falta de alimentação do sistema, basta
verificar se o led na placa ELP64 está acesso, caso não esteja, a bateria pode estar
desconectada ou descarregada, ou a chave de alimentação do sistema está desligada.
Para identificar e solucionar o problema da falta de alimentação dos motores, deve-
se verificar se a chave localizada na parte inferior do veículo está na posição “ON”, caso
esteja nesta posição, envie o comando de iniciar pelo programa “Central de Comando”,
se o veículo não se movimentar, a carga das pilhas não é o suficiente para os motores e
deve ser trocada ou recarregada.