#BigGun。 Arduino上最简单的“框架”计时码表(子弹速度的测量)

愚蠢-她真是子弹!


在电气上,传感器的设计仅包含导体。 小学的。


没有绑带-原则上-这是两个从地面到端口2和3的“按钮”,比检测器接收器更简单!


该设备组装在夜晚的掩盖下-为了夏天的热量;-)


略微改写历史(斜体字)-我从事气动武器已有20多年了,一直以来我都使用弹道摆法来测量子弹的速度。
但是the弹枪出现了-能量对抗4.5毫米大酒瓶-100次! 更多-不要使用相同的登录暂停!


那时,我已经被介绍过将Arduino用于和平目的。


这是由Mikhail Shevchenko设计基于两对光学传感器得出的。


他在枪管上安装了一个选件,但是即使经过几次枪击,弹簧气动装置的后座力也损坏了LED。


我试图组装一个带有许多光学传感器的通用框架怪兽-失败。


为了简化起见,我介绍了所描述的结构,没有别的地方了;-)


传感器的原理是从Airspeed计划的创建者那里借来的(最初是90年代)。


传感器装置


只需添加一个微控制器(精度高一个数量级)!


也就是说,当它起作用时,它看起来就是这样!


与声卡不同,我必须不使用模拟信号,而要从逻辑1转换为0。


运气之前还进行了许多实验-框架有2个选项,3种类型的电气“捆扎带”和4种编辑草图(程序)。


事实证明,将电压拉至数字引脚(上拉)是最重要和最稳定的解决方案!


结果,重复此方案时出错的可能性很小!


一切,没有时间进一步解释,只需查看照片即可组装传感器。


组装好的即用型设备


因此,我们开始了FIFA游戏-初始材料是一块15x10x5cm的木块,两块15x15cm的塑料板,2.5mm厚。


在较大的框架厚度下,传感器可能无法正常工作;在较小的厚度下,微风可能会缩短传感器的使用寿命。


您可以拿一个3毫米的瓦楞纸板,轻木,甚至可以用普通的尺子做相框!


要记住的主要内容-4mm厚度-已经很多了,它在六点停止工作!


框架中“窗口”的大小-9x9cm(原为十个)小吗?


如果从字面和象征意义上讲,您无法进入前十名,那么现在谈论天文台的必要性还为时过早!


接下来-我们切出11x14厘米的食物箔片,并使用普通的橡皮铅笔小心地将其粘贴在两侧的框架上。


我们将后者固定在底座(条形)上,以使它们之间的距离为10厘米(草图中嵌入的计时器底座)。


同时,光束本身应该已经是100mm。 至一帧的厚度(实际上,由于仓库本身变干而导致的木材尺寸减小;-)


U型框架是出于“可重复使用”的一组“箔”的原因而制成的-在每次用直尺射击之后,我们在成对的板之间画图,以打开弹孔区域中的触点。


为了方便和简单地确保与金属箔的接触,制作了基于衣夹的夹子:


手边的材料发挥作用-连衣夹也派上用场!


我将多芯双绞线用作导体-我将所有末端镀锡(我们记得铜和铝没有直接连接!)


所以我们想通了。


现在,让我们继续进行微控制器-一切都在arduino Uno(Atmega-328)16Mhz + LCD Keypad Shield上进行了调试。


因此,草图的文本(程序)为:


//   #include <LiquidCrystal.h> //!    -     !!! LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // : //  unsigned int data = 0; //     volatile unsigned long int time1 = 0; volatile unsigned long int time2 = 0; void setup() { //     LCD lcd.begin(16, 2); //      attachInterrupt(0, sensor_1, FALLING); attachInterrupt(1, sensor_2, FALLING); //     -  pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); } void loop() { lcd.setCursor(0, 0); lcd.print("CHRON 100mm base"); //    nogood: //    -  -     #   CHRON if ( digitalRead(2) == LOW ) { lcd.setCursor(5, 0); lcd.print("#"); goto nogood; } else { lcd.setCursor(5, 0); lcd.print(" "); } //    -  -     #   base if ( digitalRead(3) == LOW ) { lcd.setCursor(11, 0); lcd.print("#"); goto nogood; } else { lcd.setCursor(11, 0); lcd.print(" "); } lcd.setCursor(0, 1); lcd.print("Speed "); lcd.setCursor(6, 1); lcd.print(data); lcd.setCursor(13, 1); lcd.print("M/S"); delay(100); while ( time1 == 0 && time2 == 0 ) ; delay(100); if ( time1 != 0 && time2 != 0 && time2 > time1 ) { data = 0.1 / ((time2 - time1) / 1000000.0); // v = s / t } // Serial.println(data) //      -       LiquidCrystal (lcd), //   - Serial.println -      Arduino IDE lcd.setCursor(6, 1); lcd.print(data); time1 = 0; time2 = 0; } void sensor_1() { if ( time1 == 0 ) { time1 = micros(); } } void sensor_2() { if ( time2 == 0 ) { time2 = micros(); } } 

简而言之,工作原理-引脚2,3上的PULLUP命令打开上拉电压(内部电阻为20-50 kOhm)
子弹跨度会导致中断(传感器FALLING)检测到短路,就像最快的arduino命令一样。
知道时间差和传感器之间的距离,就可以计算出子弹速度。


重要的传感器顺序-第一个-引脚2!


仅此而已。



有人会反对将精力花费在突破金属箔上,而子弹的实际速度会更高!


起初,一切似乎都是这样!


与一年半前通过带有光学传感器的设备(280m / s)测得的速度相比,箔上的设备产生了260个!


精力充沛-22焦耳vs 19! -损失立即treshki!


但是,一旦我将底座减小到100mm,“箔”就开始显示出正确的结果-为什么-一个谜!


子弹使用Luman FT 0.56克,设备基于同一微控制器,两种情况下的底座均为100mm,一支步枪


戴安娜(Diana-54)Airking


现在,关于读数的稳定性-在5张照片中,一次“弹出”只是一次,其他的数量都在收敛。


是的,最后要问-为什么在电子时代重新发明轮子?


一切都很简单-答案就是a弹枪!


测量出发时的收费速度-没问题-任何设备都可以!


但是在远处,镜头具有散布的能力(用于检查碎石的标准目标是75x75cm)。


现在,想像一下在35米处测量充电速度的选项-即使将售价50美元的中国设备拆开,也会令人感到侮辱。


出路是“预订”箱子和传感器(40mm的板就足够了),或使用一次性的。


有什么方法和为什么要测量-不远处就是禁止在水体中捕铅(欧洲之后),将有必要使用钢丸,在商店中会有这样的墨盒的生产线(或高价)。


当自我收集墨盒时,我不想使用老式的方法来评估进入干燥松木板的有效性。


为您和猎人精心准备的镜头-不是维尼,不是羽毛!


直到我们在安德烈(Andrey)的哈伯(Habr)再次相遇。

Source: https://habr.com/ru/post/zh-CN414745/


All Articles