LusoRobótica - Robótica em Português

Electrónica => Sensores => Tópico iniciado por: amando96 em 09 de Dezembro de 2020, 22:52

Título: Detectar bala de espingarda
Enviado por: amando96 em 09 de Dezembro de 2020, 22:52
Olá! Há uns tempos fui dar uns tiros na associação local, e tinham um alvo electrónico que detectava onde a bala passava e depois mostrava num ecran que estava ao meu lado.

Alguém faz ideia de como detectar isto? Mesmo uma pressão de ar "fraca" manda o projéctil a 200 metros por segundo. Realisticamente preciso de algo que detecta até balas supersónicas(>330m/s).

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Faccurateshooter.net%2FBlog%2Fkongsberg1x200.jpg&hash=46394ffecf60c4ddd5b7abdce2f9cf5c1d4a1188)

Alguém sabe algo que psosa fazer isto?

Preciso de ideias  :)

Obrigado!
Título: Re: Detectar bala de espingarda
Enviado por: jm_araujo em 09 de Dezembro de 2020, 23:51
Nada que não se descubra numa demonstração de google-fu.
https://youtu.be/NCbtHYN1viU
Título: Re: Detectar bala de espingarda
Enviado por: amando96 em 14 de Dezembro de 2020, 11:50
O primeiro teste será então 4 destes em cada canto de uma superficie ainda por decidir  :P

https://www.arduino.cc/en/Tutorial/BuiltInExamples/Knock (https://www.arduino.cc/en/Tutorial/BuiltInExamples/Knock)

Depois é ver se consigo fazer umas matemáticas tendo em conta o delay entre cada "knock".
Título: Re: Detectar bala de espingarda
Enviado por: jm_araujo em 14 de Dezembro de 2020, 16:55
Não sei se não vais precisar de sensores "especiais"
No aço a velocidade do som é aprox 6km/s., o que dá 6m/ms ou 6mm/us (6 milimetros por micro-segundo).

O que quer dizer que se quiseres manter uma precisão de medida abaixo de 1cm (parece-me razoavel para um alvo de tiro), precisas de garantir um erro inferior a 1us desde o sensor até à variável no arduino. Cada 1us de erro que adiciones à imprecisão é mais de 1cm de diâmetro de erro na posição.
Os sensores até pode não ser crítico, se tiverem uma resposta consistente deve-se conseguir a precisão por calibração, mas o código para apanhar o momento que cada um dos sensores é disparado é crítico e não trivial. Talvez usando o ICP/ICR do Timer 1 com alguma lógica externa, ou então um micro com mais ICPs (o arduino mega acho que tem 4).

Em principio só com interrupts não sei se safa, cada 1us são 16 clocks, e tens de atender o mesmo, ler contadores e arrumar a casa, não chega para nada e quando deres por ela está a pisar os calos de outro sensor.