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%.