unversidade positivo nÚcleo de ciÊncias exatas e ... · palavras-chave: lançador de projetil,...
Post on 17-Nov-2018
225 Views
Preview:
TRANSCRIPT
UNVERSIDADE POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
ENGENHARIA DA COMPUTAÇÃO
Daniel Cardoso
de Morais
LANÇADOR DE PROJÉTEIS
CONFIGURÁVEL E
AUTOMATIZADO
Orientador: Maurício Perretto
Curitiba, 2015
RESUMO
A física mecânica clássica é uma área da ciência muito importante para o cotidiano. O estudo
desta área possibilitou inúmeros benefícios e facilidades a sociedade, como o entendimento do
movimento de planetas a até a fabricação de automóveis. Por ser uma área de extrema importância,
é crucial poder transmitir aos estudantes esta matéria com os melhores recursos possíveis, tanto na
teoria quanto na prática.
Um dos assuntos da física mecânica clássica é o estudo de movimento de projéteis. Este
assunto está presente em nosso cotidiano diariamente, como por exemplo em uma pacífica partida
de basquete, onde o atleta tem como principal objetivo acertar uma bola dentro de um arco,
posicionado em uma distância bem acima de sua altura, ou também em um hostil campo de batalha,
aonde um atirador de elite precisa acertar seu alvo a uma grade distância. Em ambos exemplos, os
indivíduos precisam utilizar seu senso de orientação para conseguir seus objetivos: O atirador de elite
precisa posicionar sua arma em uma determinada posição, considerar a força da gravidade no projétil
e efetuar o disparo. Já o atleta, para acertar uma cesta de 3 pontos, além de mirar e considerar a
gravidade, precisa também exercer uma força na bola suficiente para atingir a altura e distância da
cesta.
Visando auxiliar um estudante de física a entender essas situações, este projeto tem como proposta a construção de um lançador de projéteis configurável e automatizado, com o intuito de melhorar a visualização prática das Leis de Newton, no qual o usuário interage com um sistema, informando-o dados como ângulo vertical e força. O sistema automaticamente apontará o lançador para o ângulo desejado, calculara e aplicara a força no projétil. Ao mesmo tempo, o sistema calculara informações como velocidades, altura e distância a ser alcançada pelo projétil até o momento estacionário. Estes dados são mostrados ao usuário assim que o mesmo inserir o ângulo e a força desejada no sistema. Assim que o projétil sair do lançador, sensores são usados para detectar o instante do lançamento do projetil e da chegada a uma base. Com isso, tem-se o tempo de deslocamento do projétil, que também será informado pelo sistema.
Palavras-chave: lançador de projetil, automatizado, configurável, movimento de projétil, mecânica
clássica.
ABSTRACT
The classic mechanical physics is a very important area of science to everyday life. The study
of this area allowed us countless benefits and well-being to society. Because it is an area of extreme importance, it is crucial to transmit students the subject with the best possible resources, both in theory and in practice.
One of the classical mechanics of physics area is the projectile motion study. This subject is
present in our daily lives every day, such as in a peaceful basketball game where the player aims to hit a ball into a hoop, positioned at a distance well above its height, or also in a hostile camp Battle, where a sniper needs to hit the target at a great distance. In both instances, both individuals needs to use their sense of direction to achieve their goals: The sniper needs to position his weapon in a certain position, considering the force of gravity in the projectile and make the shot. The athlete in order to hit a 3-point basket, as well as aim and consider gravity, must also exert a force on the ball enough to reach the height and distance of the basket.
Aiming to help a physics student to understand these situations, this project proposes the
construction of a automatic and configurable projectile launcher, in order to improve the practical view of Newton's Laws, in which the user interacts with a system, inputting data such as vertical angle and strength. The system automatically would point the launcher to the desired angle, calculate and apply the force on the projectile. At the same time, the system will calculate information such as speed, time and distance to reach by the projectile until the stationary time. These data will be displayed to the user as soon as it enter the angle and the desired force in the system. Once the projectile out of the launcher, sensors are able to detect the instant of release of the projectile and the arrival at a base. With this, we will have the bullet travel time, which will also be displayed by the system
Keywords: projectile launcher, automatized, configurable, projectile motion, classical mechanics.
SUMÁRIO
1 INTRODUÇÃO .................................................................................................................................... 5
1.1 OBJETIVO GERAL ....................................................................................................................... 5
1.2 OBJETIVOS ESPECÍFICOS ......................................................................................................... 6
2 FUNDAMENTAÇÃO TEÓRICA ........................................................................................................ 7
2.1 TRABALHOS SIMILARES.......................................................................................................... 10
3 ESPECIFICAÇÃO TÉCNICA ............................................................................................................. 13
3.1 ANÁLISE DE REQUISITOS ...................................................................................................... 15
3.2 RESTRIÇÕES .............................................................................................................................. 16
3.3 DESCRIÇÃO DAS PARTES COMPONENTES E INTERFACEAMENTO ENTRE SISTEMAS
17
4 DESENVOLVIMENTO ..................................................................................................................... 18
4.1 HARDWARE ............................................................................................................................... 18
4.2 SOFTWARE ................................................................................................................................ 24
5 TESTES E RESULTADOS ............................................................................................................... 25
4.2 TABELA DE CUSTOS .................................................................................................................. 24
6 CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS ............................................................... 26
7 BIBLIOGRAFIA ................................................................................................................................. 27
Apêndice A ................................................................................................................................................ 29
Anexo A .................................................................................................................................................... 37
5
1 INTRODUÇÃO
Por definição, segundo (HALLIDAY; RESNICK; WALKER, 2007.p70), “um projétil é
uma partícula que se move em um plano vertical com velocidade inicial 𝑉0⃗⃗⃗⃗ ⃗ e com uma aceleração
constante, igual a aceleração de queda livre 𝑔 , dirigida para baixo”.
O movimento de projéteis é uma forma de movimento na qual um objeto ou partícula
(chamados de projétil) é arremessado próximo a superfície da terra e se move ao longo de um
caminho curvilíneo, sob influência apenas da ação da gravidade (desprezando a resistência do ar),
ou seja, a única força significante que atua no objeto é a força da gravidade, na qual atua de cima
para baixo, causando uma aceleração em direção ao solo.
A definição acima pode parecer confusa para um estudante de física iniciante sem uma
demonstração prática do seu significado. Por este motivo, muitas empresas responsáveis por
desenvolver equipamentos educacionais resolveram fabricar produtos que auxiliem professores a
ensinar o movimento de projéteis aos alunos. Porém, muitos destes equipamentos são manualmente
configurados e possuem um custo relativamente alto. Com base nisso, este trabalho foi
desenvolvido para construir um lançador de projéteis automatizado e configurável, sem a
necessidade de operar o lançador manualmente.
1.1 OBJETIVO GERAL
Este projeto destina-se ao desenvolvimento de um lançador de projéteis automatizado e
configurável por computador, sem a necessidade de operar manualmente, com o intuito de
demonstrar e comparar dados de lançamento de projéteis com a teoria.
6
1.2 OBJETIVOS ESPECÍFICOS
1. Pesquisa sobre as opções atuais disponíveis no mercado; como estas opções foram desenvolvidas;
estudar os fundamentos da mecânica clássica;
2. Projeto e desenvolvimento de uma plataforma de lançamento integrada a uma métrica angular;
construção de uma base de recepção do projétil; implementar sensores capazes de mensurar a
intensidade do lançamento, o ângulo e de fim de curso; desenvolvimento de um sistema
microntrolado que capture estas informações e opere o lançador;
3. Desenvolvimento de uma interface de comunicação serial entre o lançador e um computador
pessoal;
4. Desenvolvimento de um software que receba como informações força e ângulo de lançamento;
desenvolvimento de firmware embarcado no microcontrolador responsável por manipular o lançador
e enviar dados ao computador; mostrar as informações de lançamento;
5. Calibração e testes do sistema.
7
2 FUNDAMENTAÇÃO TEÓRICA
A física (do grego antigo: φύσις physis "natureza") é a ciência que estuda a natureza e seus
fenômenos em seus aspectos mais gerais. Analisa suas relações e propriedades, além de descrever
e explicar a maior parte de suas consequências. Busca a compreensão científica dos
comportamentos naturais e gerais do mundo ao redor, desde as partículas elementares até o universo
como um todo (MAXWELL, 1878) (FEYNMAN, 1963). Ela também é uma das disciplinas
acadêmicas mais antigas, talvez a mais antiga através da inclusão da astronomia (KRUPP, 2003).
A física é uma das ciências mais fundamentais. Cientistas de todas as disciplinas usam as
ideias da física, incluindo químicos que estudam a estrutura de moléculas, paleontólogos que
tentam reconstruir como os dinossauros andavam e climatologistas que estudam como atividades
humanas afetam a atmosfera e oceanos. Física é a base para todas as engenharias e tecnologias. Ela
é uma ciência experimental. (YOUNG;FREEMAN, 2014).
Os resultados de anos de pesquisa dos nossos antepassados físicos podem ser vistos
diariamente: quando acendemos uma lâmpada, quando assistimos televisão, quando usamos um
automóvel para nos locomover, quando aquecemos um alimento em um micro-ondas. Nenhuma
destas facilidades existiria se os nossos ascendentes não tivessem dedicado suas vidas para estudar
os fenômenos que a natureza nos proporciona.
A física hoje pode ser dividida em cinco ramificações teóricas, com uma em especial,
chamada mecânica clássica. A mecânica clássica é o estudo de movimento de corpos (incluindo o
caso especial no qual corpos se mantem em repouso) em conformidade com os princípios gerais
inicialmente declarados pelo Sir Isaac Newton, em sua publicação Philosophiae Naturalis
Principia Mathematica (1687), frequentemente conhecida como Principia. A mecânica clássica foi
o primeiro ramo da física a ser descoberto e é base na qual todos os outros ramos da física se
fundamentam (FITZPATRICK, 2006).
Este projeto baseia-se na teoria de movimento de projéteis, um caso especial de movimento
de corpos. Por definição, um projétil é um objeto no qual apenas a força atuante é a gravidade. Há
8
vários exemplos de projéteis. Um objeto solto livremente do repouso é um projétil (dado que a
influência da resistência do ar é desprezível). Um objeto que é arremessado verticalmente para cima
também é um projétil. O mesmo objeto se lançado para cima com um certo ângulo com a horizontal
também é um projétil. Um projétil é qualquer objeto que uma vez arremessado ou largado, continua
em movimento pela inércia e é apenas influenciado pela força gravitacional para baixo
(HENDERSON, 2015).
A Figura 1 ilustra o comportamento de um projétil, onde o objeto é lançado com uma
velocidade inicial Vyo e Vxo. Em certo ponto, Vy se torna igual a zero devido a força da gravidade,
porém Vx continua com sua velocidade inicial mantida. Conforme o tempo passa, a velocidade em
Vy se torna negativa (contra o sentido do eixo Y) e o módulo de sua velocidade aumenta.
Figura 1 – Um projétil
Fonte: (WAYNE,2015)
Como o intuito deste trabalho é a realização de um lançador de projéteis, é necessário o
conhecimento básico de alguns fundamentos da mecânica clássica, como:
Força e movimento
Energia cinética
Energia potencial e conservação de energia
Neste trabalho, estes fundamentos da física são discutidos superficialmente, ou seja, sem
grande aprofundamento de suas origens e definições. Cabe ao leitor uma pesquisa externa caso
deseje mais informações.
9
Para a construção de um lançador, é necessário pensar no seu objetivo principal: o
lançamento de um objeto. Para isso, é necessário aplicar uma força 𝐹 neste objeto, mostrada pela
equação 1:
𝐹 = 𝑚. 𝑎 (1)
sendo m a massa do objeto e 𝑎 a aceleração deste objeto.
Como este projeto abordará o uso de um sistema de molas, também devemos mencionar a
força que uma mola exerce sobre um objeto, chamada Lei de Hooke, demonstrada na equação 2:
𝐹 = −𝑘. 𝑑 (2)
sendo k a constante elástica da mola e 𝑑 o deslocamento (ou compressão) da mola.
A energia total de um sistema ideal consiste na soma da energia cinética com a energia
potencial, mostrada pela equação 3:
𝐸 = 𝐾 + 𝑈 (3)
onde K é a energia cinética e U é a energia potencial.
A energia potencial de uma mola é dada pela equação 4:
𝑈𝑒𝑙 =
𝑘. 𝑥2
2
(4)
onde k é a constante elástica e x o deslocamento (ou compressão) da mola.
Com a força aplicada, o objeto adquire energia. A energia de um objeto em movimento é
chamada de energia cinética, e é representada na equação 5:
𝐾 =
𝑚. 𝑣
2
2
(5)
onde v é a velocidade em que se encontra o objeto.
10
Em um sistema ideal (sem perdas), toda a energia potencial elástica é transformada em
energia cinética para o objeto, representada pela equação 6:
𝑘. 𝑥2 = 𝑚. 𝑣2 (6)
A altura máxima que o projétil deve atingir é dado pela equação 7:
ℎ =
𝑣02𝑠𝑒𝑛2(𝜃)
2𝑔
(7)
sendo 𝑣0 a velocidade inicial do projétil, 𝜃 o ângulo de lançamento e g a aceleração da
gravidade.
A distância máxima que o projétil deve atingir é descrita pela equação 8:
𝑑 =
𝑣02
𝑔𝑠𝑒𝑛(2𝜃)
(8)
2.1 TRABALHOS SIMILARES
Um trabalho acadêmico muito próximo deste proposto é o da Figura 2, chamado P5643, onde
os autores desenvolveram um lançador de projéteis no qual o usuário consegue configurar o ângulo
de lançamento em 4 posições (0º; 30º; 45º; 60º), assim como a distância a ser comprimida na mola
(entre 0 – 30mm). O posicionamento e o disparo são feitos manualmente, enquanto que a
compressão da mola é feita por um ajuste manual a um potenciômetro, no qual é enviada a
informação a um servo-motor, que realiza a compressão da mola. A distância comprimida da mola
é mensurada através de um sensor de distância de ultrassom. Em um display de LCD, é retornado
essa distância da mola comprimida assim como instruções de uso do lançador. Foi utilizado uma
placa microcontrolada Parallax BS2 para operar o lançador e os autores estimam um preço de
USD$220,30 para o produto completo.
11
Figura 2 – Lançador de projéteis P5643
Fonte: (CHEN; COX; CUNNINGHAM, 2012)
Em se tratando de produtos comerciais, duas outras opções podem ser destacadas. Na Figura
3, a empresa responsável desenvolveu um lançador pneumático chamado VPL. Com uma métrica
angular configurável (entre 0 e 70 graus) e um botão de controle capaz de controlar a velocidade de
disparo, este lançador é capaz de lançar o projétil a uma distância de 2,5 metros. Ao invés de utilizar
molas no lançamento, utiliza-se ar pressurizado. O disparo é feito acionando um botão. É necessário
pressurizar o lançador com uma bomba de ar manual. O ajuste do ângulo é feito manualmente.
Sensores embutidos capturam a velocidade de saída do projétil do lançador que é mostrada em um
equipamento separado. O custo inicial é de USD$407.
Figura 3 – Lançador pneumático VPL
Fonte: (Vernier Software & Technology, 2015)
12
Na figura 4, há um exemplo de um produto mais simples, aonde todo o processo de lançamento é
manual. Não possui sensores ou circuitos e seu custo é de USD$51,75.
Figura 4 – Lançador simples
Fonte:(ABRA Electronics Corp, 2015)
13
3 ESPECIFICAÇÃO TÉCNICA
O objetivo principal deste projeto é o desenvolvimento de um lançador de projéteis que opere
de uma forma completamente automatizada, sem a necessidade de operá-lo manualmente. Por meio
de uma interface de computador, o usuário será capaz de sugerir um ângulo de lançamento e a força
a ser aplicada no projétil. Neste momento, a interface disponibilizará algumas informações pré-
calculadas (teóricas) do lançamento baseado no ângulo e força selecionado pelo usuário, como altura
máxima a ser atingida e distância máxima até a chegada. Uma base de recepção será colocada de
modo a receber o projétil e calcular o tempo de viagem, mostrando esta informação ao usuário. Com
esses dados, pode ser feita a comparação dos cálculos teóricos com os resultados obtidos. A figura 5
representa uma visão em blocos do projeto proposto, no qual o usuário passa comandos para o
computador, que tratará e validará os dados, transformando-os em instruções ao microcontrolador.
O microcontrolador por sua vez controlará o lançador com o ângulo e força cedidos pelo usuário e
sensores serão responsáveis por verificar a situação do lançador. Depois, o lançador dispara o projétil.
Assim que o projétil atingir a base, um outro sensor captará a chegada do objeto na base e o
microcontrolador calculará o tempo de trajeto. Esta informação é repassada ao usuário através da
interface no computador.
Figura 5 – Visão em blocos
Fonte: Elaborada pelo autor
O projeto utiliza molas, motores, sensores ópticos, chave fim de curso, microcontrolador,
ponte H e componentes básicos de eletrônica.
Desta forma, pode se dizer que o lançador apresenta as funcionalidades de prover uma
interface com o usuário para selecionar ângulos e forças, fornecer dados teóricos de pré-lançamento
e mostrados ao usuário, comprimir a mola de maneira autônoma, ajustar o ângulo de maneira
autônoma, disparar o projétil de maneira autônoma, possuir uma base de recepção do projétil, cálculo
do tempo de viagem do projétil até a base mostrados ao usuário e restauração da posição inicial após
o lançamento.
14
A figura 6 mostra a imagem do protótipo desenvolvido.
Figura 6 – Lançador desenvolvido
Fonte - Elaborada pelo autor
A figura 7 é a base de recepção do projétil, feita com um sensor de fim de curso.
15
Figura 7 – Base de recepção Fonte: Elaborada pelo autor.
3.1 ANÁLISE DE REQUISITOS
Para capturar o ângulo de lançamento, foi utilizado um sensor tipo chave ótica para
localizar a posição aonde o lançador se encontra apontado. A figura 8 mostra o sensor ótico
e a leitura que ele faz da estrutura dentada (no caso, se encontra a 90°).
Figura 8 – Sensor e estrutura
Fonte: Elaborada pelo autor
16
A calibração do ângulo foi feita com um medidor de nível juntamente com um
transferidor, onde pode ser vista na figura 17 do apêndice. Realizando as medidas de ângulo
nos limites máximo e mínimos, a precisão em cada pulso dado pelo sensor ótico é de
aproximadamente 1,631 graus, ou seja, a resolução da estrutura angular é de 1,631 graus
por pulso do sensor.
O mesmo sensor foi utilizado para capturar a quantidade de giros necessários no motor
para gerar uma certa compressão. Para mensurar a quantidade de giros, o sensor captura a
quantidade de pulsos que uma roda dentada presa ao eixo do motor fornece. A figura 9
mostra a roda utilizada.
Figura 9 – Roda dentada
Fonte – Elaborada pelo autor
Esta roda foi acoplada à uma barra rosqueada de ½ polegada, com um passo de 13 fios por
polegada de acordo com a especificação do fabricante. Isto significa um passo aproximado de
1,953846 milímetros por rotação. Como a roda dentada gera 28 pulsos no sensor por rotação,
significa que a cada pulso a mola é comprimida aproximadamente 0,07 mm. Isto é, nossa resolução
de compressão da mola é de 0,07mm por pulso.
3.2 RESTRIÇÕES
O projeto possui as seguintes restrições mecânicas:
O ângulo máximo de disparo é de 80 graus e o mínimo é de 25 graus
A força mínima a ser aplicada no projétil é de 15 Newtons e máxima de 80 Newtons
17
O projétil deve ter 43 mm de diâmetro no máximo
Os cálculos de velocidade, distância e altura foram baseados na massa de uma bola de golfe
(45g)
Embora até o momento não ter sido encontrado um projeto com as mesmas funcionalidades, o
custo deste projeto terá como foco um valor próximo de R$1000 (sem incluir mão-de-obra). Este
valor tem como base a comparação com os outros modelos citados na seção 2.1.
3.3 DESCRIÇÃO DAS PARTES COMPONENTES E INTERFACEAMENTO ENTRE
SISTEMAS
O projeto apresenta o lançador construído com um cano de PVC contendo um sistema de
compressão de mola no seu interior. Um motor 12V DC em uma extremidade do tubo é responsável
pela compressão, e uma barra rosqueada é acoplada a este motor e é responsável por movimentar um
embolo, que por sua vez é responsável pela compressão da mola. Um sensor do tipo chave óptica
faz a leitura do movimento do motor. Na outra extremidade do tubo, localiza-se uma trava elétrica
automotiva, com a finalidade de disparar o projétil.
O lançador, por sua vez, fica acoplado a uma estrutura de vidro elétrico automotivo, no qual
possui um motor 12V DC responsável pelo ajuste do ângulo da estrutura. Sensores de chave óptica
fazem a leitura do passo dessa estrutura. Ambos motores estão conectados a um módulo de ponte H
utilizando um circuito integrado L298N, capaz de fornecer até 2 ampères por canal. A figura 18 do
anexo mostra esta ponte H. Por sua vez, a ponte H também está conectada a um microcontrolador
Atmel Atmega328p. O microcontrolador, alimentado com 5V, é responsável pelo controle de todo
o lançador. Ele, controla os motores (pela ponte H), o acionamento da trava elétrica, a contagem de
pulsos vindos dos sensores e também recebe/envia dados de/para o computador pessoal por meio de
comunicação serial.
Um circuito integrado FTD232RL foi utilizado para comunicar serialmente com um
computador pela interface USB. Todo conjunto acima é preso a uma estrutura de madeira. Uma
bancada dobrável serve para manter a estabilidade do conjunto aonde o lançador é preso. Por final,
uma base com um contato fim de curso responsável por detectar a chegada do projétil.
18
4 DESENVOLVIMENTO
4.1 HARDWARE
Inicialmente, foi necessário definir o tipo de mecanismo e lógica a ser utilizado para disparar
um projétil. Depois de muitos esboços, foi decidido utilizar um sistema com molas e motores para
fazer um lançador automatizado.
Para ter um caminho inicial definido, foi decidido utilizar uma bola de golfe como projétil.
Suas características são:
45g de massa
42,7 mm de diâmetro
Partindo deste princípio, foi pensado uma estrutura capaz de permitir a entrada desta bola
como seu diâmetro máximo. Com isso, foi decidido utilizar um tubo PVC de alta pressão de 50mm
(Externo), com um diâmetro interno de aproximadamente 43mm. Por consequência, foi projetada o
uso de uma mola que possua 40mm de diâmetro externo no máximo justamente para entrar no tubo.
A mola também foi projetada para poder fornecer força o suficiente para dispara a bola de golfe a
uma distância de 8 metros através da utilização da equação 8, sendo d = 8m; g = 9,81 m/s² e, para
atingir o valor máximo, 𝑠𝑒𝑛(2𝜃) = 1, o ângulo deve ser de 45°, então a velocidade inicial 𝑣0 é de
aproximadamente 8,8589 m/s
Com este valor de velocidade inicial, consegue-se obter a quantidade de energia cinética que
a bola adquire nesta velocidade pela equação 5, sendo m = 0,045g e v = 8,8589 m/s, a energia
cinética da bola é aproximadamente igual a 1,7658 Joules.
Utilizando a teoria que toda a energia é transformada, este projeto parte do princípio que
toda a energia potencial da mola é convertida em energia cinética na bola de golfe, utiliza-se a
equação 6. A mola precisaria fornecer uma energia de 1,7658 Joules.
19
Como a mola ainda não estava com todas suas características definidas, foram feitas
simulações para obter uma mola compatível com os requerimentos. Através da equação 9, é possível
obter a constante elástica da mola (k):
𝑘 =
𝑑4𝐺
8𝐷3𝑁𝑎
(9)
Onde:
d = diâmetro do arame
G = Módulo de elasticidade transversal
D = Diâmetro médio da espira
Na = Número de espiras ativas
Utilizando a planilha de cálculo da figura 10, foi possível estimar uma mola para ser utilizada
no projeto. Esta planilha calcula as propriedades de uma mola com várias dimensões que são
fornecidas pelo usuário.
Figura 10 – Printscreen de planilha de cálculo de molas
Fonte: (BALLES, 2015)
Ao mesmo tempo, foi adquirida uma mola com as seguintes características:
2,5 mm de diâmetro de arame
20
40 mm de diâmetro externo
23 espiras (21 ativas)
300 mm de comprimento livre
Estima-se que o metal utilizado na mola tenha sido de aço mola SAE 5160, que possui o
mesmo módulo de elasticidade transversal que o aço mola ASTM A 227. Com estas características,
a mola consegue fornecer até 4,1 Joules (83,9N).
Foi desenvolvido um sistema para a compressão da mola, na qual a mesma se encontra
soldada entre dois êmbolos metálicos. Uma barra roscada de meia polegada atravessa o embolo
inferior. Conforme a barra roscada gira, o embolo inferior sobe, comprimindo a mola. A figura 11
mostra o conjunto.
Figura 11 – Conjunto Mola/Êmbolos/Barra
Fonte: Elaborada pelo autor
A barra foi acoplada a um motor DC 12V em sua extremidade. A leitura do giro da barra foi
feita por sensores chave ótica. Em seguida, todo o conjunto foi preso a uma estrutura de vidro
21
elétrico automotivo por meio de braçadeiras de plástico. A captura do ângulo também foi feita com
sensores chave ótica e todo o processo de aquisição se encontra na seção 3.1.
Foram utilizados resistores de 1k Ohm para limitar a corrente que alimenta os emissores e
10k Ohms para limitar a corrente no fototransistor. Além disto, foi colocado capacitores de 100 nF
para remover oscilações de tensão que ocorreram durante a leitura do sensor. Os sensores então
foram conectados ao microcontrolador Atmega328p que, por meio de interrupções, conta o número
de pulsos gerados. A trava elétrica, responsável pelo disparo é acionada pelo microcontrolador
usando 5V no Gate do transistor mosfet DFF2N60. Os motores são conectados diretamente a um
módulo de ponte H L298N, que se encontra na figura 18 do apêndice. O microcontrolador controla
estes motores através desta ponte H. O microcontrolador está configurado para operar em uma
frequência de 12MHz. A figura 12 representa o esquemático de todo o circuito elétrico usado no
projeto.
Figura 12 – Esquemático do circuito
Fonte: Elaborada pelo autor
22
O microcontrolador foi programado na linguagem C utilizando para desenvolvimento o
software Atmel Studio 6. Para a comunicação com o computador e a gravação do firmware no
microcontrolador, foi utilizado um conversor de USB para serial FT232R e o software para a
gravação do firmware foi o FTISP.
O código fonte do microcontrolador se encontra no Apêndice.
A figura 13 representa o fluxograma do firmware programado no microcontrolador e
ilustra o comportamento apresentado pelo sistema. O primeiro passo é referente a configuração de
portas internas e externas, aonde o microcontrolador configura quais portas serão responsáveis por
certas operações, como interrupções, PWM e timers. Em seguida, o microcontrolador fica em
standby a espera de uma transmissão serial contendo o ângulo e força como dados. Sendo feita a
transmissão serial, o motor angular é acionado e só para quando chegar no ângulo desejado. Logo
após, o motor de compressão da mola é acionado e também só para quando chegar a força de
compressão desejada. Os sensores óticos enviam pulsos para o microcontrolador para saber se a
posição atual do ângulo e da força são as desejadas e é desta maneira que o microcontrolador
aciona ou para os motores. Se o projétil não foi disparado, a trava elétrica é acionada e o projétil é
disparado. O microcontrolador então aciona o timer para contar o tempo em que o projétil demora
para atingir a base e então a trava é desativada e o tempo de trajeto é enviado serialmente ao
computador. Em seguida, os motores são acionados reversamente e reutilizam a lógica de
configurar o ângulo e força com o intuito de restaurar a posição inicial do lançador.
23
Figura 13 – Fluxograma do firmware
Fonte – Elaborada pelo autor
E a figura 14 é a placa de circuito desenvolvida
Figura 14 – Placa de circuito
Fonte: Elaborada pelo autor
24
4.2 SOFTWARE
O software presente no projeto foi desenvolvido em linguagem Java, podendo operar em
qualquer plataforma desde que contenha os drivers e a configuração corretamente configurados. Para
o desenvolvimento do software, foi utilizada a IDE Eclipse Mars. Como a linguagem Java não possui
muitos recursos para comunicação serial nativamente, foi utilizado uma biblioteca externa chamada
RXTX. A figura 15 representa o fluxograma do software desenvolvido, onde o usuário executa o
programa de lançamento passando como parâmetros o ângulo e força desejados. Se o ângulo não
estiver entre 80 e 25 graus radianos e a força não estiver entre 15 e 80 Newtons, o programa fornece
uma mensagem de erro e termina sua execução. Caso contrário ele calcula e mostra a velocidade,
distância de alcance e altura máxima do projétil baseados apenas nos dados de entrada, ou seja,
aplicando-se diretamente os dados nas equações. Em seguida, o computador envia serialmente os
dados já tratados para o microcontrolador. Após isto, o software fica a espera de uma transmissão do
microcontrolador contendo o tempo de trajeto do projétil. Recebendo este dado, o mesmo é mostrado
na tela e encerra-se o programa.
Figura 15 – Fluxograma do software
Fonte: Elaborada pelo Autor A figura 16 mostra a execução do software, passando os parâmetros de lançamento e mostrando os dados teóricos de disparo. No apêndice encontra-se o código fonte do software.
25
Figura 16 – Tela do software Fonte – Elaborada pelo autor
5 TESTES E RESULTADOS
O ajuste do ângulo, da força aplicada na mola e o disparo foram completamente autônomos.
Depois do projétil atingir a base de recepção, o lançador retorna a sua posição inicial com sucesso,
assim como descomprime a mola corretamente.
Através de testes aplicando duas quantidades de força e dois ângulos diferentes, foi
mensurada a distância horizontal real no qual o lançador conseguiu atingir. Para a captura desde
dado, foi utilizado uma mesa que possuísse a mesma altura da origem do lançamento do projétil. A
bola de golfe foi coberta com carvão e conforme a bola acertava a mesa, media-se a distância do
local acertado até a origem do lançador.
A tabela 1 mostra os dados de lançamento teóricos (aplicados diretamente nas equações) e
também o resultado prático, assim como a diferença percentual entre os dois.
Tabela 1 – Resultados do lançamento
Fonte: Elaborada pelo autor
O resultado mostra que a distância percorrida pelo projétil foi em média 87,33876% menor
que o valor teórico calculado. Isto se deve a vários fatores, como perdas de energia devido ao atrito,
calor e som. Más o principal motivo de tanta disparidade foi o uso de um êmbolo de ferro preso ao
fim da mola, que possui uma massa muito maior que o projétil. Isto significa que boa parte da
energia que deveria ser transferida ao projétil foi utilizada para empurrar o êmbolo e sobrou pouca
energia para o projétil. Outro fator foi que a mola não estava com seu movimento completamente
livre no interior destes êmbolos.
5.1 TABELA DE CUSTOS
A tabela 2 mostra a relação de materiais utilizados no produto final e seus respectivos preços,
assim como o custo total.
26
Materiais Custo
2x Grampo sargento R$ 32,00
2x Sensores tipo chave ótica R$ 5,00
Bancada de apoio R$ 135,00
Barra roscada 1m 1/2 polegada R$ 27,50
Bateria 12V R$ 50,00
Bola de golfe (usada) R$ 3,00
Braçadeira nylon 300mm R$ 17,00
Contato fim de curso R$ 50,00
Conversor USB -> Serial FTDI232RL R$ 25,00
Driver ponte H L298N R$ 15,00
Estrutura de vidro elétrico com motor 12V R$ 100,00
Microcontrolador Atmega328p R$ 15,00
Mola 300 x 2,5 x 40 mm R$ 12,00
Motor DC 12V de limpador de para-brisa (Usado) R$ 50,00
Organizador de fios R$ 13,50
Parafusos R$ 4,50
Placa de circuito impresso R$ 10,00
Resistores e capacitores R$ 2,00
Tubo PVC 1m 50mm R$ 28,00
Tubo PVC Redutor 100mm->75mm R$ 13,00
Tubo PVC Redutor 75mm->50mm R$ 7,00
Total R$ 614,50 Tabela 2 – Custos do projeto
Fonte: Elaborada pelo autor
6 CONSIDERAÇÕES FINAIS E TRABALHOS FUTUROS
O objetivo principal deste projeto, como citado na seção 1.1, era criar um lançador de
projéteis completamente automatizado, sem a necessidade de o usuário manusear o lançador. O
projeto mostrou-se completamente funcional, cumprindo seus objetivos e com problemas em
transferir a energia da mola ao projétil, causando uma grande disparidade entre os dados calculados
com os dados mensurados.
Os resultados dos lançamentos, nos quais indicam uma diferença média de 87% com o valor
teórico, nos mostram que o projeto pode ter várias melhorias para aperfeiçoar sua performance nos
lançamentos. Soluções como:
Substituição do êmbolo superior (ferro) por um material mais leve, como plástico ou
alumínio
Uso de um tubo maior para evitar pressurizações e atritos internos
Uso de uma ponte H capaz de fornecer mais do que 2 ampères de corrente
Uso de equipamentos de precisão especializados
27
Alinhamento de toda a estrutura
Assim como é possível melhorias estéticas no lançador e uma interface gráfica no software.
7 BIBLIOGRAFIA
ABRA Electronics Corp. PTPROJ Visual Scientifics Projectile Launcher. Disponível em <
https://abra-electronics.com/science/physics-en/mechanics-acceleration-trajectories/ptproj-visual-
scientifics-projectile-launcher-ptproj.html>. Acesso em: nov.2015.
BALLES, A.C.. Material de ensino utilizado em sala de aula. 2015
Chen, P.C.; COX, J.; CUNNINGHAM, G.. P5643 Projectile Launcher.2012. New York, NYU
School of Engineering, Mechatronics term project. Disponível em <
http://engineering.nyu.edu/mechatronics/projects/ME5643/Fall2012/P5643%20Projectile%20Lau
ncher/ME%20Term%20Project.pdf/> Acesso em: nov.2015.
FEYNMAN, R.P., LEIGHTON; R.B.; SANDS, M.. The Feynman Lectures on Physics. [S.l.:
s.n.], 1963. I-2 p. vol. 1.
FILIPEFLOP COMPONENTES ELETRÔNICOS EIRELI. Motor dc com driver ponte H L298N.
Disponível em < http://blog.filipeflop.com/motores-e-servos/motor-dc-arduino-ponte-h-
l298n.html> Acesso em: nov 2015
FITZPATRICK, R.. What is classical mechanics? Disponível em:<
http://farside.ph.utexas.edu/teaching/301/lectures/node3.html />. Acesso em: nov.2015.
HALLIDAY, D.; RESNICK, R. ; WALKER, J. Fundamentos de física volume 1. 8ª edição. Rio
de Janeiro: LTC Livros Tecnicos e Científicos Editora S.A. 2009. 349p
HENDERSON, T.. Vectors - Motion and Forces in Two Dimensions - Lesson 2 - Projectile
Motion -What is a Projectile? Disponível em:<
http://www.physicsclassroom.com/class/vectors/Lesson-2/What-is-a-Projectile/> .Acesso em:
nov.2015
28
KRUPP, E.C.. Echoes of the Ancient Skies: The Astronomy of Lost Civilizations. Dover
Publications. 2003
MAXWELL, J.C.. Matter and Motion. [S.l.]: D. Van Nostrand, 1878. 9 p.
VERNIER SOFTWARE & TECHNOLOGY. Vernier Projectile Launcher. Disponível em <
http://www.vernier.com/products/sensors/vpl/>. Acesso em: nov.2015
WAYNE, T..Motion in a plane (Projectile Motion). Disponível em <
http://www.mrwaynesclass.com/projectile/reading/index08.html/> . Accesso em: nov.2015
YOUNG, H.D. et al. University Physics with Modern Physics Technology Update. 13.ed.
Pearson Education. 2014
29
Apêndice A
Figura 17 – Calibração do ângulo Fonte: Elaborada pelo autor
/* * GccApplication1.c * * Created: 23/08/2015 21:20:36 * Author: Daniel Cardoso de Morais */ #ifndef F_CPU #define F_CPU 12000000UL // 12 MHz clock speed #endif #define BAUDRATE 9600 #define UBRR_VALUE ((F_CPU / (BAUDRATE * 16UL)) - 1) //The formula that does all the required maths #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdlib.h> #include <string.h> volatile unsigned int initialState = 0; volatile unsigned int angle; volatile unsigned int force; volatile unsigned int timerOverflow = 0; volatile unsigned int int0_counter = 1; volatile unsigned int int1_counter = 1; volatile uint8_t portCHistory = 0xFF; // default is high because the pull-up static void serial_init() { /* Set the baud rate */ /*UBRR0H = (unsigned char) (bittimer >> 8); UBRR0L = (unsigned char) bittimer;*/ UBRR0 = UBRR_VALUE; // Set frame format to 8 data bits, no parity, 1 stop bit UCSR0C |= (1<<UCSZ01)|(1<<UCSZ00); //enable transmission and reception
30
UCSR0B |= (1<<RXEN0)|(1<<TXEN0); /* set the framing to 8N1 */ UCSR0B |= 1 << RXCIE0; //UCSR0C = (3 << UCSZ00); /* Engage! */ //UCSR0B = (1 << RXEN0) | (1 << TXEN0); return; } unsigned char serial_read() { // Wait for byte to be received while( !(UCSR0A & (1 << RXC0))){}; // Return received data return UDR0; } static void serial_write(unsigned char c) { while ( !(UCSR0A & (1 << UDRE0)) ) ; UDR0 = c; } int main(void) { DDRB = 0x00; PORTB = 0xFF; DDRD = 0x00; PORTD = 0xFF; DDRC = 0x00; PORTC = 0xFF; //PB0 for Force motor -, PB1 for electric lock DDRB |= (1 << DDB0) | (1 << DDB1); PORTB &= ~((1 << PORTB0) | (1 << PORTB1)); //PD7 for Force motor +, PD2 and PD3 for interrupts. DDRD |= (1 << PD7); PORTD &= ~((1 << PD2) | (1 << PD7) | (1 << PD3)); //External Interrupts config EIMSK = (1 << INT1) | (1 << INT0); //Interrupções para os leitores ópticos EICRA = (1 << ISC10) | (1 << ISC00); //Interrupção para o fim de curso, PC4 PCICR = (1 << PCIE1); PCMSK1 = (1 << PCINT12); DDRD |= (1 << PD6) | (1 << PD5); //PD5, PD6 are outputs, PWM ports for angle PORTD &= ~((1 << PD6) | (1 << PD5)); TCCR0A |= (1 << WGM00) | (1 << COM0A1) | (1 << COM0B1); TCCR0B |= 1 << CS00; TIMSK1 |= (1 << TOIE1); // Enable overflow interrupt serial_init(); sei(); while (1) { } } ISR(USART_RX_vect) {
31
static char launchParams[32]; char buffer[10]; unsigned int i = 0; static unsigned int rxCounter = 0; char ReceivedByte; ReceivedByte = UDR0; // Fetch the received byte value into the variable "ByteReceived" launchParams[rxCounter] = ReceivedByte; rxCounter++; if(ReceivedByte == ';'){ angle = atoi (strtok(launchParams, ",;")); force = atoi (strtok(NULL, ",;")); itoa(angle,buffer,10); while(buffer[i] != '\0') { serial_write(buffer[i++]); } serial_write('\r'); serial_write('\n'); itoa(force,buffer,10); i = 0; while(buffer[i] != '\0') { serial_write(buffer[i++]); } serial_write('\r'); serial_write('\n'); OCR0B = 200; //launchParams[rxCounter++] = '\0'; rxCounter = 0; } //UDR0 = ReceivedByte; // Echo back the received byte back to the computer } ISR (INT0_vect) { char buffer[10]; int i = 0; //volatile unsigned char test; itoa(int0_counter,buffer,10); while(buffer[i] != '\0') { serial_write(buffer[i++]); } serial_write((unsigned)'\r'); serial_write((unsigned)'\n'); if (int0_counter >= angle){ OCR0A = 0; //Desativa os PWMs do motor angular OCR0B = 0; _delay_ms(7000); if(initialState == 0){ PORTD |= (1 << PORTD7); //Ativa o motor de força para comprimir a mola. } else{ PORTB |= (1 << PORTB0); //Ativa o motor de força para descomprimir a mola. } int0_counter = 1; return; } int0_counter++; } ISR (INT1_vect) { char buffer[10]; int i = 0; //volatile unsigned char test;
32
itoa(int1_counter,buffer,10); while(buffer[i] != '\0') { serial_write(buffer[i++]); } serial_write((unsigned)'\r'); serial_write((unsigned)'\n'); //_delay_ms(1); if (int1_counter >= force){ PORTB &= ~(1 << PORTB0);// Para o motor de força PORTD &= ~(1 << PORTD7); // Para o motor de força if(initialState == 0){ PORTB |= (1 << PORTB1); // Aciona a trava elétrica, lançando o projétil TCCR1B |= (1 << CS12); //Inicia o contador do lançamento com prescale de 256. } int1_counter = 1; return; } int1_counter++; } ISR (TIMER1_OVF_vect) { timerOverflow++; /*int i = 0; float tempo = 0; char *mensagem = "Esta mensagem deve aparecer a cada 1,39811 segundos...\r\n"; while(mensagem[i] != '\0') { serial_write(mensagem[i++]); }*/ } ISR (PCINT1_vect) { //static volatile unsigned int interruptPredicate = 0; uint8_t changedbits; changedbits = PINC ^ portCHistory; //XOR para verificar quais portas mudaram portCHistory = PINC; if(changedbits & (1 << PINC4)) { if ( (portCHistory & (1 << PINC4)) == 0 && (initialState == 0)){ initialState = 1; char buffer[32]; int i = 0; unsigned int tcnt_value = 0; //unsigned char sreg; /* Save global interrupt flag */ //sreg = SREG; /* Disable interrupts */ cli(); /* Read TCNT1 */ tcnt_value = TCNT1; /* Restore global interrupt flag */ //SREG = sreg; sei(); //Stops timer 1 TCCR1B = 0; //double tempoTotal = (timerOverflow * 1.39811) + (tcnt_value * 0.000021333333); itoa(tcnt_value,buffer,10); while(buffer[i] != '\0') { serial_write(buffer[i++]); } serial_write((unsigned)','); itoa(timerOverflow,buffer,10); i = 0; while(buffer[i] != '\0') { serial_write(buffer[i++]);
33
} serial_write((unsigned)';'); PORTB &= ~(1 << PORTB1); //Desativa a trava elétrica _delay_ms(10000); OCR0A = 200; //Começa a retornar os motores na posição original return; /*sprintf(buffer, "%10.10f", tempoTotal); i = 0; while(buffer[i] != '\0') { serial_write(buffer[i++]); } serial_write((unsigned)'\r'); serial_write((unsigned)'\n');*/ } //PCINT12 changed } }
Código fonte do firmware
package Morais.RXTX; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; /* * @(#)SimpleWrite.java 1.12 98/06/25 SMI * * Copyright (c) 1998 Sun Microsystems, Inc. All Rights Reserved. * * Sun grants you ("Licensee") a non-exclusive, royalty free, license * to use, modify and redistribute this software in source and binary * code form, provided that i) this copyright notice and license appear * on all copies of the software; and ii) Licensee does not utilize the * software in a manner which is disparaging to Sun. * * This software is provided "AS IS," without a warranty of any kind. * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND * ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY * LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE * SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS * BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, * HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING * OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * * This software is not designed or intended for use in on-line control * of aircraft, air traffic, aircraft navigation or aircraft * communications; or in the design, construction, operation or * maintenance of any nuclear facility. Licensee represents and * warrants that it will not use or redistribute the Software for such * purposes. */ /*import java.io.*; import java.util.*;
34
import gnu.io.*; public class SimpleWrite { static Enumeration portList; static CommPortIdentifier portId; static String messageString = "Hello, world!\n"; static SerialPort serialPort; static OutputStream outputStream; public static void main(String[] args) { portList = CommPortIdentifier.getPortIdentifiers(); System.out.println(portList.hasMoreElements()); while (portList.hasMoreElements()) { System.out.println("inside loop"); portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { if (portId.getName().equals("COM3")) { //if (portId.getName().equals("/dev/term/a")) { try { serialPort = (SerialPort) portId.open("SimpleWriteApp", 2000); } catch (PortInUseException e) {} try { outputStream = serialPort.getOutputStream(); } catch (IOException e) {} try { serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); } catch (UnsupportedCommOperationException e) {} try { outputStream.write(messageString.getBytes()); } catch (IOException e) {} } } } } }*/ import gnu.io.CommPort; import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; import gnu.io.SerialPortEvent; import gnu.io.SerialPortEventListener; public class SimpleWrite { private InputStream in = null; private OutputStream out = null; private byte[] readBuffer = new byte[128]; private void readSerial() { try { int data; int len = 0; while ((data = in.read()) > -1) { if (data == ';') { String[] travelTime = (new String(readBuffer, 0, len)).split(","); int tcntValue = Math.abs(Integer.parseInt(travelTime[0])); int overflowValue = Integer.parseInt(travelTime[1]); double totalTraveltime = (tcntValue * 0.000021333333) + (overflowValue * 1.39811); System.out.println("Tempo de trajetória = " + totalTraveltime + " segundos."); break; } readBuffer[len++] = (byte) data; } // System.out.print(new String(readBuffer,0,len));
35
} catch (IOException e) { } } void connect(final String portName) throws Exception { CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName); if (portIdentifier.isCurrentlyOwned()) { System.out.println("Error: Port is currently in use"); } else { CommPort commPort = portIdentifier.open(this.getClass().getName(), 2000); if (commPort instanceof SerialPort) { SerialPort serialPort = (SerialPort) commPort; serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); this.in = serialPort.getInputStream(); this.out = serialPort.getOutputStream(); // (new Thread(new SerialWriter(out))).start(); serialPort.addEventListener(new SerialEventHandler()); serialPort.notifyOnDataAvailable(true); } else { System.out.println("Error: Only serial ports are handled by this example."); } } } /** * Handles the input coming from the serial port. A new line character is * treated as the end of a block in this example. */ private class SerialEventHandler implements SerialPortEventListener { @Override public void serialEvent(final SerialPortEvent event) { switch (event.getEventType()) { case SerialPortEvent.DATA_AVAILABLE: readSerial(); break; } } } /** */ // OutputStream out; public void serialWrite(final byte[] data) { try { this.out.write(data); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(final String[] args) { /* * try { (new SimpleWrite()).connect("COM3"); } catch (Exception e) { // * TODO Auto-generated catch block e.printStackTrace(); } */ SimpleWrite program = new SimpleWrite(); try { program.connect("COM3");
36
} catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Options options = new Options(); options.addOption("a", "angulo", true, "Seleciona o ângulo desejado"); options.addOption("f", "força", true, "Seleciona a força desejado"); CommandLineParser parser = new DefaultParser(); CommandLine cmd = null; try { cmd = parser.parse(options, args); } catch (ParseException e) { // TODO Auto-generated catch block // e.printStackTrace(); System.err.println("Parsing failed. Reason: " + e.getMessage()); // System.exit(-1); } String angulo; String forca; angulo = cmd.getOptionValue('a'); forca = cmd.getOptionValue('f'); if ((angulo != null) && (forca != null)) { System.out.println("Angulo: " + angulo + " Força: " + forca); } if (Integer.parseInt(forca) < 15 && Integer.parseInt(forca) > 80) { System.err.println( "Erro: Força fora do valor permitido. Favor escolher uma força maior que 15N e menor que 80"); } else if (Integer.parseInt(angulo) > 80 && Integer.parseInt(angulo) < 25) { System.err.println("Erro: Angulo fora do permitido. Favor escolher um ângulo maior que 25 e menor que 80."); } else { // if(Integer.parseInt(angulo) < ) /* * De 90° para 21,5° (limites de ângulo) são 42 pulsos, portanto * para percorrer 68,5° necessitam 42 pulsos aprox. O que nos dá * 1,63.... graus/pulso (68,5/42) O ângulo será limitado entre 25° e * 80° por questôes de segurança; * * Constante elástica da mola = 349,65 N/M Passo da barra = 13 fios * por 1 polegada (25,4mm) = 1,9538461539mm = 0,00195...m. 28 pulsos * = 1,9538461539mm aprox. 1 pulso = 0,06978022mm aprox. Força * inicial com a mola travada =~ 11,53845N, com 3,3cm de mola * comprimida * * Massa da bola de golf = 45,93 g * */ final Double passoAngulo = 68.5 / 42; // graus/pulso final Double springConstant = 349.65; final Double initialForce = 11.53845; final Double passoBarra = 0.0254 / 13; final Double massaProjetil = 0.045; final Double gravityAcc = 9.80665; Double anguloResultante = (double) (90 - Integer.parseInt(angulo)); Double forcaResultante; Double distanciaComprimida; Double passoPorPulso; Double numberOfForcePulses; Double numberOfAnglePulses; numberOfAnglePulses = (anguloResultante) / passoAngulo; // Como o
37
forcaResultante = Integer.parseInt(forca) - initialForce; distanciaComprimida = forcaResultante / springConstant; passoPorPulso = passoBarra / 28; numberOfForcePulses = distanciaComprimida / passoPorPulso; String dataToSend = "" + Math.round(numberOfAnglePulses) + ',' + Math.round(numberOfForcePulses) + ';'; // Double energiaPotencialElastica = (springConstant * // (distanciaComprimida + 0.033) * (distanciaComprimida + 0.033))/2; Double velocidadeProjetil = Math.sqrt( (springConstant * (distanciaComprimida + 0.033) * (distanciaComprimida + 0.033)) / massaProjetil); System.out.println("Velocidade máxima do projétil: " + velocidadeProjetil + " m/s"); Double alturaMax = (Math.pow(velocidadeProjetil, 2) * Math.pow(Math.sin(Math.toRadians(Double.parseDouble(angulo))), 2)) / (2 * gravityAcc); Double distanciaMax = (Math.pow(velocidadeProjetil, 2) * Math.sin(Math.toRadians(2 * Double.parseDouble(angulo)))) / gravityAcc; System.out.println("Altura máxima do projétil: " + alturaMax + " m"); System.out.println("Distância máxima do projétil: " + distanciaMax + " m"); // System.out.println(dataToSend); program.serialWrite(dataToSend.getBytes()); // System.exit(0); } } }
Código fonte do Software
Anexo A
Figura 1 – Ponte H
Fonte: (FILIPEFLOP COMPONENTES ELETRÔNICOS EIRELI,2015)
top related