Вы находитесь на странице: 1из 19

OBS Sobre o arquivo: Todas as equaes foram feitas com programa

MathType 6.5, Ele cria e controla automaticamente os nmeros das equaes.


Estes nmeros no devem ser deletados. Como o restante do relatrio no
necessrio usa este programa, estou colorindo todos os nmeros para facilitar
alguma edio no futuro sem o recurso do MathType. As figuras e tabelas tambm o
sistema de referncia cruzada do Word, por isso esto coloridas e no se deve
delet-las pela metade, por exemplo, para trocar o nmero manualmente,
prefervel usar o Update do MathType ou o boto direito - Atualizar Campo.

Dados do projeto de programao veculo transportador remoto.

OBS 1: Toda palavra em lngua estrangeira, exceto o nome das variveis, em
itlico.
OBS 2: Alguns dos tpicos aqui descritos podem ser realocados em outros
itens do relatrio, pois tratam de caractersticas que vo alm do projeto de
programao.
OBS 3: Todos os NXT's foram identificados com nmeros de 1 a 5, tanto
fisicamente (visto pelo seres humanos) como logicamente (visto pelo software do
Mindstorms).

Noo geral de funcionamento do programa.

O controle remoto recebe o programa denominado Emissor.
No carrinho usa-se 2 NXT's , denominados Receptor_A e Receptor_B,
onde o A responsvel por controlar o volante e acionar os 2 LEDs de indicao
de manobra e o B responsvel por 3 motores de trao e os sensores de
segurana.
O controle da potncia enviado aos motores e a posio do volante feito por
meio de um joystick montado com 2 motores do Mindstorms cuja posio angular
lida e interpretada pelo programa.

Definio das funes dos motores.

Emissor:
Motor A: Define direo do volante.
Motor B: Define potncia enviada aos motores de trao.
Motor C: No conectado.

Receptor A:
Motor A: Movimenta o volante do veculo.
LED B: Pisca com frequncia de 0,5 Hz quando o veculo virando esquerda.
LED C: Pisca com frequncia de 0,5 Hz quando o veculo virando direita.
Ambos os Led's receberam a capa amarela para sinalizarem com a mesma cor
dos veculos automotores.

Receptor B:
Motor A, B e C: Responsveis por tracionar o veculo.

Definio das funes das entradas 1,2,3,4 e botes NXT..
Emissor:
Boto 1: Referenciar volante.
OBS: (Este pargrafo fica aqui at encontrar local apropriado) A nova forma de
referenciar controlada somente pelo boto 1. Se ele estiver pressionado, no ser
enviada a varivel Side e a posio dos encoders no Emissor e do volante so
zeradas. Ao se liberado a nova posio do joystick determina a zero da varivel
Side. Para melhorar os resultados, deve-se posicionar o volante na posio central
alinhada com o movimento e ento pressionar o boto 1 e mover o joystick para a
posio central do controle remoto, assim o volante devidamente referenciado.
Boto 2: Realizar medio de velocidade mdia no percurso desejado.
Entrada 3 e 4: Sem uso.

Receptor A:
Entrada 1, 2, 3 e 4: Sem uso.


Receptor B:
Ultrassom 1: Proteo contra impacto frontal, altura baixa.
Ultrassom 2: Proteo contra impacto frontal, altura alta.
Ultrassom 3: Proteo contra buracos frontais e degraus que as rodas no
transpem. Aponta para baixo estando frente do veculo.
Ultrassom 4: Proteo contra impacto em marcha r, altura baixa (nica).

NXT:
Enter: Parada de Emergncia. Quando o boto est pressionado o emissor
envia 0 para a varivel Power, parando os motores de trao.
Seta Direita, Seta Esquerda: Sem uso

Procedimento para conexo do Bluetooth.

Primeira conexo.
Ligar todos os NXT's.
Ligar os Bluetooth's de todos os NXT's.
Deixar todos os Bluetooth's na opo visvel (Visibility: On).
No NXT mestre, realizar uma busca por outras conexes Bluetooth.
Aps encontrar os outros NXT's, conectar cada NXT em um conexo entre
{1,2,3}.
Ser pedida uma senha de conexo em ambos os NXT's, ambos devem ter a
mesma senha. A senha padro 1234.
Aconselha-se a verificar nos menu Connections dos NXT's escravos se o seu
respectivo mestre encontra-se na conexo 0 (zero).
Verificadas as conexes, podem-se rodar os programas em cada NXT, a
ordem em que os programas so iniciados no afeta a conexo. Todavia deve-se ter
em mente se a forma como cada programa foi escrito por ter influncia dependendo
da ordem de inicializao.

OBS: Cada NXT pode ser mestre de at 3 escravos. possvel tambm que
um escravo seja mestre de outro escravo, mas no do mesmo mestre. Todavia
deve-se ter o cuidado com o nmero da conexo usada e as caixas de correio
(Mailbox).

Variveis, descrio e caixa de correio (Mailbox) de Envio/Recepo por
Bluetooth.

Receptor A: Conexo 1.
Receptor B: Conexo 2.

Side (Number): Recebe a posio angular do motor A do Emissor, posicionado
de forma que a haste da direita do joystick se movimente para esquerda e para
direita, cujo sentido respectivamente enviado para movimentar o volante do
veculo. Emissor envia para Receptor A. Conexo 1. Mailbox 1.

Power (Number): Recebe a posio angular do motor B do Emissor,
posicionado de forma que a haste esquerda do joystick se movimente para frente e
para trs, cujo sentido respectivamente enviado para movimentar o veculo. A
marcha r limitada a 50% da potncia mxima para facilitar a capacidade de
manobra do veculo. Emissor envia para Receptor B. Conexo 2. Mailbox 2.

Ref_vol (Logic): Varivel enviada para zerar o encoder do motor A no receptor
A para alinhar o zero do volante com o zero do controle, caso o veculo seja ligado
com o volante torto, ou fique assim devido a algum desvio no percurso. Emissor
envia para Receptor A. Conexo 1. Mailbox 3.

Medir_velo (Logic): Varivel que define o perodo de medio da velocidade
mdia. Emissor envia para Receptor B. Conexo 2. Mailbox 4.

v_med (Number): Velocidade mdia. Resultado da operao Delta_S / Delta_t
realizada no Receptor B e tambm calculada no Emissor. Exibida na tela do Emissor
e do Receptor B em mm/s.

Forward (Logic): Receptor B. Varivel responsvel por definir o sentido de
movimento dos motores de trao, seja para frente ou para trs dependendo do
sinal recebido na varivel Power.

Angle_A (Number): Receptor A. Recebe a leitura do motor A do Receptor A,
responsvel por controlar a posio do volante do veculo. A lgica de controle usa
as variveis Side e Angle_A para definir a posio angular do volante.

Raio_Roda (Number): Raio dos Pneus do kit Mindstorms.

alfa_inicial (Number): ngulo inicial para clculo da v_med. Recebe valor do
encoder logo aps ele ser zerado. uma forma de garantir que caso o encoder no
esteja exatamente em zero, est varivel recebe este valor para calcular a variao
correta de ngulo.

alfa_final (Number): ngulo final para clculo da v_med. Recebe o valor do
encoder ao trmino do perodo de medio.

Delta_S (Number): Variao de espao linear percorrido pelo veculo. Exibida
na tela do Emissor e do Receptor B em mm. Conexo 0. Mailbox 2.

Delta_t (Number): Variao de tempo do perodo de medio da velocidade
mdia. Exibida na tela do Emissor e do Receptor B em milissegundos. Conexo 0.
Mailbox 3.

Rel_trans (sem tipo): No uma varivel formal do programa, mas seus
valores so usados nos blocos de multiplicao e diviso para o correto clculo de
Delta_S.

Delta_ang (Number): Diferena entre o valor de Side e o valor lido do volante
(motor A). Define o ganho de potncia para virar o volante.

Alerta (String): Envio de texto para o Emissor sobre os sensores ultrassnicos
no veculo. Os sensores se encontram no Receptor B e para os motores caso
identifiquem perigo, o tipo de perigo informado com alerta sonoro do nmero do
sensor em ingls (para quem estiver prximo do veculo) e enviado para o emissor
como texto exibido na tela. Conexo 0 . Mailbox 1




Tabela 1 Variveis usadas nos programas desenvolvidos
Varivel Tipo Visor Motor Emissor Receptor Conexo Mailbox
Side Number S (Rec A/Emissor) A sim A 1 1
Power Number S (Rec B/Emissor) B sim B 2 2
Ref_vol Logic N --- sim B 2 3
Medir_velo Logic N --- sim B 2 4
v_med Number S (Rec B/Emissor) --- sim B
Forward Logic N --- --- B --- ---
Angle_A Number N A --- A --- ---
Raio_Roda Number N --- --- B --- ---
alfa_inicial Number N --- --- B --- ---
alfa_final Number N --- --- B --- ---
Delta_S Number S (Rec B/Emissor) --- --- B 0 2
Delta_t Number S (Rec B/Emissor) --- --- B 0 3
Rel_trans Sem tipo N --- --- B --- ---
Alerta String S (Emissor) --- sim --- 0 1

Tabela 2 Informaes da varivel Alerta
Som Mensagem na tela
Nenhum sensor Seguro
01 (One) Fr Baixo
02 (Two) Fr Alto
03 (Three) Buraco
04 (Four) Re
05 (Five) Degrau


Teoria do controle (realimentao).

Para controlar corretamente o volante fazendo a posio angular dele ser
correspondente a posio do controle (DOUGLAS Continua discutindo como
implementamos esta teoria para obter o nosso resultado e qual a dificuldade que nos
levou a optar por este caminho).

FIGURA DOUGLAS SOBRE CONTROLE COM REALIMENTAO
Figura 1 Diagrama do controle realimentado.

Equaes.



Figura 2 Movimento circular e movimentao linear.

Para o clculo da variao linear de espao percorrido pelo veculo foi usada a
equao (1).


( )
_
180
final inicial
Delta S R
t
o o
| |
=
|
\ .
(1)
O fator
180
t | |
|
\ .
converte o valor lido do ngulo em graus para radianos,
permitindo obter o valor correto do deslocamento linear.
Todavia dado a limitao da verso do NXT para trabalhar somente com
nmeros inteiros foi implementada a equao (2).

( )
1
_ 314
18000
final inicial
Delta S R o o = (2)
Onde a operao de diviso implementada aps todas as demais.
A unidade do R est em mm.
A leitura do tempo dos temporizadores do Mindstorms feita em
milissegundos. Numa primeira anlise temos que a velocidade mdia dada por (3)

_
_
_
Delta S mm m
v med
Delta t ms s
(
= =
(

(3)
Todavia, como o tempo medido em milissegundos (ms) muito provvel que
o valor da varivel Delta_t seja maior que Delta_S, e como o NXT trabalha com
inteiros, o resultado desta operao 0 (zero).
Assim opta-se por usar a varivel de tempo em segundos, para isso ela
divida por 1000, matematicamente, o mesmo resultado de multiplica a expresso
por mil assim tem-se (4):

_ _
_ =1000 =
_
_
1000 1000
Delta S Delta S mm mm
v med
Delta t ms
Delta t s
(
(
= =
(
(

(4)
Onde a unidade dada em mm/s e exibida na tela do Emissor e do
Receptor_B.


RELAO DE TRANSMISSO (Mecnica mas usada na programao do
velocmetro eu aproveitei texto que tinha da Unificada 1 e inclui os clculos feitos
para o odmetro do velocmetro).

Para transmitir o movimento e torque dos motores para o resto da estrutura
vital o uso de engrenagens cuja relao de transmisso aumente alguma grandeza
transmitida conforme os ensinamentos de Fenmenos Mecnicos.
A relao de transmisso relaciona as grandezas fsicas usadas no movimento
rotacional da forma descrita na equao (5), onde ndices e e s denotam entrada
e sada da transmisso, sendo substitudos pelos ndices 1 e 2 respectivamente.

1 1 1 1 2 2 2
1,2
2 2 2 2 1 1 1
e
s
n n v z d
i
n n v z d
e o t
e o t
= = = = = = = = (5)
n: rotao dos eixos (rpm)
e : velocidade angular (rad/s)
v: velocidade tangencial (m/s)
o : a posio angular (rad, grau)
z: n de dentes das engrenagens (caso a transmisso seja por engrenagens)
d: dimetro dos elementos de transmisso (polias, engrenagens, etc.) (mm)
t : o torque (Nm)

A partir da equao (5) possvel demonstrar a relao de transmisso total
entre eixos acoplados conforme na transmisso do motor de trao para as rodas
(Figura 3).



Figura 3 Diagrama da relao de transmisso entre dois eixos.

A relao entre a rotao n
2
e n
1
dado por i
1,2
; a relao entre n
3
e n
4
dada
por i
3,4
; sendo n
2
=n
3
; chega-se a relao de transmisso total na equao (6):

1 1,2 2 3 3,4 4 2 3
1
1 1,2 2 1,2 3,4 4 1,2 3,4
4
; ;
T
n i n n i n n n
n
n i n i i n i i i
n
= = =
= = = =
(6)
Os nmeros de dentes das engrenagens usadas foram: z
1
=16; z
2
=16; z
3
=40;
z
4
=24. O que implica em i
1,2
= 36/16 e i
3,4
= 40/24, por fim i
T
= 27/20.
No programa, para se saber a variao linear, a leitura da variao angular do
motor foi dividida por i
T
, conforme (5) para se encontrar
2
o em funo da relao de
transmisso e da leitura da posio angular da entrada
1
o . Portanto foi usado um
bloco que multiplica por 20 e outro que divide por 27, pois o programa trabalha
apenas com nmero inteiros, o que implica que a equao (2) assume a forma
definitiva com a relao de transmisso apresentada em (7)


( )
1 1
_ 314 20
18000 27
final inicial
Delta S R o o = (7)


Fluxograma dos programas.

OBS: Esta verso do NXT trabalha apenas com nmeros inteiros. Assim para
realizar corretamente uma operao de diviso opta-se por realizar realiz-la por
ltimo, assim evita-se que seja perdida informao. Por exemplo: 1/ 2 = 0 pois 2
maior que 1, para obter uma soluo para isso pode fazer a operao (1*1000)/2 =
500 (mili unidades).
Os programas foram desenvolvidos na prpria interface de programao em
blocos do Mindstorms. Os programas trabalham dentro de loopings infinitos que
atuam em paralelo, assim possvel realizar paralelamente o controle de velocidade
e do volante, alm de algumas outras funes como o Bluetooth. Alguns dos
loopings esto separados para facilitar o entendimento do fluxograma.

Emissor.

Figura 4 Fluxograma do Emissor.


Figura 5 Fluxograma do Emissor. Sub-looping E1. (Houve alterao)



Figura 6 Fluxograma do Emissor. Sub-looping E2. (Houve alterao)


Figura 7 Fluxograma do Emissor. Sub-loopings E3 e E4.

Receptor A.

Figura 8 Fluxograma do Receptor_A.


Figura 9 Fluxograma do Receptor_A. Sub-loopings A1. (Houve alterao)

Receptor B.

Figura 10 Fluxograma do Receptor_B.

Figura 11 Fluxograma do Receptor_B. Sub-looping B1.


Figura 12 Fluxograma do Receptor_B. Sub-looping B2.

Montagem Controle Remoto (Joystick).

O joystick foi concebido sobre o uso de 2 motores como controladores
analgicos, tais como os utilizados em brinquedos de controle remoto. Desta
maneira possvel controlar analogicamente a velocidade e a posio do volante, e
no apenas fazer o veculo se movimentar para frente ou para trs com potncia
mxima o que causaria solavancos em suas partidas como tambm s se
realizariam curvas com raio fixo ou em patamares.
Pesquisando sobre joystick chegou concluso de fazer um modelo prximo
ao do incio da era dos vdeos games, similar ao Atari (Figura 13). Este modelo
permite controlar o veculo somente com uma mo, enquanto que a outra se atm a
segurar o NXT.



Figura 13 Imagem exemplo do Joystick 1 modelo.

(O joystick est sendo desenhado pela equipe da montagem mecnica em
software CAD. Manteremos uma imagem do software junto com uma foto do modelo
real)
Todavia, no decorrer dos testes percebeu-se que existia certa dificuldade de
mover os motores com o 1 modelo de joystick, devido s prprias folgas dos
motores. Para resolver este problema foi testada uma montagem da primeira ideia
que se teve de joystick, a similar ao controle remoto de brinquedos, sendo que este
2 modelo (Figura 14) montado se mostrou mais sensvel que o anterior,
necessitando apenas de algumas reconfiguraes no programa devido aos seus
novos cursos de controle.
Nesta configurao, o motor do lado direito se desloca transversalmente e sua
posio informa a posio do volante do veculo (Motor A Side), enquanto que o
motor do lado esquerdo se movimenta longitudinalmente e sua posio indica a
potncia de acionamento dos motores tal como sua direo para frente ou para trs.
Ambos os motores so referenciados automaticamente na posio central de
seus cursos ao se ligar o Emissor, sendo que no caso do Motor A, ainda possvel
referenci-lo novamente para corrigir algum erro que seja detectado de alinhamento
na posio do volante.


Figura 14 Imagem exemplo do Joystick 2 modelo.


Tempos de Trabalho.

O nico custo que sou capaz de informar o tempo gasto para cada atividade.
At o momento foram:

Dia 06/02: 3h reunio geral.

Dia 07: 2h: Teste do bluetooth e leitura do motores
Dia 08: 4h: controle do motor no receptor com um do emissor
Dia 09: 3h: lgicas de controle do volante
Dia 10: 3h: descoberta dos problemas de verses e trfego na rede.

Dia 13: 3h reunio geral. Finalizao do controle volante. Desenvolvimento
do Joystick (Douglas em paralelo).
Dia 15: 2h; Inicio do desenvolvimento do velocmetro. Primeiros testes com o
prottipo do veculo.

Dia 26: 4h. Criao deste relatrio, incluindo desenho do crculo e equaes.

Dia 27. 3h. Criao do velocmetro, durante este processo percebeu-se que a
comunicao entre os NXT's escravos para o mestre no feita tal como pensado
inicialmente.

Dia 29/02: 2h. Conserto da varivel Side, da lgica de referenciamento e do
velocmetro. Teste da medio de distncia para o velocmetro.

Dia 01/03: 2h. Criao do sistema de sensoriamento de segurana com
sensores ultrassom. Mudana do parmetro de ganho (fator de multiplicao) do
curso do joystick responsvel pela varivel Power, consequentemente, foram criados
os saturadores de potncia baixa e alta, i.e., abaixo de 4% saturado como 0% e
acima de 100% saturado como 100%.

Dia 05: 3h. Testes do prottipo. Criao da exibio de velocidade mdia e
avisos de perigo na tela do Emissor aps entender como enviar informaes dos
NXTs escravos para o mestre. Adio de indicao luminosa de manobra (seta).
Leve alteraes no programa para reduzir o tempo de resposta do receptor para
uma ao no emissor. Teste de distncia de comunicao do Bluetooth e de
desempenho subindo a rampa do 1 para o 2 andar do Bloco A.

Dia 12: 3h. Testes do prottipo. Reviso dos fluxogramas feitos pelo Gabriel, os
quais no estavam satisfatrios, pois no condiziam com o intuito de fazer um fluxo
dos dados do programa de forma simples. Foi demonstrada uma forma de fazer o
fluxograma obedecendo aos caminhos dos dados no programa e representando os
comandos de programao de forma grfica e clara. Debatido com o Douglas uma
forma de melhorar a sensibilidade do volante. O resultado foi adicionar ganhos de
potncia no motor diferentes em funo da diferena entre a posio atual do motor
e a posio solicitada pelo joystick. Os parmetros dos sensores foram ajustados
por mim, e tambm adicionamos a condio para evitar ressaltados que as rodas
no so capazes de transpor.

Dia 19: 3h. Testes do prottipo. Alterao no joystick para obter mais
sensibilidade, novo modelo confeccionado. Ajustadas as referncias e parmetros
de sensibilidade, que ficaram timos. O odmetro foi testado e est satisfatrio para
o uso do velocmetro. Reduzida a potncia da marcha r para facilitar a manobra.

Dia 24: 4h. Reviso do fluxograma enviado pelo Gabriel, incluindo
posicionamento das setas, atualizao da lgica em alguns trechos e passagem das
imagens para o arquivo do relatrio.

Dia 26/03: 3h. Testes de desempenho. Alterados os ganhos para mover o
volante, sendo agora 2 vezes para diferena de ngulo superior a 10 graus e 4
vezes para diferenas menores que 10 graus. Isto foi feito aps constatar que o
curso fsico das rodas da frente estava na faixa de 80 graus, o que significa 40 para
cada lado, e dessa forma a potncia resultante para mover o volante
proporcionalmente a diferena de ngulo deveria ser incrementada.

Dia 29/03: 1h: Conserto de um erro na lgica de referenciamento da varivel
Side, enviando sinal para tambm zerar o encoder do volante no Receptor_A. Pois
ainda era possvel ligar o veculo com o volante desalinhado e no conseguir corrigi-
lo com uso do Emissor. Novo patamar para saturao da r em 75%.

Dia 02/04: 3h:

Вам также может понравиться